diff --git a/docs/building-apps/application-design-considerations.mdx b/docs/building-apps/application-design-considerations.mdx index 2cfada49c..797bc1521 100644 --- a/docs/building-apps/application-design-considerations.mdx +++ b/docs/building-apps/application-design-considerations.mdx @@ -11,7 +11,7 @@ There are four custody options to consider: - Non-custodial service - the user of the application stores their own secret key - Custodial service - the service provider (application) stores the users’ secret keys -- Mixture of both - with the use of [multisig](../learn/encyclopedia/signatures-multisig.mdx), this option is useful for maintaining non-custodial status while still allowing for account recovery +- Mixture of both - with the use of [multisig](../learn/encyclopedia/security/signatures-multisig.mdx), this option is useful for maintaining non-custodial status while still allowing for account recovery - Third-party key management services - integrate a third-party custodial service into your application that can store your users’ secret keys ### Non-custodial service @@ -24,18 +24,17 @@ Typically, non-custodial applications create or import a pre-existing Stellar ac With a custodial service, the service provider (an application such as a centralized exchange) stores the users’ secret keys and delegates usage rights to the user. -Many custodial services choose to use a single pooled Stellar account (called shared, omnibus, or [pooled accounts](../learn/encyclopedia/pooled-accounts-muxed-accounts-memos.mdx)) to handle transactions on behalf of their users instead of creating a new Stellar account for each user. To distinguish between individual users in a pooled account, we encourage the implementation of [muxed accounts](../learn/encyclopedia/pooled-accounts-muxed-accounts-memos.mdx#muxed-accounts). +Many custodial services choose to use a single pooled Stellar account (called shared, omnibus, or [pooled accounts](../learn/encyclopedia/transactions-specialized/pooled-accounts-muxed-accounts-memos.mdx)) to handle transactions on behalf of their users instead of creating a new Stellar account for each user. To distinguish between individual users in a pooled account, we encourage the implementation of [muxed accounts](../learn/encyclopedia/transactions-specialized/pooled-accounts-muxed-accounts-memos.mdx#muxed-accounts). ### A mixture of non-custodial and custodial -Building an application with [multi-signature](../learn/encyclopedia/signatures-multisig.mdx) capabilities allows you to have a non-custodial service with account recovery. If the user loses their secret key, they can still sign transactions with other authorized signatures, granted the signature threshold is high enough. +Building an application with [multi-signature](../learn/encyclopedia/security/signatures-multisig.mdx) capabilities allows you to have a non-custodial service with account recovery. If the user loses their secret key, they can still sign transactions with other authorized signatures, granted the signature threshold is high enough. ### Third-party key management services​ There are several apps and services that specialize in adding additional security layers to users' accounts. Check them out if you're interested in integrating a third-party key management service: - [StellarAuth](https://stellarauth.com/) -- [Stellar Authenticator](https://stellar-authenticator.org/) - [Ledger](https://www.ledger.com/) - [Trezor](https://trezor.io/) - [StellarGuard](https://stellarguard.me/) diff --git a/docs/building-apps/example-application-tutorial/account-creation.mdx b/docs/building-apps/example-application-tutorial/account-creation.mdx index 260163699..2cd52622d 100644 --- a/docs/building-apps/example-application-tutorial/account-creation.mdx +++ b/docs/building-apps/example-application-tutorial/account-creation.mdx @@ -191,5 +191,5 @@ Our `walletStore` is used in a ton of places in our application, especially in t [accounts section]: ../../learn/fundamentals/stellar-data-structures/accounts.mdx [non-custodial application]: ../application-design-considerations.mdx#non-custodial-service [`js-stellar-wallets` sdk]: https://github.com/stellar/js-stellar-wallets -[sponsored reserves]: ../../learn/encyclopedia/sponsored-reserves.mdx +[sponsored reserves]: ../../learn/encyclopedia/transactions-specialized/sponsored-reserves.mdx [contacts list]: ./contacts-list diff --git a/docs/building-apps/example-application-tutorial/anchor-integration/setup.mdx b/docs/building-apps/example-application-tutorial/anchor-integration/setup.mdx index c5529e1aa..80a6ac8ad 100644 --- a/docs/building-apps/example-application-tutorial/anchor-integration/setup.mdx +++ b/docs/building-apps/example-application-tutorial/anchor-integration/setup.mdx @@ -3,7 +3,7 @@ title: "Setup for Anchored Assets" sidebar_position: 10 --- -An anchor is a Stellar-specific term for the on and off-ramps that connect the Stellar network to traditional financial rails, such as financial institutions or fintech companies. When a user deposits with an anchor, that anchor will credit their Stellar account with the equivalent amount of digital tokens. The user can then hold, transfer, or trade those tokens just like any other Stellar asset. When a user withdraws those tokens, the anchor redeems them for cash in hand or money in the bank. Read more about anchors in this [anchor section](../../../learn/encyclopedia/anchors.mdx). +An anchor is a Stellar-specific term for the on and off-ramps that connect the Stellar network to traditional financial rails, such as financial institutions or fintech companies. When a user deposits with an anchor, that anchor will credit their Stellar account with the equivalent amount of digital tokens. The user can then hold, transfer, or trade those tokens just like any other Stellar asset. When a user withdraws those tokens, the anchor redeems them for cash in hand or money in the bank. Read more about anchors in this [anchor section](../../../learn/fundamentals/anchors.mdx). When a customer downloads a wallet application that is connected to an anchor service, their Stellar account can either be created by the wallet application or the anchor service. In this example, the account has been created by the wallet application, BasicPay. Account creation strategies are described more in-depth [here](../../application-design-considerations.mdx#account-creation-strategies). diff --git a/docs/building-apps/example-application-tutorial/path-payment.mdx b/docs/building-apps/example-application-tutorial/path-payment.mdx index 0aba8834b..0512aac67 100644 --- a/docs/building-apps/example-application-tutorial/path-payment.mdx +++ b/docs/building-apps/example-application-tutorial/path-payment.mdx @@ -3,7 +3,7 @@ title: Path Payment sidebar_position: 50 --- -A path payment is where the asset sent can be different from the asset received. There are two possible path payment operations: 1) `path_payment_strict_send`, which allows the user to specify the amount of the asset to send, and 2) `path_payment_strict_receive`, which allows the user to specify the amount of the asset received. Read more in the [Path Payments Encyclopedia Entry](../../learn/encyclopedia/path-payments.mdx). +A path payment is where the asset sent can be different from the asset received. There are two possible path payment operations: 1) `path_payment_strict_send`, which allows the user to specify the amount of the asset to send, and 2) `path_payment_strict_receive`, which allows the user to specify the amount of the asset received. Read more in the [Path Payments Encyclopedia Entry](../../learn/encyclopedia/transactions-specialized/path-payments.mdx). ## User experience diff --git a/docs/building-apps/wallet/sep30.mdx b/docs/building-apps/wallet/sep30.mdx index 1dc8ddef3..c4a564c18 100644 --- a/docs/building-apps/wallet/sep30.mdx +++ b/docs/building-apps/wallet/sep30.mdx @@ -186,7 +186,7 @@ var recoverableWallet = await recovery.createRecoverableWallet( With the given parameters, this function will create a transaction that will: 1. Set `deviceKp` as the primary account key. Please note that the master key belonging to `accountKp` will be locked. `deviceKp` should be used as a primary signer instead. -2. Set all operation thresholds to 10. You can read more about threshold in the [documentation](../../learn/encyclopedia/signatures-multisig.mdx#thresholds) +2. Set all operation thresholds to 10. You can read more about threshold in the [documentation](../../learn/encyclopedia/security/signatures-multisig.mdx#thresholds) 3. Use identities that were defined earlier on both servers. (That means, both server will accept SEP-10 authentication via `recoveryKp` as an auth method) 4. Set device key weight to 10, and recovery server weight to 5. Given these account thresholds, both servers must be used to recover the account, as transaction signed by one will only have weight of 5, which is not sufficient to change account key. diff --git a/docs/building-apps/wallet/stellar.mdx b/docs/building-apps/wallet/stellar.mdx index 2a5af3e3d..84391070b 100644 --- a/docs/building-apps/wallet/stellar.mdx +++ b/docs/building-apps/wallet/stellar.mdx @@ -403,7 +403,7 @@ bool success = await stellar.submitTransaction(modifyAccountTransaction); #### Sponsor Operations -Some operations, that modify account reserves can be [sponsored](../../learn/encyclopedia/sponsored-reserves.mdx#sponsored-reserves-operations). For sponsored operations, the sponsoring account will be paying for the reserves instead of the account that being sponsored. This allows you to do some operations, even if account doesn't have enough funds to perform such operations. To sponsor a transaction, simply start a sponsoring block:} ts={simply create a building function (describing which operations are to be sponsored) and pass it to the sponsoring method:}/> +Some operations, that modify account reserves can be [sponsored](../../learn/encyclopedia/transactions-specialized/sponsored-reserves.mdx#sponsored-reserves-operations). For sponsored operations, the sponsoring account will be paying for the reserves instead of the account that being sponsored. This allows you to do some operations, even if account doesn't have enough funds to perform such operations. To sponsor a transaction, simply start a sponsoring block:} ts={simply create a building function (describing which operations are to be sponsored) and pass it to the sponsoring method:}/> diff --git a/docs/issuing-assets/anatomy-of-an-asset.mdx b/docs/issuing-assets/anatomy-of-an-asset.mdx index 6a8b8394f..e1f834b98 100644 --- a/docs/issuing-assets/anatomy-of-an-asset.mdx +++ b/docs/issuing-assets/anatomy-of-an-asset.mdx @@ -17,7 +17,7 @@ One major category of assets is the stablecoin. A stablecoin is a blockchain-bas Reserve-backed stablecoins are pegged to a real-world asset at a 1:1 ratio. Because the underlying asset is maintained as collateral, users should be able to trade their stablecoin for the asset at any time. Asset reserves can be maintained by independent custodians and should be regularly audited. -Currently, one of Stellar's most significant use cases is the tokenization of fiat currency for processes like cross-border payments. With anchors, users can connect Stellar tokens to existing rails that allow for the deposit of real-world assets in exchange for digital currency and vice versa. Learn more about anchors in our [Anchors section](../learn/encyclopedia/anchors.mdx). +Currently, one of Stellar's most significant use cases is the tokenization of fiat currency for processes like cross-border payments. With anchors, users can connect Stellar tokens to existing rails that allow for the deposit of real-world assets in exchange for digital currency and vice versa. Learn more about anchors in our [Anchors section](../learn/fundamentals/anchors.mdx). ### Treasury management diff --git a/docs/issuing-assets/control-asset-access.mdx b/docs/issuing-assets/control-asset-access.mdx index 67b295eea..98b9fa651 100644 --- a/docs/issuing-assets/control-asset-access.mdx +++ b/docs/issuing-assets/control-asset-access.mdx @@ -32,7 +32,7 @@ Using a distribution account is better for auditing because an issuing account c One thing you must decide when issuing an asset is what to call it. An asset code is the asset’s identifying code. There are three possible formats: Alphanumeric 4, Alphanumeric 12, and liquidity pool shares. -Learn about liquidity pool shares in the [Liquidity Pool Encyclopedia Entry](../learn/encyclopedia/liquidity-on-stellar-sdex-liquidity-pools.mdx). +Learn about liquidity pool shares in the [Liquidity Pool Encyclopedia Entry](../learn/encyclopedia/sdex/liquidity-on-stellar-sdex-liquidity-pools.mdx). - Alphanumeric 4-character maximum: Any characters from the set a-z, A-Z, 0-9 are allowed. The code can be shorter than 4 characters, but the trailing characters must all be empty. - Alphanumeric 12-character maximum: Any characters from the set a-z, A-Z, 0-9 are allowed. The code can be any number of characters from 5 to 12, but the trailing characters must all be empty. @@ -73,11 +73,11 @@ There are three levels of authorization an asset issuer can remove using the `Se - `AUTHORIZED_FLAG`: signifies complete authorization allowing an account to transact freely with the asset to make and receive payments and place orders. - `AUTHORIZED_TO_MAINTAIN_LIABILITIES_FLAG`: denotes limited authorization that allows an account to maintain current orders but not to otherwise transact with the asset. -- `CLAWBACK_ENABLED`: enables the issuing account to take back (burning) all of the asset. See our [section on Clawbacks](../learn/encyclopedia/clawbacks.mdx) for more information. +- `CLAWBACK_ENABLED`: enables the issuing account to take back (burning) all of the asset. See our [section on Clawbacks](../learn/encyclopedia/transactions-specialized/clawbacks.mdx) for more information. #### Clawback Enabled (0x8) -With the `AUTH_CLAWBACK_ENABLED_FLAG` flag set, any _subsequent_ trustlines established with this account will have clawbacks enabled. You can read more about clawbacks (and selectively controlling them on a per-trustline basis) [here](../learn/encyclopedia/clawbacks.mdx). +With the `AUTH_CLAWBACK_ENABLED_FLAG` flag set, any _subsequent_ trustlines established with this account will have clawbacks enabled. You can read more about clawbacks (and selectively controlling them on a per-trustline basis) [here](../learn/encyclopedia/transactions-specialized/clawbacks.mdx). Note that this flag requires that revocable is also set. @@ -109,7 +109,7 @@ The authorization sandwich allows the issuer to inspect the specific payment and ### Sample code -In the following code samples, proper error checking is omitted. However, you should always validate your results, as there are many ways that requests can fail. Refer to the [Error Handling Encyclopedia Entry](../learn/encyclopedia/error-handling.mdx) for tips on error management strategies. +In the following code samples, proper error checking is omitted. However, you should always validate your results, as there are many ways that requests can fail. Refer to the [Error Handling Encyclopedia Entry](../learn/encyclopedia/errors-and-debugging/error-handling.mdx) for tips on error management strategies. The following example sets authorization to be both required and revocable: @@ -222,6 +222,6 @@ With that warning in mind: It is possible to lock down the issuing account of an asset so that the asset’s supply cannot increase. To do this, first set the issuing account’s master weight to 0 using the Set Options operation. This prevents the issuing account from being able to sign transactions and therefore, making the issuer unable to issue any more assets. Be sure to do this only after you’ve issued all desired assets to the distribution account. If the asset has a Stellar Asset Contract, also make sure the admin for the contract was not updated from the default (which is the issuer) using the `set_admin` contract call. If the admin was not the issuer, then the admin would be able to mint the asset even with the issuing account locked. -Learn more about signature weights in the [Signature and Multisig Encyclopedia Entry](../learn/encyclopedia/signatures-multisig.mdx). +Learn more about signature weights in the [Signature and Multisig Encyclopedia Entry](../learn/encyclopedia/security/signatures-multisig.mdx). See how to do this in step five of the [Issuing an Asset Tutorial](./how-to-issue-an-asset.mdx). diff --git a/docs/issuing-assets/how-to-issue-an-asset.mdx b/docs/issuing-assets/how-to-issue-an-asset.mdx index 06e2ae4a5..adbf0c79a 100644 --- a/docs/issuing-assets/how-to-issue-an-asset.mdx +++ b/docs/issuing-assets/how-to-issue-an-asset.mdx @@ -18,7 +18,7 @@ If you'd like to interact with an asset issued on the Stellar network in smart c You must ensure you have the required amount of XLM to create your issuing and distribution accounts and cover the minimum balance and transaction fees. If you’re issuing an asset on the testnet, you can fund your account by getting test XLM from friendbot. If you’re issuing an asset in production, you will need to acquire XLM from another wallet or exchange. -If you’d like to avoid your users having to deal with transaction fees, consider using fee-bump transactions. Read more in our [Fee-Bump Transaction Encyclopedia Entry](../learn/encyclopedia/fee-bump-transactions.mdx). +If you’d like to avoid your users having to deal with transaction fees, consider using fee-bump transactions. Read more in our [Fee-Bump Transaction Encyclopedia Entry](../learn/encyclopedia/transactions-specialized/fee-bump-transactions.mdx). Learn about the testnet and mainnet in our [Networks section](../learn/fundamentals/networks.mdx). @@ -57,7 +57,7 @@ An account must establish a trustline with the issuing account to hold that acco Read more about trustlines in the [Trustlines section](../learn/fundamentals/stellar-data-structures/accounts.mdx#trustlines). -If you’d like to avoid your users having to deal with trustlines or XLM, consider using sponsored reserves. Read more in our [Sponsored Reserves Encyclopedia Entry](../learn/encyclopedia/sponsored-reserves.mdx). +If you’d like to avoid your users having to deal with trustlines or XLM, consider using sponsored reserves. Read more in our [Sponsored Reserves Encyclopedia Entry](../learn/encyclopedia/transactions-specialized/sponsored-reserves.mdx). diff --git a/docs/learn/encyclopedia/contract-development/README.mdx b/docs/learn/encyclopedia/contract-development/README.mdx new file mode 100644 index 000000000..75f1a557a --- /dev/null +++ b/docs/learn/encyclopedia/contract-development/README.mdx @@ -0,0 +1,8 @@ +--- +title: Contract Development +sidebar_position: 10 +--- + +import DocCardList from "@theme/DocCardList"; + + diff --git a/docs/learn/smart-contract-internals/contract-interactions/README.mdx b/docs/learn/encyclopedia/contract-development/contract-interactions/README.mdx similarity index 90% rename from docs/learn/smart-contract-internals/contract-interactions/README.mdx rename to docs/learn/encyclopedia/contract-development/contract-interactions/README.mdx index 4b82bd5c0..28c27b72d 100644 --- a/docs/learn/smart-contract-internals/contract-interactions/README.mdx +++ b/docs/learn/encyclopedia/contract-development/contract-interactions/README.mdx @@ -1,6 +1,6 @@ --- title: Contract Interactions -sidebar_position: 120 +sidebar_position: 60 --- import DocCardList from "@theme/DocCardList"; diff --git a/docs/learn/smart-contract-internals/contract-interactions/cross-contract.mdx b/docs/learn/encyclopedia/contract-development/contract-interactions/cross-contract.mdx similarity index 100% rename from docs/learn/smart-contract-internals/contract-interactions/cross-contract.mdx rename to docs/learn/encyclopedia/contract-development/contract-interactions/cross-contract.mdx diff --git a/docs/learn/smart-contract-internals/contract-interactions/overview.mdx b/docs/learn/encyclopedia/contract-development/contract-interactions/overview.mdx similarity index 100% rename from docs/learn/smart-contract-internals/contract-interactions/overview.mdx rename to docs/learn/encyclopedia/contract-development/contract-interactions/overview.mdx diff --git a/docs/learn/smart-contract-internals/contract-interactions/stellar-transaction.mdx b/docs/learn/encyclopedia/contract-development/contract-interactions/stellar-transaction.mdx similarity index 96% rename from docs/learn/smart-contract-internals/contract-interactions/stellar-transaction.mdx rename to docs/learn/encyclopedia/contract-development/contract-interactions/stellar-transaction.mdx index c53a40ad2..7202908d3 100644 --- a/docs/learn/smart-contract-internals/contract-interactions/stellar-transaction.mdx +++ b/docs/learn/encyclopedia/contract-development/contract-interactions/stellar-transaction.mdx @@ -25,7 +25,7 @@ import TabItem from "@theme/TabItem"; ## Example SDK Usage -Some (but not all yet) of the Stellar SDKs have functions built-in to handle most of the process of building a Stellar transaction to interact with a Soroban smart contract. Below, we demonstrate in JavaScript and Python how to build and submit a Stellar transaction that will invoke an instance of the [increment example](../../../smart-contracts/getting-started/storing-data.mdx) smart contract. +Some (but not all yet) of the Stellar SDKs have functions built-in to handle most of the process of building a Stellar transaction to interact with a Soroban smart contract. Below, we demonstrate in JavaScript and Python how to build and submit a Stellar transaction that will invoke an instance of the [increment example](../../../../smart-contracts/getting-started/storing-data.mdx) smart contract. @@ -376,15 +376,15 @@ public class SorobanExample { ## XDR Usage -Stellar supports invoking and deploying contracts with a new operation named `InvokeHostFunctionOp`. The [`soroban-cli`] abstracts these details away from the user, but not all SDKs do yet. If you're building a dapp you'll probably find yourself building the XDR transaction to submit to the network. +Stellar supports invoking and deploying contracts with a new operation named `InvokeHostFunctionOp`. The [`stellar-cli`] abstracts these details away from the user, but not all SDKs do yet. If you're building a dapp you'll probably find yourself building the XDR transaction to submit to the network. The `InvokeHostFunctionOp` can be used to perform the following Soroban operations: - Invoke contract functions. - Upload Wasm of the new contracts. -- Deploy new contracts using the uploaded Wasm or built-in implementations (this currently includes only the [token contract](../../../smart-contracts/tokens/stellar-asset-contract.mdx)). +- Deploy new contracts using the uploaded Wasm or built-in implementations (this currently includes only the [token contract](../../../../smart-contracts/tokens/stellar-asset-contract.mdx)). -[`soroban-cli`]: /docs/smart-contracts/getting-started/setup.mdx#install-the-soroban-cli +[`stellar-cli`]: /docs/smart-contracts/getting-started/setup.mdx#install-the-stellar-cli There is only a single `InvokeHostFunctionOp` allowed per transaction. Contracts should be used to perform multiple actions atomically, for example, to deploy a new contract and initialize it atomically. @@ -503,16 +503,16 @@ The `hostFunction` in `InvokeHostFunctionOp` will be executed by the Soroban hos ##### JavaScript Usage -Each of these variations of host function invocation has convenience methods in the [JavaScript SDK](../../../tools/sdks/library.mdx#javascript-sdk): +Each of these variations of host function invocation has convenience methods in the [JavaScript SDK](../../../../tools/sdks/library.mdx#javascript-sdk): - [`Operation.invokeHostFunction`](https://stellar.github.io/js-stellar-sdk/Operation.html#.invokeHostFunction) is the lowest-level method that corresponds directly to the XDR. - [`Operation.invokeContractFunction`](https://stellar.github.io/js-stellar-sdk/Operation.html#.invokeContractFunction) is an abstraction to invoke the method of a particular contract, similar to [`Contract.call`](https://stellar.github.io/js-stellar-sdk/Contract.html#call). -- [`Operation.createStellarAssetContract`](https://stellar.github.io/js-stellar-sdk/Operation.html#.createStellarAssetContract) and [`Operation.createCustomContract`](https://stellar.github.io/js-stellar-sdk/Operation.html#.createCustomContract) are abstractions to instantiate contracts: the former is for wrapping an existing [Stellar asset](../../../issuing-assets/how-to-issue-an-asset.mdx) into a smart contract and the latter is for deploying your own contract. +- [`Operation.createStellarAssetContract`](https://stellar.github.io/js-stellar-sdk/Operation.html#.createStellarAssetContract) and [`Operation.createCustomContract`](https://stellar.github.io/js-stellar-sdk/Operation.html#.createCustomContract) are abstractions to instantiate contracts: the former is for wrapping an existing [Stellar asset](../../../../issuing-assets/how-to-issue-an-asset.mdx) into a smart contract and the latter is for deploying your own contract. - [`Operation.uploadContractWasm`](https://stellar.github.io/js-stellar-sdk/Operation.html#.uploadContractWasm) corresponds to the above `HOST_FUNCTION_TYPE_UPLOAD_CONTRACT_WASM` variant, letting you upload the raw WASM buffer to the ledger. #### Authorization Data -Soroban's [authorization framework](../authorization.mdx) provides a standardized way for passing authorization data to the contract invocations via `SorobanAuthorizationEntry` structures. +Soroban's [authorization framework](../../security/authorization.mdx) provides a standardized way for passing authorization data to the contract invocations via `SorobanAuthorizationEntry` structures. ```cpp struct SorobanAuthorizationEntry @@ -603,7 +603,7 @@ pub struct AccountEd25519Signature { ``` [structures]: https://github.com/stellar/rs-soroban-env/blob/99d8c92cdc7e5cd0f5311df8f88d04658ecde7d2/soroban-env-host/src/native_contract/account_contract.rs#L51 -[custom accounts]: ../authorization.mdx#account-abstraction +[custom accounts]: ../../security/authorization.mdx#account-abstraction ##### JavaScript Usage @@ -633,7 +633,7 @@ const signedEntries = simTx.auth.map(async (entry) => ### Transaction resources -Every Soroban transaction has to have a `SorobanTransactionData` transaction [extension] populated. This is needed to compute the [Soroban resource fee](../../fundamentals/fees-resource-limits-metering.mdx). +Every Soroban transaction has to have a `SorobanTransactionData` transaction [extension] populated. This is needed to compute the [Soroban resource fee](../../../fundamentals/fees-resource-limits-metering.mdx). [extension]: https://github.com/stellar/stellar-xdr/blob/c2e702c70951ff59a1eff257f08cf38d47210e5f/Stellar-transaction.x#L874 @@ -662,7 +662,7 @@ struct SorobanTransactionData }; ``` -This data comprises two parts: Soroban resources and the `refundableFee`. The `refundableFee` is the portion of the transaction fee eligible for refund. It includes the fees for the contract events emitted by the transaction, the return value of the host function invocation, and fees for the [ledger space rent](../state-archival.mdx). +This data comprises two parts: Soroban resources and the `refundableFee`. The `refundableFee` is the portion of the transaction fee eligible for refund. It includes the fees for the contract events emitted by the transaction, the return value of the host function invocation, and fees for the [ledger space rent](../../storage/state-archival.mdx). The `SorobanResources` structure includes the ledger footprint and the resource values, which together determine the resource consumption limit and the resource fee. The footprint must contain the `LedgerKey`s that will be read and/or written. diff --git a/docs/learn/smart-contract-internals/contract-interactions/tests.mdx b/docs/learn/encyclopedia/contract-development/contract-interactions/tests.mdx similarity index 77% rename from docs/learn/smart-contract-internals/contract-interactions/tests.mdx rename to docs/learn/encyclopedia/contract-development/contract-interactions/tests.mdx index 549a48831..3738b906f 100644 --- a/docs/learn/smart-contract-internals/contract-interactions/tests.mdx +++ b/docs/learn/encyclopedia/contract-development/contract-interactions/tests.mdx @@ -4,7 +4,7 @@ title: Tests description: Interacting with contracts in tests --- -[Debugging contracts](../debugging.mdx) explains that it is much more convenient to debug using native code than Wasm. Given that you are testing native code, it is tempting to interact with your contract directly using function calls. If you attempt this approach, you will find that it doesn't always work. Function call interactions do not set the environment into the correct state for contract execution, so functions involving contract data and determining the current or invoking contract will not work. +[Debugging contracts](../../errors-and-debugging/debugging.mdx) explains that it is much more convenient to debug using native code than Wasm. Given that you are testing native code, it is tempting to interact with your contract directly using function calls. If you attempt this approach, you will find that it doesn't always work. Function call interactions do not set the environment into the correct state for contract execution, so functions involving contract data and determining the current or invoking contract will not work. When writing tests, it is important to always interact with contracts through contract invocation. In a production setting, contract invocation will execute Wasm bytecode loaded from the ledger. So how does this work if you are testing native code? You must register your contract with the environment, so it knows what functions are available and how to call them. While this sounds complex, the `contractimpl` procedural macro automatically generates almost all the code to do this. All you have to do is write a small [stub](https://github.com/stellar/soroban-token-contract/blob/42380647bb817bf01c739c19286f18be881e0e41/src/testutils.rs#L12-L15) to actually call the generated code, such as diff --git a/docs/learn/smart-contract-internals/contract-interactions/transaction-simulation.mdx b/docs/learn/encyclopedia/contract-development/contract-interactions/transaction-simulation.mdx similarity index 91% rename from docs/learn/smart-contract-internals/contract-interactions/transaction-simulation.mdx rename to docs/learn/encyclopedia/contract-development/contract-interactions/transaction-simulation.mdx index 39ee1b88e..c9aee7940 100644 --- a/docs/learn/smart-contract-internals/contract-interactions/transaction-simulation.mdx +++ b/docs/learn/encyclopedia/contract-development/contract-interactions/transaction-simulation.mdx @@ -6,7 +6,7 @@ description: Simulate a contract interaction contained in a Stellar transaction. ## Footprint -As mentioned in the [persisting data](../persisting-data.mdx) section, a contract can only load or store `CONTRACT_DATA` entries that are declared in a _footprint_ associated with its invocation. +As mentioned in the [persisting data](../../storage/persisting-data.mdx) section, a contract can only load or store `CONTRACT_DATA` entries that are declared in a _footprint_ associated with its invocation. A footprint is a set of ledger keys, each marked as either read-only or read-write. Read-only keys are available to the transaction for reading; read-write keys are available for reading, writing, or both. @@ -20,7 +20,7 @@ In any event (whether successful or failing), the real transaction will execute ## Authorization -See the [authorization overview](../authorization.mdx) docs and authorization in transactions [section][auth-data] for general information on Soroban authorization. +See the [authorization overview](../../security/authorization.mdx) docs and authorization in transactions [section][auth-data] for general information on Soroban authorization. [auth-data]: stellar-transaction.mdx#authorization-data diff --git a/docs/learn/smart-contract-internals/contract-lifecycle.mdx b/docs/learn/encyclopedia/contract-development/contract-lifecycle.mdx similarity index 97% rename from docs/learn/smart-contract-internals/contract-lifecycle.mdx rename to docs/learn/encyclopedia/contract-development/contract-lifecycle.mdx index 2100c8a3c..bd5b4ee4a 100644 --- a/docs/learn/smart-contract-internals/contract-lifecycle.mdx +++ b/docs/learn/encyclopedia/contract-development/contract-lifecycle.mdx @@ -1,5 +1,5 @@ --- -sidebar_position: 40 +sidebar_position: 50 title: Contract Lifecycle description: The process of developing, deploying, and maintaining smart contracts. --- @@ -59,4 +59,4 @@ TBD: expand this section. ## Upgrading contracts -See the [Upgrading Contracts page](../../smart-contracts/guides/conventions/upgrading-contracts.mdx) for details on this. +See the [Upgrading Contracts page](../../../smart-contracts/guides/conventions/upgrading-contracts.mdx) for details on this. diff --git a/docs/learn/smart-contract-internals/environment-concepts.mdx b/docs/learn/encyclopedia/contract-development/environment-concepts.mdx similarity index 94% rename from docs/learn/smart-contract-internals/environment-concepts.mdx rename to docs/learn/encyclopedia/contract-development/environment-concepts.mdx index d8e0dac80..956e0b2a0 100644 --- a/docs/learn/smart-contract-internals/environment-concepts.mdx +++ b/docs/learn/encyclopedia/contract-development/environment-concepts.mdx @@ -1,5 +1,5 @@ --- -sidebar_position: 80 +sidebar_position: 10 title: Environment Concepts description: The interface that defines objects, functions, and data available to smart contracts. --- @@ -36,7 +36,7 @@ The on-chain guest environment is isolated inside a WebAssembly (Wasm) virtual m The use of a VM helps provide security against any potential guest-code misbehavior, to both host and other guest environments, as well as ensuring portability of guest code between hosts running on different types of hardware. -When developing and testing contract code off-chain, it is possible to compile contract code to native machine code rather than Wasm bytecode, and to [run tests and debug contracts](./debugging.mdx) against a local copy of the host environment by linking directly to it, rather than executing within a VM. This configuration runs much faster and provides much better debugging information, but is only possible locally, off-chain. On-chain deployed contracts are always Wasm. +When developing and testing contract code off-chain, it is possible to compile contract code to native machine code rather than Wasm bytecode, and to [run tests and debug contracts](../errors-and-debugging/debugging.mdx) against a local copy of the host environment by linking directly to it, rather than executing within a VM. This configuration runs much faster and provides much better debugging information, but is only possible locally, off-chain. On-chain deployed contracts are always Wasm. WebAssembly is a relatively low-level VM, which means that it does not provide a very rich set of standard or "built-in" operations. In contrast to VMs like the JVM, it has no garbage collector (not even a memory allocator), no IO facilities, no standard data structures like lists, arrays, maps or strings, no concepts of objects or types at all besides basic machine types like 32 and 64-bit integers. diff --git a/docs/learn/smart-contract-internals/events.mdx b/docs/learn/encyclopedia/contract-development/events.mdx similarity index 97% rename from docs/learn/smart-contract-internals/events.mdx rename to docs/learn/encyclopedia/contract-development/events.mdx index 8d9d9dd21..04e5eeac6 100644 --- a/docs/learn/smart-contract-internals/events.mdx +++ b/docs/learn/encyclopedia/contract-development/events.mdx @@ -1,5 +1,5 @@ --- -sidebar_position: 100 +sidebar_position: 40 title: Events description: Monitor off-chain smart contract changes. --- @@ -21,7 +21,7 @@ Events are the mechanism that applications off-chain can use to monitor changes ## How are events emitted? -`ContractEvents` are emitted in Stellar Core's `TransactionMeta`. You can see in the [TransactionMetaV3] XDR below that there is a list of `OperationEvents` called `events`. Each `OperationEvent` corresponds to an operation in a transaction, and itself contains a list of `ContractEvents`. Note that `events` will only be populated if the transaction succeeds. Take a look at [this example](../../smart-contracts/example-contracts/events.mdx) to learn more about how to emit an event in your contract. +`ContractEvents` are emitted in Stellar Core's `TransactionMeta`. You can see in the [TransactionMetaV3] XDR below that there is a list of `OperationEvents` called `events`. Each `OperationEvent` corresponds to an operation in a transaction, and itself contains a list of `ContractEvents`. Note that `events` will only be populated if the transaction succeeds. Take a look at [this example](../../../smart-contracts/example-contracts/events.mdx) to learn more about how to emit an event in your contract. [transactionmetav3]: #transactionmetav3 diff --git a/docs/learn/smart-contract-internals/rust-dialect.mdx b/docs/learn/encyclopedia/contract-development/rust-dialect.mdx similarity index 98% rename from docs/learn/smart-contract-internals/rust-dialect.mdx rename to docs/learn/encyclopedia/contract-development/rust-dialect.mdx index 645500f6b..5e51b7e6f 100644 --- a/docs/learn/smart-contract-internals/rust-dialect.mdx +++ b/docs/learn/encyclopedia/contract-development/rust-dialect.mdx @@ -1,5 +1,5 @@ --- -sidebar_position: 60 +sidebar_position: 20 title: Contract Rust Dialect description: Differences between Soroban Rust and typical Rust programming. --- @@ -23,7 +23,7 @@ For this reason it makes sense to consider code written for contracts to be a _d These constraints and priorities are _similar_ to those encountered when writing Rust code for "embedded systems", and the tools, libraries and techniques used in the "contract dialect" are frequently borrowed from the [Rust embedded systems community](https://docs.rust-embedded.org/book/index.html), and by default contracts are recommended to be built with the [`#[no_std]` mode](https://docs.rust-embedded.org/book/intro/no-std.html) that excludes the Rust standard library entirely, relying on the smaller underlying `core` library instead. -Note: these constraints and priorities are **not enforced when building in local-testing mode**, and in fact local contract tests will _frequently_ use facilities -- to generate test input, inspect test output, and guide testing -- that are not supported in the deployment guest environment. Developers **must understand** the difference between code that is compiled-in to Wasm modules for deployment and code that is conditionally compiled for testing. See [debugging contracts](./debugging.mdx) for more details. +Note: these constraints and priorities are **not enforced when building in local-testing mode**, and in fact local contract tests will _frequently_ use facilities -- to generate test input, inspect test output, and guide testing -- that are not supported in the deployment guest environment. Developers **must understand** the difference between code that is compiled-in to Wasm modules for deployment and code that is conditionally compiled for testing. See [debugging contracts](../errors-and-debugging/debugging.mdx) for more details. The "contract dialect" has the following characteristics: diff --git a/docs/learn/smart-contract-internals/transaction-lifecycle.mdx b/docs/learn/encyclopedia/contract-development/transaction-lifecycle.mdx similarity index 100% rename from docs/learn/smart-contract-internals/transaction-lifecycle.mdx rename to docs/learn/encyclopedia/contract-development/transaction-lifecycle.mdx diff --git a/docs/learn/smart-contract-internals/types/README.mdx b/docs/learn/encyclopedia/contract-development/types/README.mdx similarity index 100% rename from docs/learn/smart-contract-internals/types/README.mdx rename to docs/learn/encyclopedia/contract-development/types/README.mdx diff --git a/docs/learn/smart-contract-internals/types/built-in-types.mdx b/docs/learn/encyclopedia/contract-development/types/built-in-types.mdx similarity index 95% rename from docs/learn/smart-contract-internals/types/built-in-types.mdx rename to docs/learn/encyclopedia/contract-development/types/built-in-types.mdx index ccc5763a8..33f9a49fd 100644 --- a/docs/learn/smart-contract-internals/types/built-in-types.mdx +++ b/docs/learn/encyclopedia/contract-development/types/built-in-types.mdx @@ -20,7 +20,7 @@ description: Built-in types used as smart contract inputs and outputs. Built-in types are available to all contracts for use as contract function inputs and outputs, and are defined by the [environment] and the [Rust SDK]. [environment]: ../environment-concepts.mdx -[rust sdk]: ../../../tools/sdks/library.mdx#soroban-rust-sdk +[rust sdk]: ../../../../tools/sdks/library.mdx#soroban-rust-sdk :::tip @@ -84,4 +84,4 @@ Address is a universal opaque identifier to use in contracts. It may represent a Address can be used as a contract function input argument (for example, to identify the payment recipient), as a data key (for example, to store the balance), as the authentication & authorization source (for example, to authorize a token transfer) etc. -See [authorization documentation](../authorization.mdx) for more details on how to use the `Address` type. +See [authorization documentation](../../security/authorization.mdx) for more details on how to use the `Address` type. diff --git a/docs/learn/smart-contract-internals/types/custom-types.mdx b/docs/learn/encyclopedia/contract-development/types/custom-types.mdx similarity index 95% rename from docs/learn/smart-contract-internals/types/custom-types.mdx rename to docs/learn/encyclopedia/contract-development/types/custom-types.mdx index e5a5612eb..71e3ec31a 100644 --- a/docs/learn/smart-contract-internals/types/custom-types.mdx +++ b/docs/learn/encyclopedia/contract-development/types/custom-types.mdx @@ -23,13 +23,13 @@ Custom types are struct, union, and enum types defined by contracts. They are us The [custom types example] demonstrates how to define your own types. -[custom types example]: ../../../smart-contracts/example-contracts/custom-types.mdx +[custom types example]: ../../../../smart-contracts/example-contracts/custom-types.mdx ::: :::info -Error enum types are another type contracts can define that have some unique behaviors. See [Errors](../errors.mdx) for more information. +Error enum types are another type contracts can define that have some unique behaviors. See [Errors](../../errors-and-debugging/errors.mdx) for more information. ::: diff --git a/docs/learn/smart-contract-internals/types/fully-typed-contracts.mdx b/docs/learn/encyclopedia/contract-development/types/fully-typed-contracts.mdx similarity index 78% rename from docs/learn/smart-contract-internals/types/fully-typed-contracts.mdx rename to docs/learn/encyclopedia/contract-development/types/fully-typed-contracts.mdx index 4334e979f..0f0675e9b 100644 --- a/docs/learn/smart-contract-internals/types/fully-typed-contracts.mdx +++ b/docs/learn/encyclopedia/contract-development/types/fully-typed-contracts.mdx @@ -21,17 +21,17 @@ sidebar_label: Fully-Typed Contracts /> -When you compile a contract created with [soroban-sdk](../../../tools/sdks/library.mdx#soroban-rust-sdk), the Wasm file ends up with a [custom section](https://webassembly.github.io/spec/core/appendix/custom.html) containing a machine-readable description of your contract's interface types, sometimes called its [spec](https://github.com/stellar/rs-soroban-sdk/tree/main/soroban-spec) or its [API](https://github.com/stellar/soroban-docs/pull/381#issuecomment-1507283476). This is similar to [ABIs](https://www.quicknode.com/guides/ethereum-development/smart-contracts/what-is-an-abi/) in Ethereum, except that Soroban will store every single one of them on-chain from day one, and they include the comments from the contract's author. +When you compile a contract created with [soroban-sdk](../../../../tools/sdks/library.mdx#soroban-rust-sdk), the Wasm file ends up with a [custom section](https://webassembly.github.io/spec/core/appendix/custom.html) containing a machine-readable description of your contract's interface types, sometimes called its [spec](https://github.com/stellar/rs-soroban-sdk/tree/main/soroban-spec) or its [API](https://github.com/stellar/soroban-docs/pull/381#issuecomment-1507283476). This is similar to [ABIs](https://www.quicknode.com/guides/ethereum-development/smart-contracts/what-is-an-abi/) in Ethereum, except that Soroban will store every single one of them on-chain from day one, and they include the comments from the contract's author. -Today, these interface types are formatted using [XDR](../../encyclopedia/xdr.mdx), but this [may change](https://github.com/stellar/rs-soroban-sdk/issues/683) down the road. +Today, these interface types are formatted using [XDR](../../data-format/xdr.mdx), but this [may change](https://github.com/stellar/rs-soroban-sdk/issues/683) down the road. -The important part is that tooling can fetch these interface types to make your life easier. [Soroban CLI](../../../tools/developer-tools.mdx#cli) is the first tool to do so. Specifically, one subcommand: +The important part is that tooling can fetch these interface types to make your life easier. [Stellar CLI](../../../../tools/developer-tools.mdx#cli) is the first tool to do so. Specifically, one subcommand: -## `soroban contract invoke` +## `stellar contract invoke` Really, every smart contract is its own program, and deserves its own CLI. -So that's what Soroban CLI gives you. +So that's what Stellar CLI gives you. A unique CLI for each smart contract. Constructed on-the-fly, right from the on-chain interface types. Including the author's comments. An _implicit CLI_. @@ -69,7 +69,7 @@ Options: -h, --help Print help ``` -Like any other CLI, you can also get help for any of these subcommands using something like `native balance --help`. Soroban CLI again fetches the on-chain interface types, this time using it to generate a full list of all arguments to the function, and even generates examples. +Like any other CLI, you can also get help for any of these subcommands using something like `native balance --help`. Stellar CLI again fetches the on-chain interface types, this time using it to generate a full list of all arguments to the function, and even generates examples. :::tip @@ -83,13 +83,13 @@ soroban contract invoke --network testnet --id CDLZFC3SYJYDZT7K67VZ75HPJVIEUVNIX If you're unfamiliar with the `--` double dash separator, this is a pattern used by other CLIs. Everything after the double dash, sometimes called the [slop](https://github.com/clap-rs/clap/issues/971), gets passed to the child process. An example of another CLI that makes use of this is `cargo run`. -Of course, the exact way that that Soroban CLI parses arguments is an ongoing design discussion. Representing complex custom arguments on the command line is a design challenge no blockchain CLI gets perfect yet; many, including Soroban CLI, currently use JSON. But this has downsides, and other options are possible. [How would you like to see it work?](https://docs.google.com/document/d/1LASaLyxIA2-YqLnn2NqI5NZGnEmdzx9lLh-j7n0-i4A/edit#) +Of course, the exact way that that Stellar CLI parses arguments is an ongoing design discussion. Representing complex custom arguments on the command line is a design challenge no blockchain CLI gets perfect yet; many, including Stellar CLI, currently use JSON. But this has downsides, and other options are possible. [How would you like to see it work?](https://docs.google.com/document/d/1LASaLyxIA2-YqLnn2NqI5NZGnEmdzx9lLh-j7n0-i4A/edit#) ## Already the best; just getting started We love that Soroban will have all contract interface types available on-chain right from day one. No secondary API calls to external services, no secondary API token management, no signing in or creating an account anywhere else, and near-perfect reliability. It's a game-changer within the blockchain space. -Soroban CLI already shows how this can be built into foundational tooling to give developers delightful experiences. And this is only the beginning. At every level of the stack, you can expect—and [build](https://stellar.org/foundation/grants-and-funding)—tooling that makes interacting with any contract predictable and seamless. +Stellar CLI already shows how this can be built into foundational tooling to give developers delightful experiences. And this is only the beginning. At every level of the stack, you can expect—and [build](https://stellar.org/foundation/grants-and-funding)—tooling that makes interacting with any contract predictable and seamless. Soon we'll have TypeScript/JavaScript libraries that mirror the behavior of `soroban contract invoke`, customized for browser & nodejs environments. You can expect GUIs that adapt to any given contract on-the-fly, functioning as interactive documentation. If you're writing contracts that make cross-contract calls, most of the code you need can also be auto-generated. diff --git a/docs/learn/encyclopedia/data-format/README.mdx b/docs/learn/encyclopedia/data-format/README.mdx new file mode 100644 index 000000000..7290f70a1 --- /dev/null +++ b/docs/learn/encyclopedia/data-format/README.mdx @@ -0,0 +1,8 @@ +--- +title: Data Format +sidebar_position: 60 +--- + +import DocCardList from "@theme/DocCardList"; + + diff --git a/docs/learn/encyclopedia/xdr.mdx b/docs/learn/encyclopedia/data-format/xdr.mdx similarity index 100% rename from docs/learn/encyclopedia/xdr.mdx rename to docs/learn/encyclopedia/data-format/xdr.mdx diff --git a/docs/learn/encyclopedia/errors-and-debugging/README.mdx b/docs/learn/encyclopedia/errors-and-debugging/README.mdx new file mode 100644 index 000000000..5987e5fec --- /dev/null +++ b/docs/learn/encyclopedia/errors-and-debugging/README.mdx @@ -0,0 +1,10 @@ +--- +title: Errors and Debugging +sidebar_position: 50 +--- + +import DocCardList from "@theme/DocCardList"; + +In-depth explanations and articles concerning specific topics of interest. + + diff --git a/docs/learn/smart-contract-internals/debugging-errors.mdx b/docs/learn/encyclopedia/errors-and-debugging/debugging-errors.mdx similarity index 99% rename from docs/learn/smart-contract-internals/debugging-errors.mdx rename to docs/learn/encyclopedia/errors-and-debugging/debugging-errors.mdx index 943e64dca..9c7cb5860 100644 --- a/docs/learn/smart-contract-internals/debugging-errors.mdx +++ b/docs/learn/encyclopedia/errors-and-debugging/debugging-errors.mdx @@ -1,6 +1,6 @@ --- -sidebar_position: 75 -title: Debugging Errors +sidebar_position: 30 +title: Debugging Contract Errors description: Debug and Understanding Soroban Errors through the General Transaction Cycle. --- diff --git a/docs/learn/smart-contract-internals/debugging.mdx b/docs/learn/encyclopedia/errors-and-debugging/debugging.mdx similarity index 94% rename from docs/learn/smart-contract-internals/debugging.mdx rename to docs/learn/encyclopedia/errors-and-debugging/debugging.mdx index 07d2cb9d9..5685a92ff 100644 --- a/docs/learn/smart-contract-internals/debugging.mdx +++ b/docs/learn/encyclopedia/errors-and-debugging/debugging.mdx @@ -1,5 +1,5 @@ --- -sidebar_position: 70 +sidebar_position: 20 title: Debugging Modes description: Debug smart contracts natively and as WASM. --- @@ -46,11 +46,11 @@ If on the other hand you wish to compile for deployment, you must tell cargo to Building for Wasm will _disable_ many of the debugging facilities described above, typically for one of three reasons: - The Wasm VM simply can't (or the VM we've chosen doesn't) provide them. -- The Wasm VM _could_ provide them but doing so would violate constraints of the [contract Rust dialect](rust-dialect.mdx). +- The Wasm VM _could_ provide them but doing so would violate constraints of the [contract Rust dialect](../contract-development/rust-dialect.mdx). - The Wasm VM _could_ provide them but doing so would make the resulting Wasm code impractically large. While we encourage most testing to happen in local-testing mode, some problems will obviously only arise in deployment and some debugging facilities thus remain available even there: - A "sandbox" host with a mock-ledger that can read and write `CONTRACT_DATA` ledger entries to the local filesystem. -- A general logging system that allows contracts to log values of the [shared host/guest "value" type](environment-concepts.mdx), even in production. +- A general logging system that allows contracts to log values of the [shared host/guest "value" type](../contract-development/environment-concepts.mdx), even in production. - User-extensible `Status` codes that can be returned from any contract call to indicate problems. diff --git a/docs/learn/encyclopedia/error-handling.mdx b/docs/learn/encyclopedia/errors-and-debugging/error-handling.mdx similarity index 95% rename from docs/learn/encyclopedia/error-handling.mdx rename to docs/learn/encyclopedia/errors-and-debugging/error-handling.mdx index 2e3914c55..3b77862e7 100644 --- a/docs/learn/encyclopedia/error-handling.mdx +++ b/docs/learn/encyclopedia/errors-and-debugging/error-handling.mdx @@ -1,5 +1,6 @@ --- -title: Error Handling +title: Horizon Error Handling +sidebar_position: 40 --- import { CodeExample } from "@site/src/components/CodeExample"; @@ -146,15 +147,15 @@ Here, we will cover specific errors commonly encountered during transaction subm | Result | Code | Description | | --- | --- | --- | -| `FAILED` | -1 | One of the operations failed (see [List of Operations](../fundamentals/list-of-operations) for errors) | +| `FAILED` | -1 | One of the operations failed (see [List of Operations](../../fundamentals/transactions/list-of-operations.mdx) for errors) | | `TOO_EARLY` | -2 | Ledger `closeTime` before `minTime` value in the transaction | | `TOO_LATE` | -3 | Ledger `closeTime` after `maxTime` value in the transaction | | `MISSING_OPERATION` | -4 | No operation was specified | | `BAD_SEQ` | -5 | Sequence number does not match source account | | `BAD_AUTH` | -6 | Too few valid signatures / wrong network | -| `INSUFFICIENT_BALANCE` | -7 | Fee would bring account below minimum balance; see our section on [Lumens](../fundamentals/lumens#minimum-balance) for more info | +| `INSUFFICIENT_BALANCE` | -7 | Fee would bring account below minimum balance; see our section on [Lumens](../../fundamentals/lumens#minimum-balance) for more info | | `NO_ACCOUNT` | -8 | Source account not found | -| `INSUFFICIENT_FEE` | -9 | Fee is too small; see our section on [Fees](../fundamentals/fees-resource-limits-metering.mdx) for more info | +| `INSUFFICIENT_FEE` | -9 | Fee is too small; see our section on [Fees](../../fundamentals/fees-resource-limits-metering.mdx) for more info | | `BAD_AUTH_EXTRA` | -10 | Unused signatures attached to transaction | | `INTERNAL_ERROR` | -11 | An unknown error occurred | | `NOT_SUPPORTED` | -12 | The transaction type is not supported | @@ -172,11 +173,11 @@ We’ll do a deeper dive into the following errors: Horizon may send a `504 Timeout` after transaction submission. Timeouts are not errors but warnings that your request hasn’t been fulfilled yet. This can happen because of the relationship between Horizon and Stellar Core- the network may take some time (5-10 mins during congestion) to accept the transaction. At the same time, Horizon needs to provide developers with a response within 30 seconds. -Receiving a 504 for your transaction submission does not mean the transaction didn’t make it to the network. Continue with retries until you get a definitive response. If you continue to face timeouts on retries, consider using a fee-bump transaction to get into the ledger (after the time bounds expire) or increasing the maximum fee you’re willing to pay. Read up on [Surge Pricing and Fee Strategies](../fundamentals/fees-resource-limits-metering.mdx) for more details. +Receiving a 504 for your transaction submission does not mean the transaction didn’t make it to the network. Continue with retries until you get a definitive response. If you continue to face timeouts on retries, consider using a fee-bump transaction to get into the ledger (after the time bounds expire) or increasing the maximum fee you’re willing to pay. Read up on [Surge Pricing and Fee Strategies](../../fundamentals/fees-resource-limits-metering.mdx) for more details. ### Insufficient fees and surge pricing -See the [Fees section](../fundamentals/fees-resource-limits-metering.mdx) +See the [Fees section](../../fundamentals/fees-resource-limits-metering.mdx) ### Rate limiting @@ -186,4 +187,4 @@ If you’re using SDF’s public Horizon instance, you may get a `429 Too Many R Any transaction that would reduce an account’s balance to less than the minimum will be rejected with an `INSUFFICIENT_BALANCE` error. Likewise, lumen selling liabilities that would reduce an account’s balance to less than the minimum plus lumen selling liabilities will be rejected with an `INSUFFICIENT_BALANCE` error. -For more on minimum balances, see our [Lumens section](../fundamentals/lumens.mdx#minimum-balance). +For more on minimum balances, see our [Lumens section](../../fundamentals/lumens.mdx#minimum-balance). diff --git a/docs/learn/smart-contract-internals/errors.mdx b/docs/learn/encyclopedia/errors-and-debugging/errors.mdx similarity index 90% rename from docs/learn/smart-contract-internals/errors.mdx rename to docs/learn/encyclopedia/errors-and-debugging/errors.mdx index f2547f4ad..0c0d8a38e 100644 --- a/docs/learn/smart-contract-internals/errors.mdx +++ b/docs/learn/encyclopedia/errors-and-debugging/errors.mdx @@ -1,6 +1,6 @@ --- -sidebar_position: 90 -title: Errors +sidebar_position: 10 +title: Generate Contract Errors description: Generating errors from smart contracts. --- @@ -24,7 +24,7 @@ The [errors example] demonstrates how to define your own error types. ::: -[errors example]: ../../smart-contracts/example-contracts/errors.mdx +[errors example]: ../../../smart-contracts/example-contracts/errors.mdx ## Error Enums diff --git a/docs/learn/encyclopedia/lumen-supply-metrics.mdx b/docs/learn/encyclopedia/lumen-supply-metrics.mdx deleted file mode 100644 index 983bfc264..000000000 --- a/docs/learn/encyclopedia/lumen-supply-metrics.mdx +++ /dev/null @@ -1,74 +0,0 @@ ---- -title: Lumen Supply Metrics ---- - -import { CodeExample } from "@site/src/components/CodeExample"; - -This section explains how lumen supply metrics are calculated and made available via API. This information can be useful for products and services that track the distribution of XLM, including market cap aggregators and some exchanges, or to anyone who wants to investigate the distribution of XLM defined by the SDF mandate. - -Unlike many other blockchains, the native network currency is not created through mining- all XLM that has ever existed and will ever exist was created when the Stellar network went live. - -[SDF’s Dashboard API endpoint](https://dashboard.stellar.org/api/v2/lumens) will always have the live totals for the essential numbers around lumens. This guide explains important supply metrics like Original Supply, Total Supply, and Circulating Supply entailed in that data. - -Please reference our [Ecosystem Horizon API Providers](../../../network/horizon/horizon-providers) to access more Stellar network data via Horizon. - -## Dashboard API - -As of May 28th, 2024, the Dashboard API shows: - - - -```json -{ - "updatedAt": "2024-05-28T16:11:14.622Z", - "originalSupply": "100000000000", - "inflationLumens": "5443902087.3472865", - "burnedLumens": "55442115112.9537534", - "totalSupply": "50001786974.3935331", - "upgradeReserve": "259580243.9842749", - "feePool": "4690537.8610771", - "sdfMandate": "20761482987.7713113", - "circulatingSupply": "28976033204.7768698", - "_details": "https://www.stellar.org/developers/guides/lumen-supply-metrics.html" -} -``` - - - -## Definitions - -**originalSupply** One hundred billion lumens [were created](https://stellar.expert/explorer/public/ledger/2) when the Stellar network went live. That’s the Original Supply for the network. - -**inflationLumens** For the first five or so years of Stellar’s existence, the supply of lumens increased by 1% annually. This “network inflation” was ended by validator vote on October 28, 2019. The total number of lumens generated by inflation was 5,443,902,087.3472865. - -Adding this number to the Original Supply, you get the total lumens that have ever existed: 105,443,902,087.3472865. This number is visible on the [List All Ledgers](../../../network/horizon/api-reference/resources/list-all-ledgers) Horizon API endpoint as `_embedded.records.total_coins`. See all Stellar Mainnet Horizon data providers [here](../../../network/horizon/horizon-providers). - -**burnedLumens** These are all the lumens sent to accounts with no signers, meaning the funds are inaccessible and have been removed forever from Stellar’s lumen supply. - -While any address with no signers is counted here, the vast majority of the lumens in this sum are in a single locked address. On November 4, 2019, SDF [reduced](https://www.stellar.org/blog/sdfs-next-steps/) its lumen holdings to better reflect its mission and the growth of the Stellar ecosystem. To do so, the Foundation sent 55,442,095,285.7418 lumens to [GALA…LUTO](https://stellar.expert/explorer/public/account/GALAXYVOIDAOPZTDLHILAJQKCVVFMD4IKLXLSZV5YHO7VY74IWZILUTO). - -**totalSupply** The Total Supply is the number of lumens now in existence: 50,001,803,905.97172. The Total Supply includes four major categories of lumens, which the API treats in detail. - -**upgradeReserve** The Upgrade Reserve is a special address that’s neither circulating nor a part of SDF’s mandate. When Stellar [changed its consensus algorithm](https://www.stellar.org/blog/upgraded-network-is-here/) in 2015 and relaunched the network these lumens were set aside, to be claimed, one-for-one, by holders of the old network tokens. The [Upgrade Reserve account](https://stellar.expert/explorer/public/account/GBEZOC5U4TVH7ZY5N3FLYHTCZSI6VFGTULG7PBITLF5ZEBPJXFT46YZM) is essentially an escrow, and we don’t expect many claimants to come and pull those lumens into the circulating supply at this point. - -**feePool** The Fee Pool is where network fees collect. The lumens do not belong to any particular account. No one has access to the fee pool, so these lumens are non-circulating. Network validators could theoretically vote for a protocol change that would affect the fee pool, so we include it n the total supply. Stellar’s transaction fees are extremely low so the fee pool grows very slowly. The Fee Pool is tracked by the protocol itself, and the current number is visible on the [List All Ledgers](../../../network/horizon/api-reference/resources/list-all-ledgers) Horizon API endpoint as `_embedded.records.fee_pool`. See all Stellar Mainnet Horizon data providers [here](../../../network/horizon/horizon-providers). - -**sdfMandate** The SDF Mandate is described in detail [here](https://www.stellar.org/foundation/mandate). The Foundation was funded by lumens generated at Stellar’s inception; all of those lumens will eventually be spent or distributed to enhance and promote Stellar. Here is a complete list of the addresses currently associated with the SDF Mandate: - -- [Direct Development, Available Funds](https://stellar.expert/explorer/public/account/GB6NVEN5HSUBKMYCE5ZOWSK5K23TBWRUQLZY3KNMXUZ3AQ2ESC4MY4AQ) -- [Jan 1 2021 Escrow](https://stellar.expert/explorer/public/account/GBA6XT7YBQOERXT656T74LYUVJ6MEIOC5EUETGAQNHQHEPUFPKCW5GYM) -- [Jan 1 2022 Escrow](https://stellar.expert/explorer/public/account/GD2D6JG6D3V52ZMPIYSVHYFKVNIMXGYVLYJQ3HYHG5YDPGJ3DCRGPLTP) -- [Jan 1 2023 Escrow](https://stellar.expert/explorer/public/account/GA2VRL65L3ZFEDDJ357RGI3MAOKPJZ2Z3IJTPSC24I4KDTNFSVEQURRA) -- [Direct Development (Hot 1)](https://stellar.expert/explorer/public/account/GCEZYB47RSSSR6RMHQDTBWL4L6RY5CY2SPJU3QHP3YPB6ALPVRLPN7OQ) -- [Direct Development (Hot 2)](https://stellar.expert/explorer/public/account/GATL3ETTZ3XDGFXX2ELPIKCZL7S5D2HY3VK4T7LRPD6DW5JOLAEZSZBA) -- [Direct Development (Hot 3)](https://stellar.expert/explorer/public/account/GCVLWV5B3L3YE6DSCCMHLCK7QIB365NYOLQLW3ZKHI5XINNMRLJ6YHVX) -- [Developer Support](https://stellar.expert/explorer/public/account/GCVJDBALC2RQFLD2HYGQGWNFZBCOD2CPOTN3LE7FWRZ44H2WRAVZLFCU) -- [Developer Support (Hot)](https://stellar.expert/explorer/public/account/GCKJZ2YVECFGLUDJ5T7NZMJPPWERBNYHCXT2MZPXKELFHUSYQR5TVHJQ) -- [Currency Support](https://stellar.expert/explorer/public/account/GAMGGUQKKJ637ILVDOSCT5X7HYSZDUPGXSUW67B2UKMG2HEN5TPWN3LQ) -- [New Products](https://stellar.expert/explorer/public/account/GCPWKVQNLDPD4RNP5CAXME4BEDTKSSYRR4MMEL4KG65NEGCOGNJW7QI2) -- [Enterprise Fund](https://stellar.expert/explorer/public/account/GDUY7J7A33TQWOSOQGDO776GGLM3UQERL4J3SPT56F6YS4ID7MLDERI4) -- [Marketing Support](https://stellar.expert/explorer/public/account/GBEVKAYIPWC5AQT6D4N7FC3XGKRRBMPCAMTO3QZWMHHACLHTMAHAM2TP) -- [In-App Distribution](https://stellar.expert/explorer/public/account/GDKIJJIKXLOM2NRMPNQZUUYK24ZPVFC6426GZAEP3KUK6KEJLACCWNMX) -- [In-App Distribution (Hot)](https://stellar.expert/explorer/public/account/GAX3BRBNB5WTJ2GNEFFH7A4CZKT2FORYABDDBZR5FIIT3P7FLS2EFOZZ) - -**circulatingSupply** The Circulating Supply is lumens in the hands of individuals and independent companies. These are lumens out in the world, used to pay network fees and fund Stellar accounts. They are also used as a general medium of exchange. We expect Stellar’s Circulating Supply to grow steadily as SDF spends and distributes lumens according to its mandate. Lumens in the Total Supply, but not in the SDF Mandate, Upgrade Reserve, or Fee Pool are assumed to be circulating. diff --git a/docs/learn/encyclopedia/network-configuration/README.mdx b/docs/learn/encyclopedia/network-configuration/README.mdx new file mode 100644 index 000000000..674039ce7 --- /dev/null +++ b/docs/learn/encyclopedia/network-configuration/README.mdx @@ -0,0 +1,10 @@ +--- +title: Network Configuration +sidebar_position: 80 +--- + +import DocCardList from "@theme/DocCardList"; + +In-depth explanations and articles concerning specific topics of interest. + + diff --git a/docs/learn/encyclopedia/federation.mdx b/docs/learn/encyclopedia/network-configuration/federation.mdx similarity index 99% rename from docs/learn/encyclopedia/federation.mdx rename to docs/learn/encyclopedia/network-configuration/federation.mdx index f0c4e1a92..cfb40f249 100644 --- a/docs/learn/encyclopedia/federation.mdx +++ b/docs/learn/encyclopedia/network-configuration/federation.mdx @@ -1,5 +1,6 @@ --- title: Federation +sidebar_position: 20 --- The [Stellar federation protocol](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0002.md) maps Stellar addresses to an email-like identifier that provides more information about a given user. It’s a way for Stellar client software to resolve email-like addresses such as `name*yourdomain.com` into account IDs like: `GCCVPYFOHY7ZB7557JKENAX62LUAPLMGIWNZJAFV2MITK6T32V37KEJU`. Federated addresses provide an easy way for users to share payment details by using a syntax that interoperates across different domains and providers. diff --git a/docs/learn/encyclopedia/inflation.mdx b/docs/learn/encyclopedia/network-configuration/inflation.mdx similarity index 97% rename from docs/learn/encyclopedia/inflation.mdx rename to docs/learn/encyclopedia/network-configuration/inflation.mdx index 6f5302559..34f293e76 100644 --- a/docs/learn/encyclopedia/inflation.mdx +++ b/docs/learn/encyclopedia/network-configuration/inflation.mdx @@ -1,5 +1,6 @@ --- title: Inflation +sidebar_position: 40 --- The inflation operation is deprecated. Here’s why: diff --git a/docs/learn/encyclopedia/ledger-headers.mdx b/docs/learn/encyclopedia/network-configuration/ledger-headers.mdx similarity index 94% rename from docs/learn/encyclopedia/ledger-headers.mdx rename to docs/learn/encyclopedia/network-configuration/ledger-headers.mdx index e627dd2fc..2b0ce3f09 100644 --- a/docs/learn/encyclopedia/ledger-headers.mdx +++ b/docs/learn/encyclopedia/network-configuration/ledger-headers.mdx @@ -1,5 +1,6 @@ --- title: Ledger Headers +sidebar_position: 30 --- Every ledger has a header that references the data in that ledger and the previous ledger. These references are cryptographic hashes of the content which behave like pointers in typical data structures but with added security guarantees. Think of a historical ledger chain as a linked list of ledger headers: @@ -70,11 +71,11 @@ The last used global ID. These IDs are used for generating objects. ### Maximum number of transactions -The maximum number of operations validators have agreed to process in a given ledger. If more transactions are submitted than this number, the network will enter into surge pricing mode. For more about surge pricing and fee strategies, see our [Fees section](../fundamentals/fees-resource-limits-metering.mdx). +The maximum number of operations validators have agreed to process in a given ledger. If more transactions are submitted than this number, the network will enter into surge pricing mode. For more about surge pricing and fee strategies, see our [Fees section](../../fundamentals/fees-resource-limits-metering.mdx). ### Base fee -The fee the network charges per operation in a transaction. Calculated in stroops. See the [Fees section](../fundamentals/fees-resource-limits-metering.mdx) for more information. +The fee the network charges per operation in a transaction. Calculated in stroops. See the [Fees section](../../fundamentals/fees-resource-limits-metering.mdx) for more information. ### Base reserve diff --git a/docs/learn/encyclopedia/network-passphrases.mdx b/docs/learn/encyclopedia/network-configuration/network-passphrases.mdx similarity index 98% rename from docs/learn/encyclopedia/network-passphrases.mdx rename to docs/learn/encyclopedia/network-configuration/network-passphrases.mdx index cda107491..af346d057 100644 --- a/docs/learn/encyclopedia/network-passphrases.mdx +++ b/docs/learn/encyclopedia/network-configuration/network-passphrases.mdx @@ -1,5 +1,6 @@ --- title: Network Passphrases +sidebar_position: 10 --- Stellar’s Mainnet, Testnet, and Futurenet each have their own unique passphrase. These are used when validating signatures on a given transaction. If you sign a transaction for one network but submit it to another, it won’t be considered valid. By convention, the format of a passphrase is ‘`[Network Name] ; [Month of Creation] [Year of Creation]`’. diff --git a/docs/learn/encyclopedia/sdex/README.mdx b/docs/learn/encyclopedia/sdex/README.mdx new file mode 100644 index 000000000..6d2c6c906 --- /dev/null +++ b/docs/learn/encyclopedia/sdex/README.mdx @@ -0,0 +1,8 @@ +--- +title: SDEX +sidebar_position: 90 +--- + +import DocCardList from "@theme/DocCardList"; + + diff --git a/docs/learn/encyclopedia/liquidity-on-stellar-sdex-liquidity-pools.mdx b/docs/learn/encyclopedia/sdex/liquidity-on-stellar-sdex-liquidity-pools.mdx similarity index 99% rename from docs/learn/encyclopedia/liquidity-on-stellar-sdex-liquidity-pools.mdx rename to docs/learn/encyclopedia/sdex/liquidity-on-stellar-sdex-liquidity-pools.mdx index 02e98cade..cf8f6a21a 100644 --- a/docs/learn/encyclopedia/liquidity-on-stellar-sdex-liquidity-pools.mdx +++ b/docs/learn/encyclopedia/sdex/liquidity-on-stellar-sdex-liquidity-pools.mdx @@ -12,7 +12,7 @@ This section is scoped specifically to liquidity regarding the AMM and SDEX buil Users can trade and convert assets on the Stellar network with the use of path payments through Stellar’s decentralized exchange and liquidity pools. -In this section, we will talk about the SDEX and liquidity pools. To learn about how these work together to execute transactions, see our [Path Payments Encyclopedia Entry](./path-payments.mdx). +In this section, we will talk about the SDEX and liquidity pools. To learn about how these work together to execute transactions, see our [Path Payments Encyclopedia Entry](../transactions-specialized/path-payments.mdx). ## SDEX @@ -68,7 +68,7 @@ An account can place a passive sell order via the Create Passive Sell Offer oper The order price you set is independent of the fee you pay for submitting that order in a transaction. Fees are always paid in XLM, and you specify them as a separate parameter when submitting the order to the network. -To learn more about transaction fees, see our section on [Fees section](../fundamentals/fees-resource-limits-metering.mdx). +To learn more about transaction fees, see our section on [Fees section](../../fundamentals/fees-resource-limits-metering.mdx). ## Liquidity pools diff --git a/docs/learn/encyclopedia/security/README.mdx b/docs/learn/encyclopedia/security/README.mdx new file mode 100644 index 000000000..10809bbee --- /dev/null +++ b/docs/learn/encyclopedia/security/README.mdx @@ -0,0 +1,8 @@ +--- +title: Security +sidebar_position: 30 +--- + +import DocCardList from "@theme/DocCardList"; + + diff --git a/docs/learn/smart-contract-internals/authorization.mdx b/docs/learn/encyclopedia/security/authorization.mdx similarity index 94% rename from docs/learn/smart-contract-internals/authorization.mdx rename to docs/learn/encyclopedia/security/authorization.mdx index 909762d86..cecbee532 100644 --- a/docs/learn/smart-contract-internals/authorization.mdx +++ b/docs/learn/encyclopedia/security/authorization.mdx @@ -1,7 +1,6 @@ --- -sidebar_position: 20 -title: Authorization -description: Smart contract authorization. +title: Smart Contract Authorization +sidebar_position: 10 --- @@ -38,7 +37,7 @@ We realize that it's not possible to cover each and every case, but we hope that #### Contract storage -Contracts have an exclusive read and write access to their [storage](../../smart-contracts/getting-started/storing-data.mdx) in the ledger. This allows contracts to safely control and manage user access to their data. For example, a token contract may ensure that only the administrator can mint more of the token by storing the administrator identity in its storage. Similarly, it can make sure that only an owner of the balance may transfer that balance. +Contracts have an exclusive read and write access to their [storage](../../../smart-contracts/getting-started/storing-data.mdx) in the ledger. This allows contracts to safely control and manage user access to their data. For example, a token contract may ensure that only the administrator can mint more of the token by storing the administrator identity in its storage. Similarly, it can make sure that only an owner of the balance may transfer that balance. #### `Address` @@ -50,7 +49,7 @@ From the contract perspective `Address` is an opaque identifier type. The contra Both functions ensure that the `Address` has authorized the call of the current function within the current context (where context is defined by `require_auth` calls in the current call stack; see more formal definition in the [section below](#require_auth-implementation-details)). The authentication rules for this authorization are defined by the `Address` and are enforced by the Soroban host. Replay protection is also implemented in the host, i.e., there is normally no need for a contract to manage its own nonces. -[auth example]: ../../smart-contracts/example-contracts/auth.mdx +[auth example]: ../../../smart-contracts/example-contracts/auth.mdx #### Authorizing Sub-contract Calls @@ -58,7 +57,7 @@ One of the key features of Soroban Authorization Framework is the ability to eas Contracts don't need to do anything special to benefit from this feature. Just calling a sub-contract that calls `require_auth` will ensure that the sub-contract call has been properly authorized. -[timelock example]: ../../smart-contracts/example-contracts/timelock.mdx +[timelock example]: ../../../smart-contracts/example-contracts/timelock.mdx #### When to `require_auth` @@ -72,7 +71,7 @@ The main authorization-related decision a contract writer needs to make for any There is no explicit restriction on how many `Address` entities the contract uses and how many `Address`es have `require_auth` called. That means that it is possible to authorize a contract call on behalf of multiple users, which may even have different authorization contexts (customized via arguments in `require_auth_for_args`). [Atomic swap] is an example that deals with authorization of two `Address`es. -[atomic swap]: ../../smart-contracts/example-contracts/atomic-swap.mdx +[atomic swap]: ../../../smart-contracts/example-contracts/atomic-swap.mdx Note though, that contracts that deal with multiple authorized `Address`es need a bit more complex support on the client side (to collect and attach the proper signatures). @@ -88,7 +87,7 @@ Account abstraction provides a convenient extension point for every contract tha Conceptually, every abstract account is a special contract that defines authentication rules and potentially some additional account-specific authorization policies. However, for the sake of optimization and integration with the existing Stellar accounts, Soroban supports 4 different kinds of the account implementations. -Below are the general descriptions of these implementations. See the transaction [guide](./contract-interactions/stellar-transaction.mdx) for the concrete information of how different accounts are represented. +Below are the general descriptions of these implementations. See the transaction [guide](../contract-development/contract-interactions/stellar-transaction.mdx) for the concrete information of how different accounts are represented. ##### Stellar Account @@ -98,7 +97,7 @@ This is a special, built-in 'account contract' that handles all the Stellar acco This supports the Stellar multisig with medium threshold. See Stellar [documentation] for more details on multisig and thresholds. -[documentation]: ../encyclopedia/signatures-multisig.mdx +[documentation]: ../../encyclopedia/security/signatures-multisig.mdx ##### Transaction Invoker @@ -126,7 +125,7 @@ Custom account can also be treated as a custodial smart wallet. It holds the use For the exact interface and more details, see the [custom account example]. -[custom account example]: ../../smart-contracts/example-contracts/custom-account.mdx +[custom account example]: ../../../smart-contracts/example-contracts/custom-account.mdx ### Advanced Concepts diff --git a/docs/learn/encyclopedia/securing-web-based-projects.mdx b/docs/learn/encyclopedia/security/securing-web-based-projects.mdx similarity index 99% rename from docs/learn/encyclopedia/securing-web-based-projects.mdx rename to docs/learn/encyclopedia/security/securing-web-based-projects.mdx index 7d07e8cab..e12a2237f 100644 --- a/docs/learn/encyclopedia/securing-web-based-projects.mdx +++ b/docs/learn/encyclopedia/security/securing-web-based-projects.mdx @@ -1,5 +1,6 @@ --- title: Securing Web-Based Projects +sidebar_position: 30 --- Any application managing cryptocurrency is a frequent target of malicious actors and needs to follow security best practices. The below checklist offers guidance on the most common vulnerabilities. However, even if you follow every piece of advice, security is not guaranteed. Web security and malicious actors are constantly evolving, so it’s good to maintain a healthy amount of paranoia. diff --git a/docs/learn/encyclopedia/signatures-multisig.mdx b/docs/learn/encyclopedia/security/signatures-multisig.mdx similarity index 94% rename from docs/learn/encyclopedia/signatures-multisig.mdx rename to docs/learn/encyclopedia/security/signatures-multisig.mdx index b30c8c61a..29f4db72d 100644 --- a/docs/learn/encyclopedia/signatures-multisig.mdx +++ b/docs/learn/encyclopedia/security/signatures-multisig.mdx @@ -1,18 +1,25 @@ --- title: Signatures and Multisig +sidebar_position: 20 --- import { CodeExample } from "@site/src/components/CodeExample"; +:::note + +This section details signing non-smart contract transactions. For auth related to smart contract transactions, see [authorization](./authorization.mdx) + +::: + Signatures are authorization for transactions on the network. Transactions always need authorization from at least one public key to be valid and generally, the signature comes from the source account. Sometimes transactions require more signatures, which we’ll get into in the multisig section. Transaction signatures are created by signing the transaction object contents with a secret key. Stellar uses the ed25519 signature scheme, but there is also a mechanism for adding additional types of public and private key schemes. A transaction with an attached signature is considered to have authorization from that public key. ### Thresholds -Each operation falls under a specific threshold category: low, medium, or high with a number level between 0-255 (to read more about this see our section on [Operations and Transactions](../fundamentals/stellar-data-structures/operations-and-transactions.mdx#operations)). This threshold determines what signature weight is needed to authorize an operation. +Each operation falls under a specific threshold category: low, medium, or high with a number level between 0-255 (to read more about this see our section on [Operations and Transactions](../../fundamentals/transactions/operations-and-transactions.mdx#operations)). This threshold determines what signature weight is needed to authorize an operation. -To view each operation’s threshold, see our [List of Operations section](../fundamentals/list-of-operations.mdx). +To view each operation’s threshold, see our [List of Operations section](../../fundamentals/transactions/list-of-operations.mdx). Accounts can set their own signature weight, threshold values, and additional signing keys with the Set Options operation. By default, all operation threshold levels are set to 0, and the master key is set to weight 1. For most cases, it is recommended to set thresholds such that `low <= medium <= high`. diff --git a/docs/learn/encyclopedia/storage/README.mdx b/docs/learn/encyclopedia/storage/README.mdx new file mode 100644 index 000000000..270676372 --- /dev/null +++ b/docs/learn/encyclopedia/storage/README.mdx @@ -0,0 +1,8 @@ +--- +title: Storage +sidebar_position: 40 +--- + +import DocCardList from "@theme/DocCardList"; + + diff --git a/docs/learn/smart-contract-internals/persisting-data.mdx b/docs/learn/encyclopedia/storage/persisting-data.mdx similarity index 98% rename from docs/learn/smart-contract-internals/persisting-data.mdx rename to docs/learn/encyclopedia/storage/persisting-data.mdx index 1c4a0d51e..4d4dfd0cf 100644 --- a/docs/learn/smart-contract-internals/persisting-data.mdx +++ b/docs/learn/encyclopedia/storage/persisting-data.mdx @@ -1,5 +1,5 @@ --- -sidebar_position: 150 +sidebar_position: 10 title: Persisting Data description: Store and access smart contract data. --- @@ -72,7 +72,7 @@ In addition to the types of state, it is also helpful to consider the type of co ### Best Practices - Prefer `Temporary` over `Persistent` and `Instance` storage - - Anything that can have a timeout should be `Temporary` with TTL set to the timeout. See the [resource limits table](../../reference/resource-limits-fees.mdx) for the current maximum TTL/timeout. + - Anything that can have a timeout should be `Temporary` with TTL set to the timeout. See the [resource limits table](../../../reference/resource-limits-fees.mdx) for the current maximum TTL/timeout. - Ideally, `Temporary` entries should be associated with an absolute ledger boundary and thus never need a TTL extension - Example: Soroban Auth signatures have an absolute expiration ledger, so nonces can be stored in `Temporary` entries without security risks - Example: SAC allowance that lives only until a given ledger (so that some old allowance signature can not be used in the future if not exhausted) diff --git a/docs/learn/smart-contract-internals/state-archival.mdx b/docs/learn/encyclopedia/storage/state-archival.mdx similarity index 91% rename from docs/learn/smart-contract-internals/state-archival.mdx rename to docs/learn/encyclopedia/storage/state-archival.mdx index 60ada5d18..57427a526 100644 --- a/docs/learn/smart-contract-internals/state-archival.mdx +++ b/docs/learn/encyclopedia/storage/state-archival.mdx @@ -1,5 +1,5 @@ --- -sidebar_position: 160 +sidebar_position: 20 title: State Archival description: Smart contract state archival. --- @@ -83,11 +83,11 @@ An entry's Time To Live (TTL) is defined as how many ledgers remain until the en For each entry type, there is a minimum TTL that the entry will have when being created or restored. This TTL minimum is enforced automatically at the protocol level. -Minimum TTL is a network parameter. Refer to the [resource reference](../../reference/resource-limits-fees.mdx) to find the current values. +Minimum TTL is a network parameter. Refer to the [resource reference](../../../reference/resource-limits-fees.mdx) to find the current values. ### Maximum TTL -On any given ledger, an entry's TTL can be extended up to the maximum TTL. This is a network parameter (see the [resource limits table](../../reference/resource-limits-fees.mdx) for the current maximum TTL). Maximum TTL is not enforced based on when an entry was created, but based on the current ledger. For example, if an entry is created on January 1st, 2024, its TTL could initially be extended up to January 1st, 2025. After this initial TTL extension, if the entry received another TTL extension later on January 10th, 2024, the TTL could be extended up to January 10th, 2025. The `max_ttl()` function can be used to determine the current maximum allowed TTL. +On any given ledger, an entry's TTL can be extended up to the maximum TTL. This is a network parameter (see the [resource limits table](../../../reference/resource-limits-fees.mdx) for the current maximum TTL). Maximum TTL is not enforced based on when an entry was created, but based on the current ledger. For example, if an entry is created on January 1st, 2024, its TTL could initially be extended up to January 1st, 2025. After this initial TTL extension, if the entry received another TTL extension later on January 10th, 2024, the TTL could be extended up to January 10th, 2025. The `max_ttl()` function can be used to determine the current maximum allowed TTL. ## Operations @@ -129,7 +129,7 @@ liveUntilLedger that is large enough. #### Transaction resources -`ExtendFootprintTTLOp` is a Soroban operation, and therefore must be the only operation in a transaction. The transaction also needs to populate `SorobanTransactionData` transaction extension explained [here](contract-interactions/stellar-transaction.mdx#transaction-resources). To fill out `SorobanResources`, use the transaction simulation mentioned in the provided link, or make sure `readBytes` includes the key and entry size of every entry in the `readOnly` set. +`ExtendFootprintTTLOp` is a Soroban operation, and therefore must be the only operation in a transaction. The transaction also needs to populate `SorobanTransactionData` transaction extension explained [here](../contract-development/contract-interactions/stellar-transaction.mdx#transaction-resources). To fill out `SorobanResources`, use the transaction simulation mentioned in the provided link, or make sure `readBytes` includes the key and entry size of every entry in the `readOnly` set. ### RestoreFootprintOp @@ -154,7 +154,7 @@ The restored entry will have its live until ledger extended to the [minimum] the #### Transaction resources -`RestoreFootprintOp` is a Soroban operation, and therefore must be the only operation in a transaction. The transaction also needs to populate `SorobanTransactionData` transaction extension explained [here](contract-interactions/stellar-transaction.mdx#transaction-resources). To fill out `SorobanResources`, use the transaction simulation mentioned in the provided link, or make sure `writeBytes` includes the key and entry size of every entry in the `readWrite` set and make sure `extendedMetaDataSizeBytes` is at least double of `writeBytes`. +`RestoreFootprintOp` is a Soroban operation, and therefore must be the only operation in a transaction. The transaction also needs to populate `SorobanTransactionData` transaction extension explained [here](../contract-development/contract-interactions/stellar-transaction.mdx#transaction-resources). To fill out `SorobanResources`, use the transaction simulation mentioned in the provided link, or make sure `writeBytes` includes the key and entry size of every entry in the `readWrite` set and make sure `extendedMetaDataSizeBytes` is at least double of `writeBytes`. --- @@ -166,7 +166,7 @@ We've done our best to build tooling around state archival in both the Soroban R Both restoring and extending the TTL of ledger entries follows a three-step process regardless of their nature (contract data, instances, etc.): -1. **Identify the ledger entries**. This usually means acquiring them from a Soroban RPC server as part of your initial transaction simulation (see the [transaction simulation docs](contract-interactions/transaction-simulation.mdx) and the [`simulateTransaction`](../../../network/soroban-rpc/api-reference/methods/simulateTransaction) RPC method). +1. **Identify the ledger entries**. This usually means acquiring them from a Soroban RPC server as part of your initial transaction simulation (see the [transaction simulation docs](../contract-development/contract-interactions/transaction-simulation.mdx) and the [`simulateTransaction`](../../../../network/soroban-rpc/api-reference/methods/simulateTransaction) RPC method). 2. **Prepare your operation**. This means describing the ledger entries within the corresponding operation (i.e. `ExtendFootprintTTLOp` or `RestoreFootprintOp`) and its ledger footprint (the `SorobanTransactionData` field), then simulating it to fill out fee and resource usage information (when restoring, you usually have simulation results already). diff --git a/docs/learn/encyclopedia/transactions-specialized/README.mdx b/docs/learn/encyclopedia/transactions-specialized/README.mdx new file mode 100644 index 000000000..5c7ac0e11 --- /dev/null +++ b/docs/learn/encyclopedia/transactions-specialized/README.mdx @@ -0,0 +1,8 @@ +--- +title: Transactions (specialized) +sidebar_position: 20 +--- + +import DocCardList from "@theme/DocCardList"; + + diff --git a/docs/learn/encyclopedia/channel-accounts.mdx b/docs/learn/encyclopedia/transactions-specialized/channel-accounts.mdx similarity index 99% rename from docs/learn/encyclopedia/channel-accounts.mdx rename to docs/learn/encyclopedia/transactions-specialized/channel-accounts.mdx index c6015eb18..81b5a2ba0 100644 --- a/docs/learn/encyclopedia/channel-accounts.mdx +++ b/docs/learn/encyclopedia/transactions-specialized/channel-accounts.mdx @@ -1,5 +1,6 @@ --- title: Channel Accounts +sidebar_position: 10 --- import { CodeExample } from "@site/src/components/CodeExample"; diff --git a/docs/learn/encyclopedia/claimable-balances.mdx b/docs/learn/encyclopedia/transactions-specialized/claimable-balances.mdx similarity index 98% rename from docs/learn/encyclopedia/claimable-balances.mdx rename to docs/learn/encyclopedia/transactions-specialized/claimable-balances.mdx index c3ee41be3..06a52220c 100644 --- a/docs/learn/encyclopedia/claimable-balances.mdx +++ b/docs/learn/encyclopedia/transactions-specialized/claimable-balances.mdx @@ -1,5 +1,6 @@ --- title: Claimable Balances +sidebar_position: 20 --- import { CodeExample } from "@site/src/components/CodeExample"; @@ -21,7 +22,7 @@ Once a ClaimableBalanceEntry has been claimed, it is deleted. ### Create Claimable Balance -For basic parameters, see the Create Claimable Balance entry in our [List of Operations section](../fundamentals/list-of-operations.mdx#create-claimable-balance). +For basic parameters, see the Create Claimable Balance entry in our [List of Operations section](../../fundamentals/transactions/list-of-operations.mdx#create-claimable-balance). #### Additional parameters @@ -43,7 +44,7 @@ A successful Create Claimable Balance operation will return a Balance ID, which ### Claim Claimable Balance -For basic parameters, see the Claim Claimable Balance entry in our [List of Operations section](../fundamentals/list-of-operations#claim-claimable-balance). +For basic parameters, see the Claim Claimable Balance entry in our [List of Operations section](../../fundamentals/transactions/list-of-operations#claim-claimable-balance). This operation will load the ClaimableBalanceEntry that corresponds to the Balance ID and then search for the source account of this operation in the list of claimants on the entry. If a match on the claimant is found, and the ClaimPredicate evaluates to true, then the ClaimableBalanceEntry can be claimed. The balance on the entry will be moved to the source account if there are no limit or trustline issues (for non-native assets), meaning the claimant must establish a trustline to the asset before claiming it. diff --git a/docs/learn/encyclopedia/clawbacks.mdx b/docs/learn/encyclopedia/transactions-specialized/clawbacks.mdx similarity index 99% rename from docs/learn/encyclopedia/clawbacks.mdx rename to docs/learn/encyclopedia/transactions-specialized/clawbacks.mdx index f5927831d..878391b99 100644 --- a/docs/learn/encyclopedia/clawbacks.mdx +++ b/docs/learn/encyclopedia/transactions-specialized/clawbacks.mdx @@ -1,5 +1,6 @@ --- title: Clawbacks +sidebar_position: 30 --- import { CodeExample } from "@site/src/components/CodeExample"; diff --git a/docs/learn/encyclopedia/fee-bump-transactions.mdx b/docs/learn/encyclopedia/transactions-specialized/fee-bump-transactions.mdx similarity index 87% rename from docs/learn/encyclopedia/fee-bump-transactions.mdx rename to docs/learn/encyclopedia/transactions-specialized/fee-bump-transactions.mdx index 1f4800589..d3e4ff2db 100644 --- a/docs/learn/encyclopedia/fee-bump-transactions.mdx +++ b/docs/learn/encyclopedia/transactions-specialized/fee-bump-transactions.mdx @@ -1,5 +1,6 @@ --- title: Fee-Bump Transactions +sidebar_position: 40 --- Fee-bump transactions were introduced in [CAP-0015](https://github.com/stellar/stellar-protocol/blob/master/core/cap-0015.md) and enable an account to pay the transaction fees for an existing transaction without having to re-sign the transaction or manage sequence numbers. @@ -31,7 +32,7 @@ The account that will pay the fee for the fee-bump transaction. This account wil The maximum per-operation fee you’re willing to pay for the fee-bump transaction. The fee-bump transaction is one operation. Therefore, the total number of operations is equal to the number of operations in the inner transaction plus one. -Read more about transaction fees in our [Fees section](../fundamentals/fees-resource-limits-metering.mdx). +Read more about transaction fees in our [Fees section](../../fundamentals/fees-resource-limits-metering.mdx). ### Replace-by-fee @@ -52,7 +53,7 @@ A fee-bump transaction goes through a series of checks in its lifecycle to deter - If the fee-bump transaction is taking advantage of the replace-by-fee, the fee must be 10x higher than the first transaction - **Fee account signature** — the fee-bump transaction envelope must contain a valid signature for the fee account. Additionally, the weight of that signature must meet the low threshold for the fee account, and the appropriate network passphrase must be part of the transaction hash signed by the fee account. - **Fee account balance** — the fee account must have a sufficient XLM balance to cover the fee -- **Inner transaction** — the inner transaction must be valid, which means it must meet the requirements described in the [Validity of a Transaction section](../fundamentals/stellar-data-structures/operations-and-transactions.mdx#transaction-and-operation-validity). If validation of the inner transaction is successful, then the result is `FEE_BUMP_INNER_SUCCESS`, and the validation results from the validation of the inner transaction appear in the inner result. If the inner transaction is invalid, the result is `FEE_BUMP_INNER_FAILED`, and the fee-bump transaction is invalid because the inner transaction is invalid. +- **Inner transaction** — the inner transaction must be valid, which means it must meet the requirements described in the [Validity of a Transaction section](../../fundamentals/transactions/operations-and-transactions.mdx#transaction-and-operation-validity). If validation of the inner transaction is successful, then the result is `FEE_BUMP_INNER_SUCCESS`, and the validation results from the validation of the inner transaction appear in the inner result. If the inner transaction is invalid, the result is `FEE_BUMP_INNER_FAILED`, and the fee-bump transaction is invalid because the inner transaction is invalid. ## Application diff --git a/docs/learn/encyclopedia/memos.mdx b/docs/learn/encyclopedia/transactions-specialized/memos.mdx similarity index 97% rename from docs/learn/encyclopedia/memos.mdx rename to docs/learn/encyclopedia/transactions-specialized/memos.mdx index b533af123..9ac512dad 100644 --- a/docs/learn/encyclopedia/memos.mdx +++ b/docs/learn/encyclopedia/transactions-specialized/memos.mdx @@ -1,5 +1,6 @@ --- title: Memos +sidebar_position: 50 --- Memos are an optional unstructured data field that can be used to embed any additional identifying information about the transaction relevant to the sender or receiver. diff --git a/docs/learn/encyclopedia/path-payments.mdx b/docs/learn/encyclopedia/transactions-specialized/path-payments.mdx similarity index 95% rename from docs/learn/encyclopedia/path-payments.mdx rename to docs/learn/encyclopedia/transactions-specialized/path-payments.mdx index 2ca5b1839..1b98630aa 100644 --- a/docs/learn/encyclopedia/path-payments.mdx +++ b/docs/learn/encyclopedia/transactions-specialized/path-payments.mdx @@ -1,5 +1,6 @@ --- title: Path Payments +sidebar_position: 60 --- In a path payment, the asset received differs from the asset sent. Rather than the operation transferring assets directly from one account to another, path payments cross through the SDEX and/or liquidity pools before arriving at the destination account. For the path payment to succeed, there has to be a DEX offer or liquidity pool exchange path in existence. It can sometimes take several hops of conversion to succeed. @@ -10,7 +11,7 @@ Account A sells XLM → [buy XLM / sell ETH → buy ETH / sell BTC → buy BTC / It is possible for path payments to fail if there are no viable exchange paths. -For more information on the Stellar Decentralized Exchange and Liquidity Pools, see our [Liquidity on Stellar: SDEX and Liquidity Pools Encyclopedia Entry](./liquidity-on-stellar-sdex-liquidity-pools.mdx) +For more information on the Stellar Decentralized Exchange and Liquidity Pools, see our [Liquidity on Stellar: SDEX and Liquidity Pools Encyclopedia Entry](../sdex/liquidity-on-stellar-sdex-liquidity-pools.mdx) ## Operations diff --git a/docs/learn/encyclopedia/pooled-accounts-muxed-accounts-memos.mdx b/docs/learn/encyclopedia/transactions-specialized/pooled-accounts-muxed-accounts-memos.mdx similarity index 99% rename from docs/learn/encyclopedia/pooled-accounts-muxed-accounts-memos.mdx rename to docs/learn/encyclopedia/transactions-specialized/pooled-accounts-muxed-accounts-memos.mdx index fe21792e6..f12a6dfce 100644 --- a/docs/learn/encyclopedia/pooled-accounts-muxed-accounts-memos.mdx +++ b/docs/learn/encyclopedia/transactions-specialized/pooled-accounts-muxed-accounts-memos.mdx @@ -1,5 +1,6 @@ --- title: "Pooled Accounts: Muxed Accounts and Memos" +sidebar_position: 70 --- import { CodeExample } from "@site/src/components/CodeExample"; diff --git a/docs/learn/encyclopedia/sponsored-reserves.mdx b/docs/learn/encyclopedia/transactions-specialized/sponsored-reserves.mdx similarity index 97% rename from docs/learn/encyclopedia/sponsored-reserves.mdx rename to docs/learn/encyclopedia/transactions-specialized/sponsored-reserves.mdx index 23b778b0b..489afa155 100644 --- a/docs/learn/encyclopedia/sponsored-reserves.mdx +++ b/docs/learn/encyclopedia/transactions-specialized/sponsored-reserves.mdx @@ -1,5 +1,6 @@ --- title: Sponsored Reserves +sidebar_position: 80 --- import { CodeExample } from "@site/src/components/CodeExample"; @@ -10,7 +11,7 @@ Both the Begin Sponsoring Future Reserves and the End Sponsoring Future Reserves Anything that increases the minimum balance can be sponsored (account creation, offers, trustlines, data entries, signers, claimable balances). -To learn about base reserves, see our section on [Lumens](../fundamentals/lumens.mdx#base-reserves). +To learn about base reserves, see our section on [Lumens](../../fundamentals/lumens.mdx#base-reserves). ## Sponsored reserves operations @@ -28,7 +29,7 @@ End Sponsoring Future Reserves ends the current is-sponsoring-future-reserves-fo At the end of any transaction, there must be no ongoing is-sponsoring-future-reserves-for relationships, which is why these two operations must be used together in a single transaction. -View operation details in our [List of Operations section](../fundamentals/list-of-operations.mdx). +View operation details in our [List of Operations section](../../fundamentals/transactions/list-of-operations.mdx). ### Revoke sponsorship @@ -47,7 +48,7 @@ Operation logic - Source account is not the beneficiary of a is-sponsoring-future-reserves-for relationship - No-Op -View operation details in our [List of Operations section](../fundamentals/list-of-operations.mdx#begin-sponsoring-future-reserves). +View operation details in our [List of Operations section](../../fundamentals/transactions/list-of-operations.mdx#begin-sponsoring-future-reserves). ## Effect on minimum balance @@ -57,7 +58,7 @@ When account A is sponsoring future reserves for account B, any reserve requirem When a sponsored entry or subentry is removed, `numSponsoring` is decreased on the sponsoring account and `numSponsored` is decreased on the sponsored account. -To learn more about minimum balance requirements, see our section on [Lumens](../fundamentals/lumens.mdx#minimum-balance). +To learn more about minimum balance requirements, see our section on [Lumens](../../fundamentals/lumens.mdx#minimum-balance). ## Effect on claimable balances diff --git a/docs/learn/fundamentals/README.mdx b/docs/learn/fundamentals/README.mdx index 99b9b5fbe..287560277 100644 --- a/docs/learn/fundamentals/README.mdx +++ b/docs/learn/fundamentals/README.mdx @@ -1,5 +1,5 @@ --- -title: Fundamentals +title: Core Concepts sidebar_position: 10 --- diff --git a/docs/learn/encyclopedia/anchors.mdx b/docs/learn/fundamentals/anchors.mdx similarity index 99% rename from docs/learn/encyclopedia/anchors.mdx rename to docs/learn/fundamentals/anchors.mdx index 4b665ce96..0df04ac95 100644 --- a/docs/learn/encyclopedia/anchors.mdx +++ b/docs/learn/fundamentals/anchors.mdx @@ -1,5 +1,6 @@ --- title: Anchors +sidebar_position: 90 --- An anchor is a Stellar-specific term for the on and off-ramps that connect the Stellar network to traditional financial rails, such as financial institutions or fintech companies. Anchors accept deposits of fiat currencies (such as the US dollar, Argentine peso, or Nigerian naira) via existing rails (such as bank deposits or cash-in points), then sends the user the equivalent digital tokens on the Stellar network. The equivalent digital tokens can either represent that same fiat currency or another digital token altogether. Alternatively, anchors allow token holders to redeem their tokens for the real-world assets they represent. diff --git a/docs/learn/fundamentals/fees-resource-limits-metering.mdx b/docs/learn/fundamentals/fees-resource-limits-metering.mdx index 16b7c1e3d..76fe7da61 100644 --- a/docs/learn/fundamentals/fees-resource-limits-metering.mdx +++ b/docs/learn/fundamentals/fees-resource-limits-metering.mdx @@ -1,6 +1,6 @@ --- title: Fees, Resource Limits, and Metering -sidebar_position: 65 +sidebar_position: 70 --- import CanvasFeeGraphs from "@site/src/components/CanvasFeeGraphs"; @@ -36,7 +36,7 @@ The resource fee depends on the following resources: - **Ledger I/O:** the number of bytes read from or written to the ledger; - **Transaction size:** the size of the transaction submitted to the network in bytes; - **Events & return value size:** the size of the events produced by the contract and the return value of the top-level contract function — both events and return value are included in transaction metadata; -- **Ledger space rent:** the payment for the ledger entry TTL extensions (i.e., rent payments) and rent payments for increasing ledger entry size. Refer to the [state archival](../smart-contract-internals/state-archival.mdx) section for more information about smart contract rent. +- **Ledger space rent:** the payment for the ledger entry TTL extensions (i.e., rent payments) and rent payments for increasing ledger entry size. Refer to the [state archival](../encyclopedia/storage/state-archival.mdx) section for more information about smart contract rent. :::note @@ -58,7 +58,7 @@ The resource fee is calculated with a non-refundable fees portion and a refundab ### Find a transaction’s resource fee -The best way to find the required resource fee for any smart contract transaction is to use the [`simulateTransaction` endpoint](../smart-contract-internals/contract-interactions/transaction-simulation.mdx) from the RPC, which enables you to send a preflight transaction that will return the necessary resource values and resource fee. +The best way to find the required resource fee for any smart contract transaction is to use the [`simulateTransaction` endpoint](../encyclopedia/contract-development/contract-interactions/transaction-simulation.mdx) from the RPC, which enables you to send a preflight transaction that will return the necessary resource values and resource fee. ### Resource limitations @@ -84,7 +84,7 @@ The inclusion fee is the maximum bid (a bid denotes a dynamic fee, meaning it va :::note -Transactions can have up to 100 operations per transaction except for transactions that execute a smart contract. Smart contract transactions are only allowed one operation per transaction (unless the transaction is getting [fee-bumped](../encyclopedia/fee-bump-transactions.mdx); this would add another operation), and the limits are instead specified in CPU instructions and other resource limits. +Transactions can have up to 100 operations per transaction except for transactions that execute a smart contract. Smart contract transactions are only allowed one operation per transaction (unless the transaction is getting [fee-bumped](../encyclopedia/transactions-specialized/fee-bump-transactions.mdx); this would add another operation), and the limits are instead specified in CPU instructions and other resource limits. ::: @@ -92,7 +92,7 @@ When you set a base fee for a transaction, you are specifying the maximum amount Alternatively, your transaction may not make it to the ledger if the effective base fee is higher than your base fee bid. When network traffic exceeds the ledger limit, the network enters into [surge pricing mode](#surge-pricing), and your effective base fee becomes your maximum bid. -Fees are deducted from the source account unless there is a fee-bump transaction that states otherwise. Learn about fee-bump transactions in the [Fee-Bump Transaction section](../encyclopedia/fee-bump-transactions.mdx). +Fees are deducted from the source account unless there is a fee-bump transaction that states otherwise. Learn about fee-bump transactions in the [Fee-Bump Transaction section](../encyclopedia/transactions-specialized/fee-bump-transactions.mdx). ## Surge and dynamic pricing @@ -106,7 +106,7 @@ If there are multiple transactions offering the same inclusion fee, but they can :::note -It is recommended to apply [ledger bounds](./stellar-data-structures/operations-and-transactions.mdx#ledger-bounds) or [time bounds](./stellar-data-structures/operations-and-transactions.mdx#time-bounds) to transactions — either your transaction makes it to the ledger or fails, depending on your time and/or ledger parameters. +It is recommended to apply [ledger bounds](./transactions/operations-and-transactions.mdx#ledger-bounds) or [time bounds](./transactions/operations-and-transactions.mdx#time-bounds) to transactions — either your transaction makes it to the ledger or fails, depending on your time and/or ledger parameters. ::: @@ -124,7 +124,7 @@ Write fees will grow gradually over time when the database size is below the led Metering is a mechanism in the host environment that accounts for the resource costs incurred during the execution of a smart contract. The outcomes of metering act as the canonical truth of a smart contract’s execution cost and serve as an input for fee computations. -Stellar’s smart contract execution environment comprises a host and a guest. The host encapsulates shared functionalities for all contracts, including host objects, functions, and a Wasm interpreter (VM). The guest environment is where the compiled Wasm contract is interpreted and executed. A detailed discussion of these environments can be found in [Environment Concepts](../smart-contract-internals/environment-concepts.mdx). +Stellar’s smart contract execution environment comprises a host and a guest. The host encapsulates shared functionalities for all contracts, including host objects, functions, and a Wasm interpreter (VM). The guest environment is where the compiled Wasm contract is interpreted and executed. A detailed discussion of these environments can be found in [Environment Concepts](../encyclopedia/contract-development/environment-concepts.mdx). The division between the host and guest environments and their shared functionalities necessitates a unique approach to resource accounting. In particular, the resources required for executing Wasm instructions and running host functions must be accounted for uniformly, with costs in terms of CPU instructions and memory bytes. diff --git a/docs/learn/fundamentals/lumens.mdx b/docs/learn/fundamentals/lumens.mdx index 60fc031fe..626515aa7 100644 --- a/docs/learn/fundamentals/lumens.mdx +++ b/docs/learn/fundamentals/lumens.mdx @@ -1,6 +1,6 @@ --- title: Lumens (XLM) -sidebar_position: 60 +sidebar_position: 30 --- Lumens (XLM) are the native currency of the Stellar network. The lumen is the only token that doesn’t require an issuer or trustline, and it is used to pay all transaction fees and rent, and to cover minimum balance requirements on the network. @@ -31,8 +31,81 @@ For example, an account with one trustline, two offers, and a claimable balance 2 base reserves (1 XLM) + 3 subentries/base reserves (1.5 XLM) + 1 ledger entry/base reserve (1 XLM) = 3.5 XLM -When you close a subentry, the associated base reserve will be added to your available balance. An account must always pay its own minimum balance unless a subentry is being sponsored by another account. For information about this, see our [Sponsored Reserves Encyclopedia Entry](../encyclopedia/sponsored-reserves.mdx). +When you close a subentry, the associated base reserve will be added to your available balance. An account must always pay its own minimum balance unless a subentry is being sponsored by another account. For information about this, see our [Sponsored Reserves Encyclopedia Entry](../encyclopedia/transactions-specialized/sponsored-reserves.mdx). ## Rent -Smart contract data does not require any base reserves in order to live on the ledger, so every smart contract entry must pay rent instead. The rent charged for an entry to exist on the ledger is based on how big the entry is and how long the it should be live on the ledger before being archived. There are different rent requirements for each storage type `Persistent`, `Temporary`, and `Instance`, which you can read about in the [State Archival section](../smart-contract-internals/state-archival.mdx). +Smart contract data does not require any base reserves in order to live on the ledger, so every smart contract entry must pay rent instead. The rent charged for an entry to exist on the ledger is based on how big the entry is and how long the it should be live on the ledger before being archived. There are different rent requirements for each storage type `Persistent`, `Temporary`, and `Instance`, which you can read about in the [State Archival section](../encyclopedia/storage/state-archival.mdx). + +## Lumen Supply Metrics + +import { CodeExample } from "@site/src/components/CodeExample"; + +This section explains how lumen supply metrics are calculated and made available via API. This information can be useful for products and services that track the distribution of XLM, including market cap aggregators and some exchanges, or to anyone who wants to investigate the distribution of XLM defined by the SDF mandate. + +Unlike many other blockchains, the native network currency is not created through mining- all XLM that has ever existed and will ever exist was created when the Stellar network went live. + +[SDF’s Dashboard API endpoint](https://dashboard.stellar.org/api/v2/lumens) will always have the live totals for the essential numbers around lumens. This guide explains important supply metrics like Original Supply, Total Supply, and Circulating Supply entailed in that data. + +Please reference our [Ecosystem Horizon API Providers](../../../network/horizon/horizon-providers) to access more Stellar network data via Horizon. + +### Dashboard API + +As of May 28th, 2024, the Dashboard API shows: + + + +```json +{ + "updatedAt": "2024-05-28T16:11:14.622Z", + "originalSupply": "100000000000", + "inflationLumens": "5443902087.3472865", + "burnedLumens": "55442115112.9537534", + "totalSupply": "50001786974.3935331", + "upgradeReserve": "259580243.9842749", + "feePool": "4690537.8610771", + "sdfMandate": "20761482987.7713113", + "circulatingSupply": "28976033204.7768698", + "_details": "https://www.stellar.org/developers/guides/lumen-supply-metrics.html" +} +``` + + + +### Definitions + +**originalSupply** One hundred billion lumens [were created](https://stellar.expert/explorer/public/ledger/2) when the Stellar network went live. That’s the Original Supply for the network. + +**inflationLumens** For the first five or so years of Stellar’s existence, the supply of lumens increased by 1% annually. This “network inflation” was ended by validator vote on October 28, 2019. The total number of lumens generated by inflation was 5,443,902,087.3472865. + +Adding this number to the Original Supply, you get the total lumens that have ever existed: 105,443,902,087.3472865. This number is visible on the [List All Ledgers](../../../network/horizon/api-reference/resources/list-all-ledgers) Horizon API endpoint as `_embedded.records.total_coins`. See all Stellar Mainnet Horizon data providers [here](../../../network/horizon/horizon-providers). + +**burnedLumens** These are all the lumens sent to accounts with no signers, meaning the funds are inaccessible and have been removed forever from Stellar’s lumen supply. + +While any address with no signers is counted here, the vast majority of the lumens in this sum are in a single locked address. On November 4, 2019, SDF [reduced](https://www.stellar.org/blog/sdfs-next-steps/) its lumen holdings to better reflect its mission and the growth of the Stellar ecosystem. To do so, the Foundation sent 55,442,095,285.7418 lumens to [GALA…LUTO](https://stellar.expert/explorer/public/account/GALAXYVOIDAOPZTDLHILAJQKCVVFMD4IKLXLSZV5YHO7VY74IWZILUTO). + +**totalSupply** The Total Supply is the number of lumens now in existence: 50,001,803,905.97172. The Total Supply includes four major categories of lumens, which the API treats in detail. + +**upgradeReserve** The Upgrade Reserve is a special address that’s neither circulating nor a part of SDF’s mandate. When Stellar [changed its consensus algorithm](https://www.stellar.org/blog/upgraded-network-is-here/) in 2015 and relaunched the network these lumens were set aside, to be claimed, one-for-one, by holders of the old network tokens. The [Upgrade Reserve account](https://stellar.expert/explorer/public/account/GBEZOC5U4TVH7ZY5N3FLYHTCZSI6VFGTULG7PBITLF5ZEBPJXFT46YZM) is essentially an escrow, and we don’t expect many claimants to come and pull those lumens into the circulating supply at this point. + +**feePool** The Fee Pool is where network fees collect. The lumens do not belong to any particular account. No one has access to the fee pool, so these lumens are non-circulating. Network validators could theoretically vote for a protocol change that would affect the fee pool, so we include it n the total supply. Stellar’s transaction fees are extremely low so the fee pool grows very slowly. The Fee Pool is tracked by the protocol itself, and the current number is visible on the [List All Ledgers](../../../network/horizon/api-reference/resources/list-all-ledgers) Horizon API endpoint as `_embedded.records.fee_pool`. See all Stellar Mainnet Horizon data providers [here](../../../network/horizon/horizon-providers). + +**sdfMandate** The SDF Mandate is described in detail [here](https://www.stellar.org/foundation/mandate). The Foundation was funded by lumens generated at Stellar’s inception; all of those lumens will eventually be spent or distributed to enhance and promote Stellar. Here is a complete list of the addresses currently associated with the SDF Mandate: + +- [Direct Development, Available Funds](https://stellar.expert/explorer/public/account/GB6NVEN5HSUBKMYCE5ZOWSK5K23TBWRUQLZY3KNMXUZ3AQ2ESC4MY4AQ) +- [Jan 1 2021 Escrow](https://stellar.expert/explorer/public/account/GBA6XT7YBQOERXT656T74LYUVJ6MEIOC5EUETGAQNHQHEPUFPKCW5GYM) +- [Jan 1 2022 Escrow](https://stellar.expert/explorer/public/account/GD2D6JG6D3V52ZMPIYSVHYFKVNIMXGYVLYJQ3HYHG5YDPGJ3DCRGPLTP) +- [Jan 1 2023 Escrow](https://stellar.expert/explorer/public/account/GA2VRL65L3ZFEDDJ357RGI3MAOKPJZ2Z3IJTPSC24I4KDTNFSVEQURRA) +- [Direct Development (Hot 1)](https://stellar.expert/explorer/public/account/GCEZYB47RSSSR6RMHQDTBWL4L6RY5CY2SPJU3QHP3YPB6ALPVRLPN7OQ) +- [Direct Development (Hot 2)](https://stellar.expert/explorer/public/account/GATL3ETTZ3XDGFXX2ELPIKCZL7S5D2HY3VK4T7LRPD6DW5JOLAEZSZBA) +- [Direct Development (Hot 3)](https://stellar.expert/explorer/public/account/GCVLWV5B3L3YE6DSCCMHLCK7QIB365NYOLQLW3ZKHI5XINNMRLJ6YHVX) +- [Developer Support](https://stellar.expert/explorer/public/account/GCVJDBALC2RQFLD2HYGQGWNFZBCOD2CPOTN3LE7FWRZ44H2WRAVZLFCU) +- [Developer Support (Hot)](https://stellar.expert/explorer/public/account/GCKJZ2YVECFGLUDJ5T7NZMJPPWERBNYHCXT2MZPXKELFHUSYQR5TVHJQ) +- [Currency Support](https://stellar.expert/explorer/public/account/GAMGGUQKKJ637ILVDOSCT5X7HYSZDUPGXSUW67B2UKMG2HEN5TPWN3LQ) +- [New Products](https://stellar.expert/explorer/public/account/GCPWKVQNLDPD4RNP5CAXME4BEDTKSSYRR4MMEL4KG65NEGCOGNJW7QI2) +- [Enterprise Fund](https://stellar.expert/explorer/public/account/GDUY7J7A33TQWOSOQGDO776GGLM3UQERL4J3SPT56F6YS4ID7MLDERI4) +- [Marketing Support](https://stellar.expert/explorer/public/account/GBEVKAYIPWC5AQT6D4N7FC3XGKRRBMPCAMTO3QZWMHHACLHTMAHAM2TP) +- [In-App Distribution](https://stellar.expert/explorer/public/account/GDKIJJIKXLOM2NRMPNQZUUYK24ZPVFC6426GZAEP3KUK6KEJLACCWNMX) +- [In-App Distribution (Hot)](https://stellar.expert/explorer/public/account/GAX3BRBNB5WTJ2GNEFFH7A4CZKT2FORYABDDBZR5FIIT3P7FLS2EFOZZ) + +**circulatingSupply** The Circulating Supply is lumens in the hands of individuals and independent companies. These are lumens out in the world, used to pay network fees and fund Stellar accounts. They are also used as a general medium of exchange. We expect Stellar’s Circulating Supply to grow steadily as SDF spends and distributes lumens according to its mandate. Lumens in the Total Supply, but not in the SDF Mandate, Upgrade Reserve, or Fee Pool are assumed to be circulating. diff --git a/docs/learn/fundamentals/networks.mdx b/docs/learn/fundamentals/networks.mdx index 15c24e67c..935c3e7d3 100644 --- a/docs/learn/fundamentals/networks.mdx +++ b/docs/learn/fundamentals/networks.mdx @@ -1,6 +1,6 @@ --- title: Networks -sidebar_position: 30 +sidebar_position: 20 --- Stellar has three networks: the public network (Mainnet, also called Pubnet or the Public Network), the test network (Testnet), and a dev network (Futurenet). Mainnet is the main network used by applications in production. It connects to real financial rails and requires XLM to cover minimum balances, transaction fees, and rent. The Testnet is a smaller, free-to-use network maintained by SDF that functions like the Mainnet but doesn’t connect to real money. It has a built-in testnet XLM faucet (called Friendbot), and it resets on a regular cadence, so it's the best place for developers to test applications when they need a stable environment that mirrors Mainnet functionality. Futurenet is a dev network you can use to test more bleeding edge features that also has access to its own Friendbot. It resets whenever a reset is necessary, so it's not as predictable as Testnet, but it is where new features may be introduced before the are implemented in stable releases. @@ -102,4 +102,4 @@ For applications that don’t rely on the state of the network (such as specific If you’ve been running a Stellar Core or Horizon instance against the Testnet and want to switch to production, changing the passphrase will require both respective databases to be completely reinitialized. If you run your own RPC on Testnet or Futurenet, you may want to use an RPC service when you move to Mainnet. Check out the RPC service providers [here](/network/soroban-rpc/rpc-providers). -To learn more about network passphrases, see our [Network Passphrase Encyclopedia Entry](../encyclopedia/network-passphrases.mdx) +To learn more about network passphrases, see our [Network Passphrase Encyclopedia Entry](../encyclopedia/network-configuration/network-passphrases.mdx) diff --git a/docs/learn/fundamentals/stellar-consensus-protocol.mdx b/docs/learn/fundamentals/stellar-consensus-protocol.mdx index 67bf11b4e..9d810c32c 100644 --- a/docs/learn/fundamentals/stellar-consensus-protocol.mdx +++ b/docs/learn/fundamentals/stellar-consensus-protocol.mdx @@ -1,6 +1,6 @@ --- title: Stellar Consensus Protocol (SCP) -sidebar_position: 10 +sidebar_position: 40 --- Consensus is hugely important in a decentralized payment system. It distributes the monitoring and approval of transactions across many individual nodes (computers) instead of relying on one closed, central system. Nodes are run by organizations or individuals, and the goal is for all nodes to update the ledger in the same way, ensuring each ledger reaches the same state. Consensus is vital for the security of the blockchain, allowing nodes to agree on something safely and preventing double-spend attacks. diff --git a/docs/learn/fundamentals/stellar-data-structures/accounts.mdx b/docs/learn/fundamentals/stellar-data-structures/accounts.mdx index 08f8df16d..68659ae9c 100644 --- a/docs/learn/fundamentals/stellar-data-structures/accounts.mdx +++ b/docs/learn/fundamentals/stellar-data-structures/accounts.mdx @@ -14,12 +14,12 @@ Accounts are made up of the below fields. Click on the field to learn more about - [Flags](../../glossary.mdx#flags) - [Home Domain (up to 32 characters)](../../glossary.mdx#home-domain) - [Liabilities](../../glossary.mdx#liability) -- [Number of entries sponsored by this account](../../encyclopedia/sponsored-reserves.mdx) -- [Number of sponsored reserves](../../encyclopedia/sponsored-reserves.mdx) +- [Number of entries sponsored by this account](../../encyclopedia/transactions-specialized/sponsored-reserves.mdx) +- [Number of sponsored reserves](../../encyclopedia/transactions-specialized/sponsored-reserves.mdx) - [Number of subentries](./accounts.mdx#subentries) - [Sequence number](../../glossary.mdx#sequence-number) -- [Signers](../../encyclopedia/signatures-multisig.mdx) -- [Thresholds](../../encyclopedia/signatures-multisig.mdx#thresholds) +- [Signers](../../encyclopedia/security/signatures-multisig.mdx) +- [Thresholds](../../encyclopedia/security/signatures-multisig.mdx#thresholds) ## Base reserves and subentries @@ -42,6 +42,6 @@ Account data is stored in subentries, each of which increases an account’s min Trustlines are an explicit opt-in for an account to hold and trade a particular asset. To hold a specific asset, an account must establish a trustline with the issuing account using the change_trust operation. Trustlines track the balance of an asset and can also limit the amount of an asset that an account can hold. -A trustline must be established for an account to receive any asset except lumens (XLM). You can create a claimable balance to send assets to an account without a trustline, but the recipient has to create a trustline to claim that balance. Learn more here: [Claimable Balances Encyclopedia Entry](../../encyclopedia/claimable-balances.mdx) +A trustline must be established for an account to receive any asset except lumens (XLM). You can create a claimable balance to send assets to an account without a trustline, but the recipient has to create a trustline to claim that balance. Learn more here: [Claimable Balances Encyclopedia Entry](../../encyclopedia/transactions-specialized/claimable-balances.mdx) A trustline also tracks liabilities. Buying liabilities equal the total amount of the asset offered to buy aggregated over all offers owned by an account, and selling liabilities equal the total amount of the asset offered to sell aggregated over all offers owned by an account. A trustline must always have a balance sufficiently large to satisfy its selling liabilities and a balance sufficiently below its limit to accommodate its buying liabilities. diff --git a/docs/learn/fundamentals/stellar-data-structures/assets.mdx b/docs/learn/fundamentals/stellar-data-structures/assets.mdx index b1a0f3c4f..2fd8a0611 100644 --- a/docs/learn/fundamentals/stellar-data-structures/assets.mdx +++ b/docs/learn/fundamentals/stellar-data-structures/assets.mdx @@ -15,7 +15,7 @@ Assets on Stellar have two identifying characteristics: the asset code and the i An asset’s identifying code. There are three different formats: Alphanumeric 4, Alphanumeric 12, and liquidity pool shares. -Learn about liquidity pool shares in the [Liquidity Pool Encyclopedia Entry](../../encyclopedia/liquidity-on-stellar-sdex-liquidity-pools.mdx). +Learn about liquidity pool shares in the [Liquidity Pool Encyclopedia Entry](../../encyclopedia/sdex/liquidity-on-stellar-sdex-liquidity-pools.mdx). Learn more about asset codes in the [Naming an Asset section](../../../issuing-assets/control-asset-access.mdx#naming-an-asset) @@ -29,7 +29,7 @@ The public key of the issuing account is linked on the ledger to the asset. Resp Assets issued on the Stellar network are accessible to smart contracts. Every Stellar asset has reserved a Stellar Asset Contract that can be deployed by anyone who wants to be able to interact with the asset from a contract. -The Soroban CLI can deploy a Stellar Asset Contract for a Stellar asset. Deploying the Stellar Asset Contract for a Stellar asset enables that asset for use with smart contracts. +The Stellar CLI can deploy a Stellar Asset Contract for a Stellar asset. Deploying the Stellar Asset Contract for a Stellar asset enables that asset for use with smart contracts. Learn more in the [SAC section](../../../smart-contracts/tokens/stellar-asset-contract.mdx). diff --git a/docs/learn/fundamentals/stellar-data-structures/contracts.mdx b/docs/learn/fundamentals/stellar-data-structures/contracts.mdx index be4300b22..d21916c37 100644 --- a/docs/learn/fundamentals/stellar-data-structures/contracts.mdx +++ b/docs/learn/fundamentals/stellar-data-structures/contracts.mdx @@ -26,7 +26,7 @@ flowchart LR ## Contract Storage -In addition to the ledger entries that are created during the contract install/deploy process, each contract can create and access its own set of ledger entries. These ledger entries (as well as the contract code and the contract instance ledger entries) are subject to [state archival](../../smart-contract-internals/state-archival.mdx) lifetimes (a ledger entry's "TTL ledger"). While they all function similarly, each type has its own fee and TTL behavior. +In addition to the ledger entries that are created during the contract install/deploy process, each contract can create and access its own set of ledger entries. These ledger entries (as well as the contract code and the contract instance ledger entries) are subject to [state archival](../../encyclopedia/storage/state-archival.mdx) lifetimes (a ledger entry's "TTL ledger"). While they all function similarly, each type has its own fee and TTL behavior. ### Temporary Storage @@ -38,7 +38,7 @@ In addition to the ledger entries that are created during the contract install/d ### Persistent Storage - Most expensive fees (same price as `Instance` storage). -- Recoverable after archival, can be restored using the [`RestoreFootprintOp`](../list-of-operations.mdx#restore-footprint) operation. +- Recoverable after archival, can be restored using the [`RestoreFootprintOp`](../transactions/list-of-operations.mdx#restore-footprint) operation. - Does not share the same lifetime as the contract instance. If the contract instance has not reached its TTL ledger, `Persistent` data may still be archived and need to be restored before invoking the contract. - Unlimited amount of storage. - Suitable for user data that cannot be `Temporary` (i.e. balances). @@ -52,7 +52,7 @@ While we are making a distinction here between "persistent" and "instance" stora ::: - Most expensive fees (same price as `Persistent` storage). -- Recoverable after archival, can be restored using the [`extendFootprintTTLOp`](../list-of-operations.mdx#extend-footprint-ttl) operation. +- Recoverable after archival, can be restored using the [`extendFootprintTTLOp`](../transactions/list-of-operations.mdx#extend-footprint-ttl) operation. - Shares the same lifetime as the contract instance. If the contract instance has not reached its TTL ledger, instance data is guaranteed to be accessible. - Limited amount of storage available. - Suitable for "shared" contract state that cannot be `Temporary` (i.e. admin accounts, contract metadata, etc.). diff --git a/docs/learn/fundamentals/stellar-data-structures/ledgers.mdx b/docs/learn/fundamentals/stellar-data-structures/ledgers.mdx index b1efe97d8..8e0b0ffe6 100644 --- a/docs/learn/fundamentals/stellar-data-structures/ledgers.mdx +++ b/docs/learn/fundamentals/stellar-data-structures/ledgers.mdx @@ -14,6 +14,6 @@ Data is stored on the ledger as ledger entries. Possible ledger entries include: - Accounts - Claimable balances - Liquidity pools -- [Contract data](../../smart-contract-internals/persisting-data.mdx#ledger-entries) +- [Contract data](../../encyclopedia/storage/persisting-data.mdx#ledger-entries) -Every ledger has a ledger header, to read about what is contained in the ledger header, see our [Ledger Header Encyclopedia Entry](../../encyclopedia/ledger-headers.mdx). +Every ledger has a ledger header, to read about what is contained in the ledger header, see our [Ledger Header Encyclopedia Entry](../../encyclopedia/network-configuration/ledger-headers.mdx). diff --git a/docs/learn/fundamentals/stellar-ecosystem-proposals.mdx b/docs/learn/fundamentals/stellar-ecosystem-proposals.mdx index 9ef74c5e8..024320580 100644 --- a/docs/learn/fundamentals/stellar-ecosystem-proposals.mdx +++ b/docs/learn/fundamentals/stellar-ecosystem-proposals.mdx @@ -1,6 +1,6 @@ --- title: Stellar Ecosystem Proposals (SEPs) -sidebar_position: 70 +sidebar_position: 80 --- Each SEP is a distinct blueprint meant to help users build a product or service that interoperates with other products and services on the Stellar network. diff --git a/docs/learn/fundamentals/stellar-stack.mdx b/docs/learn/fundamentals/stellar-stack.mdx index 0fc9d9085..0d27c0714 100644 --- a/docs/learn/fundamentals/stellar-stack.mdx +++ b/docs/learn/fundamentals/stellar-stack.mdx @@ -1,6 +1,6 @@ --- title: Stellar Stack -sidebar_position: 20 +sidebar_position: 10 --- The Stellar stack is made up of the following components: the networks (Mainnet, Testnet, and Futurenet), Stellar Core, Horizon API, RPC, and SDKs, each of which plays a specific part in providing financial infrastructure that is resilient to failures, available to anyone, and fast and cheap enough to serve real-world use cases. diff --git a/docs/learn/fundamentals/transactions/README.mdx b/docs/learn/fundamentals/transactions/README.mdx new file mode 100644 index 000000000..07df8d068 --- /dev/null +++ b/docs/learn/fundamentals/transactions/README.mdx @@ -0,0 +1,8 @@ +--- +title: Transactions +sidebar_position: 60 +--- + +import DocCardList from "@theme/DocCardList"; + + diff --git a/docs/learn/fundamentals/list-of-operations.mdx b/docs/learn/fundamentals/transactions/list-of-operations.mdx similarity index 92% rename from docs/learn/fundamentals/list-of-operations.mdx rename to docs/learn/fundamentals/transactions/list-of-operations.mdx index 4aa915650..fdb17f491 100644 --- a/docs/learn/fundamentals/list-of-operations.mdx +++ b/docs/learn/fundamentals/transactions/list-of-operations.mdx @@ -1,11 +1,11 @@ --- title: List of Operations -sidebar_position: 40 +sidebar_position: 20 --- Operations are objects that represent a desired change to the ledger and are submitted to the network grouped in a transaction. For each operation, there is a successful or failed result type. In the case of success, the user can gather information about the effect of the operation. In the case of failure, the user can learn more about the error. -Learn more about transactions and operations in our [Operations and Transactions section](./stellar-data-structures/operations-and-transactions.mdx). +Learn more about transactions and operations in our [Operations and Transactions section](./operations-and-transactions.mdx). There are currently 26 operations you can use on the Stellar network, these operations, their definitions, SDKs, thresholds, parameters, and errors are listed below. @@ -56,7 +56,7 @@ Sends an amount in a specific asset to a destination account | PAYMENT_SRC_NO_TRUST | -3 | The source account does not trust the issuer of the asset it is trying to send. | | PAYMENT_SRC_NOT_AUTHORIZED | -4 | The source account is not authorized to send this payment. | | PAYMENT_NO_DESTINATION | -5 | The receiving account does not exist. Note that this error will **not** be returned if the receiving account is the issuer of `asset`. | -| PAYMENT_NO_TRUST | -6 | The receiver does not trust the issuer of the asset being sent. For more information, see the [Assets section](./stellar-data-structures/assets.mdx). | +| PAYMENT_NO_TRUST | -6 | The receiver does not trust the issuer of the asset being sent. For more information, see the [Assets section](../stellar-data-structures/assets.mdx). | | PAYMENT_NOT_AUTHORIZED | -7 | The destination account is not authorized by the asset's issuer to hold the asset. | | PAYMENT_LINE_FULL | -8 | The destination account (receiver) does not have sufficient limits to receive `amount` and still satisfy its buying liabilities. | @@ -64,7 +64,7 @@ Sends an amount in a specific asset to a destination account A payment where the asset sent can be different than the asset received; allows the user to specify the amount of the asset to send -Learn more about path payments: [Path Payments Encyclopedia Entry](../encyclopedia/path-payments.mdx) +Learn more about path payments: [Path Payments Encyclopedia Entry](../../encyclopedia/transactions-specialized/path-payments.mdx) **SDKs**: [JavaScript](http://stellar.github.io/js-stellar-sdk/Operation.html#.pathPaymentStrictSend) | [Java](https://github.com/lightsail-network/java-stellar-sdk/blob/master/src/main/java/org/stellar/sdk/PathPaymentStrictSendOperation.java) | [Go](https://godoc.org/github.com/stellar/go/txnbuild#PathPaymentStrictSend) **Threshold**: Medium @@ -89,7 +89,7 @@ Learn more about path payments: [Path Payments Encyclopedia Entry](../encycloped | PATH_PAYMENT_STRICT_SEND_SRC_NO_TRUST | -3 | The source account does not trust the issuer of the asset it is trying to send. | | PATH_PAYMENT_STRICT_SEND_SRC_NOT_AUTHORIZED | -4 | The source account is not authorized to send this payment. | | PATH_PAYMENT_STRICT_SEND_NO_DESTINATION | -5 | The destination account does not exist. | -| PATH_PAYMENT_STRICT_SEND_NO_TRUST | -6 | The destination account does not trust the issuer of the asset being sent. For more, see the [Assets section](./stellar-data-structures/assets.mdx). | +| PATH_PAYMENT_STRICT_SEND_NO_TRUST | -6 | The destination account does not trust the issuer of the asset being sent. For more, see the [Assets section](../stellar-data-structures/assets.mdx). | | PATH_PAYMENT_STRICT_SEND_NOT_AUTHORIZED | -7 | The destination account is not authorized by the asset's issuer to hold the asset. | | PATH_PAYMENT_STRICT_SEND_LINE_FULL | -8 | The destination account does not have sufficient limits to receive `destination amount` and still satisfy its buying liabilities. | | PATH_PAYMENT_STRICT_SEND_TOO_FEW_OFFERS | -10 | There is no path of offers connecting the `send asset` and `destination asset`. Stellar only considers paths of length 5 or shorter. | @@ -100,7 +100,7 @@ Learn more about path payments: [Path Payments Encyclopedia Entry](../encycloped A payment where the asset received can be different from the asset sent; allows the user to specify the amount of the asset received -Learn more about path payments: [Path Payments Encyclopedia Entry](../encyclopedia/path-payments.mdx) +Learn more about path payments: [Path Payments Encyclopedia Entry](../../encyclopedia/transactions-specialized/path-payments.mdx) **SDKs**: [JavaScript](https://stellar.github.io/js-stellar-sdk/Operation.html#.pathPaymentStrictReceive) | [Java](https://github.com/lightsail-network/java-stellar-sdk/blob/master/src/main/java/org/stellar/sdk/PathPaymentStrictReceiveOperation.java) | [Go](https://godoc.org/github.com/stellar/go/txnbuild#PathPaymentStrictReceive) **Threshold**: Medium @@ -125,7 +125,7 @@ Learn more about path payments: [Path Payments Encyclopedia Entry](../encycloped | PATH_PAYMENT_STRICT_RECEIVE_SRC_NO_TRUST | -3 | The source account does not trust the issuer of the asset it is trying to send. | | PATH_PAYMENT_STRICT_RECEIVE_SRC_NOT_AUTHORIZED | -4 | The source account is not authorized to send this payment. | | PATH_PAYMENT_STRICT_RECEIVE_NO_DESTINATION | -5 | The destination account does not exist. | -| PATH_PAYMENT_STRICT_RECEIVE_NO_TRUST | -6 | The destination account does not trust the issuer of the asset being sent. For more, see the [Assets section](./stellar-data-structures/assets.mdx). | +| PATH_PAYMENT_STRICT_RECEIVE_NO_TRUST | -6 | The destination account does not trust the issuer of the asset being sent. For more, see the [Assets section](../stellar-data-structures/assets.mdx). | | PATH_PAYMENT_STRICT_RECEIVE_NOT_AUTHORIZED | -7 | The destination account is not authorized by the asset's issuer to hold the asset. | | PATH_PAYMENT_STRICT_RECEIVE_LINE_FULL | -8 | The destination account does not have sufficient limits to receive `destination amount` and still satisfy its buying liabilities. | | PATH_PAYMENT_STRICT_RECEIVE_TOO_FEW_OFFERS | -10 | There is no path of offers connecting the `send asset` and `destination asset`. Stellar only considers paths of length 5 or shorter. | @@ -136,7 +136,7 @@ Learn more about path payments: [Path Payments Encyclopedia Entry](../encycloped Creates, updates, or deletes an offer to buy a specific amount of an asset for another -Learn more about passive sell offers: [Liquidity on Stellar: SDEX and Liquidity Pools](../encyclopedia/liquidity-on-stellar-sdex-liquidity-pools.mdx) +Learn more about passive sell offers: [Liquidity on Stellar: SDEX and Liquidity Pools](../../encyclopedia/sdex/liquidity-on-stellar-sdex-liquidity-pools.mdx) **SDKs**: [JavaScript](http://stellar.github.io/js-stellar-sdk/Operation.html#.manageBuyOffer) | [Java](https://github.com/lightsail-network/java-stellar-sdk/blob/master/src/main/java/org/stellar/sdk/ManageBuyOfferOperation.java) | [Go](https://godoc.org/github.com/stellar/go/txnbuild#ManageBuyOffer) **Threshold**: Medium @@ -170,7 +170,7 @@ Learn more about passive sell offers: [Liquidity on Stellar: SDEX and Liquidity Creates, updates, or deletes an offer to sell a specific amount of an asset for another -Learn more about passive sell offers: [Liquidity on Stellar: SDEX and Liquidity Pools](../encyclopedia/liquidity-on-stellar-sdex-liquidity-pools.mdx) +Learn more about passive sell offers: [Liquidity on Stellar: SDEX and Liquidity Pools](../../encyclopedia/sdex/liquidity-on-stellar-sdex-liquidity-pools.mdx) **SDKs**: [JavaScript](http://stellar.github.io/js-stellar-sdk/Operation.html#.manageSellOffer) | [Java](https://github.com/lightsail-network/java-stellar-sdk/blob/master/src/main/java/org/stellar/sdk/ManageSellOfferOperation.java) | [Go](https://godoc.org/github.com/stellar/go/txnbuild#ManageSellOffer) **Threshold**: Medium @@ -204,7 +204,7 @@ Learn more about passive sell offers: [Liquidity on Stellar: SDEX and Liquidity Creates an offer to sell one asset for another without taking a reverse offer of equal price -Learn more about passive sell offers: [Liquidity on Stellar: SDEX and Liquidity Pools](../encyclopedia/liquidity-on-stellar-sdex-liquidity-pools.mdx) +Learn more about passive sell offers: [Liquidity on Stellar: SDEX and Liquidity Pools](../../encyclopedia/sdex/liquidity-on-stellar-sdex-liquidity-pools.mdx) **SDKs**: [JavaScript](https://stellar.github.io/js-stellar-sdk/Operation.html#.createPassiveSellOffer) | [Java](https://github.com/lightsail-network/java-stellar-sdk/blob/master/src/main/java/org/stellar/sdk/CreatePassiveSellOfferOperation.java) | [Go](https://godoc.org/github.com/stellar/go/txnbuild#CreatePassiveSellOffer) **Threshold**: Medium @@ -237,9 +237,9 @@ Learn more about passive sell offers: [Liquidity on Stellar: SDEX and Liquidity Set options for an account such as flags, inflation destination, signers, home domain, and master key weight -Learn more about flags: [Flags Encyclopedia Entry](../glossary.mdx#flags) +Learn more about flags: [Flags Encyclopedia Entry](../../glossary.mdx#flags) Learn more about the home domain: [Stellar Ecosystem Proposals SEP-0001](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0001.md) -Learn more about signers operations and key weight: [Signature and Multisignature Encyclopedia Entry](../encyclopedia/signatures-multisig.mdx) +Learn more about signers operations and key weight: [Signature and Multisignature Encyclopedia Entry](../../encyclopedia/security/signatures-multisig.mdx) **SDKs**: [JavaScript](http://stellar.github.io/js-stellar-sdk/Operation.html#.setOptions) | [Java](https://github.com/lightsail-network/java-stellar-sdk/blob/master/src/main/java/org/stellar/sdk/SetOptionsOperation.java) | [Go](https://godoc.org/github.com/stellar/go/txnbuild#SetOptions) **Threshold**: High (when updating signers or other thresholds) or Medium (when updating everything else) @@ -249,13 +249,13 @@ Learn more about signers operations and key weight: [Signature and Multisignatur | Parameters | Type | Description | | --- | --- | --- | | Inflation Destination | account ID | Account of the inflation destination. | -| Clear flags | integer | Indicates which [account](./stellar-data-structures/accounts.mdx) flags to clear. These account-level flags are primarily used by asset issuers; for details about the flags, please refer to the [Asset Design Considerations page](../../issuing-assets/control-asset-access.mdx#controlling-access-to-an-asset-with-flags). The bit mask integer subtracts from the existing flags of the account. This allows for setting specific bits without knowledge of existing flags. | -| Set flags | integer | Indicates which [account](./stellar-data-structures/accounts.mdx) flags to set. These account-level flags are primarily used by asset issuers; for details about the flags, please refer to the [Asset Design Considerations page](../../issuing-assets/control-asset-access.mdx#controlling-access-to-an-asset-with-flags) The bit mask integer adds onto the existing flags of the account. This allows for setting specific bits without knowledge of existing flags. | +| Clear flags | integer | Indicates which [account](../stellar-data-structures/accounts.mdx) flags to clear. These account-level flags are primarily used by asset issuers; for details about the flags, please refer to the [Asset Design Considerations page](../../../issuing-assets/control-asset-access.mdx). The bit mask integer subtracts from the existing flags of the account. This allows for setting specific bits without knowledge of existing flags. | +| Set flags | integer | Indicates which [account](../stellar-data-structures/accounts.mdx) flags to set. These account-level flags are primarily used by asset issuers; for details about the flags, please refer to the [Asset Design Considerations page](../../../issuing-assets/control-asset-access.mdx#controlling-access-to-an-asset-with-flags) The bit mask integer adds onto the existing flags of the account. This allows for setting specific bits without knowledge of existing flags. | | Master weight | integer | A number from 0-255 (inclusive) representing the weight of the master key. If the weight of the master key is updated to 0, it is effectively disabled. | -| Low threshold | integer | A number from 0-255 (inclusive) representing the threshold this account sets on all operations it performs that have [a low threshold](../encyclopedia/signatures-multisig.mdx). | -| Medium threshold | integer | A number from 0-255 (inclusive) representing the threshold this account sets on all operations it performs that have [a medium threshold](../encyclopedia/signatures-multisig.mdx). | -| High threshold | integer | A number from 0-255 (inclusive) representing the threshold this account sets on all operations it performs that have [a high threshold](../encyclopedia/signatures-multisig.mdx). | -| Home domain | string | Sets the home domain of an account. See [Federation](../encyclopedia/federation.mdx). | +| Low threshold | integer | A number from 0-255 (inclusive) representing the threshold this account sets on all operations it performs that have [a low threshold](../../encyclopedia/security/signatures-multisig.mdx). | +| Medium threshold | integer | A number from 0-255 (inclusive) representing the threshold this account sets on all operations it performs that have [a medium threshold](../../encyclopedia/security/signatures-multisig.mdx). | +| High threshold | integer | A number from 0-255 (inclusive) representing the threshold this account sets on all operations it performs that have [a high threshold](../../encyclopedia/security/signatures-multisig.mdx). | +| Home domain | string | Sets the home domain of an account. See [Federation](../../encyclopedia/network-configuration/federation.mdx). | | Signer | \{Public Key, weight} | Add, update, or remove a signer from an account. Signer weight is a number from 0-255 (inclusive). The signer is deleted if the weight is 0. | **Possible errors**: @@ -276,7 +276,7 @@ Learn more about signers operations and key weight: [Signature and Multisignatur Creates, updates, or deletes a trustline -Learn more about trustlines: [Trustlines section](./stellar-data-structures/accounts.mdx#trustlines) +Learn more about trustlines: [Trustlines section](../stellar-data-structures/accounts.mdx#trustlines) **SDKs**: [JavaScript](http://stellar.github.io/js-stellar-sdk/Operation.html#.changeTrust) | [Java](https://github.com/lightsail-network/java-stellar-sdk/blob/master/src/main/java/org/stellar/sdk/ChangeTrustOperation.java) | [Go](https://godoc.org/github.com/stellar/go/txnbuild#ChangeTrust) **Threshold**: Medium @@ -358,7 +358,7 @@ Transfers the XLM balance of an account to another account and removes the sourc Sets, modifies, or deletes a data entry (name/value pair) that is attached to an account -Learn more about entries and subentries: [Accounts section](./stellar-data-structures/accounts.mdx#subentries) +Learn more about entries and subentries: [Accounts section](../stellar-data-structures/accounts.mdx#subentries) **SDKs**: [JavaScript](http://stellar.github.io/js-stellar-sdk/Operation.html#.manageData) | [Java](https://github.com/lightsail-network/java-stellar-sdk/blob/master/src/main/java/org/stellar/sdk/ManageDataOperation.java) | [Go](https://godoc.org/github.com/stellar/go/txnbuild#ManageData) **Threshold**: Medium @@ -402,7 +402,7 @@ Bumps forward the sequence number of the source account to the given sequence nu Moves an amount of asset from the operation source account into a new ClaimableBalanceEntry -Learn more about claimable balances: [Claimable Balances Encyclopedia Entry](../encyclopedia/claimable-balances.mdx) +Learn more about claimable balances: [Claimable Balances Encyclopedia Entry](../../encyclopedia/transactions-specialized/claimable-balances.mdx) **Threshold**: Medium **Result**: `CreateClaimableBalanceResult` @@ -428,7 +428,7 @@ Learn more about claimable balances: [Claimable Balances Encyclopedia Entry](../ Claims a ClaimableBalanceEntry that corresponds to the BalanceID and adds the amount of an asset on the entry to the source account -Learn more about claimable balances and view more parameters: [Claimable Balances Encyclopedia Entry](../encyclopedia/claimable-balances.mdx) +Learn more about claimable balances and view more parameters: [Claimable Balances Encyclopedia Entry](../../encyclopedia/transactions-specialized/claimable-balances.mdx) **Threshold**: Low **Result**: `ClaimClaimableBalanceResult` @@ -436,7 +436,7 @@ Learn more about claimable balances and view more parameters: [Claimable Balance | Parameters | Type | Description | | --- | --- | --- | -| BalanceID | claimableBalanceID | BalanceID on the ClaimableBalanceEntry that the source account is claiming. The balanceID can be retrieved from a successful `CreateClaimableBalanceResult`. See [Claimable Balance Encyclopedia Entry](../encyclopedia/claimable-balances.mdx#create-claimable-balance) for more information. | +| BalanceID | claimableBalanceID | BalanceID on the ClaimableBalanceEntry that the source account is claiming. The balanceID can be retrieved from a successful `CreateClaimableBalanceResult`. See [Claimable Balance Encyclopedia Entry](../../encyclopedia/transactions-specialized/claimable-balances.mdx#create-claimable-balance) for more information. | **Possible errors**: @@ -454,7 +454,7 @@ Allows an account to pay the base reserves for another account; sponsoring accou There must also be an end sponsoring future reserves operation in the same transaction -Learn more about sponsored reserves: [Sponsored Reserves Encyclopedia Entry](../encyclopedia/sponsored-reserves.mdx) +Learn more about sponsored reserves: [Sponsored Reserves Encyclopedia Entry](../../encyclopedia/transactions-specialized/sponsored-reserves.mdx) **Threshold**: Medium **Result**: `BeginSponsoringFutureReservesResult` @@ -476,7 +476,7 @@ Learn more about sponsored reserves: [Sponsored Reserves Encyclopedia Entry](../ Terminates the current is-sponsoring-future-reserves relationship in which the source account is sponsored -Learn more about sponsored reserves: [Sponsored Reserves Encyclopedia Entry](../encyclopedia/sponsored-reserves.mdx) +Learn more about sponsored reserves: [Sponsored Reserves Encyclopedia Entry](../../encyclopedia/transactions-specialized/sponsored-reserves.mdx) **Threshold**: Medium **Result**: `EndSponsoringFutureReservesResult` @@ -496,7 +496,7 @@ Learn more about sponsored reserves: [Sponsored Reserves Encyclopedia Entry](../ Sponsoring account can remove or transfer sponsorships of existing ledgerEntries and signers; the logic of this operation depends on the state of the source account -Learn more about sponsored reserves: [Sponsored Reserves Encyclopedia Entry](../encyclopedia/sponsored-reserves.mdx) +Learn more about sponsored reserves: [Sponsored Reserves Encyclopedia Entry](../../encyclopedia/transactions-specialized/sponsored-reserves.mdx) **Threshold**: Medium **Result**: `RevokeSponsorshipResult` @@ -505,7 +505,7 @@ This operation is a union with **two** possible types: | Union Type | Parameters | Type | Description | | --- | --- | --- | --- | -| REVOKE_SPONSORSHIP_LEDGER_ENTRY | LedgerKey | ledgerKey | Ledger key that holds information to identify a specific ledgerEntry that may have its sponsorship modified. See [LedgerKey](../glossary.mdx#ledgerkey) for more information. | +| REVOKE_SPONSORSHIP_LEDGER_ENTRY | LedgerKey | ledgerKey | Ledger key that holds information to identify a specific ledgerEntry that may have its sponsorship modified. See [LedgerKey](../../glossary.mdx#ledgerkey) for more information. | Or @@ -527,7 +527,7 @@ Or Burns an amount in a specific asset from a receiving account -Learn more about clawbacks: [Clawback Encyclopedia Entry](../encyclopedia/clawbacks.mdx) +Learn more about clawbacks: [Clawback Encyclopedia Entry](../../encyclopedia/transactions-specialized/clawbacks.mdx) **SDKs**: [JavaScript](http://stellar.github.io/js-stellar-sdk/Operation.html#.clawback) | [Java](https://github.com/lightsail-network/java-stellar-sdk/blob/master/src/main/java/org/stellar/sdk/ClawbackOperation.java) | [Go](https://godoc.org/github.com/stellar/go/txnbuild#Clawback) **Threshold**: Medium @@ -553,9 +553,9 @@ Learn more about clawbacks: [Clawback Encyclopedia Entry](../encyclopedia/clawba Claws back an unclaimed ClaimableBalanceEntry, burning the pending amount of the asset -Learn more about clawbacks: [Clawback Encyclopedia Entry](../encyclopedia/clawbacks.mdx) +Learn more about clawbacks: [Clawback Encyclopedia Entry](../../encyclopedia/transactions-specialized/clawbacks.mdx) -Learn more about claimable balances: [Claimable Balances Encyclopedia Entry](../encyclopedia/claimable-balances.mdx) +Learn more about claimable balances: [Claimable Balances Encyclopedia Entry](../../encyclopedia/transactions-specialized/claimable-balances.mdx) **Threshold**: Medium **Result**: `ClaimClaimableBalanceResult` @@ -579,7 +579,7 @@ Allows issuing account to configure authorization and trustline flags to an asse The Asset parameter is of the `TrustLineAsset` type. If you are modifying a trustline to a regular asset (i.e. one in a Code:Issuer format), this is equivalent to the Asset type. If you are modifying a trustline to a pool share, however, this is composed of the liquidity pool's unique ID. -Learn more about flags: [Flags Glossary Entry](../glossary.mdx/#flags) +Learn more about flags: [Flags Glossary Entry](../../glossary.mdx/#flags) **Threshold**: Low **Result**: `SetTrustLineFlagsResult` @@ -610,7 +610,7 @@ Parameters to this operation depend on the ordering of assets in the liquidity p If the pool is empty, then this operation deposits maxAmountA of A and maxAmountB of B into the pool. If the pool is not empty, then this operation deposits at most maxAmountA of A and maxAmountB of B into the pool. The actual amounts deposited are determined using the current reserves of the pool. You can use these parameters to control a percentage of slippage. -Learn more about liquidity pools: [Liquidity Pools Encyclopedia Entry](../encyclopedia/liquidity-on-stellar-sdex-liquidity-pools.mdx) +Learn more about liquidity pools: [Liquidity Pools Encyclopedia Entry](../../encyclopedia/sdex/liquidity-on-stellar-sdex-liquidity-pools.mdx) **Threshold**: Medium **Result**: `LiquidityPoolDepositResult` @@ -642,7 +642,7 @@ Withdraw assets from a liquidity pool, reducing the number of pool shares in exc The minAmountA and minAmountB parameters can be used to control a percentage of slippage from the "spot price" on the pool. -Learn more about liquidity pools: [Liquidity Pools Encyclopedia Entry](../encyclopedia/liquidity-on-stellar-sdex-liquidity-pools.mdx) +Learn more about liquidity pools: [Liquidity Pools Encyclopedia Entry](../../encyclopedia/sdex/liquidity-on-stellar-sdex-liquidity-pools.mdx) **Threshold**: Medium **Result**: `LiquidityPoolWithdrawResult` @@ -677,7 +677,7 @@ The `InvokeHostFunctionOp` can be used to perform the following Soroban operatio Note that Soroban transactions can only contain one operation per transaction. -Learn more [here](../smart-contract-internals/contract-interactions/stellar-transaction.mdx#invokehostfunctionop). +Learn more [here](../../encyclopedia/contract-development/contract-interactions/stellar-transaction.mdx#invokehostfunctionop). **Threshold**: Medium **Result**: `InvokeHostFunctionResult` @@ -704,7 +704,7 @@ Extend the time to live (TTL) of entries for Soroban smart contracts with the `E Note that Soroban transactions can only contain one operation per transaction. -Learn more in the [State Archival section](../smart-contract-internals/state-archival.mdx). +Learn more in the [State Archival section](../../encyclopedia/storage/state-archival.mdx). **Threshold**: Medium **Result**: `ExtendFootprintTTLResult` @@ -729,7 +729,7 @@ Make archived Soroban smart contract entries accessible again by restoring them Note that Soroban transactions can only contain one operation per transaction. -Learn more in the [State Archival section](../smart-contract-internals/state-archival.mdx). +Learn more in the [State Archival section](../../encyclopedia/storage/state-archival.mdx). **Threshold**: Medium **Result**: `RestoreFootprintResult` diff --git a/docs/learn/fundamentals/stellar-data-structures/operations-and-transactions.mdx b/docs/learn/fundamentals/transactions/operations-and-transactions.mdx similarity index 92% rename from docs/learn/fundamentals/stellar-data-structures/operations-and-transactions.mdx rename to docs/learn/fundamentals/transactions/operations-and-transactions.mdx index 7b0939f6a..257c0f0d0 100644 --- a/docs/learn/fundamentals/stellar-data-structures/operations-and-transactions.mdx +++ b/docs/learn/fundamentals/transactions/operations-and-transactions.mdx @@ -1,6 +1,6 @@ --- title: Operations and Transactions -sidebar_position: 40 +sidebar_position: 10 --- ## Operations and transactions: how they work @@ -13,32 +13,32 @@ Operations are individual commands that modify the ledger. Operations are used t All operations fall into one of three threshold categories: low, medium, or high, and each threshold category has a weight between 0 and 255 (which can be determined using set_options). Thresholds determine what signature weight is required for the operation to be accepted. For example, let’s say an account sets the medium threshold weight to 5. If the account wants to successfully establish a trustline with the `changeTrust` operation, the weight of the signature(s) must be greater than or equal to 5. -To learn more about signature weight, see the [Signature and Multisignature Encyclopedia Entry](../../encyclopedia/signatures-multisig.mdx). +To learn more about signature weight, see the [Signature and Multisignature Encyclopedia Entry](../../encyclopedia/security/signatures-multisig.mdx). -View a comprehensive list of Stellar operations and their threshold levels in the [List of Operations section](../list-of-operations.mdx). +View a comprehensive list of Stellar operations and their threshold levels in the [List of Operations section](./list-of-operations.mdx). ### Transactions -The Stellar network encodes transactions using a standardized protocol called External Data Representation (XDR). You can read more about this in our [XDR Encyclopedia Entry](../../encyclopedia/xdr.mdx). +The Stellar network encodes transactions using a standardized protocol called External Data Representation (XDR). You can read more about this in our [XDR Encyclopedia Entry](../../encyclopedia/data-format/xdr.mdx). Accounts can only perform one transaction at a time. Transactions comprise a bundle of between 1-100 operations (except smart contract transactions, which can only have one operation per transaction) and are signed and submitted to the ledger by accounts. Transactions always need to be authorized by the source account’s public key to be valid, which involves signing the transaction object with the public key’s associated secret key. A transaction plus its signature(s) is called a transaction envelope. -A transaction may need more than one signature- this happens if it has operations that affect more than one account or if it has a high threshold weight. Check out the [Signature and Multisignature Encyclopedia Entry](../../encyclopedia/signatures-multisig.mdx) for more information. +A transaction may need more than one signature- this happens if it has operations that affect more than one account or if it has a high threshold weight. Check out the [Signature and Multisignature Encyclopedia Entry](../../encyclopedia/security/signatures-multisig.mdx) for more information. Transactions are atomic. Meaning if one operation in a transaction fails, all operations fail, and the entire transaction is not applied to the ledger. Operations are executed for the source account of the transaction unless an operation override is defined. -Smart contract transactions also go through a simulation process where developers can test how the transaction would be executed on the network using the RPC endpoint `simulateTransaction`. Read more in the [Soroban docs](/docs/learn/smart-contract-internals/contract-interactions/transaction-simulation.mdx). +Smart contract transactions also go through a simulation process where developers can test how the transaction would be executed on the network using the RPC endpoint `simulateTransaction`. Read more in the [Soroban docs](/docs/learn/encyclopedia/contract-development/contract-interactions/transaction-simulation.mdx). #### Transaction attributes - [Fee](../fees-resource-limits-metering.mdx) -- [List of operations](../list-of-operations.mdx) -- [List of signatures](../../encyclopedia/signatures-multisig.mdx) -- [Memo or muxed account](../../encyclopedia/pooled-accounts-muxed-accounts-memos.mdx) +- [List of operations](./list-of-operations.mdx) +- [List of signatures](../../encyclopedia/security/signatures-multisig.mdx) +- [Memo or muxed account](../../encyclopedia/transactions-specialized/pooled-accounts-muxed-accounts-memos.mdx) - [Sequence number](../../glossary.mdx#sequence-number) - [Source account](../../glossary.mdx#source-account) - [Preconditions (optional)](#preconditions) @@ -131,7 +131,7 @@ The fee must be greater than or equal to the network minimum fee for the number #### Fee-bump (if applicable) -See Validity of a [Fee-Bump Transaction section](../../encyclopedia/fee-bump-transactions.mdx#validity-of-a-fee-bump-transaction) +See Validity of a [Fee-Bump Transaction section](../../encyclopedia/transactions-specialized/fee-bump-transactions.mdx#validity-of-a-fee-bump-transaction) #### Sequence number diff --git a/docs/learn/encyclopedia/transaction-lifecycle.mdx b/docs/learn/fundamentals/transactions/transaction-lifecycle.mdx similarity index 99% rename from docs/learn/encyclopedia/transaction-lifecycle.mdx rename to docs/learn/fundamentals/transactions/transaction-lifecycle.mdx index 292a5aa8a..43a006886 100644 --- a/docs/learn/encyclopedia/transaction-lifecycle.mdx +++ b/docs/learn/fundamentals/transactions/transaction-lifecycle.mdx @@ -1,5 +1,6 @@ --- title: Transaction Lifecycle +sidebar_position: 30 --- :::note diff --git a/docs/learn/glossary.mdx b/docs/learn/glossary.mdx index 6bafe3dbf..cafa7a90b 100644 --- a/docs/learn/glossary.mdx +++ b/docs/learn/glossary.mdx @@ -17,7 +17,7 @@ The public key used to create an account. This key persists across different key The on and off-ramps on the Stellar network that facilitate one-to-one conversion of off-chain representations to and from tokenized assets, for example, digital tokens representing bank deposits. -Read more in the [Anchor Encyclopedia entry](./encyclopedia/anchors.mdx) +Read more in the [Anchor Encyclopedia entry](./fundamentals/anchors.mdx) ### Application (app) @@ -71,7 +71,7 @@ An object that holds both the destination account that can claim the ClaimableBa An amount of asset from a trustline or claimable balance removed (clawed back) from a recipient’s balance sheet. -See the [Clawback](./encyclopedia/clawbacks.mdx) Encyclopedia Entry for more information. +See the [Clawback](./encyclopedia/transactions-specialized/clawbacks.mdx) Encyclopedia Entry for more information. ### Core Advancement Proposals (CAPs) @@ -89,7 +89,7 @@ A payment that automatically handles the conversion of dissimilar assets. A distributed exchange that allows the trading and conversion of assets on the network. -Learn more in our [Liquidity on Stellar](./encyclopedia/liquidity-on-stellar-sdex-liquidity-pools.mdx#sdex) Encyclopedia Entry. +Learn more in our [Liquidity on Stellar](./encyclopedia/sdex/liquidity-on-stellar-sdex-liquidity-pools.mdx#sdex) Encyclopedia Entry. ### External Data Representation (XDR) @@ -171,7 +171,7 @@ The number of entries owned by an account, used to calculate the account’s min An individual command that modifies the ledger. -Learn more in our [Operations and Transactions](./fundamentals/stellar-data-structures/operations-and-transactions.mdx) section. +Learn more in our [Operations and Transactions](./fundamentals/transactions/operations-and-transactions.mdx) section. ### OperationID @@ -181,13 +181,13 @@ Contains the transaction source account, sequence number, and the operation inde An offer to buy or sell an asset. -Learn more in our [Liquidity on Stellar: SDEX and Liquidity Pools Encyclopedia Entry](./encyclopedia/liquidity-on-stellar-sdex-liquidity-pools.mdx#orders). +Learn more in our [Liquidity on Stellar: SDEX and Liquidity Pools Encyclopedia Entry](./encyclopedia/sdex/liquidity-on-stellar-sdex-liquidity-pools.mdx#orders). ### Orderbook A record of outstanding orders on the Stellar network. -Learn more in our [Liquidity on Stellar: SDEX and Liquidity Pools Encyclopedia Entry](./encyclopedia/liquidity-on-stellar-sdex-liquidity-pools.mdx#order-books). +Learn more in our [Liquidity on Stellar: SDEX and Liquidity Pools Encyclopedia Entry](./encyclopedia/sdex/liquidity-on-stellar-sdex-liquidity-pools.mdx#order-books). ### Passive order @@ -197,7 +197,7 @@ An order that does not execute against a marketable counter order with the same The Mainnet and Testnet each have their own unique passphrase, which are used to validate signatures on a given transaction. -Learn more about network passphrases in the [Network Passphrases Encyclopedia Entry](./encyclopedia/network-passphrases.mdx). +Learn more about network passphrases in the [Network Passphrases Encyclopedia Entry](./encyclopedia/network-configuration/network-passphrases.mdx). ### Pathfinding @@ -211,7 +211,7 @@ Allows two parties who frequently transact with one another to move the bulk of Optional requirements you can add to control a transaction’s validity. -See the [Operation and Transaction Validity section](./fundamentals/stellar-data-structures/operations-and-transactions.mdx#preconditions) for more information. +See the [Operation and Transaction Validity section](./fundamentals/transactions/operations-and-transactions.mdx#preconditions) for more information. ### Price @@ -251,7 +251,7 @@ Learn more in our [SEPs section](./fundamentals/stellar-ecosystem-proposals.mdx) Refers to the master key or to any other signing keys added later. A signer is defined as the pair: public key + weight. Signers can be set with the Set Options operation. -See our [Signature and Multisignature Encyclopedia Entry](./encyclopedia/signatures-multisig.mdx) for more information. +See our [Signature and Multisignature Encyclopedia Entry](./encyclopedia/security/signatures-multisig.mdx) for more information. ### Smart contract @@ -307,7 +307,7 @@ The level of access for an operation. Also used to describe the ratio of validator nodes in a quorum set that must agree in order to reach consensus as part of the Stellar Consensus Protocol. -Read more about operation thresholds in the [Operations and Transactions section](./fundamentals/stellar-data-structures/operations-and-transactions.mdx#operations). +Read more about operation thresholds in the [Operations and Transactions section](./fundamentals/transactions/operations-and-transactions.mdx#operations). Learn more about quorum set validators in our [Stellar Consensus Protocol section](./fundamentals/stellar-consensus-protocol.mdx). @@ -315,13 +315,13 @@ Learn more about quorum set validators in our [Stellar Consensus Protocol sectio An optional feature you can apply to a transaction to enforce a time limit on the transaction; either the transaction makes it to the ledger or times out (fails) depending on your time parameters. -Read more about time bounds in our [Operation and Transaction Validity section](./fundamentals/stellar-data-structures/operations-and-transactions.mdx#transaction-and-operation-validity). +Read more about time bounds in our [Operation and Transaction Validity section](./fundamentals/transactions/operations-and-transactions.mdx#transaction-and-operation-validity). ### Transaction A group of 1 to 100 operations that modify the ledger state. -Read more in the [Operations and Transactions section](./fundamentals/stellar-data-structures/operations-and-transactions.mdx#transactions). +Read more in the [Operations and Transactions section](./fundamentals/transactions/operations-and-transactions.mdx#transactions). ### Transaction envelope @@ -343,7 +343,7 @@ Learn more in our [Accounts section](./fundamentals/stellar-data-structures/acco A smart contract's TTL is how many ledgers remain until the data entry is no longer live. -Read more in the [State Archival section](./smart-contract-internals/state-archival.mdx#ttl). +Read more in the [State Archival section](./encyclopedia/storage/state-archival.mdx#ttl). ### Type diff --git a/docs/learn/migrate/evm/smart-contract-deployment.mdx b/docs/learn/migrate/evm/smart-contract-deployment.mdx index 15f1c99e9..c6b2f012b 100644 --- a/docs/learn/migrate/evm/smart-contract-deployment.mdx +++ b/docs/learn/migrate/evm/smart-contract-deployment.mdx @@ -869,20 +869,20 @@ fn withdraw(e: Env, to: Address, amount: i128) -> i128 { // First transfer the vault shares that need to be redeemed let share_token_client = token::Client::new(&e, &get_token_share(&e)); share_token_client.transfer(&to, &e.current_contract_address(), &amount); + + // Calculate total amount including yield + let total_amount = amount + (amount / 100); + let token_client = token::Client::new(&e, &get_token(&e)); - token_client.transfer( - &e.current_contract_address(), - &to, - &(&amount + (&amount / &100)), - ); + token_client.transfer(&e.current_contract_address(), &to, &total_amount); let balance = get_token_balance(&e); let balance_shares = get_balance_shares(&e); burn_shares(&e, balance_shares); - put_reserve(&e, balance - amount); + put_reserve(&e, balance); // Update the reserve with the actual balance - amount + total_amount } ``` @@ -891,6 +891,7 @@ fn withdraw(e: Env, to: Address, amount: i128) -> i128 { - The `transfer_token` method of the `token_client` instance transfers tokens from the vault contract to the withdrawer. - `burn_shares` is called to burn the shares that were transferred to the vault contract. - `put_reserve` stores the current token balance in a reserved location. +- Returns the total amount of tokens withdrawn by the user. > _Note_ : In the withdrawal function, you'll notice that the transfer amount is defined as `&(&amount + (&amount / &100))`. This is a simple yield calculation that assumes the yield to be 1% of the amount being withdrawn. However, it's important to note that this is a very simplistic approach and may not be suitable for production-grade systems. In reality, yield calculations are more complex and involve various factors such as market conditions, risk management, and fees. @@ -952,7 +953,6 @@ soroban contract deploy \ ```bash soroban contract invoke \ - --wasm soroban_token_contract.wasm \ --id \ --source \ --rpc-url https://soroban-testnet.stellar.org:443 \ @@ -971,7 +971,6 @@ soroban contract invoke \ ```bash soroban contract invoke \ - --wasm soroban_token_contract.wasm \ --id \ --source \ --rpc-url https://soroban-testnet.stellar.org:443 \ @@ -988,7 +987,6 @@ soroban contract invoke \ ```bash soroban contract invoke \ - --wasm soroban_token_contract.wasm \ --id \ --source \ --rpc-url https://soroban-testnet.stellar.org:443 \ @@ -1003,7 +1001,11 @@ soroban contract invoke \ ```bash -soroban contract install --wasm soroban_token_contract.wasm +soroban contract install \ + --wasm soroban_token_contract.wasm \ + --source \ + --rpc-url https://soroban-testnet.stellar.org:443 \ + --network-passphrase 'Test SDF Network ; September 2015' ``` @@ -1024,7 +1026,6 @@ soroban contract deploy \ ```bash soroban contract invoke \ - --wasm target/wasm32-unknown-unknown/release/vault.wasm \ --id \ --source \ --rpc-url https://soroban-testnet.stellar.org:443 \ @@ -1041,7 +1042,6 @@ soroban contract invoke \ ```bash soroban contract invoke \ - --wasm target/wasm32-unknown-unknown/release/vault.wasm \ --id \ --source \ --rpc-url https://soroban-testnet.stellar.org:443 \ @@ -1056,7 +1056,6 @@ soroban contract invoke \ ```bash soroban contract invoke \ - --wasm target/wasm32-unknown-unknown/release/vault.wasm \ --id \ --source \ --rpc-url https://soroban-testnet.stellar.org:443 \ @@ -1073,7 +1072,6 @@ soroban contract invoke \ ```bash soroban contract invoke \ - --wasm target/wasm32-unknown-unknown/release/vault.wasm \ --id \ --source \ --rpc-url https://soroban-testnet.stellar.org:443 \ @@ -1088,7 +1086,6 @@ soroban contract invoke \ ```bash soroban contract invoke \ - --wasm target/wasm32-unknown-unknown/release/vault.wasm \ --id \ --source \ --rpc-url https://soroban-testnet.stellar.org:443 \ @@ -1130,7 +1127,6 @@ Next we need to initialize the token contract. We can do this by running the `in ```bash soroban contract invoke \ - --wasm soroban_token_contract.wasm \ --id \ --source \ --rpc-url https://soroban-testnet.stellar.org:443 \ @@ -1162,7 +1158,11 @@ CBBPLE6TGYOMO5HUF2AMYLSYYXM2VYZVAVYI5QCCM5OCFRZPBE2XA53F Now we need to get the Wasm hash of the token contract. We can do this by running the `get_token_wasm_hash.sh` script. ```bash -soroban contract install --wasm soroban_token_contract.wasm +soroban contract install \ + --wasm soroban_token_contract.wasm \ + --source \ + --rpc-url https://soroban-testnet.stellar.org:443 \ + --network-passphrase 'Test SDF Network ; September 2015' ``` We should receive the Wasm hash of the token contract. @@ -1175,7 +1175,6 @@ Now we need to initialize the vault contract. We can do this by running the `ini ```bash soroban contract invoke \ - --wasm target/wasm32-unknown-unknown/release/vault.wasm \ --id \ --source \ --rpc-url https://soroban-testnet.stellar.org:443 \ @@ -1190,7 +1189,6 @@ After recieving the transaction has been submitted, we will mint some tokens to ```bash soroban contract invoke \ - --wasm soroban_token_contract.wasm \ --id \ --source \ --rpc-url https://soroban-testnet.stellar.org:443 \ @@ -1205,7 +1203,6 @@ After submitting the transaction, we can check the balance of the account. We ca ```bash soroban contract invoke \ - --wasm soroban_token_contract.wasm \ --id \ --source \ --rpc-url https://soroban-testnet.stellar.org:443 \ @@ -1225,7 +1222,6 @@ Now we can deposit some tokens into our vault. We can do this by running the `de ```bash soroban contract invoke \ - --wasm target/wasm32-unknown-unknown/release/vault.wasm \ --id \ --source \ --rpc-url https://soroban-testnet.stellar.org:443 \ @@ -1240,7 +1236,6 @@ After submitting the transaction, we can check the reserves of the vault. We can ```bash soroban contract invoke \ - --wasm target/wasm32-unknown-unknown/release/vault.wasm \ --id \ --source \ --rpc-url https://soroban-testnet.stellar.org:443 \ @@ -1261,7 +1256,6 @@ Now we can withdraw some tokens from the vault. We can do this by running the `w ```bash soroban contract invoke \ - --wasm target/wasm32-unknown-unknown/release/vault.wasm \ --id \ --source \ --rpc-url https://soroban-testnet.stellar.org:443 \ diff --git a/docs/learn/migrate/evm/solidity-and-rust-advanced-concepts.mdx b/docs/learn/migrate/evm/solidity-and-rust-advanced-concepts.mdx index a1be7ba8b..d4d95fde1 100644 --- a/docs/learn/migrate/evm/solidity-and-rust-advanced-concepts.mdx +++ b/docs/learn/migrate/evm/solidity-and-rust-advanced-concepts.mdx @@ -542,7 +542,7 @@ In contrast to Solidity's global variables, Soroban relies on passing an [`Env`] The `Env` provides access to information about the currently executing contract, who invoked it, contract data, functions for signing, hashing, etc. -For instance, you would use `env.storage().persistent().get(key)` to access a `persistent` target value from the contract's [storage](https://docs.rs/soroban-sdk/latest/soroban_sdk/struct.Env.html). Read more about the different storage types [here](../../smart-contract-internals/persisting-data.mdx). +For instance, you would use `env.storage().persistent().get(key)` to access a `persistent` target value from the contract's [storage](https://docs.rs/soroban-sdk/latest/soroban_sdk/struct.Env.html). Read more about the different storage types [here](../../encyclopedia/storage/persisting-data.mdx). - `env.storage()` is used to get a struct for accessing and updating contract data that has been stored. - Used as `env.storage().persistent().get()` or `env.persistent().storage().set()`. @@ -898,7 +898,7 @@ By utilizing these authorization methods provided by the `Address` object from t Soroban's approach to authorization in this example offers several advantages over Solidity's model of ERC20 by eliminating the need for separate approval management. Instead, authorization checks can be directly incorporated into any Soroban function. This simplifies the contract codebase and reduces the complexity associated with managing separate approval states. -Soroban authorization provides Contract-level Authorization, Account Abstraction Functionality, and more advanced Authorization checks. To learn more about these advantages, visit the [Authorization section](../../smart-contract-internals/authorization.mdx) of the documentation. +Soroban authorization provides Contract-level Authorization, Account Abstraction Functionality, and more advanced Authorization checks. To learn more about these advantages, visit the [Authorization section](../../encyclopedia/security/authorization.mdx) of the documentation. ## Summary diff --git a/docs/learn/migrate/evm/solidity-and-rust-basics.mdx b/docs/learn/migrate/evm/solidity-and-rust-basics.mdx index 2369bf824..64d32fa24 100644 --- a/docs/learn/migrate/evm/solidity-and-rust-basics.mdx +++ b/docs/learn/migrate/evm/solidity-and-rust-basics.mdx @@ -121,7 +121,7 @@ fn main() { ### Data Types -The [Soroban Rust SDK](https://docs.rs/soroban-sdk/latest/soroban_sdk/index.html) supports a variety of [Built-In Types](../../smart-contract-internals/types/built-in-types.mdx) which consist of both Primitive and [Custom Types](../../smart-contract-internals/types/custom-types.mdx), such as: +The [Soroban Rust SDK](https://docs.rs/soroban-sdk/latest/soroban_sdk/index.html) supports a variety of [Built-In Types](../../encyclopedia/contract-development/types/built-in-types.mdx) which consist of both Primitive and [Custom Types](../../encyclopedia/contract-development/types/custom-types.mdx), such as: #### Primitive Data Types @@ -322,7 +322,7 @@ Rust enforces [**strict ownership rules**](https://doc.rust-lang.org/book/ch04-0 Contract development in Rust involves certain restrictions due to either unavailable features in the deployment environment or high runtime costs. Thus, the code written for contracts can be seen as a distinct _dialect_ of Rust, focusing on deterministic behavior and minimized code size. -To learn more about Rust's Contract Dialect, check out the [Contract Rust Dialect Page](../../smart-contract-internals/rust-dialect.mdx). +To learn more about Rust's Contract Dialect, check out the [Contract Rust Dialect Page](../../encyclopedia/contract-development/rust-dialect.mdx). ## Writing and Interacting with Simple Smart Contracts diff --git a/docs/learn/smart-contract-internals/README.mdx b/docs/learn/smart-contract-internals/README.mdx deleted file mode 100644 index f9bebba4a..000000000 --- a/docs/learn/smart-contract-internals/README.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Smart Contract Internals -sidebar_position: 20 ---- - -import DocCardList from "@theme/DocCardList"; - -Articles explaining the finer points and details of Stellar's smart contract platform, Soroban. - - diff --git a/docs/reference/software-versions.mdx b/docs/reference/software-versions.mdx index 134e05a18..a0777daa1 100644 --- a/docs/reference/software-versions.mdx +++ b/docs/reference/software-versions.mdx @@ -4,8 +4,6 @@ title: Software Versions description: Soroban software releases and changelogs. --- -We're releasing early versions of Soroban because we believe it's important to share the development process, and we want Stellar ecosystem developers and smart contract developers from other ecosystems to have a chance to experiment and provide feedback. - :::caution Release candidates are software releases that are also released to the [Testnet] test network. Software releases may occur between Testnet releases. If you're interacting with Testnet, the recommended software versions to use in development are provided below. Releases to Testnet may include network resets and network passphrase changes. @@ -14,6 +12,50 @@ Release candidates are software releases that are also released to the [Testnet] [testnet]: ./networks.mdx +## Protocol 21 (Mainnet, June 18, 2024) + +### Software + +| Software | Version | +| --- | --- | +| XDR | `v21.1` | +| Rust XDR | `v21.0.1` | +| Soroban Environment | `v21.0.2` | +| Stellar Core | `v21.0.0` | +| Soroban Rust SDK | `21.0.1-preview.3` | +| Soroban CLI | `v21.0.0-rc.1` | +| Soroban RPC | `v21.2.0` | +| Stellar Horizon | `v2.30.0` | +| Stellar Quickstart | `https://hub.docker.com/layers/stellar/quickstart/v426-latest-amd64/images/sha256-274395daab6fa8033b9213f152d56699358917fb01d7c7e95392a37fc00c9d01` | +| Stellar JS Stellar Base | `v12.0.0-rc1` | +| Stellar JS Stellar SDK | `v12.0.0-rc.3` | +| Freighter | | +| Laboratory | | +| Soroban React Payment dapp | `TBD` | +| Soroban Mint Token dapp | `TBD` | +| Soroban Swap Token dapp | `TBD` | +| Futurenet Network Passphrase | `Test SDF Future Network ; October 2022` | +| Testnet Network Passphrase | `Test SDF Network ; September 2015` | +| Mainnet Network Passphrase | `Public Global Stellar Network ; September 2015` | + +### Release notes + +#### Core + +New features in Protocol 21: + +- Secp256r1 support in Soroban host: https://github.com/stellar/stellar-protocol/blob/master/core/cap-0051.md +- Soroban host function for extending TTL of contract instance and code separately: https://github.com/stellar/stellar-protocol/blob/master/core/cap-0053.md +- Use refined cost model for VM instantiation in order to reduce the VM instantiation metered costs: https://github.com/stellar/stellar-protocol/blob/master/core/cap-0054.md +- Intra-transaction VM module caching for the further Soroban cost reduction: https://github.com/stellar/stellar-protocol/blob/master/core/cap-0055.md, https://github.com/stellar/stellar-protocol/blob/master/core/cap-0056.md + +#### Soroban Rust SDK + +Key protocol-related changes: + +- Support for secp256r1 signature verification +- Support for extending TTL of contract instance and code separate from each other + ## Protocol 21 (Testnet only, May 20, 2024) ### Software @@ -25,7 +67,7 @@ Release candidates are software releases that are also released to the [Testnet] | Soroban Environment | `v21.0.2` | | Stellar Core | `v21.0.0` | | Soroban Rust SDK | `21.0.1-preview.3` | -| Soroban CLI | `v21.0.0-preview.1` | +| Soroban CLI | `v21.0.0-rc.1` | | Soroban RPC | `v21.2.0` | | Stellar Horizon | `v2.30.0` | | Stellar Quickstart | `https://hub.docker.com/layers/stellar/quickstart/v426-latest-amd64/images/sha256-274395daab6fa8033b9213f152d56699358917fb01d7c7e95392a37fc00c9d01` | @@ -1343,7 +1385,7 @@ See https://github.com/stellar/soroban-tools/releases v0.7.0 for more details. ### Breaking changes note -This release comes with a revamp of authorization approach that is breaking for most of the contracts that did any sort of auth logic or used tokens. [example](../smart-contracts/example-contracts/auth.mdx) and [authorization overview](../learn/smart-contract-internals/authorization.mdx) for more details. +This release comes with a revamp of authorization approach that is breaking for most of the contracts that did any sort of auth logic or used tokens. [example](../smart-contracts/example-contracts/auth.mdx) and [authorization overview](../learn/encyclopedia/security/authorization.mdx) for more details. ### Changelog diff --git a/docs/smart-contracts/README.mdx b/docs/smart-contracts/README.mdx index 135b7ea03..95fec7c86 100644 --- a/docs/smart-contracts/README.mdx +++ b/docs/smart-contracts/README.mdx @@ -9,7 +9,7 @@ To begin writing contracts, [install a Rust toolchain](https://www.rust-lang.org ## Rust on Soroban -Soroban has several characteristics (such as resource limits, security considerations, and more) that force contracts to use only a narrow subset of the full Rust language and must use specialized libraries for most tasks. Read more in the [Contract Rust Dialect section](../learn/smart-contract-internals/rust-dialect.mdx). +Soroban has several characteristics (such as resource limits, security considerations, and more) that force contracts to use only a narrow subset of the full Rust language and must use specialized libraries for most tasks. Read more in the [Contract Rust Dialect section](../learn/encyclopedia/contract-development/rust-dialect.mdx). In particular, the Rust standard library and most third-party libraries (called “crates”) will not be available for direct off-the-shelf use in contracts due to the abovementioned constraints. Some crates can be adapted for use in contracts, and others may be incorporated into the host environment as host objects or functions. @@ -29,7 +29,7 @@ The host environment is a set of Rust crates compiled into the SDK command-line Most contract developers will not frequently need to interact with the host environment directly — SDK functions wrap most of its facilities and provide richer and more ergonomic types and functions — but it is helpful to understand its structure to understand the conceptual model the SDK is presenting. Some parts of the host environment will likely be visible when testing or debugging contracts compiled natively on a local workstation. -Read more in the [Environment Concepts section](../learn/smart-contract-internals/environment-concepts.mdx). +Read more in the [Environment Concepts section](../learn/encyclopedia/contract-development/environment-concepts.mdx). ## Soroban FAQs @@ -39,11 +39,11 @@ Soroban is not a new blockchain. Soroban is a smart contract platform integrated **How do I invoke a Soroban contract on Stellar?​** -Invoke a Soroban contract by submitting a transaction that contains the new operation: [`InvokeHostFunctionOp`](../learn/fundamentals/list-of-operations.mdx#invoke-host-function). +Invoke a Soroban contract by submitting a transaction that contains the new operation: [`InvokeHostFunctionOp`](../learn/fundamentals/transactions/list-of-operations.mdx#invoke-host-function). **Can Soroban contracts use Stellar accounts for authentication?​** -Yes. Stellar accounts are shared with Soroban. Smart contacts have access to Stellar account signer configuration and know the source account that directly invoked them in a transaction. Check out the [Authorization section](../learn/smart-contract-internals/authorization.mdx) for more information. +Yes. Stellar accounts are shared with Soroban. Smart contacts have access to Stellar account signer configuration and know the source account that directly invoked them in a transaction. Check out the [Authorization section](../learn/encyclopedia/security/authorization.mdx) for more information. **Can Soroban contracts interact with Stellar assets?​** diff --git a/docs/smart-contracts/example-contracts/TEMPLATE.mdx b/docs/smart-contracts/example-contracts/TEMPLATE.mdx index ada448a83..b7cbd3b56 100644 --- a/docs/smart-contracts/example-contracts/TEMPLATE.mdx +++ b/docs/smart-contracts/example-contracts/TEMPLATE.mdx @@ -145,14 +145,14 @@ target/wasm32-unknown-unknown/release/soroban_hello_world_contract.wasm ## Run the Contract -If you have [`soroban-cli`] installed, you can invoke contract functions using it. +If you have [`stellar-cli`] installed, you can invoke contract functions using it. ```sh -soroban contract invoke \ +stellar contract invoke \ --wasm target/wasm32-unknown-unknown/release/soroban_hello_world_contract.wasm \ --id 1 \ -- \ @@ -165,7 +165,7 @@ soroban contract invoke \ ```powershell -soroban contract invoke ` +stellar contract invoke ` --wasm target/wasm32-unknown-unknown/release/soroban_hello_world_contract.wasm ` --id 1 ` -- ` @@ -177,7 +177,7 @@ soroban contract invoke ` -[`soroban-cli`]: ../getting-started/setup.mdx#install-the-soroban-cli +[`stellar-cli`]: ../getting-started/setup.mdx#install-the-stellar-cli ## Further Reading diff --git a/docs/smart-contracts/example-contracts/alloc.mdx b/docs/smart-contracts/example-contracts/alloc.mdx index 7274913f8..2340a677c 100644 --- a/docs/smart-contracts/example-contracts/alloc.mdx +++ b/docs/smart-contracts/example-contracts/alloc.mdx @@ -104,7 +104,7 @@ extern crate alloc; Imports the `alloc` crate, which is required in order to support allocation under `no_std`. See [Contract Rust dialect] for more info about `no_std`. -[contract rust dialect]: ../../learn/smart-contract-internals/rust-dialect.mdx +[contract rust dialect]: ../../learn/encyclopedia/contract-development/rust-dialect.mdx ```rust let mut v1 = alloc::vec![]; diff --git a/docs/smart-contracts/example-contracts/auth.mdx b/docs/smart-contracts/example-contracts/auth.mdx index 12237c5f5..24fb74e76 100644 --- a/docs/smart-contracts/example-contracts/auth.mdx +++ b/docs/smart-contracts/example-contracts/auth.mdx @@ -273,10 +273,10 @@ assert_eq!(client.increment(&user_2, &4), 5); ## Build the Contract -To build the contract into a `.wasm` file, use the `soroban contract build` command. +To build the contract into a `.wasm` file, use the `stellar contract build` command. ```sh -soroban contract build +stellar contract build ``` The `.wasm` file should be found in the `target` directory after building: @@ -287,15 +287,15 @@ target/wasm32-unknown-unknown/release/soroban_auth_contract.wasm ## Run the Contract -If you have [`soroban-cli`] installed, you can invoke functions on the contract. +If you have [`stellar-cli`] installed, you can invoke functions on the contract. But since we are dealing with authorization and signatures, we need to set up some identities to use for testing and get their public keys: ```sh -soroban keys generate acc1 -soroban keys generate acc2 -soroban keys address acc1 -soroban keys address acc2 +stellar keys generate acc1 +stellar keys generate acc2 +stellar keys address acc1 +stellar keys address acc2 ``` Example output with two public keys of identities: @@ -305,14 +305,14 @@ GA6S566FD3EQDUNQ4IGSLXKW3TGVSTQW3TPHPGS7NWMCEIPBOKTNCSRU GAJGHZ44IJXYFNOVRZGBCVKC2V62DB2KHZB7BEMYOWOLFQH4XP2TAM6B ``` -Now the contract itself can be invoked. Notice the `--source` must be the identity name matching the address passed to the `--user` argument. This allows `soroban` tool to automatically sign the necessary payload for the invocation. +Now the contract itself can be invoked. Notice the `--source` must be the identity name matching the address passed to the `--user` argument. This allows `Stellar CLI` to automatically sign the necessary payload for the invocation. ```sh -soroban contract invoke \ +stellar contract invoke \ --source acc1 \ --wasm target/wasm32-unknown-unknown/release/soroban_auth_contract.wasm \ --id 1 \ @@ -327,7 +327,7 @@ soroban contract invoke \ ```powershell -soroban contract invoke ` +stellar contract invoke ` --source acc1 ` --wasm target/wasm32-unknown-unknown/release/soroban_auth_contract.wasm ` --id 1 ` @@ -348,7 +348,7 @@ Run a few more increments for both accounts. ```sh -soroban contract invoke \ +stellar contract invoke \ --source acc2 \ --wasm target/wasm32-unknown-unknown/release/soroban_auth_contract.wasm \ --id 1 \ @@ -359,7 +359,7 @@ soroban contract invoke \ ``` ```sh -soroban contract invoke \ +stellar contract invoke \ --source acc1 \ --wasm target/wasm32-unknown-unknown/release/soroban_auth_contract.wasm \ --id 1 \ @@ -370,7 +370,7 @@ soroban contract invoke \ ``` ```sh -soroban contract invoke \ +stellar contract invoke \ --source acc2 \ --wasm target/wasm32-unknown-unknown/release/soroban_auth_contract.wasm \ --id 1 \ @@ -385,7 +385,7 @@ soroban contract invoke \ ```powershell -soroban contract invoke \ +stellar contract invoke \ --source acc2 \ --wasm target/wasm32-unknown-unknown/release/soroban_auth_contract.wasm \ --id 1 \ @@ -396,7 +396,7 @@ soroban contract invoke \ ``` ```powershell -soroban contract invoke \ +stellar contract invoke \ --source acc1 \ --wasm target/wasm32-unknown-unknown/release/soroban_auth_contract.wasm \ --id 1 \ @@ -407,7 +407,7 @@ soroban contract invoke \ ``` ```powershell -soroban contract invoke \ +stellar contract invoke \ --source acc2 \ --wasm target/wasm32-unknown-unknown/release/soroban_auth_contract.wasm \ --id 1 \ @@ -421,10 +421,10 @@ soroban contract invoke \ -View the data that has been stored against each user with `soroban contract read`. +View the data that has been stored against each user with `stellar contract read`. ```sh -soroban contract read --id 1 +stellar contract read --id 1 ``` ``` @@ -439,7 +439,7 @@ It is also possible to preview the authorization payload that is being signed by ```sh -soroban contract invoke \ +stellar contract invoke \ --source acc2 \ --auth \ --wasm target/wasm32-unknown-unknown/release/soroban_auth_contract.wasm \ @@ -455,7 +455,7 @@ soroban contract invoke \ ```powershell -soroban contract invoke ` +stellar contract invoke ` --source acc2 ` --auth ` --wasm target/wasm32-unknown-unknown/release/soroban_auth_contract.wasm ` @@ -474,11 +474,11 @@ soroban contract invoke ` Contract auth: [{"address_with_nonce":null,"root_invocation":{"contract_id":"0000000000000000000000000000000000000000000000000000000000000001","function_name":"increment","args":[{"object":{"address":{"account":{"public_key_type_ed25519":"c7bab0288753d58d3e21cc3fa68cd2546b5f78ae6635a6f1b3fe07e03ee846e9"}}}},{"u32":123}],"sub_invocations":[]},"signature_args":[]}] ``` -[`soroban-cli`]: ../getting-started/setup.mdx#install-the-soroban-cli +[`stellar-cli`]: ../getting-started/setup.mdx#install-the-stellar-cli ## Further reading -[Authorization documentation](../../learn/smart-contract-internals/authorization.mdx) provides more details on how Soroban auth framework works. +[Authorization documentation](../../learn/encyclopedia/security/authorization.mdx) provides more details on how Soroban auth framework works. [Timelock](../example-contracts/timelock.mdx) and [Single Offer](../example-contracts/single-offer-sale.mdx) examples demonstrate authorizing token operations on behalf of the user, which can be extended to any nested contract invocations. diff --git a/docs/smart-contracts/example-contracts/cross-contract-call.mdx b/docs/smart-contracts/example-contracts/cross-contract-call.mdx index 0f08e9519..230e474b6 100644 --- a/docs/smart-contracts/example-contracts/cross-contract-call.mdx +++ b/docs/smart-contracts/example-contracts/cross-contract-call.mdx @@ -225,10 +225,10 @@ assert_eq!(sum, 12); ## Build the Contracts -To build the contract into a `.wasm` file, use the `soroban contract build` command. Both `contract_call/contract_a` and `contract_call/contract_b` must be built, with `contract_a` being built first. +To build the contract into a `.wasm` file, use the `stellar contract build` command. Both `contract_call/contract_a` and `contract_call/contract_b` must be built, with `contract_a` being built first. ```sh -soroban contract build +stellar contract build ``` Both `.wasm` files should be found in both contract `target` directories after building both contracts: @@ -243,20 +243,20 @@ target/wasm32-unknown-unknown/release/soroban_cross_contract_b_contract.wasm ## Run the Contract -If you have [`soroban-cli`] installed, you can invoke contract functions. Both contracts must be deployed. +If you have [`stellar-cli`] installed, you can invoke contract functions. Both contracts must be deployed. ```sh -soroban contract deploy \ +stellar contract deploy \ --wasm target/wasm32-unknown-unknown/release/soroban_cross_contract_a_contract.wasm \ --id a ``` ```sh -soroban contract deploy \ +stellar contract deploy \ --wasm target/wasm32-unknown-unknown/release/soroban_cross_contract_b_contract.wasm \ --id b ``` @@ -266,13 +266,13 @@ soroban contract deploy \ ```powershell -soroban contract deploy ` +stellar contract deploy ` --wasm target/wasm32-unknown-unknown/release/soroban_cross_contract_a_contract.wasm ` --id a ``` ```powershell -soroban contract deploy ` +stellar contract deploy ` --wasm target/wasm32-unknown-unknown/release/soroban_cross_contract_b_contract.wasm ` --id b ``` @@ -288,7 +288,7 @@ Invoke Contract B's `add_with` function, passing in values for `x` and `y` (e.g. ```sh -soroban contract invoke \ +stellar contract invoke \ --id b \ -- \ add_with \ @@ -302,7 +302,7 @@ soroban contract invoke \ ```powershell -soroban contract invoke ` +stellar contract invoke ` --id b ` -- ` add_with ` @@ -323,4 +323,4 @@ The following output should occur using the code above. Contract B's `add_with` function invoked Contract A's `add` function to do the addition. -[`soroban-cli`]: ../getting-started/setup.mdx#install-the-soroban-cli +[`stellar-cli`]: ../getting-started/setup.mdx#install-the-stellar-cli diff --git a/docs/smart-contracts/example-contracts/custom-types.mdx b/docs/smart-contracts/example-contracts/custom-types.mdx index 05205b75f..4ac165128 100644 --- a/docs/smart-contracts/example-contracts/custom-types.mdx +++ b/docs/smart-contracts/example-contracts/custom-types.mdx @@ -234,10 +234,10 @@ assert_eq!( ## Build the Contract -To build the contract, use the `soroban contract build` command. +To build the contract, use the `stellar contract build` command. ```sh -soroban contract build +stellar contract build ``` A `.wasm` file should be outputted in the `target` directory: @@ -248,14 +248,14 @@ target/wasm32-unknown-unknown/release/soroban_custom_types_contract.wasm ## Run the Contract -If you have [`soroban-cli`] installed, you can invoke contract functions in the Wasm using it. +If you have [`stellar-cli`] installed, you can invoke contract functions in the Wasm using it. ```sh -soroban contract invoke \ +stellar contract invoke \ --wasm target/wasm32-unknown-unknown/release/soroban_custom_types_contract.wasm \ --id 1 \ -- \ @@ -268,7 +268,7 @@ soroban contract invoke \ ```powershell -soroban contract invoke ` +stellar contract invoke ` --wasm target/wasm32-unknown-unknown/release/soroban_custom_types_contract.wasm ` --id 1 ` -- ` @@ -288,14 +288,14 @@ The following output should occur using the code above. Run it a few more times with different increment amounts to watch the count change. -Use the `soroban` to inspect what the counter is after a few runs. +Use the `stellar-cli` to inspect what the counter is after a few runs. ```sh -soroban contract read --id 1 --key STATE +stellar contract read --id 1 --key STATE ``` ``` STATE,"{""count"":25,""last_incr"":15}" ``` -[`soroban-cli`]: ../getting-started/setup.mdx#install-the-soroban-cli +[`stellar-cli`]: ../getting-started/setup.mdx#install-the-stellar-cli diff --git a/docs/smart-contracts/example-contracts/deployer.mdx b/docs/smart-contracts/example-contracts/deployer.mdx index 50ea7b308..2631de83e 100644 --- a/docs/smart-contracts/example-contracts/deployer.mdx +++ b/docs/smart-contracts/example-contracts/deployer.mdx @@ -452,7 +452,7 @@ target/wasm32-unknown-unknown/release/soroban_deployer_test_contract.wasm ## Run the Contract -If you have [`soroban-cli`] installed, you can invoke the contract function to deploy the test contract. +If you have [`stellar-cli`] installed, you can invoke the contract function to deploy the test contract. Before deploying the test contract with the deployer, install the test contract Wasm using the `install` command. The `install` command will print out the hash derived from the Wasm file (it's not just the hash of the Wasm file itself though) which should be used by the deployer. @@ -536,4 +536,4 @@ The following output should occur using the code above. 5 ``` -[`soroban-cli`]: ../getting-started/setup.mdx#install-the-soroban-cli +[`stellar-cli`]: ../getting-started/setup.mdx#install-the-stellar-cli diff --git a/docs/smart-contracts/example-contracts/errors.mdx b/docs/smart-contracts/example-contracts/errors.mdx index 34794114b..6c95a1d5a 100644 --- a/docs/smart-contracts/example-contracts/errors.mdx +++ b/docs/smart-contracts/example-contracts/errors.mdx @@ -289,10 +289,10 @@ client.increment(); ## Build the Contract -To build the contract, use the `soroban contract build` command. +To build the contract, use the `stellar contract build` command. ```sh -soroban contract build +stellar contract build ``` A `.wasm` file should be outputted in the `target` directory: @@ -310,7 +310,7 @@ Let's deploy the contract to Testnet so we can run it. The value provided as `-- ```sh -soroban contract deploy \ +stellar contract deploy \ --wasm target/wasm32-unknown-unknown/release/soroban_errors_contract.wasm \ --source alice \ --network testnet @@ -321,7 +321,7 @@ soroban contract deploy \ ```powershell -soroban contract deploy ` +stellar contract deploy ` --wasm target/wasm32-unknown-unknown/release/soroban_errors_contract.wasm ` --source alice ` --network testnet @@ -340,7 +340,7 @@ Now that we've deployed the contract, we can invoke it. ```sh -soroban contract invoke \ +stellar contract invoke \ --id CC3UMHVTIEH6GGDBW7MM72Q545HBDCXGU3GMIXP23PQVSBFKNZRWT37X \ --network testnet \ --source alice \ @@ -353,7 +353,7 @@ soroban contract invoke \ ```powershell -soroban contract invoke ` +stellar contract invoke ` --id CC3UMHVTIEH6GGDBW7MM72Q545HBDCXGU3GMIXP23PQVSBFKNZRWT37X ` --network testnet ` --source alice ` @@ -380,14 +380,14 @@ Caused by: ... ``` -To retrieve the current counter value, use the command `soroban contract read`. +To retrieve the current counter value, use the command `stellar contract read`. ```sh -soroban contract read \ +stellar contract read \ --id CC3UMHVTIEH6GGDBW7MM72Q545HBDCXGU3GMIXP23PQVSBFKNZRWT37X \ --network testnet \ --source alice \ @@ -400,7 +400,7 @@ soroban contract read \ ```powershell -soroban contract read ` +stellar contract read ` --id CC3UMHVTIEH6GGDBW7MM72Q545HBDCXGU3GMIXP23PQVSBFKNZRWT37X ` --network testnet ` --source alice ` @@ -412,4 +412,4 @@ soroban contract read ` -[`soroban-cli`]: ../getting-started/setup.mdx#install-the-soroban-cli +[`stellar-cli`]: ../getting-started/setup.mdx#install-the-stellar-cli diff --git a/docs/smart-contracts/example-contracts/events.mdx b/docs/smart-contracts/example-contracts/events.mdx index cbca44e59..907425443 100644 --- a/docs/smart-contracts/example-contracts/events.mdx +++ b/docs/smart-contracts/example-contracts/events.mdx @@ -221,10 +221,10 @@ assert_eq!( ## Build the Contract -To build the contract, use the `soroban contract build` command. +To build the contract, use the `stellar contract build` command. ```sh -soroban contract build +stellar contract build ``` A `.wasm` file should be outputted in the `target` directory: @@ -235,14 +235,14 @@ target/wasm32-unknown-unknown/release/soroban_events_contract.wasm ## Run the Contract -If you have [`soroban-cli`] installed, you can invoke contract functions in the using it. +If you have [`stellar-cli`] installed, you can invoke contract functions in the using it. ```sh -soroban contract invoke \ +stellar contract invoke \ --wasm target/wasm32-unknown-unknown/release/soroban_events_contract.wasm \ --id 1 \ -- \ @@ -254,7 +254,7 @@ soroban contract invoke \ ```powershell -soroban contract invoke ` +stellar contract invoke ` --wasm target/wasm32-unknown-unknown/release/soroban_events_contract.wasm ` --id 1 ` -- ` @@ -274,4 +274,4 @@ The following output should occur using the code above. A single event `#0` is outputted, which is the contract event the contract published. The event contains the two topics, each a `symbol` (displayed as bytes), and the data object containing the `u32`. -[`soroban-cli`]: ../getting-started/setup.mdx#install-the-soroban-cli +[`stellar-cli`]: ../getting-started/setup.mdx#install-the-stellar-cli diff --git a/docs/smart-contracts/example-contracts/liquidity-pool.mdx b/docs/smart-contracts/example-contracts/liquidity-pool.mdx index 5a533df73..513fcb915 100644 --- a/docs/smart-contracts/example-contracts/liquidity-pool.mdx +++ b/docs/smart-contracts/example-contracts/liquidity-pool.mdx @@ -29,7 +29,7 @@ Soroban liquidity pools are exclusive to Soroban and cannot interact with built- Implementing a custom liquidity pool should be done cautiously. User funds are involved, so great care should be taken to ensure safety and transparency. The example here should _not_ be considered a ready-to-go contract. Please use it as a reference only. -The Stellar network already has liquidity pool functionality built right in to the core protocol. [Learn more here](../../learn/encyclopedia/liquidity-on-stellar-sdex-liquidity-pools.mdx). +The Stellar network already has liquidity pool functionality built right in to the core protocol. [Learn more here](../../learn/encyclopedia/sdex/liquidity-on-stellar-sdex-liquidity-pools.mdx). ::: @@ -869,10 +869,10 @@ These tests examine the "typical" use-case of a liquidity pool, ensuring that th ## Build the Contract -To build the contract, use the `soroban contract build` command. +To build the contract, use the `stellar contract build` command. ```sh -soroban contract build +stellar contract build ``` A `.wasm` file should be outputted in the `target` directory: @@ -883,14 +883,14 @@ target/wasm32-unknown-unknown/release/soroban_liquidity_pool_contract.wasm ## Run the Contract -If you have [`soroban-cli`] installed, you can invoke contract functions using it. +If you have [`stellar-cli`] installed, you can invoke contract functions using it. ```sh -soroban contract invoke \ +stellar contract invoke \ --wasm target/wasm32-unknown-unknown/release/soroban_liquidity_pool_contract.wasm \ --id 1 \ -- \ @@ -907,7 +907,7 @@ soroban contract invoke \ ```powershell -soroban contract invoke ` +stellar contract invoke ` --wasm target/wasm32-unknown-unknown/release/soroban_liquidity_pool_contract.wasm ` --id 1 ` -- ` @@ -923,4 +923,4 @@ soroban contract invoke ` -[`soroban-cli`]: ../../tools/developer-tools.mdx#cli +[`stellar-cli`]: ../../tools/developer-tools.mdx#cli diff --git a/docs/smart-contracts/example-contracts/logging.mdx b/docs/smart-contracts/example-contracts/logging.mdx index 723bb894c..77cc99cf5 100644 --- a/docs/smart-contracts/example-contracts/logging.mdx +++ b/docs/smart-contracts/example-contracts/logging.mdx @@ -96,11 +96,11 @@ Ref: https://github.com/stellar/soroban-examples/tree/v20.0.0/logging ## How it Works -The [`log!`] macro logs a string. Any logs that occur during execution are outputted to stdout in [`soroban-cli`] and available for tests to assert on or print. +The [`log!`] macro logs a string. Any logs that occur during execution are outputted to stdout in [`stellar-cli`] and available for tests to assert on or print. Logs are only outputted if the contract is built with the `debug-assertions` compiler option enabled. This makes them efficient to leave in code permanently since a regular `release` build will omit them. -Logs are only recorded in Soroban environments that have logging enabled. The only Soroban environments where logging is enabled is in Rust tests, and in the [`soroban-cli`]. +Logs are only recorded in Soroban environments that have logging enabled. The only Soroban environments where logging is enabled is in Rust tests, and in the [`stellar-cli`]. Open the files above to follow along. @@ -208,14 +208,14 @@ std::println!("{}", logs.join("\n")); ## Build the Contract -To build the contract, use the `soroban contract build` command. +To build the contract, use the `stellar contract build` command. ### Without Logs To build the contract without logs, use the `--release` option. ```sh -soroban contract build +stellar contract build ``` A `.wasm` file should be outputted in the `target` directory, in the `release` subdirectory: @@ -229,7 +229,7 @@ target/wasm32-unknown-unknown/release/soroban_logging_contract.wasm To build the contract with logs, use the `--profile release-with-logs` option. ```sh -soroban contract build --profile release-with-logs +stellar contract build --profile release-with-logs ``` A `.wasm` file should be outputted in the `target` directory, in the `release-with-logs` subdirectory: @@ -240,14 +240,14 @@ target/wasm32-unknown-unknown/release-with-logs/soroban_logging_contract.wasm ## Run the Contract -If you have [`soroban-cli`] installed, you can invoke contract functions in the using it. Specify the `-v` option to enable verbose logs. +If you have [`stellar-cli`] installed, you can invoke contract functions in the using it. Specify the `-v` option to enable verbose logs. ```sh -soroban -v contract invoke \ +stellar -v contract invoke \ --wasm target/wasm32-unknown-unknown/release-with-logs/soroban_logging_contract.wasm \ --id 1 \ -- \ @@ -260,7 +260,7 @@ soroban -v contract invoke \ ```powershell -soroban -v contract invoke ` +stellar -v contract invoke ` --wasm target/wasm32-unknown-unknown/release-with-logs/soroban_logging_contract.wasm ` --id 1 ` -- ` @@ -275,8 +275,8 @@ soroban -v contract invoke ` The output should include the following line. ``` -soroban_cli::log::event::contract_log: log="Hello Symbol(me)" +stellar_cli::log::event::contract_log: log="Hello Symbol(me)" ``` [`log!`]: https://docs.rs/soroban-sdk/latest/soroban_sdk/macro.log.html -[`soroban-cli`]: ../getting-started/setup.mdx#install-the-soroban-cli +[`stellar-cli`]: ../getting-started/setup.mdx#install-the-stellar-cli diff --git a/docs/smart-contracts/example-contracts/timelock.mdx b/docs/smart-contracts/example-contracts/timelock.mdx index a0f2be581..0b84d1f0f 100644 --- a/docs/smart-contracts/example-contracts/timelock.mdx +++ b/docs/smart-contracts/example-contracts/timelock.mdx @@ -27,4 +27,4 @@ The contract accepts deposits of an amount of a token, and allows other users to [oigp]: https://gitpod.io/#https://github.com/stellar/soroban-examples/tree/v20.0.0 [timelock example]: https://github.com/stellar/soroban-examples/tree/v20.0.0/timelock -[claimable balance]: ../../learn/encyclopedia/claimable-balances.mdx +[claimable balance]: ../../learn/encyclopedia/transactions-specialized/claimable-balances.mdx diff --git a/docs/smart-contracts/getting-started/create-an-app.mdx b/docs/smart-contracts/getting-started/create-an-app.mdx index 43fc4a37d..3a12ed929 100644 --- a/docs/smart-contracts/getting-started/create-an-app.mdx +++ b/docs/smart-contracts/getting-started/create-an-app.mdx @@ -16,12 +16,12 @@ Let's get started. You're going to need [Node.js](https://nodejs.org/en/download/package-manager/) v18.14.1 or greater. If you haven't yet, install it now. -We want to initialize our current project as an Astro project. To do this, we can again turn to the `soroban contract init` command, which has a `--frontend-template` flag that allows us to pass the url of a frontend template repository. As we learned in [Storing Data](storing-data.mdx#adding-the-increment-contract), `soroban contract init` will not overwrite existing files, and is safe to use to add to an existing project. +We want to initialize our current project as an Astro project. To do this, we can again turn to the `stellar contract init` command, which has a `--frontend-template` flag that allows us to pass the url of a frontend template repository. As we learned in [Storing Data](storing-data.mdx#adding-the-increment-contract), `stellar contract init` will not overwrite existing files, and is safe to use to add to an existing project. -From our `getting-started-tutorial` directory, run the following command to add the Astro template files. +From our `soroban-hello-world` directory, run the following command to add the Astro template files. ```sh -soroban contract init ./ \ +stellar contract init ./ \ --frontend-template https://github.com/stellar/soroban-astro-template ``` @@ -48,14 +48,14 @@ This will add the following to your project, which we'll go over in more detail ## Generate an NPM package for the Hello World contract -Before we open the new frontend files, let's generate an NPM package for the Hello World contract. This is our suggested way to interact with contracts from frontends. These generated libraries work with any JavaScript project (not a specific UI like React), and make it easy to work with some of the trickiest bits of Soroban, like encoding [XDR](../../learn/smart-contract-internals/types/fully-typed-contracts.mdx). +Before we open the new frontend files, let's generate an NPM package for the Hello World contract. This is our suggested way to interact with contracts from frontends. These generated libraries work with any JavaScript project (not a specific UI like React), and make it easy to work with some of the trickiest bits of Soroban, like encoding [XDR](../../learn/encyclopedia/contract-development/types/fully-typed-contracts.mdx). -This is going to use the CLI command `soroban contract bindings typescript`: +This is going to use the CLI command `stellar contract bindings typescript`: ```bash -soroban contract bindings typescript \ +stellar contract bindings typescript \ --network testnet \ - --contract-id $(cat .soroban/contract-ids/hello_world.txt) \ + --contract-id $(cat .stellar/contract-ids/hello_world.txt) \ --output-dir packages/hello_world ``` @@ -403,7 +403,7 @@ If you want to take it a bit further and make sure you understand all the pieces - Make a `src/contracts` folder with a `greeter.ts` and an `incrementor.ts`. Move the `new Contract({ ... })` logic into those files. You may also want to extract the `rpcUrl` variable to a `src/contracts/utils.ts` file. - Add a `get_value` method to the `increment` contract, and use it to display the current value in the `Counter` component. When you run `npm run dev`, the `initialize` script will run and update the contract and the generated client. - Add a "Decrement" button to the `Counter` component. -- [Deploy](https://docs.astro.build/en/guides/deploy/) your frontend. You can do this quickly and for free [with GitHub](https://docs.astro.build/en/guides/deploy/github/). If you get stuck installing soroban-cli and deploying contracts on GitHub, check out [how we did this](https://github.com/AhaLabs/soroban-tutorial-project/commit/c1f4cfde1bbaf059507100767ee6b43d29b42914). +- [Deploy](https://docs.astro.build/en/guides/deploy/) your frontend. You can do this quickly and for free [with GitHub](https://docs.astro.build/en/guides/deploy/github/). If you get stuck installing stellar-cli and deploying contracts on GitHub, check out [how we did this](https://github.com/AhaLabs/soroban-tutorial-project/commit/c1f4cfde1bbaf059507100767ee6b43d29b42914). - Rather than using NPM scripts for everything, try using a more elegant script runner such as [just](https://github.com/casey/just). The existing npm `scripts` can then call `just`, such as `"setup": "just setup"`. - Update the README to explain what this project is and how to use it to potential collaborators and employers 😉 @@ -417,9 +417,9 @@ Here are some common issues and how to fix them. Sometimes the call to `hello` can start failing. You can obviously stub out the call and define `result` some other way to troubleshoot. -One of the common problems here is that the contract becomes [archived](../../learn/smart-contract-internals/state-archival.mdx). To check if this is the problem, you can re-run `npm run init`. +One of the common problems here is that the contract becomes [archived](../../learn/encyclopedia/storage/state-archival.mdx). To check if this is the problem, you can re-run `npm run init`. -If you're still having problems, join our Discord (link above) or [open an issue in GitHub](https://github.com/stellar/soroban-docs/issues/new/choose). +If you're still having problems, join our Discord (link above) or [open an issue in GitHub](https://github.com/stellar/stellar-docs/issues/new/choose). ### All contract calls start throwing `403` errors @@ -431,11 +431,13 @@ Some of the things we did in this section: - We learned about Astro's no-JS-by-default approach - We added Astro components and learned how their `script` and `style` tags work -- We saw how easy it is to interact with Soroban contracts from JavaScript by generating client libraries using `soroban contract bindings typescript` +- We saw how easy it is to interact with smart contracts from JavaScript by generating client libraries using `stellar contract bindings typescript` - We learned about wallets and Freighter -At this point, you've seen a full end-to-end example of building on Soroban! What's next? You choose! You can: +At this point, you've seen a full end-to-end example of building a contract on Stellar! What's next? You choose! You can: - See more complex example contracts in the [Tutorials](../example-contracts/README.mdx) section. -- Learn more about the [internal architecture and design](../../learn/smart-contract-internals/README.mdx) of Soroban. + +- Learn more about the [internal architecture and design](../../learn/encyclopedia/contract-development/) of smart contract on Stellar. + - Check out a more full-featured [example app](https://github.com/stellar/soroban-example-dapp), which uses React rather than vanilla JavaScript and Next.js rather than Astro. This app also has a more complex setup & initialization process, with the option of using a [locally-hosted RPC node](/network/soroban-rpc/admin-guide). diff --git a/docs/smart-contracts/getting-started/hello-world.mdx b/docs/smart-contracts/getting-started/hello-world.mdx index 0a28dcd8b..3497ccc28 100644 --- a/docs/smart-contracts/getting-started/hello-world.mdx +++ b/docs/smart-contracts/getting-started/hello-world.mdx @@ -19,14 +19,14 @@ description: Create your first smart contract in Rust. import Tabs from "@theme/Tabs"; import TabItem from "@theme/TabItem"; -Once you've [set up](./setup.mdx) your development environment, you're ready to create your first Soroban contract. +Once you've [set up](./setup.mdx) your development environment, you're ready to create your first smart contract. ## Create a New Project -Create a new project using the `init` command to create a `getting-started-tutorial` project. +Create a new project using the `init` command to create a `soroban-hello-world` project. ```sh -soroban contract init soroban-hello-world +stellar contract init soroban-hello-world ``` The `init` command will create a Rust workspace project, using the recommended structure for including Soroban contracts. Let’s take a look at the project structure: @@ -46,7 +46,7 @@ The `init` command will create a Rust workspace project, using the recommended s ### Cargo.toml -The `Cargo.toml` file at the root of the project is set up as Rust Workspace, which allows us to include multiple Soroban contracts in one project. +The `Cargo.toml` file at the root of the project is set up as Rust Workspace, which allows us to include multiple smart contracts in one project. #### Rust Workspace @@ -89,7 +89,7 @@ lto = true #### `release-with-logs` Profile -Configuring a `release-with-logs` profile can be useful if you need to build a `.wasm` file that has logs enabled for printing debug logs when using the [`soroban-cli`]. Note that this is not necessary to access debug logs in tests or to use a step-through-debugger. +Configuring a `release-with-logs` profile can be useful if you need to build a `.wasm` file that has logs enabled for printing debug logs when using the [`stellar-cli`]. Note that this is not necessary to access debug logs in tests or to use a step-through-debugger. ```toml [profile.release-with-logs] @@ -260,10 +260,10 @@ The contract is registered with the environment using the contract type. Contrac let contract_id = env.register_contract(None, Contract); ``` -All public functions within an `impl` block that is annotated with the `#[contractimpl]` attribute have a corresponding function generated in a generated client type. The client type will be named the same as the contract type with `Client` appended. For example, in our contract the contract type is `Contract`, and the client is named `ContractClient`. +All public functions within an `impl` block that is annotated with the `#[contractimpl]` attribute have a corresponding function generated in a generated client type. The client type will be named the same as the contract type with `Client` appended. For example, in our contract the contract type is `HelloContract`, and the client is named `HelloContractClient`. ```rust -let client = ContractClient::new(&env, &contract_id); +let client = HelloContractClient::new(&env, &contract_id); let words = client.hello(&symbol_short!("Dev")); ``` @@ -299,10 +299,10 @@ The first time you run the tests you may see output in the terminal of cargo com ## Build the contract -To build a Soroban contract to deploy or run, use the `soroban contract build` command. +To build a smart contract to deploy or run, use the `stellar contract build` command. ```sh -soroban contract build +stellar contract build ``` This is a small wrapper around `cargo build` that sets the target to `wasm32-unknown-unknown` and the profile to `release`. You can think of it as a shortcut for the following command: @@ -313,20 +313,20 @@ cargo build --target wasm32-unknown-unknown --release A `.wasm` file will be outputted in the `target` directory, at `target/wasm32-unknown-unknown/release/hello_world.wasm`. The `.wasm` file is the built contract. -The `.wasm` file contains the logic of the contract, as well as the contract's [specification / interface types](../../learn/smart-contract-internals/types/fully-typed-contracts.mdx), which can be imported into other contracts who wish to call it. This is the only artifact needed to deploy the contract, share the interface with others, or integration test against the contract. +The `.wasm` file contains the logic of the contract, as well as the contract's [specification / interface types](../../learn/encyclopedia/contract-development/types/fully-typed-contracts.mdx), which can be imported into other contracts who wish to call it. This is the only artifact needed to deploy the contract, share the interface with others, or integration test against the contract. ## Optimizing Builds -Use `soroban contract optimize` to further minimize the size of the `.wasm`. First, re-install soroban-cli with the `opt` feature: +Use `stellar contract optimize` to further minimize the size of the `.wasm`. First, re-install stellar-cli with the `opt` feature: ```sh -cargo install --locked soroban-cli --features opt +cargo install --locked stellar-cli --features opt ``` Then build an optimized `.wasm` file: ```sh -soroban contract optimize --wasm target/wasm32-unknown-unknown/release/hello_world.wasm +stellar contract optimize --wasm target/wasm32-unknown-unknown/release/hello_world.wasm ``` This will optimize and output a new `hello_world.optimized.wasm` file in the same location as the input `.wasm`. @@ -344,4 +344,4 @@ In this section, we wrote a simple contract that can be deployed to a Soroban ne Next we'll learn to deploy the HelloWorld contract to Stellar's Testnet network and interact with it over RPC using the CLI. [rust unit tests]: https://doc.rust-lang.org/rust-by-example/testing/unit_testing.html -[`soroban-cli`]: setup.mdx#install-the-soroban-cli +[`stellar-cli`]: setup.mdx#install-the-stellar-cli diff --git a/docs/smart-contracts/getting-started/setup.mdx b/docs/smart-contracts/getting-started/setup.mdx index 511a3d8ec..05164e16b 100644 --- a/docs/smart-contracts/getting-started/setup.mdx +++ b/docs/smart-contracts/getting-started/setup.mdx @@ -21,13 +21,13 @@ import Tabs from "@theme/Tabs"; import TabItem from "@theme/TabItem"; import { getPlatform } from "@site/src/helpers/getPlatform"; -Soroban contracts are small programs written in the [Rust] programming language. +Stellar smart contracts are small programs written in the [Rust] programming language. To build and develop contracts you need only a couple prerequisites: - A [Rust] toolchain - An editor that supports Rust -- [Soroban CLI] +- [Stellar CLI] ## Install Rust @@ -45,7 +45,7 @@ On Windows, download and run [rustup-init.exe](https://static.rust-lang.org/rust :::tip -The soroban CLI uses emojis in its output. To properly render them on Windows, it is recommended to use the [Windows Terminal](https://learn.microsoft.com/en-us/windows/terminal/). See [how to install Windows Terminal](https://learn.microsoft.com/en-us/windows/terminal/install) on Microsoft Learn. If the CLI is used in the built in Windows Command Prompt or Windows PowerShell the CLI will function as expected but the emojis will appear as question marks. +The Stellar CLI uses emojis in its output. To properly render them on Windows, it is recommended to use the [Windows Terminal](https://learn.microsoft.com/en-us/windows/terminal/). See [how to install Windows Terminal](https://learn.microsoft.com/en-us/windows/terminal/install) on Microsoft Learn. If the CLI is used in the built in Windows Command Prompt or Windows PowerShell the CLI will function as expected but the emojis will appear as question marks. ::: @@ -77,56 +77,57 @@ A popular editor is Visual Studio Code: [rust analyzer]: https://marketplace.visualstudio.com/items?itemName=rust-lang.rust-analyzer [codelldb]: https://marketplace.visualstudio.com/items?itemName=vadimcn.vscode-lldb -## Install the Soroban CLI +## Install the Stellar CLI -The [Soroban CLI](http://github.com/stellar/soroban-cli) can execute Soroban contracts in the same environment the contract will execute on network, however in a local sandbox. +The [Stellar CLI](https://github.com/stellar/stellar-cli) can execute smart contracts in the same environment the contract will execute on network, however in a local sandbox. -Install the [latest released version](https://github.com/stellar/soroban-cli/releases) of Soroban CLI using `cargo install`. +Install the [latest released version](https://github.com/stellar/stellar-cli/releases) of Stellar CLI using `cargo install`. ```sh -cargo install --locked soroban-cli +cargo install --locked stellar-cli ``` :::info -Report issues and share feedback about the Soroban CLI [here](https://github.com/stellar/soroban-cli/issues/new/choose). +Report issues and share feedback about the Stellar CLI [here](https://github.com/stellar/stellar-cli/issues/new/choose). ::: ### Usage -Run the `soroban` command and you should see output like below. +Run the `stellar` command and you should see output like below. ```sh -soroban +stellar ``` ```console -$ soroban +$ stellar Build, deploy, & interact with contracts; set identities to sign with; configure networks; generate keys; and more. -Intro: https://soroban.stellar.org -CLI Reference: https://github.com/stellar/soroban-tools/tree/main/docs/soroban-cli-full-docs.md +Stellar Docs: https://developers.stellar.org +CLI Reference: https://github.com/stellar/stellar-cli/blob/main/FULL_HELP_DOCS.md -Usage: soroban [OPTIONS] +Usage: stellar [OPTIONS] Commands: completion Print shell completion code for the specified shell - config Deprecated, use `soroban keys` and `soroban network` instead contract Tools for smart contract developers events Watch the network for contract events keys Create and manage identities including keys and addresses - lab Experiment with early features and expert tools + xdr Decode and encode XDR network Start and configure networks version Print version information + cache Cache for tranasctions and contract specs Options: --global Use global config - -f, --filter-logs Filter logs output. To turn on "soroban_cli::log::footprint=debug" or off "=off". Can also use env var `RUST_LOG` + -f, --filter-logs Filter logs output. To turn on "stellar_cli::log::footprint=debug" or off "=off". Can also use env var `RUST_LOG` -q, --quiet Do not write logs to stderr including `INFO` -v, --verbose Log DEBUG events --very-verbose Log DEBUG and TRACE events [aliases: vv] - --list List installed plugins. E.g. `soroban-hello` + --list List installed plugins. E.g. `stellar-hello` + --no-cache Do not cache your simulations and transactions [env: STELLAR_NO_CACHE=] -h, --help Print help (see more with '--help') -V, --version Print version @@ -136,18 +137,18 @@ TESTING_OPTIONS: :::tip -You can use `soroban completion` to generate shell completion for `bash`, `elvish`, `fish`, `powershell`, and `zsh`. You should absolutely try it out. It will feel like a super power! +You can use `stellar completion` to generate shell completion for `bash`, `elvish`, `fish`, `powershell`, and `zsh`. You should absolutely try it out. It will feel like a super power! To enable autocomplete in the current bash shell, run: ```sh -source <(soroban completion --shell bash) +source <(stellar completion --shell bash) ``` To enable autocomplete permanently in future bash shells, run: ```sh -echo "source <(soroban completion --shell bash)" >> ~/.bashrc +echo "source <(stellar completion --shell bash)" >> ~/.bashrc ``` Users of non-bash shells may need to adapt the above commands to suit their needs. @@ -156,7 +157,7 @@ Users of non-bash shells may need to adapt the above commands to suit their need ### Configuring the CLI for Testnet -Soroban has a test network called Testnet that you can use to deploy and test your smart contracts. It's a live network, but it's not the same as the Stellar public network. It's a separate network that is used for development and testing, so you can't use it for production apps. But it's a great place to test your contracts before you deploy them to the public network. +Stellar has a test network called Testnet that you can use to deploy and test your smart contracts. It's a live network, but it's not the same as the Stellar public network. It's a separate network that is used for development and testing, so you can't use it for production apps. But it's a great place to test your contracts before you deploy them to the public network. To configure your CLI to interact with Testnet, run the following command: @@ -165,7 +166,7 @@ To configure your CLI to interact with Testnet, run the following command: ```sh -soroban network add \ +stellar network add \ --global testnet \ --rpc-url https://soroban-testnet.stellar.org:443 \ --network-passphrase "Test SDF Network ; September 2015" @@ -176,7 +177,7 @@ soroban network add \ ```powershell -soroban network add ` +stellar network add ` --global testnet ` --rpc-url https://soroban-testnet.stellar.org:443 ` --network-passphrase "Test SDF Network ; September 2015" @@ -186,7 +187,7 @@ soroban network add ` -Note the `--global` flag. This creates a file in your home folder's `~/.config/soroban/network/testnet.toml` with the settings you specified. This means that you can use the `--network testnet` flag in any Soroban CLI command to use this network from any directory or filepath on your system. +Note the `--global` flag. This creates a file in your home folder's `~/.config/soroban/network/testnet.toml` with the settings you specified. This means that you can use the `--network testnet` flag in any Stellar CLI command to use this network from any directory or filepath on your system. If you want project-specific network configurations, you can omit the `--global` flag, and the networks will be added to your working directory's `.soroban/network` folder instead. @@ -197,18 +198,18 @@ When you deploy a smart contract to a network, you need to specify an identity t Let's configure an identity called `alice`. You can use any name you want, but it might be nice to have some named identities that you can use for testing, such as [`alice`, `bob`, and `carol`](https://en.wikipedia.org/wiki/Alice_and_Bob). ```sh -soroban keys generate --global alice --network testnet +stellar keys generate --global alice --network testnet ``` You can see the public key of `alice` with: ```sh -soroban keys address alice +stellar keys address alice ``` Like the Network configs, the `--global` means that the identity gets stored in `~/.config/soroban/identity/alice.toml`. You can omit the `--global` flag to store the identity in your project's `.soroban/identity` folder instead. -By default, `soroban keys generate` will fund the account using [Friendbot](https://developers.stellar.org/docs/fundamentals-and-concepts/testnet-and-pubnet#friendbot). To disable this behavior, append `--no-fund` to the command when running it. +By default, `stellar keys generate` will fund the account using [Friendbot](https://developers.stellar.org/docs/fundamentals-and-concepts/testnet-and-pubnet#friendbot). To disable this behavior, append `--no-fund` to the command when running it. [rust]: https://www.rust-lang.org/ -[soroban cli]: setup.mdx#install-the-soroban-cli +[stellar cli]: setup.mdx#install-the-stellar-cli diff --git a/docs/smart-contracts/getting-started/storing-data.mdx b/docs/smart-contracts/getting-started/storing-data.mdx index a208b7791..25cabb898 100644 --- a/docs/smart-contracts/getting-started/storing-data.mdx +++ b/docs/smart-contracts/getting-started/storing-data.mdx @@ -29,7 +29,7 @@ This tutorial assumes that you've already completed the previous steps in Gettin The `soroban contract init` command allows us to initialize a new project with any of the example contracts from the [soroban-examples](https://github.com/stellar/soroban-examples) repo, using the `--with-example` (or `-w`) flag. -It will not overwrite existing files, so we can also use this command to add a new contract to an existing project. Run the command again with a `--with-example` flag to add an `increment` contract to our project. From inside our `getting-started-tutorial` directory, run: +It will not overwrite existing files, so we can also use this command to add a new contract to an existing project. Run the command again with a `--with-example` flag to add an `increment` contract to our project. From inside our `soroban-hello-world` directory, run: ```sh soroban contract init ./ --with-example increment @@ -116,7 +116,7 @@ The `get()` function gets the current value associated with the counter key. If no value is currently stored, the value given to `unwrap_or(...)` is returned instead. -Values stored as contract data and retrieved are transmitted from [the environment](../../learn/smart-contract-internals/environment-concepts.mdx) and expanded into the type specified. In this case a `u32`. If the value can be expanded, the type returned will be a `u32`. Otherwise, if a developer caused it to be some other type, a panic would occur at the unwrap. +Values stored as contract data and retrieved are transmitted from [the environment](../../learn/encyclopedia/contract-development/environment-concepts.mdx) and expanded into the type specified. In this case a `u32`. If the value can be expanded, the type returned will be a `u32`. Otherwise, if a developer caused it to be some other type, a panic would occur at the unwrap. ```rust env.storage() @@ -132,13 +132,13 @@ The `set()` function stores the new count value against the key, replacing the e env.storage().instance().extend_ttl(100, 100); ``` -All contract data has a Time To Live (TTL), measured in ledgers, that must be periodically extended. If an entry's TTL is not periodically extended, the entry will eventually become "archived." You can learn more about this in the [State Archival](../../learn/smart-contract-internals/state-archival.mdx) document. +All contract data has a Time To Live (TTL), measured in ledgers, that must be periodically extended. If an entry's TTL is not periodically extended, the entry will eventually become "archived." You can learn more about this in the [State Archival](../../learn/encyclopedia/storage/state-archival.mdx) document. For now, it's worth knowing that there are three kinds of storage: `Persistent`, `Temporary`, and `Instance`. This contract only uses `Instance` storage: `env.storage().instance()`. Every time the counter is incremented, this storage's TTL gets extended by 100 [ledgers](https://developers.stellar.org/docs/fundamentals-and-concepts/stellar-data-structures/ledgers), or about 500 seconds. ### Build the contract -From inside `getting-started-tutorial`, run: +From inside `soroban-hello-world`, run: ```sh soroban contract build diff --git a/docs/smart-contracts/guides/archival/test-ttl-extension.mdx b/docs/smart-contracts/guides/archival/test-ttl-extension.mdx index 98d7d84ea..a88dfe5d7 100644 --- a/docs/smart-contracts/guides/archival/test-ttl-extension.mdx +++ b/docs/smart-contracts/guides/archival/test-ttl-extension.mdx @@ -3,7 +3,7 @@ title: Test TTL extension logic in Smart Contracts hide_table_of_contents: true --- -In order to test contracts that extend the contract data [TTL](../../../learn/smart-contract-internals/state-archival.mdx#ttl) via `extend_ttl` storage operations, you can use the TTL getter operation (`get_ttl`) in combination with manipulating the ledger sequence number. Note, that `get_ttl` function is only available for tests and only in Soroban SDK v21+. +In order to test contracts that extend the contract data [TTL](../../../learn/encyclopedia/storage/state-archival.mdx#ttl) via `extend_ttl` storage operations, you can use the TTL getter operation (`get_ttl`) in combination with manipulating the ledger sequence number. Note, that `get_ttl` function is only available for tests and only in Soroban SDK v21+. ## Example diff --git a/docs/smart-contracts/guides/cli/README.mdx b/docs/smart-contracts/guides/cli/README.mdx index 9b25a5692..43943e489 100644 --- a/docs/smart-contracts/guides/cli/README.mdx +++ b/docs/smart-contracts/guides/cli/README.mdx @@ -1,8 +1,8 @@ --- -title: Soroban CLI +title: Stellar CLI hide_table_of_contents: true --- -The [Soroban CLI] is a crucial tool for developers to use while creating and interacting with Soroban smart contracts. +The [Stellar CLI] is a crucial tool for developers to use while creating and interacting with Soroban smart contracts. -[soroban cli]: ../../../tools/developer-tools.mdx#cli +[stellar cli]: ../../../tools/developer-tools.mdx#cli diff --git a/docs/smart-contracts/guides/cli/deploy-contract.mdx b/docs/smart-contracts/guides/cli/deploy-contract.mdx index f26426f20..103c3294a 100644 --- a/docs/smart-contracts/guides/cli/deploy-contract.mdx +++ b/docs/smart-contracts/guides/cli/deploy-contract.mdx @@ -3,7 +3,7 @@ title: Deploy a Contract from Installed Wasm Bytecode hide_table_of_contents: true --- -To deploy an instance of a compiled smart contract that has already been isntalled onto the Stellar network, use the `soroban contract deploy` command: +To deploy an instance of a compiled smart contract that has already been installed onto the Stellar network, use the `soroban contract deploy` command: ```bash soroban contract deploy \ diff --git a/docs/smart-contracts/guides/cli/deploy-stellar-asset-contract.mdx b/docs/smart-contracts/guides/cli/deploy-stellar-asset-contract.mdx index dbdbfa2c0..1f13d36c5 100644 --- a/docs/smart-contracts/guides/cli/deploy-stellar-asset-contract.mdx +++ b/docs/smart-contracts/guides/cli/deploy-stellar-asset-contract.mdx @@ -3,11 +3,11 @@ title: Deploy the Stellar Asset Contract for a Stellar Asset hide_table_of_contents: true --- -The Soroban CLI can deploy a [Stellar Asset Contract] for a Stellar asset so that any Soroban contract can interact with the asset. +The Stellar CLI can deploy a [Stellar Asset Contract] for a Stellar asset so that any Stellar smart contract can interact with the asset. Every Stellar asset has reserved a contract that anyone can deploy. Once deployed any contract can interact with that asset by holding a balance of the asset, receiving the asset, or sending the asset. -Deploying the Stellar Asset Contract for a Stellar asset enables that asset for use on Soroban. +Deploying the Stellar Asset Contract for a Stellar asset enables that asset for use in smart contracts. The Stellar Asset Contract can be deployed for any possible Stellar asset, either assets already in use on Stellar or assets that have never seen any activity. This means that the issuer doesn't need to have been created, and no one needs to be yet holding the asset on Stellar. diff --git a/docs/smart-contracts/guides/cli/extend-contract-instance.mdx b/docs/smart-contracts/guides/cli/extend-contract-instance.mdx index b70db7483..8148c2f48 100644 --- a/docs/smart-contracts/guides/cli/extend-contract-instance.mdx +++ b/docs/smart-contracts/guides/cli/extend-contract-instance.mdx @@ -3,7 +3,7 @@ title: Extend a deployed contract instance's TTL hide_table_of_contents: true --- -You can use the Soroban CLI to extend the TTL of a contract instance like so: +You can use the Stellar CLI to extend the TTL of a contract instance like so: ```bash soroban contract extend \ diff --git a/docs/smart-contracts/guides/cli/extend-contract-storage.mdx b/docs/smart-contracts/guides/cli/extend-contract-storage.mdx index a7c7d04e0..0f3c6bf05 100644 --- a/docs/smart-contracts/guides/cli/extend-contract-storage.mdx +++ b/docs/smart-contracts/guides/cli/extend-contract-storage.mdx @@ -3,7 +3,7 @@ title: Extend a deployed contract's storage entry TTL hide_table_of_contents: true --- -You can use the Soroban CLI to extend the TTL of a contract's persistent storage entry. For a storage entry that uses a simple `Symbol` as its storage key, you can run a command like so: +You can use the Stellar CLI to extend the TTL of a contract's persistent storage entry. For a storage entry that uses a simple `Symbol` as its storage key, you can run a command like so: ```bash soroban contract extend \ diff --git a/docs/smart-contracts/guides/cli/extend-contract-wasm.mdx b/docs/smart-contracts/guides/cli/extend-contract-wasm.mdx index 21de9824e..214fbd23b 100644 --- a/docs/smart-contracts/guides/cli/extend-contract-wasm.mdx +++ b/docs/smart-contracts/guides/cli/extend-contract-wasm.mdx @@ -3,7 +3,7 @@ title: Extend a deployed contract's Wasm code TTL hide_table_of_contents: true --- -You can use the Soroban CLI to extend the TTL of a contract's Wasm bytecode. This can be done in two forms: if you do or do not have the compiled contract locally. If you do have the compiled binary on your local machine: +You can use the Stellar CLI to extend the TTL of a contract's Wasm bytecode. This can be done in two forms: if you do or do not have the compiled contract locally. If you do have the compiled binary on your local machine: ```bash soroban contract extend \ diff --git a/docs/smart-contracts/guides/cli/install-deploy.mdx b/docs/smart-contracts/guides/cli/install-deploy.mdx index ef172d9a8..b65270485 100644 --- a/docs/smart-contracts/guides/cli/install-deploy.mdx +++ b/docs/smart-contracts/guides/cli/install-deploy.mdx @@ -3,7 +3,7 @@ title: Install and Deploy a Smart Contract hide_table_of_contents: true --- -You can combine the `install` and `deploy` commands of the Soroban CLI to accomplish both tasks: +You can combine the `install` and `deploy` commands of the Stellar CLI to accomplish both tasks: ```bash soroban contract deploy \ diff --git a/docs/smart-contracts/guides/cli/install-wasm.mdx b/docs/smart-contracts/guides/cli/install-wasm.mdx index 0dd70935c..119d431ac 100644 --- a/docs/smart-contracts/guides/cli/install-wasm.mdx +++ b/docs/smart-contracts/guides/cli/install-wasm.mdx @@ -3,7 +3,7 @@ title: Install Wasm Bytecode hide_table_of_contents: true --- -To use the Soroban CLI to install a compiled smart contract on the ledger, use the `soroban contract install` command: +To use the Stellar CLI to install a compiled smart contract on the ledger, use the `soroban contract install` command: ```bash soroban contract install \ diff --git a/docs/smart-contracts/guides/cli/restore-contract-storage.mdx b/docs/smart-contracts/guides/cli/restore-contract-storage.mdx index 8629c8cf0..b2d84157a 100644 --- a/docs/smart-contracts/guides/cli/restore-contract-storage.mdx +++ b/docs/smart-contracts/guides/cli/restore-contract-storage.mdx @@ -1,9 +1,9 @@ --- -title: Restore archived contract data using the Soroban CLI +title: Restore archived contract data using the Stellar CLI hide_table_of_contents: true --- -If a contract's persistent storage entry has been archived, you can restore it using the Soroban CLI. For a storage entry that uses a simple `Symbol` as its storage key, you can run a command like so: +If a contract's persistent storage entry has been archived, you can restore it using the Stellar CLI. For a storage entry that uses a simple `Symbol` as its storage key, you can run a command like so: ```bash soroban contract restore \ diff --git a/docs/smart-contracts/guides/conventions/upgrading-contracts.mdx b/docs/smart-contracts/guides/conventions/upgrading-contracts.mdx index eba292772..764bbaea7 100644 --- a/docs/smart-contracts/guides/conventions/upgrading-contracts.mdx +++ b/docs/smart-contracts/guides/conventions/upgrading-contracts.mdx @@ -77,7 +77,7 @@ pub fn upgrade(e: Env, new_wasm_hash: BytesN<32>) { The `update_current_contract_wasm` host function will also emit a `SYSTEM` contract [event] that contains the old and new wasm reference, allowing downstream users to be notified when a contract they use is updated. The event structure will have `topics = ["executable_update", old_executable: ContractExecutable, old_executable: ContractExecutable]` and `data = []`. [here]: https://docs.rs/soroban-sdk/20.0.2/soroban_sdk/struct.Env.html#method.update_current_contract_wasm -[event]: ../../../learn/smart-contract-internals/events.mdx#event-types +[event]: ../../../learn/encyclopedia/contract-development/events.mdx#event-types ## Tests @@ -179,7 +179,7 @@ assert_eq!(2, client.version()); ## Build the Contract -To build the contract `.wasm` files, run `soroban contract build` in both `upgradeable_contract/old_contract` and `upgradeable_contract/new_contract` in that order. +To build the contract `.wasm` files, run `stellar contract build` in both `upgradeable_contract/old_contract` and `upgradeable_contract/new_contract` in that order. Both `.wasm` files should be found in both contract `target` directories after building both contracts: @@ -193,16 +193,16 @@ target/wasm32-unknown-unknown/release/soroban_upgradeable_contract_new_contract. ## Run the Contract -If you have [`soroban-cli`] installed, you can invoke contract functions. Deploy the old contract and install the wasm for the new contract. +If you have [`stellar-cli`] installed, you can invoke contract functions. Deploy the old contract and install the wasm for the new contract. ```sh -soroban contract deploy \ +stellar contract deploy \ --wasm target/wasm32-unknown-unknown/release/soroban_upgradeable_contract_old_contract.wasm \ --id a ``` ```sh -soroban contract install \ +stellar contract install \ --wasm target/wasm32-unknown-unknown/release/soroban_upgradeable_contract_new_contract.wasm ``` @@ -215,8 +215,8 @@ c30c71a382438ed7e56669ba172aa862cc813d093b8d2f45e85b47ba38a89ddc You also need to call the `init` method so the `admin` is set. This requires us to setup som identities. ```sh -soroban keys generate acc1 && \ -soroban keys address acc1 +stellar keys generate acc1 && \ +stellar keys address acc1 ``` Example output: @@ -228,7 +228,7 @@ GAJGHZ44IJXYFNOVRZGBCVKC2V62DB2KHZB7BEMYOWOLFQH4XP2TAM6B Now call `init` with this key (make sure to substitute with the key you generated). ```sh -soroban contract invoke \ +stellar contract invoke \ --id a \ -- \ init \ @@ -238,7 +238,7 @@ soroban contract invoke \ Invoke the `version` function. ```sh -soroban contract invoke \ +stellar contract invoke \ --id a \ -- \ version @@ -253,7 +253,7 @@ The following output should occur using the code above. Now upgrade the contract. Notice the `--source` must be the identity name matching the address passed to the `init` function. ```sh -soroban contract invoke \ +stellar contract invoke \ --source acc1 \ --id a \ -- \ @@ -264,7 +264,7 @@ soroban contract invoke \ Invoke the `version` function again. ```sh -soroban contract invoke \ +stellar contract invoke \ --id a \ -- \ version @@ -276,4 +276,4 @@ Now that the contract was upgraded, you'll see a new version. 2 ``` -[`soroban-cli`]: ../../getting-started/setup.mdx#install-the-soroban-cli +[`stellar-cli`]: ../../getting-started/setup.mdx#install-the-stellar-cli diff --git a/docs/smart-contracts/guides/dapps/initialization.mdx b/docs/smart-contracts/guides/dapps/initialization.mdx index c3a90cb89..8381fb969 100644 --- a/docs/smart-contracts/guides/dapps/initialization.mdx +++ b/docs/smart-contracts/guides/dapps/initialization.mdx @@ -86,7 +86,7 @@ This command will mint 100 tokens to the designated user's account. By following these steps, you ensure that the Soroban token smart contracts are correctly deployed and initialized, setting the stage for the Dapp to effectively interact with the token. -For a deeper dive into Soroban CLI commands, check out the [Soroban CLI repo](https://github.com/stellar/soroban-cli/tree/main/cmd/soroban-cli/src/commands). +For a deeper dive into Stellar CLI commands, check out the [Stellar CLI repo](https://github.com/stellar/stellar-cli/tree/main/cmd/soroban-cli/src/commands). ## Automating Initialization with Scripts diff --git a/docs/smart-contracts/guides/freighter/sign-auth-entries.mdx b/docs/smart-contracts/guides/freighter/sign-auth-entries.mdx index 5b901d54a..07a0520a8 100644 --- a/docs/smart-contracts/guides/freighter/sign-auth-entries.mdx +++ b/docs/smart-contracts/guides/freighter/sign-auth-entries.mdx @@ -3,7 +3,7 @@ title: Sign authorization entries hide_table_of_contents: true --- -In order to take advantage of [contract authorization](../../../learn/smart-contract-internals/authorization.mdx), you can use Freighter's API to sign an authorization entry. A good example of how signing an authorization entry works can be found in the [`authorizeEntry` helper of `stellar-sdk`](https://github.com/stellar/js-stellar-base/blob/e3d6fc3351e7d242b374c7c6057668366364a279/src/auth.js#L97). +In order to take advantage of [contract authorization](../../../learn/encyclopedia/security/authorization.mdx), you can use Freighter's API to sign an authorization entry. A good example of how signing an authorization entry works can be found in the [`authorizeEntry` helper of `stellar-sdk`](https://github.com/stellar/js-stellar-base/blob/e3d6fc3351e7d242b374c7c6057668366364a279/src/auth.js#L97). Like in the helper, you can construct a [`HashIdPreimageSorobanAuthorization`](https://github.com/stellar/js-stellar-base/blob/a9567e5843760bfb6a8b786592046aee4c9d38b2/types/next.d.ts#L6895) and use the xdr representation of that structure to call `await freighterApi.signAuthEntry(preimageXdr)`. This call will return a `Buffer` of the signed hash of the `HashIdPreimageSorobanAuthorization` passed in, which can then be used to submit to the network during a contract authorization workflow. diff --git a/docs/smart-contracts/guides/transactions/README.mdx b/docs/smart-contracts/guides/transactions/README.mdx index ce8d6af37..107b54175 100644 --- a/docs/smart-contracts/guides/transactions/README.mdx +++ b/docs/smart-contracts/guides/transactions/README.mdx @@ -5,4 +5,4 @@ hide_table_of_contents: true The entry point for every smart contract interaction is ultimately a [transaction] on the Stellar network. -[transaction]: ../../../learn/fundamentals/stellar-data-structures/operations-and-transactions.mdx +[transaction]: ../../../learn/fundamentals/transactions/operations-and-transactions.mdx diff --git a/docs/smart-contracts/guides/transactions/invoke-contract-tx-js.mdx b/docs/smart-contracts/guides/transactions/invoke-contract-tx-js.mdx deleted file mode 100644 index 0823000e0..000000000 --- a/docs/smart-contracts/guides/transactions/invoke-contract-tx-js.mdx +++ /dev/null @@ -1,113 +0,0 @@ ---- -title: Invoke a contract function in a Stellar transaction using JavaScript -hide_table_of_contents: true ---- - -This is a simple example using the `@stellar/stellar-sdk` JavaScript library to create, simulate, and then assemble a Stellar transaction which invokes an `increment` function of the [auth example contract](../../example-contracts/auth.mdx). - -```javascript -(async () => { - const { - Keypair, - Contract, - SorobanRpc, - TransactionBuilder, - Networks, - BASE_FEE, - } = require("@stellar/stellar-sdk"); - - // The source account will be used to sign and send the transaction. - // GCWY3M4VRW4NXJRI7IVAU3CC7XOPN6PRBG6I5M7TAOQNKZXLT3KAH362 - const sourceKeypair = Keypair.fromSecret( - "SCQN3XGRO65BHNSWLSHYIR4B65AHLDUQ7YLHGIWQ4677AZFRS77TCZRB", - ); - - // Configure SorobanClient to use the `soroban-rpc` instance of your - // choosing. - const server = new SorobanRpc.Server( - "https://soroban-testnet.stellar.org:443", - ); - - // Here we will use a deployed instance of the `increment` example contract. - const contractAddress = - "CCTAMZGXBVCQJJCX64EVYTM6BKW5BXDI5PRCXTAYT6DVEDXKGS347HWU"; - const contract = new Contract(contractAddress); - - // Transactions require a valid sequence number (which varies from one - // account to another). We fetch this sequence number from the RPC server. - const sourceAccount = await server.getAccount(sourceKeypair.publicKey()); - - // The transaction begins as pretty standard. The source account, minimum - // fee, and network passphrase are provided. - let builtTransaction = new TransactionBuilder(sourceAccount, { - fee: BASE_FEE, - networkPassphrase: Networks.FUTURENET, - }) - // The invocation of the `increment` function of our contract is added - // to the transaction. Note: `increment` doesn't require any parameters, - // but many contract functions do. You would need to provide those here. - .addOperation(contract.call("increment")) - // This transaction will be valid for the next 30 seconds - .setTimeout(30) - .build(); - - console.log(`builtTransaction=${builtTransaction.toXDR()}`); - - // We use the RPC server to "prepare" the transaction. This simulating the - // transaction, discovering the storage footprint, and updating the - // transaction to include that footprint. If you know the footprint ahead of - // time, you could manually use `addFootprint` and skip this step. - let preparedTransaction = await server.prepareTransaction(builtTransaction); - - // Sign the transaction with the source account's keypair. - preparedTransaction.sign(sourceKeypair); - - // Let's see the base64-encoded XDR of the transaction we just built. - console.log( - `Signed prepared transaction XDR: ${preparedTransaction - .toEnvelope() - .toXDR("base64")}`, - ); - - // Submit the transaction to the Soroban-RPC server. The RPC server will - // then submit the transaction into the network for us. Then we will have to - // wait, polling `getTransaction` until the transaction completes. - try { - let sendResponse = await server.sendTransaction(preparedTransaction); - console.log(`Sent transaction: ${JSON.stringify(sendResponse)}`); - - if (sendResponse.status === "PENDING") { - let getResponse = await server.getTransaction(sendResponse.hash); - // Poll `getTransaction` until the status is not "NOT_FOUND" - while (getResponse.status === "NOT_FOUND") { - console.log("Waiting for transaction confirmation..."); - // See if the transaction is complete - getResponse = await server.getTransaction(sendResponse.hash); - // Wait one second - await new Promise((resolve) => setTimeout(resolve, 1000)); - } - - console.log(`getTransaction response: ${JSON.stringify(getResponse)}`); - - if (getResponse.status === "SUCCESS") { - // Make sure the transaction's resultMetaXDR is not empty - if (!getResponse.resultMetaXdr) { - throw "Empty resultMetaXDR in getTransaction response"; - } - // Find the return value from the contract and return it - let transactionMeta = getResponse.resultMetaXdr; - let returnValue = transactionMeta.v3().sorobanMeta().returnValue(); - console.log(`Transaction result: ${returnValue.value()}`); - } else { - throw `Transaction failed: ${getResponse.resultXdr}`; - } - } else { - throw sendResponse.errorResultXdr; - } - } catch (err) { - // Catch and report any errors we've thrown - console.log("Sending transaction failed"); - console.log(JSON.stringify(err)); - } -})(); -``` diff --git a/docs/smart-contracts/guides/transactions/invoke-contract-tx-sdk.mdx b/docs/smart-contracts/guides/transactions/invoke-contract-tx-sdk.mdx new file mode 100644 index 000000000..bce5308ae --- /dev/null +++ b/docs/smart-contracts/guides/transactions/invoke-contract-tx-sdk.mdx @@ -0,0 +1,354 @@ +--- +title: Invoke a contract function in a Stellar transaction using SDKs +hide_table_of_contents: true +--- + +import Tabs from "@theme/Tabs"; +import TabItem from "@theme/TabItem"; + +This is a simple example using the Stellar SDK to create, simulate, and then assemble a Stellar transaction which invokes an `increment` function of the [auth example contract](../../example-contracts/auth.mdx). + + + + +:::tip + +Please go to [the project homepage](https://github.com/stellar/js-stellar-sdk) of JavaScript SDK to learn how to install it. + +::: + +```javascript +(async () => { + const { + Keypair, + Contract, + SorobanRpc, + TransactionBuilder, + Networks, + BASE_FEE, + nativeToScVal, + Address, + } = require("@stellar/stellar-sdk"); + + // The source account will be used to sign and send the transaction. + // GCWY3M4VRW4NXJRI7IVAU3CC7XOPN6PRBG6I5M7TAOQNKZXLT3KAH362 + const sourceKeypair = Keypair.fromSecret( + "SCQN3XGRO65BHNSWLSHYIR4B65AHLDUQ7YLHGIWQ4677AZFRS77TCZRB", + ); + + // Configure SorobanClient to use the `soroban-rpc` instance of your + // choosing. + const server = new SorobanRpc.Server( + "https://soroban-testnet.stellar.org:443", + ); + + // Here we will use a deployed instance of the `increment` example contract. + const contractAddress = + "CCTAMZGXBVCQJJCX64EVYTM6BKW5BXDI5PRCXTAYT6DVEDXKGS347HWU"; + const contract = new Contract(contractAddress); + + // Transactions require a valid sequence number (which varies from one + // account to another). We fetch this sequence number from the RPC server. + const sourceAccount = await server.getAccount(sourceKeypair.publicKey()); + + // The transaction begins as pretty standard. The source account, minimum + // fee, and network passphrase are provided. + let builtTransaction = new TransactionBuilder(sourceAccount, { + fee: BASE_FEE, + networkPassphrase: Networks.TESTNET, + }) + // The invocation of the `increment` function of our contract is added + // to the transaction. + .addOperation( + contract.call( + "increment", + nativeToScVal(Address.fromString(sourceKeypair.publicKey())), + nativeToScVal(5, { type: "u32" }), + ), + ) + // This transaction will be valid for the next 30 seconds + .setTimeout(30) + .build(); + + console.log(`builtTransaction=${builtTransaction.toXDR()}`); + + // We use the RPC server to "prepare" the transaction. This simulating the + // transaction, discovering the storage footprint, and updating the + // transaction to include that footprint. If you know the footprint ahead of + // time, you could manually use `addFootprint` and skip this step. + let preparedTransaction = await server.prepareTransaction(builtTransaction); + + // Sign the transaction with the source account's keypair. + preparedTransaction.sign(sourceKeypair); + + // Let's see the base64-encoded XDR of the transaction we just built. + console.log( + `Signed prepared transaction XDR: ${preparedTransaction + .toEnvelope() + .toXDR("base64")}`, + ); + + // Submit the transaction to the Soroban-RPC server. The RPC server will + // then submit the transaction into the network for us. Then we will have to + // wait, polling `getTransaction` until the transaction completes. + try { + let sendResponse = await server.sendTransaction(preparedTransaction); + console.log(`Sent transaction: ${JSON.stringify(sendResponse)}`); + + if (sendResponse.status === "PENDING") { + let getResponse = await server.getTransaction(sendResponse.hash); + // Poll `getTransaction` until the status is not "NOT_FOUND" + while (getResponse.status === "NOT_FOUND") { + console.log("Waiting for transaction confirmation..."); + // See if the transaction is complete + getResponse = await server.getTransaction(sendResponse.hash); + // Wait one second + await new Promise((resolve) => setTimeout(resolve, 1000)); + } + + console.log(`getTransaction response: ${JSON.stringify(getResponse)}`); + + if (getResponse.status === "SUCCESS") { + // Make sure the transaction's resultMetaXDR is not empty + if (!getResponse.resultMetaXdr) { + throw "Empty resultMetaXDR in getTransaction response"; + } + // Find the return value from the contract and return it + let transactionMeta = getResponse.resultMetaXdr; + let returnValue = transactionMeta.v3().sorobanMeta().returnValue(); + console.log(`Transaction result: ${returnValue.value()}`); + } else { + throw `Transaction failed: ${getResponse.resultXdr}`; + } + } else { + throw sendResponse.errorResultXdr; + } + } catch (err) { + // Catch and report any errors we've thrown + console.log("Sending transaction failed"); + console.log(JSON.stringify(err)); + } +})(); +``` + + + + + +:::tip + +Please go to [the project homepage](https://github.com/StellarCN/py-stellar-base) of Python SDK to learn how to install it. + +In addition, Python provides a lot of example code, which you can find [here](https://github.com/StellarCN/py-stellar-base/tree/main/examples). + +::: + +```py +import time + +from stellar_sdk import Keypair, Network, SorobanServer, TransactionBuilder, scval +from stellar_sdk import xdr as stellar_xdr +from stellar_sdk.exceptions import PrepareTransactionException +from stellar_sdk.soroban_rpc import GetTransactionStatus, SendTransactionStatus + +secret = "SAAPYAPTTRZMCUZFPG3G66V4ZMHTK4TWA6NS7U4F7Z3IMUD52EK4DDEV" +rpc_server_url = "https://soroban-testnet.stellar.org:443" +network_passphrase = Network.TESTNET_NETWORK_PASSPHRASE + +# Here we will use a deployed instance of the `increment` example contract. +contract_id = "CDOGJBJMRVVXW5K3UJ5BGVJ5RSQXQB4UFVQYVFOIARC2UYXSEPF4YAVR" +# The source account will be used to sign and send the transaction. +source_keypair = Keypair.from_secret(secret) +# Configure SorobanClient to use the `soroban-rpc` instance of your choosing. +soroban_server = SorobanServer(rpc_server_url) +# Transactions require a valid sequence number (which varies from one account to another). +# We fetch this sequence number from the RPC server. +source = soroban_server.load_account(source_keypair.public_key) + +tx = ( + # The transaction begins as pretty standard. The source account, minimum fee, + # and network passphrase are provided. + TransactionBuilder(source, network_passphrase, base_fee=100) + # This transaction will be valid for the next 30 seconds + .set_timeout(30) + # The invocation of the `increment` function of our contract is added to the transaction. + .append_invoke_contract_function_op( + contract_id=contract_id, + function_name="increment", + parameters=[scval.to_address(source_keypair.public_key), scval.to_uint32(5)], + ).build() +) + +print(f"builtTransaction: {tx.to_xdr()}") + +try: + # We use the RPC server to "prepare" the transaction. This simulating the + # transaction, discovering the soroban data, and updating the + # transaction to include that soroban data. If you know the soroban data ahead of + # time, you could manually use `set_soroban_data` and skip this step. + tx = soroban_server.prepare_transaction(tx) +except PrepareTransactionException as e: + print(f"Prepare Transaction Failed: {e.simulate_transaction_response}") + raise e + +# Sign the transaction with the source account's keypair. +tx.sign(source_keypair) + +# Let's see the base64-encoded XDR of the transaction we just built. +print(f"Signed prepared transaction XDR: {tx.to_xdr()}") + +# Submit the transaction to the Soroban-RPC server. The RPC server will +# then submit the transaction into the network for us. Then we will have to +# wait, polling `get_transaction` until the transaction completes. +send_transaction_data = soroban_server.send_transaction(tx) +print(f"Sent transaction: {send_transaction_data}") +if send_transaction_data.status != SendTransactionStatus.PENDING: + print(send_transaction_data.error_result_xdr) + raise Exception("Send transaction failed") + +while True: + print("Waiting for transaction to be confirmed...") + # Poll `get_transaction` until the status is not "NOT_FOUND" + get_transaction_data = soroban_server.get_transaction(send_transaction_data.hash) + if get_transaction_data.status != GetTransactionStatus.NOT_FOUND: + break + time.sleep(3) + +print(f"getTransaction response: {get_transaction_data}") + +if get_transaction_data.status == GetTransactionStatus.SUCCESS: + # The transaction was successful, so we can extract the `result_meta_xdr` + transaction_meta = stellar_xdr.TransactionMeta.from_xdr( + get_transaction_data.result_meta_xdr + ) + result = transaction_meta.v3.soroban_meta.return_value + # Find the return value from the contract and return it + print(f"Transaction result: {scval.from_uint32(result)}") +else: + # The transaction failed, so we can extract the `result_xdr` + print(f"Transaction failed: {get_transaction_data.result_xdr}") + raise Exception("Transaction failed") +``` + + + + + +:::tip + +Please go to [the project homepage](https://github.com/lightsail-network/java-stellar-sdk) of Java SDK to learn how to install it. + +::: + +```java +import org.stellar.sdk.AccountNotFoundException; +import org.stellar.sdk.InvokeHostFunctionOperation; +import org.stellar.sdk.KeyPair; +import org.stellar.sdk.Network; +import org.stellar.sdk.PrepareTransactionException; +import org.stellar.sdk.SorobanServer; +import org.stellar.sdk.Transaction; +import org.stellar.sdk.TransactionBuilder; +import org.stellar.sdk.TransactionBuilderAccount; +import org.stellar.sdk.requests.sorobanrpc.SorobanRpcErrorResponse; +import org.stellar.sdk.responses.sorobanrpc.GetTransactionResponse; +import org.stellar.sdk.responses.sorobanrpc.SendTransactionResponse; +import org.stellar.sdk.scval.Scv; +import org.stellar.sdk.xdr.SCVal; +import org.stellar.sdk.xdr.TransactionMeta; + +import java.io.IOException; +import java.util.List; + +public class Example { + public static void main(String[] args) throws SorobanRpcErrorResponse, IOException, InterruptedException { + // The source account will be used to sign and send the transaction. + KeyPair sourceKeypair = KeyPair.fromSecretSeed("SAAPYAPTTRZMCUZFPG3G66V4ZMHTK4TWA6NS7U4F7Z3IMUD52EK4DDEV"); + + // Configure SorobanClient to use the `soroban-rpc` instance of your choosing. + SorobanServer sorobanServer = new SorobanServer("https://soroban-testnet.stellar.org"); + + // Here we will use a deployed instance of the `increment` example contract. + String contractAddress = "CDOGJBJMRVVXW5K3UJ5BGVJ5RSQXQB4UFVQYVFOIARC2UYXSEPF4YAVR"; + + // Transactions require a valid sequence number (which varies from one account to + // another). We fetch this sequence number from the RPC server. + TransactionBuilderAccount sourceAccount = null; + try { + sourceAccount = sorobanServer.getAccount(sourceKeypair.getAccountId()); + } catch (AccountNotFoundException e) { + throw new RuntimeException("Account not found, please activate it first"); + } + + // The invocation of the `increment` function. + InvokeHostFunctionOperation operation = InvokeHostFunctionOperation.invokeContractFunctionOperationBuilder(contractAddress, "increment", + List.of( + Scv.toAddress(sourceAccount.getAccountId()), + Scv.toUint32(5) + ) + ).build(); + + // Create a transaction with the source account and the operation we want to invoke. + Transaction transaction = new TransactionBuilder(sourceAccount, Network.TESTNET) + .addOperation(operation) // The invocation of the `increment` function of our contract is added to the transaction. + .setTimeout(30) // This transaction will be valid for the next 30 seconds + .setBaseFee(100) // The base fee is 100 stroops (0.00001 XLM) + .build(); + + // We use the RPC server to "prepare" the transaction. This simulating the + // transaction, discovering the soroban data, and updating the + // transaction to include that soroban data. If you know the soroban data ahead of + // time, you could manually use `setSorobanData` and skip this step. + try { + transaction = sorobanServer.prepareTransaction(transaction); + } catch (PrepareTransactionException e) { + // You should handle the error here + System.out.println("Prepare Transaction Failed: " + e.getMessage()); + throw new RuntimeException(e); + } + + // Sign the transaction with the source account's keypair. + transaction.sign(sourceKeypair); + + // Let's see the base64-encoded XDR of the transaction we just built. + System.out.println("Signed prepared transaction XDR: " + transaction.toEnvelopeXdrBase64()); + + // Submit the transaction to the Soroban-RPC server. The RPC server will then + // submit the transaction into the network for us. Then we will have to wait, + // polling `getTransaction` until the transaction completes. + SendTransactionResponse response = sorobanServer.sendTransaction(transaction); + if (!SendTransactionResponse.SendTransactionStatus.PENDING.equals(response.getStatus())) { + throw new RuntimeException("Sending transaction failed"); + } + + // Poll `getTransaction` until the status is not "NOT_FOUND" + GetTransactionResponse getTransactionResponse; + while (true) { + System.out.println("Waiting for transaction confirmation..."); + // See if the transaction is complete + getTransactionResponse = sorobanServer.getTransaction(response.getHash()); + if (!GetTransactionResponse.GetTransactionStatus.NOT_FOUND.equals(getTransactionResponse.getStatus())) { + break; + } + // Wait one second + Thread.sleep(1000); + } + + System.out.println("Get transaction response: " + getTransactionResponse); + + if (GetTransactionResponse.GetTransactionStatus.SUCCESS.equals(getTransactionResponse.getStatus())) { + // The transaction was successful, so we can extract the `resultMetaXdr` + TransactionMeta transactionMeta = TransactionMeta.fromXdrBase64(getTransactionResponse.getResultMetaXdr()); + SCVal result = transactionMeta.getV3().getSorobanMeta().getReturnValue(); + long parsedResult = Scv.fromUint32(result); + System.out.println("Transaction result: " + parsedResult); + } else { + // The transaction failed, so we can extract the `resultXdr` + System.out.println("Transaction failed: " + getTransactionResponse.getResultXdr()); + } + } +} +``` + + + diff --git a/docs/smart-contracts/tokens/stellar-asset-contract.mdx b/docs/smart-contracts/tokens/stellar-asset-contract.mdx index a2512ed73..a0034de35 100644 --- a/docs/smart-contracts/tokens/stellar-asset-contract.mdx +++ b/docs/smart-contracts/tokens/stellar-asset-contract.mdx @@ -1,5 +1,5 @@ --- -sidebar_position: 20 +sidebar_position: 10 title: Stellar Asset Contract description: Use Stellar assets on Soroban. --- @@ -50,14 +50,14 @@ Some functionality available on the Stellar network in transaction operations, s Every Stellar asset on Stellar has reserved a contract address that the Stellar Asset Contract can be deployed to. Anyone can initiate the deploy and the Stellar asset issuer does not need to be involved. -It can be deployed using the [Soroban-CLI] as shown [here](../guides/cli/deploy-stellar-asset-contract.mdx). +It can be deployed using the [Stellar CLI] as shown [here](../guides/cli/deploy-stellar-asset-contract.mdx). -Or the [Stellar SDK] can be used as shown [here](../../learn/smart-contract-internals/contract-interactions/stellar-transaction.mdx#xdr-usage) by calling `InvokeHostFunctionOp` with `HOST_FUNCTION_TYPE_CREATE_CONTRACT` and `CONTRACT_ID_FROM_ASSET`. The resulting token will have a deterministic identifier, which will be the sha256 hash of `HashIDPreimage::ENVELOPE_TYPE_CONTRACT_ID_FROM_ASSET` xdr specified [here][contract_id]. +Or the [Stellar SDK] can be used as shown [here](../../learn/encyclopedia/contract-development/contract-interactions/stellar-transaction.mdx#xdr-usage) by calling `InvokeHostFunctionOp` with `HOST_FUNCTION_TYPE_CREATE_CONTRACT` and `CONTRACT_ID_FROM_ASSET`. The resulting token will have a deterministic identifier, which will be the sha256 hash of `HashIDPreimage::ENVELOPE_TYPE_CONTRACT_ID_FROM_ASSET` xdr specified [here][contract_id]. Anyone can deploy the instances of Stellar Asset Contract. Note, that the initialization of the Stellar Asset Contracts happens automatically during the deployment. Asset Issuer will have the administrative permissions after the contract has been deployed. [contract_id]: https://github.com/stellar/stellar-xdr/blob/dc23adf60e095a6ce626b2b09128e58a5eae0cd0/Stellar-transaction.x#L661 -[soroban-cli]: ../../tools/developer-tools.mdx#soroban-cli +[stellar-cli]: ../../tools/developer-tools.mdx#cli ## Interacting with classic Stellar assets @@ -89,7 +89,7 @@ The admin can only revoke authorization from an `Address`, if the issuer of the ## Authorization semantics -See the [authorization overview](../../learn/smart-contract-internals/authorization.mdx) and [auth example](../example-contracts/auth.mdx) for general information about authorization in Soroban. +See the [authorization overview](../../learn/encyclopedia/security/authorization.mdx) and [auth example](../example-contracts/auth.mdx) for general information about authorization in Soroban. The token contract contains three kinds of operations that follow the token [interface](./token-interface.mdx#code): diff --git a/docs/smart-contracts/tokens/token-interface.mdx b/docs/smart-contracts/tokens/token-interface.mdx index 90f7c0e20..191b09481 100644 --- a/docs/smart-contracts/tokens/token-interface.mdx +++ b/docs/smart-contracts/tokens/token-interface.mdx @@ -1,5 +1,5 @@ --- -sidebar_position: 10 +sidebar_position: 20 title: Token Interface description: The common interface implemented by tokens that are compatible with Soroban's built-in tokens. --- @@ -160,7 +160,7 @@ Its important to note the that the token interface not only incorporates the aut To provide more context, when you use the token interface, there is a function called `authorized` that returns "true" if an address has token authorization. -More details on Authorization can be found [here](../../learn/smart-contract-internals/authorization.mdx). +More details on Authorization can be found [here](../../learn/encyclopedia/security/authorization.mdx). For the functions in the token interface, [trapping](https://doc.rust-lang.org/book/ch09-00-error-handling.html) should be used as the standard way to handle failure conditions since the interface is not designed to return error codes. This means that when a function encounters an error, it will halt execution and revert any state changes that occurred during the function call. diff --git a/docs/smart-contracts/tokens/wayfinding.mdx b/docs/smart-contracts/tokens/wayfinding.mdx new file mode 100644 index 000000000..125ee12b7 --- /dev/null +++ b/docs/smart-contracts/tokens/wayfinding.mdx @@ -0,0 +1,80 @@ +--- +sidebar_position: 5 +title: Tokens Overview +description: Choose between the Stellar Asset Contract and Custom Tokens +--- + +Tokens exist in two forms on Stellar: + +1. Assets issued by Stellar accounts (G... addresses) and their built-in [Stellar Asset Contract (SAC)](./stellar-asset-contract.mdx) implementation, and +2. [Custom tokens](./token-interface.mdx) issued by a deployed WASM contract (C... addresses). + +Several factors can help you determine whether to issue an asset on Stellar or create a custom token with a smart contract for your project. + +However: + +### TL;DR + +If possible, we recommend issuing a Stellar asset and using the SAC to interact with that asset in smart contracts or to send to contract addresses. More on why below. + +## Issuing assets on Stellar + +Stellar has first-class support for asset tokenization — issuing an asset can be done using a [built-in transaction](https://developers.stellar.org/docs) without the development of a smart contract. + +Stellar’s transactions are fast and cost-effective, making the network great for remittances and micropayments. It also has built-in features for compliance, asset management, and auditing. If you are looking to perform transfers of value, issuing assets on Stellar has all the needed capabilities. + +Stellar assets: + +- Are compatible with Stellar ecosystem products (such as Stellar wallets) and other ecosystem products (such as exchanges). +- Benefit from [anchors](../../learn/fundamentals/anchors.mdx), the bridges between the Stellar network and traditional financial systems. Explore the global [Stellar anchor directory](https://anchors.stellar.org/) for further details. +- Give the issuer granular control over asset management with features that allow the issuer to [name the asset](../../issuing-assets/control-asset-access.mdx#naming-an-asset), [determine access control](../../issuing-assets/control-asset-access.mdx#controlling-access-to-an-asset-with-flags), [limit asset supply](../../issuing-assets/control-asset-access.mdx#limiting-the-supply-of-an-asset), [publish asset information](../../issuing-assets/publishing-asset-info.mdx), and [ensure compliance](../../issuing-assets/anatomy-of-an-asset.mdx#compliance). + +:::note + +Note that while these items are also possible with custom smart contract tokens, it is more work to build the token contract rather than using the already-implemented features of Stellar asset tokens. + +::: + +Assets issued on the Stellar network are accessible to smart contracts with the use of that asset’s Stellar Asset Contract (SAC). + +### Stellar Asset Contract + +The Stellar Asset Contract (SAC) is compiled into the protocol layer and allows smart contracts to interact with assets issued on Stellar. An instance of the SAC can be deployed for every Stellar asset by anyone who wants to interact with the asset from a contract. The SAC has access to all account balances (for XLM) and trustline balances (for all other assets) balances as well as smart contract token balances. + +Read more about the SAC [here](./stellar-asset-contract.mdx). + +Learn how to deploy a Stellar Asset Contract for an asset in [this How-To Guide](../../smart-contracts/guides/cli/deploy-stellar-asset-contract.mdx). + +**Benefits of the SAC:** + +- Compatibility: the SAC benefits from Stellar assets' existing interoperability. +- Cost and resource efficiency: the SAC is built into the protocol instead of being a contract that runs in a virtual machine. Each function within the SAC will be more resource-efficient than its custom-coded counterpart. +- Less work: you don’t have to write an entirely new contract. A Stellar asset’s SAC already exists on the network and just needs to be deployed to be used. +- Customization: Admin addresses can be contracts. Asset issuers can set a different smart contract as an admin for their asset’s SAC. Making the admin another smart contract allows the addition of custom and decentralized logic for the assets admin capabilities, such as authorizing balances and trust lines, minting tokens, etc. + +**Downside of the SAC:** + +- Other than the customization noted above, it is not possible to modify the behavior of Stellar assets or their SAC. If you’re looking to use assets in a way not supported by Stellar assets, you can create your own custom smart contract token using the token interface and all applications that interact with tokens using the token interface will be able to interact with the custom token. + +## Custom tokens + +If you have a unique use case where the capabilities Stellar Assets are not sufficient, you can create a custom token that implements the [token interface](./token-interface.mdx). The token interface specifies the functions and events a contract must implement to be compatible with applications that use tokens. + +The SAC also implements the token interface and applications that interoperate with the token interface can seamlessly interact with Stellar assets and custom tokens. + +:::note + +Smart contracts cannot use Stellar assets unless that Stellar asset has a deployed SAC. Anyone can deploy the SAC for a Stellar asset to its reserved address. + +::: + +**These example scenarios are not possible with the SAC and demonstrate what you could use the token interface for:** + +- As the creator of a new token, you decide to implement a feature within your custom token smart contract that enables you to receive a 1% fee from every transaction involving your token. Whenever someone transfers your token to another user, 1% of the transferred amount is automatically deducted and sent to a designated wallet address that you control. +- You want to develop a factory contract that automates the creation of instances of a specific token. This contract serves as a centralized and standardized way to deploy new token contracts on demand without manual intervention each time a new instance is needed. + +## Helpful links + +- [Issue an asset tutorial](../../issuing-assets/how-to-issue-an-asset.mdx) +- [Stellar Asset Contract](./stellar-asset-contract.mdx) +- [Token Interface](./token-interface.mdx) diff --git a/docs/tools/developer-tools.mdx b/docs/tools/developer-tools.mdx index 7e71a2f17..660960b4e 100644 --- a/docs/tools/developer-tools.mdx +++ b/docs/tools/developer-tools.mdx @@ -47,15 +47,19 @@ Built specifically for Soroban, you can explore transactions and network activit Check data related to payments, accounts, deployed contracts, and more for Stellar’s Futurenet, Testnet, and Mainnet. +### [Ortege](https://www.ortege.ai/) + +Ortege is an AI-powered blockchain analytics & insights tool for Stellar, making complex data simple and accessible. Access for free by signing up [here](https://app.ortege.ai/login/). + ## CLI -### [Soroban CLI](https://github.com/stellar/soroban-cli) +### [Stellar CLI](https://github.com/stellar/stellar-cli) The command line interface to Soroban smart contracts. It allows you to build, deploy, and interact with smart contracts; configure identities; generate key pairs; manage networks; and more. -Install Soroban CLI as explained in [Setup](../smart-contracts/getting-started/setup#install-the-soroban-cli). +Install Stellar CLI as explained in [Setup](../smart-contracts/getting-started/setup#install-the-stellar-cli). -Auto-generated comprehensive reference documentation is available [here](https://github.com/stellar/soroban-cli/blob/main/docs/soroban-cli-full-docs.md). +Auto-generated comprehensive reference documentation is available [here](https://github.com/stellar/stellar-cli/blob/main/FULL_HELP_DOCS.md). ## Data Indexers diff --git a/docs/tutorials/create-account.mdx b/docs/tutorials/create-account.mdx index 2b1946f29..eaf5f7afb 100644 --- a/docs/tutorials/create-account.mdx +++ b/docs/tutorials/create-account.mdx @@ -288,6 +288,6 @@ Now that you’ve got an account, you can [start sending and receiving payments] -In the above code samples, proper error checking is omitted for brevity. However, you should _always_ validate your results, as there are many ways that requests can fail. You should refer to the guide on [Error Handling](../learn/encyclopedia/error-handling.mdx) for tips on error management strategies. +In the above code samples, proper error checking is omitted for brevity. However, you should _always_ validate your results, as there are many ways that requests can fail. You should refer to the guide on [Error Handling](../learn/encyclopedia/errors-and-debugging/error-handling.mdx) for tips on error management strategies. diff --git a/docs/tutorials/follow-received-payments.mdx b/docs/tutorials/follow-received-payments.mdx index 537fe9539..e8753648d 100644 --- a/docs/tutorials/follow-received-payments.mdx +++ b/docs/tutorials/follow-received-payments.mdx @@ -201,9 +201,9 @@ New payment: ## Testing it out -We now know how to get a stream of transactions to an account. Let's check if our solution actually works and if new payments appear. Let's watch as we send a payment ([`create_account` operation](../learn/fundamentals/list-of-operations.mdx#create-account)) from our account to another account. +We now know how to get a stream of transactions to an account. Let's check if our solution actually works and if new payments appear. Let's watch as we send a payment ([`create_account` operation](../learn/fundamentals/transactions/list-of-operations.mdx#create-account)) from our account to another account. -We use the `create_account` operation because we are sending payment to a new, unfunded account. If we were sending payment to an account that is already funded, we would use the [`payment` operation](../learn/fundamentals/list-of-operations.mdx#payment). +We use the `create_account` operation because we are sending payment to a new, unfunded account. If we were sending payment to an account that is already funded, we would use the [`payment` operation](../learn/fundamentals/transactions/list-of-operations.mdx#payment). First, let's check our account sequence number so we can create a payment transaction. To do this we send a request to horizon: diff --git a/docs/tutorials/send-and-receive-payments.mdx b/docs/tutorials/send-and-receive-payments.mdx index 26e143045..9bc042e0e 100644 --- a/docs/tutorials/send-and-receive-payments.mdx +++ b/docs/tutorials/send-and-receive-payments.mdx @@ -10,7 +10,7 @@ Most of the time, you’ll be sending money to someone else who has their own ac ## About Operations and Transactions -Actions that do things on Stellar — like sending payments or making buy or sell offers — are called [operations](../learn/fundamentals/stellar-data-structures/operations-and-transactions.mdx#operations). To submit an operation to the network, you bundle it into a [transaction](../learn/fundamentals/stellar-data-structures/operations-and-transactions.mdx#transactions), which is a group of anywhere from 1 to 100 operations accompanied by some extra information, like which account is making the transaction and a cryptographic signature to verify that the transaction is authentic. +Actions that do things on Stellar — like sending payments or making buy or sell offers — are called [operations](../learn/fundamentals/transactions/operations-and-transactions.mdx#operations). To submit an operation to the network, you bundle it into a [transaction](../learn/fundamentals/transactions/operations-and-transactions.mdx#transactions), which is a group of anywhere from 1 to 100 operations accompanied by some extra information, like which account is making the transaction and a cryptographic signature to verify that the transaction is authentic. Transactions are atomic, meaning that if any operation in a transaction fails, they all fail. Let’s say you have 100 lumens and you make two payment operations of 60 lumens each. If you make two transactions (each with one operation), the first will succeed and the second will fail because you don’t have enough lumens. You’ll be left with 40 lumens. However, if you group the two payments into a single transaction, they will both fail and you’ll be left with the full 100 lumens still in your account. @@ -18,13 +18,13 @@ Every transaction also incurs a small fee. Like the minimum balance on accounts, -In the following code samples, proper error checking is omitted for brevity. However, you should _always_ validate your results, as there are many ways that requests can fail. You should refer to the guide on [Error Handling](../learn/encyclopedia/error-handling.mdx) for tips on error management strategies. +In the following code samples, proper error checking is omitted for brevity. However, you should _always_ validate your results, as there are many ways that requests can fail. You should refer to the guide on [Error Handling](../learn/encyclopedia/errors-and-debugging/error-handling.mdx) for tips on error management strategies. ## Send a Payment -Stellar stores and communicates transaction data in a binary format called [XDR](../learn/encyclopedia/xdr.mdx), which is optimized for network performance but unreadable to the human eye. Luckily, [Horizon](../../network/horizon), the Stellar API, and the [Stellar SDKs](../tools/sdks/library.mdx) convert XDRs into friendlier formats. Here’s how you might send 10 lumens to an account: +Stellar stores and communicates transaction data in a binary format called [XDR](../learn/encyclopedia/data-format/xdr.mdx), which is optimized for network performance but unreadable to the human eye. Luckily, [Horizon](../../network/horizon), the Stellar API, and the [Stellar SDKs](../tools/sdks/library.mdx) convert XDRs into friendlier formats. Here’s how you might send 10 lumens to an account: @@ -399,7 +399,7 @@ Operations: []txnbuild.Operation{ You should also note that the amount is a string rather than a number. When working with extremely small fractions or large values, [floating point math can introduce small inaccuracies](https://en.wikipedia.org/wiki/Floating_point#Accuracy_problems). Since not all systems have a native way to accurately represent extremely small or large decimals, Stellar uses strings as a reliable way to represent the exact amount across any system. -5. Optionally, you can add your own metadata, called a [memo](../learn/encyclopedia/memos.mdx), to a transaction. Stellar doesn’t do anything with this data, but you can use it for any purpose you’d like. Many exchanges require memos for incoming transactions because they use a single Stellar account for all their users and rely on the memo to differentiate between internal user accounts. +5. Optionally, you can add your own metadata, called a [memo](../learn/encyclopedia/transactions-specialized/memos.mdx), to a transaction. Stellar doesn’t do anything with this data, but you can use it for any purpose you’d like. Many exchanges require memos for incoming transactions because they use a single Stellar account for all their users and rely on the memo to differentiate between internal user accounts. diff --git a/meeting-notes/2024-06-13.mdx b/meeting-notes/2024-06-13.mdx new file mode 100644 index 000000000..a27324a3e --- /dev/null +++ b/meeting-notes/2024-06-13.mdx @@ -0,0 +1,24 @@ +--- +title: '2024-06-13' +authors: kalepail +tags: [developer] +--- + + + +1. Tyler created Super Peach, a web3 application that uses passkeys to sign transactions. He demonstrated how passkeys can be used in authorization flows and how they can be used to sign transactions. + * Code: https://github.com/kalepail/superpeach + * Demo: https://superpeach.vercel.app +2. Introduced `passkey-kit`. A TypeScript SDK for creating and managing Smart Wallets via passkeys (includes the actual [Smart Wallet interface](https://github.com/kalepail/passkey-kit/tree/main/contracts)) + * Code: https://github.com/kalepail/passkey-kit + * Demo: https://passkey-kit-demo.pages.dev +3. Introduced Launchtube, a service for submitting transactions onchain by covering both the transaction fee AND the sequence number. Wild! + * Code: https://github.com/kalepail/launchtube (ask in the `#passkeys` channel on Discord for a testnet token) +4. He shared his vision for pushing the passkey implementation through to becoming a [standard for the ecosystem](https://docs.google.com/document/d/1c_Wom6eK1UpC3E7VuQZfOBCLc2d5lvqAhMN7VPieMBQ/edit). + +Join the `#passkeys` channel on the Discord to continue the discussion diff --git a/network/anchor-platform/README.mdx b/network/anchor-platform/README.mdx index 00cac6207..090a18bf6 100644 --- a/network/anchor-platform/README.mdx +++ b/network/anchor-platform/README.mdx @@ -1,11 +1,12 @@ --- -title: Anchor Platform API Reference +title: Introduction sidebar_position: 10 -sidebar_label: Introduction --- +# Anchor Platform + The Anchor Platform is a set of tools and APIs that enable developers and businesses to build their own on and off-ramp services for the Stellar network. It provides a standardized interface, including the implementation of several Stellar Ecosystem Proposals (SEPs), to make it easy for businesses to integrate with Stellar-based wallets and exchanges. The platform also includes features for managing assets, transactions, and user accounts, and supports a variety of deployment options, including using Docker or Kubernetes. Overall, the Anchor Platform aims to simplify the process of building and managing a Stellar-based financial service, allowing businesses to focus on providing value to their customers. -Learn about integrating with the Anchor Platform in the [Admin Guide](./admin-guide/README.mdx) or get API information in the [API Reference](./api-reference/README.mdx). \ No newline at end of file +Learn about integrating with the Anchor Platform in the [Admin Guide](./admin-guide/README.mdx) or get API information in the [API Reference](./api-reference/README.mdx). diff --git a/network/anchor-platform/admin-guide/overview.mdx b/network/anchor-platform/admin-guide/overview.mdx index 1cb29aed2..73e2c854c 100644 --- a/network/anchor-platform/admin-guide/overview.mdx +++ b/network/anchor-platform/admin-guide/overview.mdx @@ -3,7 +3,7 @@ title: "Overview" sidebar_position: 10 --- -The Anchor Platform is the easiest and fastest way to deploy [anchor services](/docs/learn/encyclopedia/anchors) compatible with [Stellar Ecosystem Proposals (SEPs)](https://github.com/stellar/stellar-protocol/tree/master/ecosystem). +The Anchor Platform is the easiest and fastest way to deploy [anchor services](../../../docs/learn/fundamentals/anchors) compatible with [Stellar Ecosystem Proposals (SEPs)](https://github.com/stellar/stellar-protocol/tree/master/ecosystem). The goal of the Anchor Platform is to handle all Stellar-specific functionality and requirements for running an anchor, allowing businesses to focus on the core business logic necessary to provide these services. diff --git a/network/anchor-platform/admin-guide/sep24/setting-up-production-server.mdx b/network/anchor-platform/admin-guide/sep24/setting-up-production-server.mdx index 5996f2d50..c563455fa 100644 --- a/network/anchor-platform/admin-guide/sep24/setting-up-production-server.mdx +++ b/network/anchor-platform/admin-guide/sep24/setting-up-production-server.mdx @@ -11,7 +11,7 @@ Once the test server is live and you have tested both deposit and withdraw flows Make sure to keep the test server up, and deploy the production (mainnet) system in a separate environment. Having two deploys allows you to validate new features on the testnet before moving them to the final production deploy. You can also have a third staging environment if there's a big team working on this codebase and/or there will be many pushes to be tested internally before sharing with other institutions. -To switch to Stellar's public (mainnet) network, all you have to do is change the network [passphrase](/docs/learn/encyclopedia/network-passphrases) (for authenticating requests) and [Horizon URL](https://horizon.stellar.org/). +To switch to Stellar's public (mainnet) network, all you have to do is change the network [passphrase](../../../../docs/learn/encyclopedia/network-configuration/network-passphrases) (for authenticating requests) and [Horizon URL](https://horizon.stellar.org/). You can copy your existing development configs to create a production configuration. diff --git a/network/core-node/README.mdx b/network/core-node/README.mdx index a93bd9650..b3d9014a4 100644 --- a/network/core-node/README.mdx +++ b/network/core-node/README.mdx @@ -5,7 +5,7 @@ sidebar_position: 10 import { Alert } from "@site/src/components/Alert"; -Stellar is a peer-to-peer network made up of nodes, which are computers that keep a common distributed [ledger](/docs/learn/fundamentals/stellar-data-structures/ledgers), and that communicate to validate and add [transactions](/docs/learn/fundamentals/stellar-data-structures/operations-and-transactions) to it. Nodes use a program called Stellar Core — an implementation of the [Stellar Consensus Protocol](/docs/learn/fundamentals/stellar-consensus-protocol) — to stay in sync as they work to agree on the validity of transaction sets and to apply them to the ledger. Generally, nodes reach consensus, apply a transaction set, and update the ledger every 3-5 seconds. +Stellar is a peer-to-peer network made up of nodes, which are computers that keep a common distributed [ledger](/docs/learn/fundamentals/stellar-data-structures/ledgers), and that communicate to validate and add [transactions](../../docs/learn/fundamentals/transactions/operations-and-transactions) to it. Nodes use a program called Stellar Core — an implementation of the [Stellar Consensus Protocol](/docs/learn/fundamentals/stellar-consensus-protocol) — to stay in sync as they work to agree on the validity of transaction sets and to apply them to the ledger. Generally, nodes reach consensus, apply a transaction set, and update the ledger every 3-5 seconds. This section of the docs explains how to run a validator node, which participates in consensus to validate transactions and determine network settings. A validator node _should not_ be used for network data access and transaction submission. There are two varieties of _non-validating_ nodes that can be used for those purposes, each of which has its own process for set up, interaction, maintenance, and monitoring. They are: diff --git a/network/core-node/admin-guide/configuring.mdx b/network/core-node/admin-guide/configuring.mdx index 847dc626b..58a4958f0 100644 --- a/network/core-node/admin-guide/configuring.mdx +++ b/network/core-node/admin-guide/configuring.mdx @@ -50,7 +50,7 @@ Use the `NETWORK_PASSPHRASE` field to specify whether your node connects to the - `NETWORK_PASSPHRASE="Test SDF Network ; September 2015"` - `NETWORK_PASSPHRASE="Public Global Stellar Network ; September 2015"` -For more about the Network Passphrase and how it works, check out the [encyclopedia entry](/docs/learn/encyclopedia/network-passphrases). +For more about the Network Passphrase and how it works, check out the [encyclopedia entry](../../../docs/learn/encyclopedia/network-configuration/network-passphrases). ### Database @@ -134,7 +134,7 @@ While this does not absolve you of all responsibility — you still need to pick When you add a validating node to your quorum set, it's generally because you trust the _organization_ running the node: you trust SDF, not some anonymous Stellar public key. -In order to create a self-verified link between a node and the organization that runs it, a validator declares a home domain on-chain using a [`set_options` operation](/docs/learn/fundamentals/list-of-operations#set-options), and publishes organizational information in a `stellar.toml` file hosted on that domain. To find out how that works, take a look at [SEP-20]. +In order to create a self-verified link between a node and the organization that runs it, a validator declares a home domain on-chain using a [`set_options` operation](../../../docs/learn/fundamentals/transactions/list-of-operations#set-options), and publishes organizational information in a `stellar.toml` file hosted on that domain. To find out how that works, take a look at [SEP-20]. As a result of that link, you can look up a node by its Stellar public key and check the `stellar.toml` file to find out who runs it. It's possible to do that manually, but you can also just consult the list of nodes on [Stellarbeat.io](https://stellarbeat.io/nodes). If you decide to trust an organization, you can use that list to collect the information necessary to add their nodes to your configuration. diff --git a/network/core-node/admin-guide/monitoring.mdx b/network/core-node/admin-guide/monitoring.mdx index dfbd7c993..dc4367cfb 100644 --- a/network/core-node/admin-guide/monitoring.mdx +++ b/network/core-node/admin-guide/monitoring.mdx @@ -76,7 +76,7 @@ Some notable fields from this `info` endpoint are: - `age`: time elapsed since this ledger closed (during normal operation less than 10 seconds) - `num`: ledger number - `version`: protocol version supported by this ledger -- `network` the [network passphrase](/docs/learn/encyclopedia/network-passphrases) for the network this core instance is using +- `network` the [network passphrase](../../../docs/learn/encyclopedia/network-configuration/network-passphrases) for the network this core instance is using - `peers`: information on the connectivity to the network - `authenticated_count`: the number of live connections - `pending_count`: the number of connections that are not fully established yet @@ -172,15 +172,46 @@ The output will look something like: There is a survey mechanism in the overlay that allows a validator to request connection information from other nodes on the network. The survey can be triggered from a validator, and will flood through the network like any other message, but will request information from other nodes about which nodes it is connected to and a brief summary of their per-connection traffic volumes. -By default, a node will relay or respond to a survey message if the message originated from a node in the receiving nodes transitive quorum. This behavior can be overridden by setting the `SURVEYOR_KEYS` field in the config file to a more restrictive set of nodes to relay or respond to. +By default, a node will relay or respond to a survey message if the message originated from a node in the receiving node's transitive quorum. This behavior can be overridden by setting the `SURVEYOR_KEYS` field in the config file to a more restrictive set of nodes to relay or respond to. Set `SURVIVOR_KEYS` to `["$self"]` to opt-out of responding to survey requests entirely. The survey works in two phases: the collecting phase, and the reporting phase. During the collecting phase, nodes record information about themselves and their peers, such as the number of messages sent to a given peer. During the reporting phase, the surveyor requests the results of the collecting phase from nodes on the network. -The surveyor begins the collecting phase by broadcasting a `TimeSlicedSurveyStartCollectingMessage`. The surveyor ends the collecting phase and initiates the reporting phase by broadcasting a `TimeSlicedSurveyStopCollectingMessage`. These start/stop collecting messages ensure that the collecting phase is roughly equal for all nodes present for the duration of the collecting phase. +The surveyor begins the collecting phase by broadcasting a `TimeSlicedSurveyStartCollectingMessage`. The surveyor ends the collecting phase and initiates the reporting phase by broadcasting a `TimeSlicedSurveyStopCollectingMessage`. These "start/stop collecting" messages ensure that the collecting phase is roughly equal in duration for all nodes present during the entire collecting phase. We recommend sending the "stop collecting" message about 20 minutes after the "start collecting" message. If 30 minutes elapse without receiving a "stop collecting" message, the survey will automatically transition to the reporting phase. + +Additionally, the "stop/start collecting" messages contain a `nonce` field identifying the survey instance. The nonce in the "stop collecting" message must match the nonce from the "start collecting" message. The surveyor should choose a random 32-bit unsigned integer for the nonce. During the reporting phase, the surveyor sends `TimeSlicedSurveyRequestMessage`s to individual nodes to gather the information the node recorded during the collecting phase. -#### Example Survey Command +#### Overlay Survey Script + +To simplify running an overlay survey, stellar-core ships with a script [`OverlaySurvey.py`](https://github.com/stellar/stellar-core/blob/master/scripts/OverlaySurvey.py) in the [`scripts` directory](https://github.com/stellar/stellar-core/tree/master/scripts). This script walks the network using the overlay survey HTTP endpoints to build a graph containing the topology of the overlay network. The script outputs this graph both in JSON format, as well as GraphML. You can analyze the GraphML file using a GraphML viewer such as [Gephi](https://gephi.org/). + +An example usage of the survey script to run an overlay survey is as follows: +```bash +$ python3 OverlaySurvey.py survey -n http://127.0.0.1:11626 -c 20 -sr sr.json -gmlw gmlw.graphml +``` +The arguments this example uses are: +- sub command `survey` - run survey and analyze + - `-n NODE`, `--node NODE` - address of initial survey node + - `-c DURATION`, `--collect-duration DURATION` - duration of survey collecting phase in minutes + - `-gmlw GRAPHMLWRITE`, `--graphmlWrite GRAPHMLWRITE` - output file for graphml file + - `-sr SURVEYRESULT`, `--surveyResult SURVEYRESULT` - output file for survey results + +Therefore, this example will run a survey from a stellar-core node running on the local machine with a collecting phase duration of 20 minutes and output the results to `sr.json` and `gmlw.graphml`. + +The survey script contains additional subcommands and options to further analyze the survey results. You can find a complete list of subcommands by running: +```bash +$ python3 OverlaySurvey.py -h +``` +From there, you can run: +```bash +$ python3 OverlaySurvey.py -h +``` +for more info about any given subcommand. + +#### Example Survey Command Using HTTP Endpoints + +This section walks through an example of running an overlay survey by calling the survey HTTP endpoints directly. We highly recommend using the overlay survey script instead. This section may be useful to anyone who wants to modify the survey script, or anyone who is curious about the lower-level details of how the survey works and the data it includes. In this example, we have three nodes `GBBN`, `GDEX`, and `GBUI` (we'll refer to them by the first four letters of their public keys). We will execute the commands below from `GBUI`, and note that `GBBN` has `SURVEYOR_KEYS=["$self"]` in it's config file, so `GBBN` will not relay or respond to any survey messages. @@ -249,8 +280,8 @@ Once the responses are received, the `getsurveyresult` command will return a res "maxOutboundPeerCount": 8, "addedAuthenticatedPeers" : 0, "droppedAuthenticatedPeers" : 0, - "p75SCPFirstToSelfLatencyNs" : 121042, - "p75SCPSelfToOtherLatencyNs" : 112452, + "p75SCPFirstToSelfLatencyMs" : 72, + "p75SCPSelfToOtherLatencyMs" : 112, "lostSyncCount" : 0, "isValidator" : false, "outboundPeers": null @@ -287,10 +318,10 @@ Some notable fields from this `getsurveyresult` endpoint are: - `maxInboundPeerCount`/`maxOutboundPeerCount`: The number of total inbound and outbound peers that this node can accept. These fields correspond to stellar-core configurations `MAX_ADDITIONAL_PEER_CONNECTIONS` and `TARGET_PEER_CONNECTIONS`, respectively. - `addedAuthenticatedPeers`: The number of authenticated peers added. - `droppedAuthenticatedPeers`: The number of authenticated peers dropped. -- `p75SCPFirstToSelfLatencyNs`: 75th percentile latency to hear about new SCP messages in nanoseconds. - - `p75SCPSelfToOtherLatencyNs`: 75th percentile latency for other nodes to hear this node's SCP messages in nanoseconds. - - `lostSyncCount`: The number of times this node lost sync. - - `isValidator`: Is this node a validator? +- `p75SCPFirstToSelfLatencyMs`: 75th percentile latency to hear about new SCP messages in milliseconds. +- `p75SCPSelfToOtherLatencyMs`: 75th percentile latency for other nodes to hear this node's SCP messages in milliseconds. +- `lostSyncCount`: The number of times this node lost sync. +- `isValidator`: Is this node a validator? ## Quorum Health diff --git a/network/horizon/admin-guide/configuring.mdx b/network/horizon/admin-guide/configuring.mdx index 393c47c77..bedfb039f 100644 --- a/network/horizon/admin-guide/configuring.mdx +++ b/network/horizon/admin-guide/configuring.mdx @@ -82,7 +82,7 @@ If you have configured your deployment to perform the ingestion role, then it is ### `DISABLE_TX_SUB` -This config parameter is optional, set as FALSE by default. Controls whether Horizon will accept HTTP requests to the `/tx` API endpoint and forward to the network. Refer to [Channel Accounts](/docs/learn/encyclopedia/channel-accounts) for some recommendations on optional client transaction submission optimizations. +This config parameter is optional, set as FALSE by default. Controls whether Horizon will accept HTTP requests to the `/tx` API endpoint and forward to the network. Refer to [Channel Accounts](../../../docs/learn/encyclopedia/transactions-specialized/channel-accounts) for some recommendations on optional client transaction submission optimizations. - When set to FALSE, it requires **live** ingestion process to be running on the same database because Horizon depends on new ledgers from the network to confirm a transaction submission status, Horizon will report a startup error if it detects no **live** ingestion. Requires `INGEST=true` or `STELLAR_CORE_URL` to be defined for access to a Core instance. - When transaction submission is disabled by setting it to TRUE, Horizon will return 405 on POSTs to /tx. diff --git a/network/horizon/admin-guide/prerequisites.mdx b/network/horizon/admin-guide/prerequisites.mdx index 732273d04..b448f75e7 100644 --- a/network/horizon/admin-guide/prerequisites.mdx +++ b/network/horizon/admin-guide/prerequisites.mdx @@ -34,7 +34,7 @@ These specifications assume a 30-day retention window for data storage. For a lo ## Multiple Instance Deployment -To achieve high availability, redundancy, and high throughput, explore the [scaling](./scaling.mdx) strategy. It provides detailed prerequisites and guidelines to determine the appropriate [number of Horizon instances](./configuring.mdx#multiple-instance-deployment) to deploy. +To achieve high availability, redundancy, and high throughput, refer to the [scaling](./scaling.mdx) documentation. It provides a detailed overview of several different deployment strategies you can employ, depending on the SLA you need your Horizon instance to achieve. ## Network Access diff --git a/network/horizon/admin-guide/scaling.mdx b/network/horizon/admin-guide/scaling.mdx index 299337890..acc234090 100644 --- a/network/horizon/admin-guide/scaling.mdx +++ b/network/horizon/admin-guide/scaling.mdx @@ -3,38 +3,55 @@ title: Scaling sidebar_position: 70 --- -As alluded to in the discussion in [Prerequisites](./prerequisites.mdx), Horizon encompasses different logical tiers that can be scaled independently for high throughput, isolation, and high availability. The following components can be independently scaled: +Horizon enables different logical tiers that can be scaled independently for increasing throughput, isolation, and availability. The following components can be independently scaled: - Web service API (serving) - Captive Core (ingestion and transaction submission) -- Database (storage) +- Database (storage) -As always, scaling encompasses a spectrum. A few common scaling architectures follow. +## Single Instance Deployment -## Single VM +It is recommend to start with a [single instance deployment](./prerequisites.mdx), and scale up based on the needs of your particular use-case. -As a starting point, for development purposes or low load environments with limited history retention (e.g. a few ledger entries), a single VM would suffice. +This [deployment](./configuring.mdx#single-instance-deployment) is intended for use with minimal history retention (<= 30 days) and minimal request volume. -![](/assets/horizon-scaling/Topology-1VM.png) +In this setup, a single instance of Horizon performs all three [roles](./configuring.mdx#multiple-instance-deployment); ingestion, transaction submission, and end-user API requests. -## Low to Medium Load +![](/assets/horizon-scaling/Topology-single.png) -For low to medium load environments with up to 30-90 days of data history retention and modest API request traffic, this configuration isolates the database instance from the API service and ingestion process. +## Scaling to Multiple Instances -![](/assets/horizon-scaling/Topology-2VMs.png) +There are a few reasons you may choose to scale to multiple instances of Horizon. -## Enterprise _n_-Tier +- Horizontally scaling enables you to serve more API requests and at a faster rate +- Redundancy enables zero downtime in the cases where Horizon requires downtime on upgrade (migrations, state rebuilds, etc) +- Protection against potential ingestion lag, which could result in downtime for end-users -This architecture services high request and data processing throughput with isolation and redundancy for each component. Scale the API service horizontally by adding a load balancer in front of multiple API service instances, each only limited by the database I/O limit. If necessary, use ALB routing to direct specific endpoints to specific request-serving instances, which are tied to a specific, dedicated DB. Now, if an intense endpoint gets clobbered, all other endpoints are unaffected. +Multiple instances of Horizon can be configured to point to the same database, and the ingestion process will not perform redundant work in these cases. -Database instances can be scaled when the I/O limit is reached by using read-only replicated copies that stay in sync and a read/write instance connected to Captive Core. Each DB replica can support a set of request servers to support additional horizontal scaling. +When scaling Horizon, it is worth it to note that Horizon's [rate limiting](../api-reference/structure/rate-limiting.mdx) should be disabled and rate limiting should be managed external to Horizon within infrastructure. Horizon's rate limiting implementation is managed in-memory, so does not work with multiple instances. -Additionally, a second Captive Core instance shares ingestion load and serves as a backup in case of an instance failure. +![](/assets/horizon-scaling/Topology-multiple.png) -![](/assets/horizon-scaling/Topology-Enterprise.png) +## Logically Isolating Ingestion -### Redundant Hot Backup +Ingestion is the process by which new ledgers are propagated into Horizon's database. It's health is critical, as degredations in performance can result in falling behind the last closed ledger, leaving your end-users unaware of the current state of the network, and unable to successfully submit new transactions. Any lag in ingestion would likely be considered downtime for your service -The entire architecture can be replicated to a second cluster. The backup cluster can be upgraded independently or fail-overed to with no downtime. Additionally, capacity can be doubled in an emergency if needed. This is synonymous with the [Blue/Green deployment model](https://en.wikipedia.org/wiki/Blue%E2%80%93green_deployment). +Horizon allows you to independently configure the different [roles](./configuring.mdx#multiple-instance-deployment) that it performs, including ingestion. The below diagram illustrates how you could logically separate the instances serving API requests from the instances performing ingestion, and introduce a read-only replica database in order to further isolate these components. This setup has quite a few advantages: -![](/assets/horizon-scaling/Topology-Enterprise-HotBackup.png) +- Each "role" Horizon plays can be independently scaled +- API instances are significantly ligher weight from a hardware requirements perspective, since they do not need to run captive core +- API instances can be horizontally scaled or dynamically scaled, based on your specific end-user needs +- Ingestion and it's performance is isolated from API activity, so bursts in user activity cannot degrade it and cause ingestion lag. Ingestion health is critical, as degredations in performance can result in falling behind the last closed ledger, leaving your end-users unaware of the current state of the network, and unable to successfully submit new transactions + +The Horizon API role requires only read-only permissions to a database for all actions it performs. However, the API instances will need to delegate all transaction submission requests to an instance which runs captive core. Further database replicas could be added if necessary to support more requests. + +![](/assets/horizon-scaling/Topology-ingestion-isolation.png) + +## Logically Isolating Transaction Submission + +In the above example, ingestion is safely isolated from most API traffic, which has historically been the large majority of traffic. However, transaction submission still needs to be served by a core instance, and so API instances must passthrough their transaction submission requests to an ingesting instance. + +The below diagram illustrates how we could further isolate (and scale) transaction submission, by way of using core watcher instances, rather than Horizon instances running captive core. This allows us to further protect ingestion, preventing downtime and ingestion lag. It also makes it possible to horizontally scale transaction submission itself, independent of the rest of the API traffic. + +![](/assets/horizon-scaling/Topology-ingestion-isolation.png) \ No newline at end of file diff --git a/network/horizon/api-reference/aggregations/paths/README.mdx b/network/horizon/api-reference/aggregations/paths/README.mdx index dc559755d..c29d8f6eb 100644 --- a/network/horizon/api-reference/aggregations/paths/README.mdx +++ b/network/horizon/api-reference/aggregations/paths/README.mdx @@ -7,7 +7,7 @@ import { EndpointsTable } from "@site/src/components/EndpointsTable"; Paths provide information about potential path payments. A path can be used to populate the necessary fields for a path payment operation. -Learn more about the two types of path payment: [`path payment strict send`](/docs/learn/fundamentals/list-of-operations#path-payment-strict-send) and [`path payment strict receive`](/docs/learn/fundamentals/list-of-operations#path-payment-strict-receive) +Learn more about the two types of path payment: [`path payment strict send`](../../../../../docs/learn/fundamentals/transactions/list-of-operations#path-payment-strict-send) and [`path payment strict receive`](../../../../../docs/learn/fundamentals/transactions/list-of-operations#path-payment-strict-receive) diff --git a/network/horizon/api-reference/errors/result-codes/operation-specific/README.mdx b/network/horizon/api-reference/errors/result-codes/operation-specific/README.mdx index 50223069e..642ae2ed0 100644 --- a/network/horizon/api-reference/errors/result-codes/operation-specific/README.mdx +++ b/network/horizon/api-reference/errors/result-codes/operation-specific/README.mdx @@ -29,4 +29,4 @@ Each of Stellar's operations have unique causes of failure, and these result cod -For operations that aren't in this list, you can usually refer to their corresponding entries in the [List of Operations](/docs/learn/fundamentals/list-of-operations) which will enumerate the failure cases and corresponding result codes. +For operations that aren't in this list, you can usually refer to their corresponding entries in the [List of Operations](../../../../../../docs/learn/fundamentals/transactions/list-of-operations) which will enumerate the failure cases and corresponding result codes. diff --git a/network/horizon/api-reference/errors/result-codes/operation-specific/account-merge.mdx b/network/horizon/api-reference/errors/result-codes/operation-specific/account-merge.mdx index 61e01b097..9b775a935 100644 --- a/network/horizon/api-reference/errors/result-codes/operation-specific/account-merge.mdx +++ b/network/horizon/api-reference/errors/result-codes/operation-specific/account-merge.mdx @@ -8,7 +8,7 @@ import { AttributeTable } from "@site/src/components/AttributeTable"; These are result codes that communicate success (200) or failure (400) specific to the `Account Merge` operation. -Learn more about the [`Account Merge` operation](/docs/learn/fundamentals/list-of-operations#account-merge). +Learn more about the [`Account Merge` operation](../../../../../../docs/learn/fundamentals/transactions/list-of-operations#account-merge). diff --git a/network/horizon/api-reference/errors/result-codes/operation-specific/allow-trust.mdx b/network/horizon/api-reference/errors/result-codes/operation-specific/allow-trust.mdx index 578c7884e..1dd5ae222 100644 --- a/network/horizon/api-reference/errors/result-codes/operation-specific/allow-trust.mdx +++ b/network/horizon/api-reference/errors/result-codes/operation-specific/allow-trust.mdx @@ -8,7 +8,7 @@ import { AttributeTable } from "@site/src/components/AttributeTable"; These are result codes that communicate success (200) or failure (400) specific to the `Allow Trust` operation. -Learn more about the [`Allow Trust` operation](/docs/learn/fundamentals/list-of-operations#allow-trust). +Learn more about the [`Allow Trust` operation](../../../../../../docs/learn/fundamentals/transactions/list-of-operations#allow-trust). diff --git a/network/horizon/api-reference/errors/result-codes/operation-specific/bump-sequence.mdx b/network/horizon/api-reference/errors/result-codes/operation-specific/bump-sequence.mdx index 0571f5dd8..f2d0ece4e 100644 --- a/network/horizon/api-reference/errors/result-codes/operation-specific/bump-sequence.mdx +++ b/network/horizon/api-reference/errors/result-codes/operation-specific/bump-sequence.mdx @@ -8,7 +8,7 @@ import { AttributeTable } from "@site/src/components/AttributeTable"; These are result codes that communicate success (200) or failure (400) specific to the `Bump Sequence` operation. -Learn more about the [`Bump Sequence` operation](/docs/learn/fundamentals/list-of-operations#bump-sequence). +Learn more about the [`Bump Sequence` operation](../../../../../../docs/learn/fundamentals/transactions/list-of-operations#bump-sequence). diff --git a/network/horizon/api-reference/errors/result-codes/operation-specific/change-trust.mdx b/network/horizon/api-reference/errors/result-codes/operation-specific/change-trust.mdx index ac8f0a3f0..ae5600dd2 100644 --- a/network/horizon/api-reference/errors/result-codes/operation-specific/change-trust.mdx +++ b/network/horizon/api-reference/errors/result-codes/operation-specific/change-trust.mdx @@ -8,7 +8,7 @@ import { AttributeTable } from "@site/src/components/AttributeTable"; These are result codes that communicate success (200) or failure (400) specific to the `Change Trust` operation. -Learn more about the [`Change Trust` operation](/docs/learn/fundamentals/list-of-operations#change-trust) +Learn more about the [`Change Trust` operation](../../../../../../docs/learn/fundamentals/transactions/list-of-operations#change-trust) diff --git a/network/horizon/api-reference/errors/result-codes/operation-specific/create-account.mdx b/network/horizon/api-reference/errors/result-codes/operation-specific/create-account.mdx index fea0c664c..f7fae6994 100644 --- a/network/horizon/api-reference/errors/result-codes/operation-specific/create-account.mdx +++ b/network/horizon/api-reference/errors/result-codes/operation-specific/create-account.mdx @@ -8,7 +8,7 @@ import { AttributeTable } from "@site/src/components/AttributeTable"; These are result codes that communicate success (200) or failure (400) specific to the `Create Account` operation, which often fails because the new account does not meet the minimum reserve. -Learn more about the [`Create Account` operation](/docs/learn/fundamentals/list-of-operations#create-account). +Learn more about the [`Create Account` operation](../../../../../../docs/learn/fundamentals/transactions/list-of-operations#create-account). diff --git a/network/horizon/api-reference/errors/result-codes/operation-specific/create-passive-sell-offer.mdx b/network/horizon/api-reference/errors/result-codes/operation-specific/create-passive-sell-offer.mdx index 66f30630c..7dd4e4587 100644 --- a/network/horizon/api-reference/errors/result-codes/operation-specific/create-passive-sell-offer.mdx +++ b/network/horizon/api-reference/errors/result-codes/operation-specific/create-passive-sell-offer.mdx @@ -8,7 +8,7 @@ import { AttributeTable } from "@site/src/components/AttributeTable"; These are result codes that communicate success (200) or failure (400) specific to the `Create Passive Sell Offer` operation. -Learn more about the [`Create Passive Sell Offer` operation](/docs/learn/fundamentals/list-of-operations#create-passive-sell-offer). +Learn more about the [`Create Passive Sell Offer` operation](../../../../../../docs/learn/fundamentals/transactions/list-of-operations#create-passive-sell-offer). diff --git a/network/horizon/api-reference/errors/result-codes/operation-specific/manage-buy-offer.mdx b/network/horizon/api-reference/errors/result-codes/operation-specific/manage-buy-offer.mdx index 35df47f8d..b26fecb4d 100644 --- a/network/horizon/api-reference/errors/result-codes/operation-specific/manage-buy-offer.mdx +++ b/network/horizon/api-reference/errors/result-codes/operation-specific/manage-buy-offer.mdx @@ -8,7 +8,7 @@ import { AttributeTable } from "@site/src/components/AttributeTable"; These are result codes that communicate success (200) or failure (400) specific to the `Manage Buy Offer` operation. -Learn more about the [`Manage Buy Offer` operation](/docs/learn/fundamentals/list-of-operations#manage-buy-offer). +Learn more about the [`Manage Buy Offer` operation](../../../../../../docs/learn/fundamentals/transactions/list-of-operations#manage-buy-offer). diff --git a/network/horizon/api-reference/errors/result-codes/operation-specific/manage-data.mdx b/network/horizon/api-reference/errors/result-codes/operation-specific/manage-data.mdx index 7ef128678..614b7b00f 100644 --- a/network/horizon/api-reference/errors/result-codes/operation-specific/manage-data.mdx +++ b/network/horizon/api-reference/errors/result-codes/operation-specific/manage-data.mdx @@ -8,7 +8,7 @@ import { AttributeTable } from "@site/src/components/AttributeTable"; These are result codes that communicate success (200) or failure (400) specific to the `Manage Data` operation. -Learn more about the [`Manage Data` operation](/docs/learn/fundamentals/list-of-operations#manage-data). +Learn more about the [`Manage Data` operation](../../../../../../docs/learn/fundamentals/transactions/list-of-operations#manage-data). diff --git a/network/horizon/api-reference/errors/result-codes/operation-specific/manage-sell-offer.mdx b/network/horizon/api-reference/errors/result-codes/operation-specific/manage-sell-offer.mdx index da36e6fdf..4a348e985 100644 --- a/network/horizon/api-reference/errors/result-codes/operation-specific/manage-sell-offer.mdx +++ b/network/horizon/api-reference/errors/result-codes/operation-specific/manage-sell-offer.mdx @@ -8,7 +8,7 @@ import { AttributeTable } from "@site/src/components/AttributeTable"; These are result codes that communicate success (200) or failure (400) specific to the `Manage Sell Offer` operation. -Learn more about the [`Manage Sell Offer` operation](/docs/learn/fundamentals/list-of-operations#manage-sell-offer). +Learn more about the [`Manage Sell Offer` operation](../../../../../../docs/learn/fundamentals/transactions/list-of-operations#manage-sell-offer). diff --git a/network/horizon/api-reference/errors/result-codes/operation-specific/path-payment-strict-receive.mdx b/network/horizon/api-reference/errors/result-codes/operation-specific/path-payment-strict-receive.mdx index e0cdbf973..875fd6192 100644 --- a/network/horizon/api-reference/errors/result-codes/operation-specific/path-payment-strict-receive.mdx +++ b/network/horizon/api-reference/errors/result-codes/operation-specific/path-payment-strict-receive.mdx @@ -8,7 +8,7 @@ import { AttributeTable } from "@site/src/components/AttributeTable"; These are result codes that communicate success (200) or failure (400) specific to the `Path Payment Strict Receive` operation. -Learn more about the [`Path Payment Strict Receive` operation](/docs/learn/fundamentals/list-of-operations#path-payment-strict-receive). +Learn more about the [`Path Payment Strict Receive` operation](../../../../../../docs/learn/fundamentals/transactions/list-of-operations#path-payment-strict-receive). diff --git a/network/horizon/api-reference/errors/result-codes/operation-specific/path-payment-strict-send.mdx b/network/horizon/api-reference/errors/result-codes/operation-specific/path-payment-strict-send.mdx index 7aa39edd8..bf87cd287 100644 --- a/network/horizon/api-reference/errors/result-codes/operation-specific/path-payment-strict-send.mdx +++ b/network/horizon/api-reference/errors/result-codes/operation-specific/path-payment-strict-send.mdx @@ -8,7 +8,7 @@ import { AttributeTable } from "@site/src/components/AttributeTable"; These are result codes that communicate success (200) or failure (400) specific to the `Path Payment Strict Send` operation. -Learn more about the [`Path Payment Strict Send` operation](/docs/learn/fundamentals/list-of-operations#path-payment-strict-send). +Learn more about the [`Path Payment Strict Send` operation](../../../../../../docs/learn/fundamentals/transactions/list-of-operations#path-payment-strict-send). diff --git a/network/horizon/api-reference/errors/result-codes/operation-specific/payment.mdx b/network/horizon/api-reference/errors/result-codes/operation-specific/payment.mdx index e5e487659..0a1135487 100644 --- a/network/horizon/api-reference/errors/result-codes/operation-specific/payment.mdx +++ b/network/horizon/api-reference/errors/result-codes/operation-specific/payment.mdx @@ -8,7 +8,7 @@ import { AttributeTable } from "@site/src/components/AttributeTable"; These are result codes that communicate success (200) or failure (400) specific to the `Payment` operation, which often fails because the receiving account does not trust the issuer of the asset being sent. -Learn more about the [`Payment` operation](/docs/learn/fundamentals/list-of-operations#payment)). +Learn more about the [`Payment` operation](../../../../../../docs/learn/fundamentals/transactions/list-of-operations#payment). diff --git a/network/horizon/api-reference/errors/result-codes/operation-specific/set-options.mdx b/network/horizon/api-reference/errors/result-codes/operation-specific/set-options.mdx index ef31d74aa..9739bcee9 100644 --- a/network/horizon/api-reference/errors/result-codes/operation-specific/set-options.mdx +++ b/network/horizon/api-reference/errors/result-codes/operation-specific/set-options.mdx @@ -8,7 +8,7 @@ import { AttributeTable } from "@site/src/components/AttributeTable"; These are result codes that communicate success (200) or failure (400) specific to the `Set Options` operation. -Learn more about the [`Set Options` operation](/docs/learn/fundamentals/list-of-operations#set-options). +Learn more about the [`Set Options` operation](../../../../../../docs/learn/fundamentals/transactions/list-of-operations#set-options). diff --git a/network/horizon/api-reference/resources/ledgers/object.mdx b/network/horizon/api-reference/resources/ledgers/object.mdx index a04f8c796..8469e6b65 100644 --- a/network/horizon/api-reference/resources/ledgers/object.mdx +++ b/network/horizon/api-reference/resources/ledgers/object.mdx @@ -21,7 +21,7 @@ When Horizon returns information about a ledger, it uses the following format: - A cursor value for use in [pagination](../../structure/pagination/README.mdx). - hash - string - - A hex-encoded SHA-256 hash of this ledger’s [XDR](../../../../../docs/learn/encyclopedia/xdr)-encoded form. + - A hex-encoded SHA-256 hash of this ledger’s [XDR](../../../../../docs/learn/encyclopedia/data-format/xdr)-encoded form. - prev_hash - string - The hash of the ledger immediately preceding this ledger. diff --git a/network/horizon/api-reference/resources/operations/object/extend-footprint-ttl.mdx b/network/horizon/api-reference/resources/operations/object/extend-footprint-ttl.mdx index c44991831..4df62b0d3 100644 --- a/network/horizon/api-reference/resources/operations/object/extend-footprint-ttl.mdx +++ b/network/horizon/api-reference/resources/operations/object/extend-footprint-ttl.mdx @@ -6,7 +6,7 @@ order: 230 import { ExampleResponse } from "@site/src/components/ExampleResponse"; import { AttributeTable } from "@site/src/components/AttributeTable"; -[Extends](/docs/learn/fundamentals/list-of-operations#extend-footprint-ttl) the TTL for a given set of ledger entries. +[Extends](../../../../../../docs/learn/fundamentals/transactions/list-of-operations#extend-footprint-ttl) the TTL for a given set of ledger entries. diff --git a/network/horizon/api-reference/resources/operations/object/invoke-host-function.mdx b/network/horizon/api-reference/resources/operations/object/invoke-host-function.mdx index 4589f3795..f48d4f22c 100644 --- a/network/horizon/api-reference/resources/operations/object/invoke-host-function.mdx +++ b/network/horizon/api-reference/resources/operations/object/invoke-host-function.mdx @@ -6,7 +6,7 @@ order: 220 import { ExampleResponse } from "@site/src/components/ExampleResponse"; import { AttributeTable } from "@site/src/components/AttributeTable"; -[Invokes](/docs/learn/fundamentals/list-of-operations#invoke-host-function) a Soroban smart contract function. +[Invokes](../../../../../../docs/learn/fundamentals/transactions/list-of-operations#invoke-host-function) a Soroban smart contract function. @@ -22,7 +22,7 @@ import { AttributeTable } from "@site/src/components/AttributeTable"; - An array of parameters passed into the Soroban smart contract function (only present when the type of `InvokeHostFunctionOp` is `HostFunctionTypeHostFunctionTypeInvokeContract`). - type - string - - The [type](/docs/learn/smart-contract-internals/types/built-in-types) of the function parameter. + - The [type](../../../../../../docs/learn/encyclopedia/contract-development/types/built-in-types) of the function parameter. - value - string - The base64 encoding of the XDR value of the parameter. diff --git a/network/horizon/api-reference/resources/operations/object/liquidity-pool-deposit.mdx b/network/horizon/api-reference/resources/operations/object/liquidity-pool-deposit.mdx index 2e08b4b9b..c95c2f484 100644 --- a/network/horizon/api-reference/resources/operations/object/liquidity-pool-deposit.mdx +++ b/network/horizon/api-reference/resources/operations/object/liquidity-pool-deposit.mdx @@ -8,7 +8,7 @@ import { AttributeTable } from "@site/src/components/AttributeTable"; Deposit asset reserves into a liquidity pool. -See the [`Liquidity Pool Deposit` operation](/docs/learn/fundamentals/list-of-operations#liquidity-pool-deposit) for parameters, errors, etc. +See the [`Liquidity Pool Deposit` operation](../../../../../../docs/learn/fundamentals/transactions/list-of-operations#liquidity-pool-deposit) for parameters, errors, etc. diff --git a/network/horizon/api-reference/resources/operations/object/liquidity-pool-withdraw.mdx b/network/horizon/api-reference/resources/operations/object/liquidity-pool-withdraw.mdx index a899ac3fb..e6091208c 100644 --- a/network/horizon/api-reference/resources/operations/object/liquidity-pool-withdraw.mdx +++ b/network/horizon/api-reference/resources/operations/object/liquidity-pool-withdraw.mdx @@ -8,7 +8,7 @@ import { AttributeTable } from "@site/src/components/AttributeTable"; Withdraws asset reserves from a liquidity pool by redeeming pool shares. -See the [`Liquidity Pool Withdraw` operation](/docs/learn/fundamentals/list-of-operations#liquidity-pool-withdraw) for parameters, errors, etc. +See the [`Liquidity Pool Withdraw` operation](../../../../../../docs/learn/fundamentals/transactions/list-of-operations#liquidity-pool-withdraw) for parameters, errors, etc. diff --git a/network/horizon/api-reference/resources/operations/object/restore-footprint.mdx b/network/horizon/api-reference/resources/operations/object/restore-footprint.mdx index 49da3fe93..9d468909c 100644 --- a/network/horizon/api-reference/resources/operations/object/restore-footprint.mdx +++ b/network/horizon/api-reference/resources/operations/object/restore-footprint.mdx @@ -6,7 +6,7 @@ order: 240 import { ExampleResponse } from "@site/src/components/ExampleResponse"; import { AttributeTable } from "@site/src/components/AttributeTable"; -[Restores](/docs/learn/fundamentals/list-of-operations#restore-footprint) archived entries and makes them accessible. +[Restores](../../../../../../docs/learn/fundamentals/transactions/list-of-operations#restore-footprint) archived entries and makes them accessible. diff --git a/network/horizon/api-reference/resources/transactions/object.mdx b/network/horizon/api-reference/resources/transactions/object.mdx index 97d618f3e..df49a0c3f 100644 --- a/network/horizon/api-reference/resources/transactions/object.mdx +++ b/network/horizon/api-reference/resources/transactions/object.mdx @@ -24,7 +24,7 @@ When Horizon returns information about a transaction, it uses the following form - Indicates if this transaction was successful or not. - hash - string - - A hex-encoded SHA-256 hash of this transaction’s [XDR](/docs/learn/encyclopedia/xdr)-encoded form. + - A hex-encoded SHA-256 hash of this transaction’s [XDR](../../../../../docs/learn/encyclopedia/data-format/xdr)-encoded form. - ledger - number - The sequence number of the ledger that this transaction was included in. diff --git a/network/hubble/README.mdx b/network/hubble/README.mdx index 9eacc67bc..af1f13bc4 100644 --- a/network/hubble/README.mdx +++ b/network/hubble/README.mdx @@ -7,7 +7,7 @@ sidebar_position: 0 Hubble is an open-source, publicly available dataset that provides a complete historical record of the Stellar network. Similar to Horizon, it ingests and presents the data produced by the Stellar network in a format that is easier to consume than the performance-oriented data representations used by Stellar Core. The dataset is hosted on BigQuery–meaning it is suitable for large, analytic workloads, historical data retrieval and complex data aggregation. **Hubble should not be used for real-time data retrieval and cannot submit transactions to the network.** For real time use cases, we recommend [running an API server](../horizon/admin-guide/README.mdx). -This guide describes when to use Hubble and how to connect. To view the underlying data structures, queries and examples, use the [Viewing Metadata](./viewing-metadata.mdx) and [Optimizing Queries](./optimizing-queries.mdx) tutorials. +This guide describes when to use Hubble and how to connect. To view the underlying data structures, queries and examples, use the [Viewing Metadata](./analyst-guide/viewing-metadata.mdx) and [Optimizing Queries](./analyst-guide/optimizing-queries.mdx) tutorials. ## Why Use Hubble? diff --git a/network/hubble/admin-guide/README.mdx b/network/hubble/admin-guide/README.mdx new file mode 100644 index 000000000..0716e2ff9 --- /dev/null +++ b/network/hubble/admin-guide/README.mdx @@ -0,0 +1,10 @@ +--- +title: Admin Guide +sidebar_position: 15 +--- + +import DocCardList from "@theme/DocCardList"; + +All you need to know about running a Hubble analytics platform. + + \ No newline at end of file diff --git a/network/hubble/admin-guide/data-curation/README.mdx b/network/hubble/admin-guide/data-curation/README.mdx new file mode 100644 index 000000000..599382bbf --- /dev/null +++ b/network/hubble/admin-guide/data-curation/README.mdx @@ -0,0 +1,10 @@ +--- +title: Data Curation +sidebar_position: 20 +--- + +import DocCardList from "@theme/DocCardList"; + +Running stellar-dbt-public to transform raw Stellar network data into something better. + + \ No newline at end of file diff --git a/network/hubble/admin-guide/data-curation/architecture.mdx b/network/hubble/admin-guide/data-curation/architecture.mdx new file mode 100644 index 000000000..e01f25ee3 --- /dev/null +++ b/network/hubble/admin-guide/data-curation/architecture.mdx @@ -0,0 +1,22 @@ +--- +title: Architecture +sidebar_position: 10 +--- + +import stellar_dbt_arch from '/img/hubble/stellar_dbt_architecture.png'; + +## Architecture Overview + + + +In general stellar-dbt-public runs by: + +* Selecting a dbt model to run +* Within the model run: + * Sources are referenced and used to create staging tables + * Staging tables then undergo various transformations and are stored in intermediate tables + * Finishing touches and joins are done on the intermediate tables which produce the final analytics friendly mart tables + +We try to adhere to the best practices set by the [dbt docs](https://docs.getdbt.com/docs/build/projects) + +More detailed information about stellar-dbt-public and examples can be found in the [stellar-dbt-public](https://github.com/stellar/stellar-dbt-public/tree/master) repo. \ No newline at end of file diff --git a/network/hubble/admin-guide/data-curation/getting-started.mdx b/network/hubble/admin-guide/data-curation/getting-started.mdx new file mode 100644 index 000000000..1dac9b086 --- /dev/null +++ b/network/hubble/admin-guide/data-curation/getting-started.mdx @@ -0,0 +1,140 @@ +--- +title: Getting Started +sidebar_position: 20 +--- + +[stellar-dbt-public GitHub repository](https://github.com/stellar/stellar-dbt-public/tree/master) + +[stellar/stellar-dbt-public docker images](https://hub.docker.com/r/stellar/stellar-dbt-public) + +## Recommended Usage + +### Docker Image + +Generally if you do not need to modify any of the stellar-dbt-public code, it is recommended that you use the [stellar/stellar-dbt-public docker images](https://hub.docker.com/r/stellar/stellar-dbt-public) + +Example to run locally with docker: + +``` +docker run --platform linux/amd64 -ti stellar/stellar-dbt-public:latest +``` + +### Import stellar-dbt-public as a dbt Package + +Alternatively, if you need to build your own models on top of stellar-dbt-public, you can import stellar-dbt-public as a dbt package into a separate dbt project. + +Example instructions: + +* Create a new file `packages.yml` in your dbt project (not the stellar-dbt-public project) with the yml below + +``` +packages: + - git: "https://github.com/stellar/stellar-dbt-public.git" + revision: v0.0.28 +``` + +* (Optional) Update your profiles.yml to include profile configurations for stellar-dbt-public + +``` +new_project: + target: test + outputs: + test: + project: + dataset: + + +stellar_dbt_public: + target: test + outputs: + test: + project: + dataset: + +``` + +* (Optional) Update your dbt_project.yml to include project configurations for stellar-dbt-public + +``` +name: 'stellar_dbt' +version: '1.0.0' +config-version: 2 + +profile: 'new_project' + +model-paths: ["models"] +analysis-paths: ["analyses"] +test-paths: ["tests"] +seed-paths: ["seeds"] +macro-paths: ["macros"] +snapshot-paths: ["snapshots"] + +target-path: "target" +clean-targets: + - "target" + - "dbt_packages" + +models: + new_project: + staging: + +materialized: view + intermediate: + +materialized: ephemeral + marts: + +materialized: table + + stellar_dbt_public: + staging: + +materialized: ephemeral + intermediate: + +materialized: ephemeral + marts: + +materialized: table +``` + +* Models from the stellar-dbt-public package/repo will now be available in your new dbt project + +## Building and Running Locally + +### Clone the repo + +``` +git clone https://github.com/stellar/stellar-dbt-public +``` + +### Install required python packages + +``` +pip install --upgrade pip && pip install -r requirements.txt + +``` + +### Install required dbt packages + +``` +dbt deps +``` + +### Running dbt + +* There are many useful commands that come with dbt which can be found in the [dbt documentation](https://docs.getdbt.com/reference/dbt-commands#available-commands) +* stellar-dbt-public is designed to use the `dbt build` command which will `run` the model and `test` the model table output +* (Optional) run with the `--full-refresh` option + +``` +dbt build --full-refresh +``` + +* Subsequent runs can be run with incremental mode (only inserts the newest of data instead of rebuilding all of history every time) + +``` +dbt build +``` + +* You can also specify just a single model if you don't want to run all stellar-dbt-public models + +``` +dbt build --select +``` + +Please see the [stellar-dbt-public/modles/marts](https://github.com/stellar/stellar-dbt-public/tree/master/models/marts) directory to see a full list of the available models that dbt can run \ No newline at end of file diff --git a/network/hubble/admin-guide/data-curation/overview.mdx b/network/hubble/admin-guide/data-curation/overview.mdx new file mode 100644 index 000000000..115561803 --- /dev/null +++ b/network/hubble/admin-guide/data-curation/overview.mdx @@ -0,0 +1,15 @@ +--- +title: "Overview" +sidebar_position: 0 +--- + +Data curation in Hubble is done through [stellar-dbt-public](https://github.com/stellar/stellar-dbt-public). stellar-dbt-public transforms raw Stellar network data from BigQuery datasets and tables into aggregates for more user friendly analytics. + +It is worth noting that most users will not need to standup and run their own stellar-dbt-public instance. The Stellar Development Foundation provides public access to fully transformed Stellar network data through the public datasets and tables in GCP BigQuery. Instructions on how to access this data can be found in the [Connecting](https://developers.stellar.org/network/hubble/analyst-guide/connecting) section. + +## Why Run stellar-dbt-public? + +Running stellar-dbt-public within your own infrastructure provides a number of benefits. You can: + +- Have full operational control without dependency on the Stellar Development Foundation for network data +- Run modified ETL/ELT pipelines that fit your individual business needs \ No newline at end of file diff --git a/network/hubble/admin-guide/scheduling-and-orchestration/README.mdx b/network/hubble/admin-guide/scheduling-and-orchestration/README.mdx new file mode 100644 index 000000000..d66b63e8a --- /dev/null +++ b/network/hubble/admin-guide/scheduling-and-orchestration/README.mdx @@ -0,0 +1,10 @@ +--- +title: Scheduling and Orchestration +sidebar_position: 100 +--- + +import DocCardList from "@theme/DocCardList"; + +Stitching all the components together. + + \ No newline at end of file diff --git a/network/hubble/admin-guide/scheduling-and-orchestration/architecture.mdx b/network/hubble/admin-guide/scheduling-and-orchestration/architecture.mdx new file mode 100644 index 000000000..e37dfff36 --- /dev/null +++ b/network/hubble/admin-guide/scheduling-and-orchestration/architecture.mdx @@ -0,0 +1,18 @@ +--- +title: Architecture +sidebar_position: 10 +--- + +import stellar_etl_airflow_arch from '/img/hubble/stellar_etl_airflow_architecture.png'; + +## Architecture Overview + + + +In general stellar-etl-airflow runs by: + +* Scheduling DAGs to run `stellar-etl` and upload the data outputted to BigQuery +* Scheduling DAGs to run `stellar-dbt-public` using the data in BigQuery + * We try to adhere to the best practices set by the [dbt docs](https://docs.getdbt.com/docs/build/projects) + +More detailed information about stellar-etl-airflow can be found in the [stellar-etl-airflow](https://github.com/stellar/stellar-etl-airflow/tree/master) repo. \ No newline at end of file diff --git a/network/hubble/admin-guide/scheduling-and-orchestration/getting-started.mdx b/network/hubble/admin-guide/scheduling-and-orchestration/getting-started.mdx new file mode 100644 index 000000000..ae461cf4d --- /dev/null +++ b/network/hubble/admin-guide/scheduling-and-orchestration/getting-started.mdx @@ -0,0 +1,87 @@ +--- +title: Getting Started +sidebar_position: 20 +--- + +import history_table_export from '/img/hubble/history_table_export.png'; +import state_table_export from '/img/hubble/state_table_export.png'; +import dbt_enriched_base_tables from '/img/hubble/dbt_enriched_base_tables.png'; + +[stellar-etl-airflow GitHub repository](https://github.com/stellar/stellar-etl-airflow/tree/master) + +## GCP Account Setup + +The Stellar Development Foundation runs Hubble in GCP using Composer and BigQuery. To follow the same deployment you will need to have access to GCP project. Instructions can be found in the [Get Started](https://cloud.google.com/docs/get-started) documentation from Google. + +Note: BigQuery and Composer should be available by default. If they are not you can find instructions for enabling them in the [BigQuery](https://cloud.google.com/bigquery?hl=en) or [Composer](https://cloud.google.com/composer?hl=en) Google documentation. + +## Create GCP Composer Instance to Run Airflow + +Instructions on bringing up a GCP Composer instance to run Hubble can be found in the [Installation and Setup](https://github.com/stellar/stellar-etl-airflow?tab=readme-ov-file#installation-and-setup) section in the [stellar-etl-airflow](https://github.com/stellar/stellar-etl-airflow) repository. + +:::note + +Hardware requirements can be very different depending on the Stellar network data you require. The default GCP settings may be higher/lower than actually required. + +::: + +## Configuring GCP Composer Airflow + +There are two things required for the configuration and setup of GCP Composer Airflow: + +* Upload DAGs to the Composer Airflow Bucket +* Configure the Airflow variables for your GCP setup + +For more detailed instructions please see the [stellar-etl-airflow Installation and Setup](https://github.com/stellar/stellar-etl-airflow?tab=readme-ov-file#installation-and-setup) documentation. + +### Uploading DAGs + +Within the [stellar-etl-airflow](https://github.com/stellar/stellar-etl-airflow) repo there is an [upload_static_to_gcs.sh](https://github.com/stellar/stellar-etl-airflow/blob/master/upload_static_to_gcs.sh) shell script that will upload all the DAGs and schemas into your Composer Airflow bucket. + +This can also be done using the [gcloud CLI or console](https://cloud.google.com/storage/docs/uploading-objects) and manually selecting the dags and schemas you wish to upload. + +### Configuring Airflow Variables + +Please see the [Airflow Variables Explanation](https://github.com/stellar/stellar-etl-airflow?tab=readme-ov-file#airflow-variables-explanation) documentation for more information about what should and needs to be configured. + +## Running the DAGs + +To run a DAG all you have to do is toggle the DAG on/off as seen below + +![Toggle DAGs](/img/hubble/airflow_dag_toggle.png) + +More information about each DAG can be found in the [DAG Diagrams](https://github.com/stellar/stellar-etl-airflow?tab=readme-ov-file#dag-diagrams) documentation. + +## Available DAGs + +More information can be found [here](https://github.com/stellar/stellar-etl-airflow/blob/master/README.md#public-dags) + +### History Table Export DAG + +[This DAG](https://github.com/stellar/stellar-etl-airflow/blob/master/dags/history_tables_dag.py): + +- Exports part of sources: ledgers, operations, transactions, trades, effects and assets from Stellar using the data lake of LedgerCloseMeta files + - Optionally this can ingest data using captive-core but that is not ideal nor recommended for usage with Airflow +- Inserts into BigQuery + + + +### State Table Export DAG + +[This DAG](https://github.com/stellar/stellar-etl-airflow/blob/master/dags/state_table_dag.py) + +- Exports accounts, account_signers, offers, claimable_balances, liquidity pools, trustlines, contract_data, contract_code, config_settings and ttl. +- Inserts into BigQuery + + + +### DBT Enriched Base Tables DAG + +[This DAG](https://github.com/stellar/stellar-etl-airflow/blob/master/dags/dbt_enriched_base_tables_dag.py) + +- Creates the DBT staging views for models +- Updates the enriched_history_operations table +- Updates the current state tables +- (Optional) warnings and errors are sent to slack. + + \ No newline at end of file diff --git a/network/hubble/admin-guide/scheduling-and-orchestration/overview.mdx b/network/hubble/admin-guide/scheduling-and-orchestration/overview.mdx new file mode 100644 index 000000000..9075c8331 --- /dev/null +++ b/network/hubble/admin-guide/scheduling-and-orchestration/overview.mdx @@ -0,0 +1,15 @@ +--- +title: "Overview" +sidebar_position: 0 +--- + +Hubble uses [stellar-etl-airflow](https://github.com/stellar/stellar-etl-airflow) to schedule and orchestrate all its workflows. This includes the scheduling and running of stellar-etl and stellar-dbt. + +It is worth noting that most users will not need to standup and run their own Hubble. The Stellar Development Foundation provides public access to the data through the public datasets and tables in GCP BigQuery. Instructions on how to access this data can be found in the [Connecting](https://developers.stellar.org/network/hubble/connecting) section. + +## Why Run stellar-etl-ariflow? + +Running stellar-etl-airflow within your own infrastructure provides a number of benefits. You can: + +- Have full operational control without dependency on the Stellar Development Foundation for network data +- Run modified ETL/ELT pipelines that fit your individual business needs \ No newline at end of file diff --git a/network/hubble/admin-guide/source-system-ingestion/README.mdx b/network/hubble/admin-guide/source-system-ingestion/README.mdx new file mode 100644 index 000000000..2043b6250 --- /dev/null +++ b/network/hubble/admin-guide/source-system-ingestion/README.mdx @@ -0,0 +1,10 @@ +--- +title: Source System Ingestion +sidebar_position: 10 +--- + +import DocCardList from "@theme/DocCardList"; + +Running stellar-etl for Stellar network data ingestion. + + \ No newline at end of file diff --git a/network/hubble/admin-guide/source-system-ingestion/architecture.mdx b/network/hubble/admin-guide/source-system-ingestion/architecture.mdx new file mode 100644 index 000000000..94b9dd3ae --- /dev/null +++ b/network/hubble/admin-guide/source-system-ingestion/architecture.mdx @@ -0,0 +1,25 @@ +--- +title: Architecture +sidebar_position: 10 +--- + +import stellar_arch from '/img/hubble/stellar_overall_architecture.png'; +import stellar_etl_arch from '/img/hubble/stellar_etl_architecture.png'; + +## Architecture Overview + + + + + +In general stellar-etl runs by: + +* Read raw data from the Stellar network +* This can be done by running a stellar-etl export command to export data between a start and end ledger + * stellar-etl has the ability to read from two different sources: + * Captive-core directly to get LedgerCloseMeta + * A data lake of compressed LedgerCloseMeta files from Ledger Exporter +* Tranforms the LedgerCloseMeta XDR into an easy to parse JSON format +* Optionally uploads the JSON files to GCS or any other cloud storage service + +More detailed information about stellar-etl and examples can be found in the [stellar-etl](https://github.com/stellar/stellar-etl/tree/master) repo. \ No newline at end of file diff --git a/network/hubble/admin-guide/source-system-ingestion/getting-started.mdx b/network/hubble/admin-guide/source-system-ingestion/getting-started.mdx new file mode 100644 index 000000000..31fd6b378 --- /dev/null +++ b/network/hubble/admin-guide/source-system-ingestion/getting-started.mdx @@ -0,0 +1,124 @@ +--- +title: Getting Started +sidebar_position: 20 +--- + +[stellar-etl GitHub repository](https://github.com/stellar/stellar-etl/tree/master) + +[stellar/stellar-etl docker images](https://hub.docker.com/r/stellar/stellar-etl) + +## Recommended Usage + +Generally if you do not need to modify any of the stellar-etl code, it is recommended that you use the [stellar/stellar-etl docker images](https://hub.docker.com/r/stellar/stellar-etl). + +Example to run locally with docker: + +``` +docker run --platform linux/amd64 -ti stellar/stellar-etl:latest +``` + +## Building and Running Locally + +### Install Golang + +* Make sure your golang version >= `1.22.1` + * Instructions to install golang can be found at [go.dev/doc/install](https://go.dev/doc/install) + +### Clone the repo + +``` +git clone https://github.com/stellar/stellar-etl +``` + +### Build stellar-etl + +* Run `go build` in the cloned stellar-etl repo + +``` +go build +``` + +### Run stellar-etl + +* A `stellar-etl` executable should have been created in your stellar-etl repo +* Example stellar-etl command: + +``` +./stellar-etl export_ledgers -s 10 -e 11 +``` + +This should create a `exported_ledgers.txt` file with the output of ledgers from ledgers 10 to 11: + +``` +{"base_fee":100,"base_reserve":100000000,"closed_at":"2024-02-06T17:34:12Z","failed_transaction_count":0,"fee_pool":0,"id":42949672960,"ledger_hash":"f7c89b35c50f74dc69eacd9dda8e9ec9f1af36b6a2928b77619c1beb5f5ca8d4","ledger_header":"AAAAAIGFrRh+oCo2QcAjG6IzWTlil89DNwYIwx6PrrmehujNf44MwMJZxPz3DJYHciV9ligoKwbmeiue4eM29CRWBJgAAAAAZcJtlAAAAAAAAAABAAAAANVyadliUPdJbQeb4ug1Ejbv/+jTnC4Gv6uxQh8X/GccAAAAQBW0ICM/1C7CML6ngZijKycAOIhzwGN6yUsznHznfJunIDyLLVF9/oqvLzP1vaGOhBf3Rmtm5WgGVgeLjlyJSAHfP2GYBKkv20BXGS3EPddI6neK3FK8SYzoBSTAFLgRGfBr+YHFQTIEJ0Y81WEOYClgyjOER8vd4qMQb3gM9nRvAAAACg3gtrOnZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABkBfXhAAAAAGQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=","max_tx_set_size":100,"operation_count":0,"previous_ledger_hash":"8185ad187ea02a3641c0231ba23359396297cf43370608c31e8faeb99e86e8cd","protocol_version":0,"sequence":10,"soroban_fee_write_1kb":0,"successful_transaction_count":0,"total_coins":1000000000000000000,"transaction_count":0,"tx_set_operation_count":"0"} +{"base_fee":100,"base_reserve":100000000,"closed_at":"2024-02-06T17:34:17Z","failed_transaction_count":0,"fee_pool":0,"id":47244640256,"ledger_hash":"5b9ac11c6040f4e2fa6a120b3dee9a4b338b7a25bcb8437dab0c0a5c557a41f5","ledger_header":"AAAAAPfImzXFD3TcaerNndqOnsnxrza2opKLd2GcG+tfXKjUK858NP5gM0pneHF0nRowsJBAzMwWDx0+tmbYIZkIT+8AAAAAZcJtmQAAAAAAAAABAAAAANVyadliUPdJbQeb4ug1Ejbv/+jTnC4Gv6uxQh8X/GccAAAAQDhZKPKBdeD4Sthcu+EsuzEtSyiXzXkHboOsgYT1tuV/juZyKqgrsVmg+RmMoRun+NKCdcB8LV9gaehiFm+XDgnfP2GYBKkv20BXGS3EPddI6neK3FK8SYzoBSTAFLgRGfBr+YHFQTIEJ0Y81WEOYClgyjOER8vd4qMQb3gM9nRvAAAACw3gtrOnZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABkBfXhAAAAAGQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=","max_tx_set_size":100,"operation_count":0,"previous_ledger_hash":"f7c89b35c50f74dc69eacd9dda8e9ec9f1af36b6a2928b77619c1beb5f5ca8d4","protocol_version":0,"sequence":11,"soroban_fee_write_1kb":0,"successful_transaction_count":0,"total_coins":1000000000000000000,"transaction_count":0,"tx_set_operation_count":"0"} +``` + +## stellar-etl Commands + +### export_ledgers + +``` +stellar-etl export_ledgers --start-ledger 1000 --end-ledger 500000 --output exported_ledgers.txt +``` + +This command exports ledgers within the provided range. + +### export_transactions + +``` +stellar-etl export_transactions --start-ledger 1000 --end-ledger 500000 --output exported_transactions.txt +``` + +This command exports transactions within the provided range. + +### export_operations + +``` +stellar-etl export_operations --start-ledger 1000 --end-ledger 500000 --output exported_operations.txt +``` + +This command exports operations within the provided range. + +### export_effects + +``` +stellar-etl export_effects --start-ledger 1000 --end-ledger 500000 --output exported_effects.txt +``` + +This command exports effects within the provided range. + +### export_assets + +``` +stellar-etl export_assets --start-ledger 1000 --end-ledger 500000 --output exported_assets.txt +``` + +Exports the assets that are created from payment operations over a specified ledger range. + + +### export_trades + +``` +stellar-etl export_trades --start-ledger 1000 --end-ledger 500000 --output exported_trades.txt +``` + +Exports trade data within the specified range to an output file + +### export_diagnostic_events + +``` +stellar-etl export_diagnostic_events --start-ledger 1000 --end-ledger 500000 --output export_diagnostic_events.txt +``` + +Exports diagnostic events data within the specified range to an output file + +### export_ledger_entry_changes + +``` +stellar-etl export_ledger_entry_changes --start-ledger 1000 --end-ledger 500000 --output exported_changes_folder/ +``` + +This command exports ledger changes within the provided ledger range. + +Note that this command will also exports every state change for each ledger entry type. [Information](https://github.com/stellar/stellar-etl?tab=readme-ov-file#export_ledger_entry_changes) on options to only output specifc ledger entry types. \ No newline at end of file diff --git a/network/hubble/admin-guide/source-system-ingestion/overview.mdx b/network/hubble/admin-guide/source-system-ingestion/overview.mdx new file mode 100644 index 000000000..891a88129 --- /dev/null +++ b/network/hubble/admin-guide/source-system-ingestion/overview.mdx @@ -0,0 +1,15 @@ +--- +title: "Overview" +sidebar_position: 0 +--- + +Stellar network data ingestion in Hubble is done through [stellar-etl](https://github.com/stellar/stellar-etl/tree/master). stellar-etl reads and transforms Stellar network data into OLAP friendly JSON files. + +It is worth noting that most users will not need to standup and run their own stellar-etl instance. The Stellar Development Foundation provides public access to fully transformed Stellar network data through the public datasets and tables in GCP BigQuery. Instructions on how to access this data can be found in the [Connecting](https://developers.stellar.org/network/hubble/analyst-guide/connecting) section. + +## Why Run stellar-etl? + +Running stellar-etl within your own infrastructure provides a number of benefits. You can: + +- Have full operational control without dependency on the Stellar Development Foundation for network data +- Run modified ETL/ELT pipelines that fit your individual business needs \ No newline at end of file diff --git a/network/hubble/admin-guide/visualization/README.mdx b/network/hubble/admin-guide/visualization/README.mdx new file mode 100644 index 000000000..8fe1522b0 --- /dev/null +++ b/network/hubble/admin-guide/visualization/README.mdx @@ -0,0 +1,10 @@ +--- +title: Visualization +sidebar_position: 30 +--- + +import DocCardList from "@theme/DocCardList"; + +Visualizing Stellar network data. + + \ No newline at end of file diff --git a/network/hubble/admin-guide/visualization/getting-started.mdx b/network/hubble/admin-guide/visualization/getting-started.mdx new file mode 100644 index 000000000..aa54a52f7 --- /dev/null +++ b/network/hubble/admin-guide/visualization/getting-started.mdx @@ -0,0 +1,41 @@ +--- +title: Getting Started +sidebar_position: 20 +--- + +This sections goes through using [Google's Looker Studio](https://lookerstudio.google.com/u/0/navigation/reporting) as a free and easy to use visualization tool that you can hook up your BigQuery Stellar network data to. + +There are many other free/paid visualization tools available. Hubble is compatible with any visualization tool with a BigQuery connector. + +## Creating your first visualization + +* Follow [Google's Quick Start Guide](https://support.google.com/looker-studio/answer/9171315?hl=en) + +## Hooking Up Data Sources + +The following will use the Stellar Development Foundations public datasets and tables as an example to hook up data sources to Looker Studio + +* Click `Create` in [Google's Looker Studio](https://lookerstudio.google.com/u/0/navigation/reporting) +* Click `Data Source` +* Find the `BigQuery` connector +* Use the project `crypto-stellar` +* Use the dataset `crypto_stellar` +* Select the table of interest +* Click `CONNECT` + +When you create a new report you should be able to now access data from `crypto-stellar.crypto_stellar.` + +## Making your first pie chart + +* Click `Create` in [Google's Looker Studio](https://lookerstudio.google.com/u/0/navigation/reporting) +* Click `Report` +* Click `My data sources` +* Click the data source you added above +* A table of the data should appear in a new report +* Click on the table +* Click on `Chart` on the right sidebar +* Click on the `Pie chart` image + +You have now created a new report with a pie chart. + +Looker Studio has many resources to help visualize and explore data. Learn more [here](https://support.google.com/looker-studio?sjid=9035399711189270749-NA#topic=6267740) \ No newline at end of file diff --git a/network/hubble/admin-guide/visualization/overview.mdx b/network/hubble/admin-guide/visualization/overview.mdx new file mode 100644 index 000000000..c2e6bda0e --- /dev/null +++ b/network/hubble/admin-guide/visualization/overview.mdx @@ -0,0 +1,6 @@ +--- +title: "Overview" +sidebar_position: 0 +--- + +There are various ways to visulize data from Hubble. The following section will go through the steps to use [Google's Looker Studio](https://cloud.google.com/looker-studio?hl=en) to help visualize Stellar network data. \ No newline at end of file diff --git a/network/hubble/analyst-guide/README.mdx b/network/hubble/analyst-guide/README.mdx new file mode 100644 index 000000000..49f4348cc --- /dev/null +++ b/network/hubble/analyst-guide/README.mdx @@ -0,0 +1,10 @@ +--- +title: Analyst Guide +sidebar_position: 15 +--- + +import DocCardList from "@theme/DocCardList"; + +All you need to know to use Hubble data for analysis. + + \ No newline at end of file diff --git a/network/hubble/connecting.mdx b/network/hubble/analyst-guide/connecting.mdx similarity index 100% rename from network/hubble/connecting.mdx rename to network/hubble/analyst-guide/connecting.mdx diff --git a/network/hubble/optimizing-queries.mdx b/network/hubble/analyst-guide/optimizing-queries.mdx similarity index 97% rename from network/hubble/optimizing-queries.mdx rename to network/hubble/analyst-guide/optimizing-queries.mdx index e464eaebe..d94aa34f2 100644 --- a/network/hubble/optimizing-queries.mdx +++ b/network/hubble/analyst-guide/optimizing-queries.mdx @@ -19,7 +19,7 @@ Read the docs on [Viewing Metadata](./viewing-metadata.mdx) to learn more about #### Example - Profiling Operation Types -Let’s say you wanted to profile the [types of operations](/docs/learn/fundamentals/list-of-operations) submitted to the Stellar Network monthly. +Let’s say you wanted to profile the [types of operations](../../../docs/learn/fundamentals/transactions/list-of-operations) submitted to the Stellar Network monthly. diff --git a/network/hubble/viewing-metadata.mdx b/network/hubble/analyst-guide/viewing-metadata.mdx similarity index 100% rename from network/hubble/viewing-metadata.mdx rename to network/hubble/analyst-guide/viewing-metadata.mdx diff --git a/network/hubble/data-catalog/README.mdx b/network/hubble/data-catalog/README.mdx new file mode 100644 index 000000000..7e534a096 --- /dev/null +++ b/network/hubble/data-catalog/README.mdx @@ -0,0 +1,10 @@ +--- +title: Data Catalog +sidebar_position: 200 +--- + +import DocCardList from "@theme/DocCardList"; + +View all Hubble data catalog information. + + \ No newline at end of file diff --git a/network/hubble/data-catalog/data-dictionary/README.mdx b/network/hubble/data-catalog/data-dictionary/README.mdx new file mode 100644 index 000000000..29064d97d --- /dev/null +++ b/network/hubble/data-catalog/data-dictionary/README.mdx @@ -0,0 +1,10 @@ +--- +title: Data Dictionary +sidebar_position: 20 +--- + +import DocCardList from "@theme/DocCardList"; + +View all Hubble data dictionaries. + + \ No newline at end of file diff --git a/network/hubble/data-catalog/data-dictionary/accounts.mdx b/network/hubble/data-catalog/data-dictionary/accounts.mdx new file mode 100644 index 000000000..846c1e0fd --- /dev/null +++ b/network/hubble/data-catalog/data-dictionary/accounts.mdx @@ -0,0 +1,31 @@ +--- +title: Accounts +sidebar_position: 10 +--- + +| Name | Description | Data Type | Domain Values | Primary Key? | Natural Key? | Partition or Cluster Field? | Required? | Notes | +| --------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------ | ------------ | --------------------------- | --------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account_id | The address of the account. The address is the account's public key encoded in base32. All account addresses start with a \`G\` | string | | | Yes | cluster | Yes | | +| balance | The number of units of XLM held by the account | float | | | | | Yes | The \`accounts\` table only reports monetary balances for XLM. Any other asset class is reported in the \`trust_lines\` table. | +| buying_liabilities | The sum of all buy offers owned by this account for XLM only | float | | | | | Yes | The \`accounts\` table only reports monetary balances for XLM. Any other asset class is reported in the \`trust_lines\` table. For buy offers, the account must hold the amount of asset to complete the transaction | +| selling_liabilities | The sum of all sell offers owned by this account for XLM only | float | | | | | Yes | The \`accounts\` table only reports monetary balances for XLM. Any other asset class is reported in the \`trust_lines\` table. | +| sequence_number | The account's current sequence number. The sequence number controls operations applied to an account. Operations must submit a unique sequence number that is incremented by 1 in order to apply the operation to the account so that account changes will not collide within a ledger | integer | | | Yes | | Yes | | +| num_subentries | The total number of ledger entries connected to this account. Ledger entries include: trustlines, offers, signers, and data entries. (Claimable balances are counted under sponsoring entries, not subentries). Any newly created trustline, offer, signer or data entry will increase the number of subentries by 1. Accounts may have up to 1,000 subentries | integer | | | | | Yes | Each entry on a ledger takes up space, which is expensive to store on the blockchain. For each entry, an account is required to hold a [minimum XLM balance](https://developers.stellar.org/docs/glossary/minimum-balance/). The reserve is calculated by (2 + num_subentries - num_sponsoring + num_sponsored) \* 0.5XLM | +| inflation_destination | Deprecated: The account address to receive an inflation payment when they are disbursed on the network. | string | | | | | Yes | Inflation was discontinued in 2019 by validator vote. | +| flags | Denotes the enabling and disabling of certain asset issuer privileges | integer | 0 - None, Default 1 - Auth Required (all trustlines by default are untrusted and require manual trust established) 2 - Auth Revocable (allows trustlines to be revoked if account no longer trusts asset) 4 - Auth Immutable (all auth flags are read only when set) 8 - Auth Clawback Enabled (asset can be clawed back from the user) | | | | Yes | Flags are set on the issuer accounts for an asset. When user accounts trust an asset, the flags applied to the asset originate from this account | +| home_domain | The domain that hosts this account's stellar.toml file | string | | | | | Yes | Only applies to asset issuer accounts. The stellar.toml file contains metadata about the asset issuer which helps identify who the issuer is and instills trust in the asset | +| master_weight | The weight of the master key, which is the private key for this account. If a master key is \`0,\` the account is locked and cannot be used. | integer | Integers from 1 to 255 | | | | Yes | | +| threshold_low | The sum of the weight of all signatures that sign a transaction for the low threshold operation. The weight must exceed the set threshold for the operation to succeed. | integer | | | | | Yes | Each operation falls under a specific threshold category: low, medium or high. Thresholds define the level of privilege an operation needs in order to succeed (this is a security measure) Low Security: Allow Trust, Set Trust Line Flags, Bump Sequence and Claim Claimable Balance Medium Security: Everything Else High Security: Account Merge, Set Options | +| threshold_medium | The sum of the weight of all signatures that sign a transaction for the medium threshold operation. The weight must exceed the set threshold for the operation to succeed. | integer | | | | | Yes | Each operation falls under a specific threshold category: low, medium or high. Thresholds define the level of privilege an operation needs in order to succeed (this is a security measure) Low Security: Allow Trust, Set Trust Line Flags, Bump Sequence and Claim Claimable Balance Medium Security: Everything Else High Security: Account Merge, Set Options | +| threshold_high | The sum of the weight of all signatures that sign a transaction for the high threshold operation. The weight must exceed the set threshold for the operation to succeed. | integer | | | | | Yes | Each operation falls under a specific threshold category: low, medium or high. Thresholds define the level of privilege an operation needs in order to succeed (this is a security measure) Low Security: Allow Trust, Set Trust Line Flags, Bump Sequence and Claim Claimable Balance Medium Security: Everything Else High Security: Account Merge, Set Options | +| last_modified_ledger | The ledger sequence number when the ledger entry (this unique signer for the account) was modified. Deletions do not count as a modification and will report the prior modification sequence number | integer | | | Yes | cluster | Yes | If an account updates a signer's weight at sequence 1234 and then decides to delete the signer at 2345, the deleted record will still have a modified sequence of 1234. | +| ledger_entry_change | Code that describes the ledger entry change type that was applied to the ledger entry. | integer | 0 - Ledger Entry Created 1 - Ledger Entry Updated 2 - Ledger Entry Deleted 3 - Ledger Entry State (value of the entry) | | Yes | | Yes | Valid entry change types are 0, 1, and 2 for ledger entries of type \`accounts\` | +| deleted | Indicates whether the ledger entry (account id) has been deleted or not. Once an entry is deleted, it cannot be recovered. | boolean | | | | | Yes | | +| batch_id | String representation of the run id for a given DAG in Airflow. Takes the form of "scheduled__-". Batch ids are unique to the batch and help with monitoring and rerun capabilities | string | | | | | Yes | | +| batch_run_date | The start date for the batch interval. When taken with the date in the batch_id, the date represents the interval of ledgers processed. The batch run date can be seen as a proxy of closed_at for a ledger. | datetime | | | | MONTH partition | Yes | The table is partitioned on batch_run_date. It is recommended to always include the batch_run_date in the filter if possible to help reduce query cost. | +| batch_insert_ts | The timestamp in UTC when a batch of records was inserted into the database. This field can help identify if a batch executed in real time or as part of a backfill | timestamp | | | | | Yes | | +| sponsor | The account address of the sponsor who is paying the reserves for this account. | string | | | | | No | | +| num_sponsored | The number of reserves sponsored for this account (meaning another account is paying for the minimum balance). Sponsored entries do not incur any reserve requirement on the account that owns the entry. | integer | | | | | No | Defaults to 0 Accounts, offers, trustlines, data and signers can be optionally sponsored. Claimable Balances must be sponsored. See more information on sponsorship [here](https://developers.stellar.org/docs/glossary/sponsored-reserves/). | +| num_sponsoring | The number of reserves sponsored by this account. Entries sponsored by this account incur a reserve requirement | integer | | | | | No | Defaults to 0 Accounts, offers, trustlines, data and signers can be optionally sponsored. Claimable Balances must be sponsored. See more information on sponsorship [here](https://developers.stellar.org/docs/glossary/sponsored-reserves/). | +| sequence_ledger | The unsigned 32-bit ledger number of the sequence number's age | integer | | | | | No | Reflects the last time an account touched its sequence number. Note that even if the Bump Sequence operation has no effect, eg it does not increase the sequence number, it still counts as a "touch" | +| sequence_time | The UNIX timestamp of the sequence number's age | timestamp | | | | | No | Reflects the last time an account touched its sequence number. Note that even if the Bump Sequence operation has no effect, eg it does not increase the sequence number, it still counts as a "touch" | \ No newline at end of file diff --git a/network/hubble/data-catalog/data-dictionary/claimable-balances.mdx b/network/hubble/data-catalog/data-dictionary/claimable-balances.mdx new file mode 100644 index 000000000..69828d7e6 --- /dev/null +++ b/network/hubble/data-catalog/data-dictionary/claimable-balances.mdx @@ -0,0 +1,28 @@ +--- +title: Claimable Balances +sidebar_position: 20 +--- + +| Name | Description | Data Type | Domain Values | Primary Key? | Natural Key? | Partition or Cluster Field? | Required? | Notes | +| ------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------- | ------------------------------------------------------------------------------------------------------------------------------- | ------------ | ------------ | --------------------------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| balance_id | A unique identifier for this claimable balance. The Balance id is a compilation of \`Balance Type\` + \`SHA-256 hash history_operation_id\` | string | | | Yes | | Yes | The Balance Type is fixed at V0, \`00000000\`. If there is a protocol change that materially impacts the mechanics of claimable balances, the balance type would update to V1. | +| claimants | The list of entries which are eligible to claim the balance and preconditions that must be fulfilled to claim | array[record] | | | | | Yes | Multiple accounts can be specified in the claimants record, including the account of the balance creator. | +| claimants.destination | The account id who can claim the balance | string | | | | | Yes | | +| claimants.predicate | The condition which must be satisfied so the destination can claim the balance. The predicate can include logical rules using AND, OR and NOT logic. | array[record] | | | | | Yes | | +| claimants.predicate.unconditional | If true it means this clause of the condition is always satisfied | boolean | | | | | No | When the predicate is only unconditional = true, it means that the balance can be claimed under any conditions | +| claimants.predicate.abs_before | Deadline for when the balance must be claimed. If a balance is claimed before the date then the clause of the condition is satisfied. | string | | | | | No | | +| claimants.predicate.rel_before | A relative deadline for when the claimable balance can be claimed. The value represents the number of seconds since the close time of the ledger which created the claimable balance | integer | | | | | No | This condition is useful when creating a timebounds based on creation conditions. If the creator wanted a balance only claimable one week after creation, this condition would satisfy that rule. | +| claimants.predicate.abs_before_epoch | A UNIX epoch value in seconds representing the same deadline date as abs_before. | integer | | | | | No | | +| asset_type | The identifier for type of asset code, can be a alphanumeric with 4 characters, 12 characters or the native asset to the network, XLM. | string | credit_alphanum4 credit_alphanum12 native | | | | Yes | | +| asset_code | The 4 or 12 character code representation of the asset on the network | string | | | | | No | | +| asset_issuer | The address of the account that created the asset | string | | | | | No | | +| asset_amount | The amount of the asset that can be claimed | float | | | | | Yes | | +| sponsor | The account address of the sponsor who is paying the reserves for this claimable balance | string | | | | | No | Sponsors of claimable balances are the creators of the balance. | +| flags | Denotes the enabling and disabling of certain balance issuer privileges | integer | 0 - None, Default 1 - Auth Clawback Enabled | | | | Yes | Flags are set by the claimable balance accounts for an asset. When user accounts claim a balance, the flags applied to the asset originate from this account | +| last_modified_ledger | The ledger sequence number when the ledger entry (this unique signer for the account) was modified. Deletions do not count as a modification and will report the prior modification sequence number | integer | | | Yes | cluster | Yes | | +| ledger_entry_change | Code that describes the ledger entry change type that was applied to the ledger entry. | integer | 0 - Ledger Entry Created 1 - Ledger Entry Updated 2 - Ledger Entry Deleted 3 - Ledger Entry State (value of the entry) | | Yes | | Yes | Valid entry change types are 0, and 2 for ledger entries of type \`claimable_balances\`. Once created, a balance cannot be updated. | +| deleted | Indicates whether the ledger entry (balance id) has been deleted or not. Once an entry is deleted, it cannot be recovered. | boolean | | | | | Yes | | +| batch_id | String representation of the run id for a given DAG in Airflow. Takes the form of "scheduled__-". Batch ids are unique to the batch and help with monitoring and rerun capabilities | string | | | | | Yes | | +| batch_run_date | The start date for the batch interval. When taken with the date in the batch_id, the date represents the interval of ledgers processed. The batch run date can be seen as a proxy of closed_at for a ledger. | datetime | | | | MONTH partition | Yes | The table is partitioned on batch_run_date. It is recommended to always include the batch_run_date in the filter if possible to help reduce query cost. | +| batch_insert_ts | The timestamp in UTC when a batch of records was inserted into the database. This field can help identify if a batch executed in real time or as part of a backfill | timestamp | | | | | Yes | | +| asset_id | Unique identifier for asset_code, asset_issuer | integer | | | | cluster | No | | \ No newline at end of file diff --git a/network/hubble/data-catalog/data-dictionary/contract-code.mdx b/network/hubble/data-catalog/data-dictionary/contract-code.mdx new file mode 100644 index 000000000..3ef80a849 --- /dev/null +++ b/network/hubble/data-catalog/data-dictionary/contract-code.mdx @@ -0,0 +1,28 @@ +--- +title: Contract Code +sidebar_position: 30 +--- + +| Name | Description | Data Type | Domain Values | Primary Key? | Natural Key? | Partition or Cluster Field? | Required? | Notes | +| -------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------- | ------------- | ------------ | ------------ | --------------------------- | --------- | ----- | +| contract_code_hash | Soroban contract code hash | string | | | Yes | Cluster | Yes | | +| contract_code_ext_v | Contract code extention version | integer | | | | | | | +| last_modified_ledger | The ledger sequence number when the ledger entry (this unique signer for the account) was modified. Deletions do not count as a modification and will report the prior modification sequence number | integer | | | | Cluster | Yes | | +| ledger_entry_change | Code that describes the ledger entry change type that was applied to the ledger entry. | integer | | | | | Yes | | +| deleted | Indicates whether the ledger entry (balance id) has been deleted or not. Once an entry is deleted, it cannot be recovered. | boolean | | | | | Yes | | +| batch_id | String representation of the run id for a given DAG in Airflow. Takes the form of "scheduled__-". Batch ids are unique to the batch and help with monitoring and rerun capabilities | string | | | | | Yes | | +| batch_run_date | The start date for the batch interval. When taken with the date in the batch_id, the date represents the interval of ledgers processed. The batch run date can be seen as a proxy of closed_at for a ledger. | datetime | | | | | Yes | | +| batch_insert_ts | The timestamp in UTC when a batch of records was inserted into the database. This field can help identify if a batch executed in real time or as part of a backfill | timestamp | | | | | Yes | | +| closed_at | The UNIX timestamp of the sequence number's age | timestamp | | | | Partition | Yes | | +| ledger_sequence | The unsigned 32-bit ledger number of the sequence number's age | integer | | | | | Yes | | +| ledger_key_hash | Ledger key hash used to identify expiring contract data or contract code ledger entries | string | | | | | Yes | | +| n_instructions | Number of instrcutions in contract code | integer | | | | | | | +| n_functions | Number of functions in contract code | integer | | | | | | | +| n_globals | Number of global variables in contract code | integer | | | | | | | +| n_table_entries | Number of table entries in contract code | integer | | | | | | | +| n_types | Number of types in contract code | integer | | | | | | | +| n_data_segments | Number of data segments in contract code | integer | | | | | | | +| n_elem_segments | Number of element segments in contract code | integer | | | | | | | +| n_imports | Number of imports in contract code | integer | | | | | | | +| n_exports | Number of exports in contract code | integer | | | | | | | +| n_data_segment_bytes | Number of data segment bytes in contract code | integer | | | | | | | \ No newline at end of file diff --git a/network/hubble/data-catalog/data-dictionary/contract-data.mdx b/network/hubble/data-catalog/data-dictionary/contract-data.mdx new file mode 100644 index 000000000..42b239a90 --- /dev/null +++ b/network/hubble/data-catalog/data-dictionary/contract-data.mdx @@ -0,0 +1,24 @@ +--- +title: Contract Data +sidebar_position: 40 +--- + +| Name | Description | Data Type | Domain Values | Primary Key? | Natural Key? | Partition or Cluster Field? | Required? | Notes | +| -------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------- | ------------- | ------------ | ------------ | --------------------------- | --------- | ----- | +| contract_id | Soroban contract id | string | | | Yes | Cluster | Yes | | +| contract_key_type | Contract key type which is an ScVal that can have the following values | string | | | | | | | +| contract_durability | Contract can either be temporary or persistent | string | | | | | | | +| asset_code | The 4 or 12 character code representation of the asset on the network. | string | | | | | | | +| asset_issuer | The account address of the original asset issuer that created the asset. | string | | | | | | | +| asset_type | The identifier for type of asset code, can be an alphanumeric with 4 characters, 12 characters or the native asset to the network, XLM. | string | | | | | | | +| balance_holder | The address/account that holds the balance of the asset in contract data | string | | | | | | | +| balance | The number of units of XLM held by the account | string | | | | | | | +| last_modified_ledger | The ledger sequence number when the ledger entry (this unique signer for the account) was modified. Deletions do not count as a modification and will report the prior modification sequence number | integer | | | Yes | Cluster | Yes | | +| ledger_entry_change | Code that describes the ledger entry change type that was applied to the ledger entry. | integer | | | | | Yes | | +| deleted | Indicates whether the ledger entry (balance id) has been deleted or not. Once an entry is deleted, it cannot be recovered. | boolean | | | | | Yes | | +| batch_id | String representation of the run id for a given DAG in Airflow. Takes the form of "scheduled__-". Batch ids are unique to the batch and help with monitoring and rerun capabilities | string | | | | | Yes | | +| batch_run_date | The start date for the batch interval. When taken with the date in the batch_id, the date represents the interval of ledgers processed. The batch run date can be seen as a proxy of closed_at for a ledger. | datetime | | | | | Yes | | +| batch_insert_ts | The timestamp in UTC when a batch of records was inserted into the database. This field can help identify if a batch executed in real time or as part of a backfill | timestamp | | | | | Yes | | +| closed_at | The UNIX timestamp of the sequence number's age | timestamp | | | | Partition | Yes | | +| ledger_sequence | The unsigned 32-bit ledger number of the sequence number's age | integer | | | Yes | | Yes | | +| ledger_key_hash | Ledger key hash used to identify expiring contract data or contract code ledger entries | string | | | Yes | | Yes | | \ No newline at end of file diff --git a/network/hubble/data-catalog/data-dictionary/enriched-history-operations.mdx b/network/hubble/data-catalog/data-dictionary/enriched-history-operations.mdx new file mode 100644 index 000000000..63b5cd1fe --- /dev/null +++ b/network/hubble/data-catalog/data-dictionary/enriched-history-operations.mdx @@ -0,0 +1,151 @@ +--- +title: Enriched History Operations +sidebar_position: 150 +--- + +| Name | Description | Data Type | Domain Values | Primary Key? | Natural Key? | Partition or Cluster Field? | Required? | Source Table | Notes | +| --------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------ | ------------ | --------------------------- | --------- | -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| account | The new resulting account address that is created and funded (create operation) The account address that is being removed and merged into another account (merge operation) | string | | | | | | history_operations | Part of the original \`details\` object in the history_operations table | +| amount | Float representation of the amount of an asset sent/offered/etc | float | | | | | | history_operations | | +| asset_code | The 4 or 12 character code representation of the asset on the network | string | | | | | | history_operations | | +| asset_issuer | The account address of the original asset issuer that created the asset | string | | | | | | history_operations | | +| asset_type | The identifier for type of asset code, can be a alphanumeric with 4 characters, 12 characters or the native asset to the network, XLM. | string | credit_alphanum4 credit_alphanum12 native | | | | | history_operations | | +| authorize | Indicates whether the trustline is authorized. 0 is the account is not authorized to transact with the asset in any way. 1 if the account is authorized to transact with the asset. 2 if the account is authorized to maintain orders, but not to perform other transactions. | boolean | | | | | | history_operations | | +| balance_id | The unique identifier of the claimable balance. The id is comprised of 8 character type code + SHA-256 hash of the history operation id that created the balance. The balance id can be joined back to the \`claimable_balances\` table to gather more details about the balance | string | | | | | | history_operations | | +| buying_asset_code | The 4 or 12 character code representation of the asset that is either bought or offered to buy in a trade | string | | | | | | history_operations | | +| buying_asset_issuer | The account address of the original asset issuer that created the asset bought or offered to buy | string | | | | | | history_operations | | +| buying_asset_type | The identifier for type of asset code, can be a alphanumeric with 4 characters, 12 characters or the native asset to the network, XLM. | string | credit_alphanum4 credit_alphanum12 native | | | | | history_operations | | +| from | The account address from which the payment originates (the sender account) | string | | | | | | history_operations | | +| funder | When a new account is created, an account address "funds" the new account | string | | | | | | history_operations | | +| high_threshold | The sum of the weight of all signatures that sign a transaction for the high threshold operation. The weight must exceed the set threshold for the operation to succeed. | integer | | | | | | history_operations | Each operation falls under a specific threshold category: low, medium or high. Thresholds define the level of privilege an operation needs in order to succeed (this is a security measure) Low Security: Allow Trust, Set Trust Line Flags, Bump Sequence and Claim Claimable Balance Medium Security: Everything Else High Security: Account Merge, Set Options | +| home_domain | The home domain used for the stellar.toml file discovery | string | | | | | | history_operations | | +| inflation_dest | The account address specifying where to send inflation funds. The concept of inflation on the network has been discontinued | string | | | | | | history_operations | Inflation was retired from the network in 2019. | +| into | The account address receiving the deleted account's lumens. This is the account in which the intended deleted account will be merged | string | | | | | | history_operations | | +| limit | The upper bound amount of an asset that an account can hold | float | | | | | | history_operations | | +| low_threshold | The sum of the weight of all signatures that sign a transaction for the low threshold operation. The weight must exceed the set threshold for the operation to succeed. | integer | | | | | | history_operations | Each operation falls under a specific threshold category: low, medium or high. Thresholds define the level of privilege an operation needs in order to succeed (this is a security measure) Low Security: Allow Trust, Set Trust Line Flags, Bump Sequence and Claim Claimable Balance Medium Security: Everything Else High Security: Account Merge, Set Options | +| master_key_weight | An accounts private key is called the master key. For signing transactions, the account holder can specify a weight for the master key, which contributes to thresholds validation when processing a transaction | integer | Integers from 1 to 255 | | | | | history_operations | | +| med_threshold | The sum of the weight of all signatures that sign a transaction for the medium threshold operation. The weight must exceed the set threshold for the operation to succeed. | integer | | | | | | history_operations | Each operation falls under a specific threshold category: low, medium or high. Thresholds define the level of privilege an operation needs in order to succeed (this is a security measure) Low Security: Allow Trust, Set Trust Line Flags, Bump Sequence and Claim Claimable Balance Medium Security: Everything Else High Security: Account Merge, Set Options | +| name | The manage data operation allows an account to write and store data directly on the ledger in a key value pair format. The name is the key for a data entry. | string | | | | | | history_operations | | +| offer_id | The unique id for the offer. This id can be joined with the \`offers\` table | integer | | | | | | history_operations | | +| path | Path payments maximize the best exchange rate path when sending money from one asset to another asset. The intermediary assets that this path hops through will be reported in the record. This feature is especially useful when the market between the original asset pair is illiquid | array[record] | | | | | | history_operations | Up to 6 paths are permitted for a single payment. Example: sending EUR -> MXN could look like EUR -> BTC -> CNY -> XLM -> MXN to maximize the best exchange rate Payments are atomic, so if an exchange in the middle of a path payment fails, the entire payment will fail which means the user will keep their original funds. They will not be stuck with an intermediary asset in the event of payment failure. | +| price | The ratio of selling asset to buying asset. This is a number representing how many units of a selling asset it takes to get 1 unit of a buying asset | float | | | | | | history_operations | | +| d | Precise representation of the buy and sell price of a trade. The \`d\` is the denominator. When taken with n/d you will get the price | integer | | | | | | history_operations | | +| n | Precise representation of the buy and sell prices of a trade. The \`n\` is the numerator. When taken with n/d you will get the price. | integer | | | | | | history_operations | | +| selling_asset_code | The 4 or 12 character code representation of the asset that is either sold or offered to sell in a trade | string | | | | | | history_operations | | +| selling_asset_issuer | The account address of the original asset issuer that created the asset sold or offered to sell | string | | | | | | history_operations | | +| selling_asset_type | The identifier for type of asset code, can be a alphanumeric with 4 characters, 12 characters or the native asset to the network, XLM. | string | credit_alphanum4 credit_alphanum12 native | | | | | history_operations | | +| set_flags | Array of numeric values of the flags set for a given trustline in the operation | array[integer] | 1 - Auth Required 2 - Auth Revocable 4 - Auth Immutable | | | | | history_operations | | +| set_flags_s | Array of string values of the flags set for a given trustline in the operation | array[string] | Auth Required Auth Revocable Auth Immutable | | | | | history_operations | | +| signer_key | The address of the signer which is no longer sponsored | string | | | | | | history_operations | | +| signer_weight | The weight of the new signer. For transactions, multiple accounts can sign a transaction from a source account. This weight contributes towards calculating whether the transaction exceeds the specified threshold weight to complete the transaction | integer | | | | | | history_operations | | +| source_amount | The originating amount sent designated in the source asset | float | | | | | | history_operations | | +| source_asest_code | The 4 or 12 character code representation of the asset that is originally sent | string | | | | | | history_operations | | +| source_asset_issuer | The account address of the original asset issuer that created the asset sent | string | | | | | | history_operations | | +| source_asset_type | The identifier for type of asset code, can be a alphanumeric with 4 characters, 12 characters or the native asset to the network, XLM. | string | credit_alphanum4 credit_alphanum12 native | | | | | history_operations | | +| source_max | The maxium amount to be sent, designated in the source asset | float | | | | | | history_operations | | +| starting_balance | The amount of XLM to send to the newly created account. The account starting balance will need to exceed the minimum balance necessary to hold an account on the Stellar Network | float | | | | | | history_operations | | +| to | The address of the account receiving the payment funds | string | | | | | | history_operations | | +| trustee | The issuing account address (only present for \`credit\` asset types) | string | | | | | | history_operations | | +| trustor | The trusting account address, or the account being authorized or unauthorized | string | | | | | | history_operations | | +| trustline_asset | The asset of the trustline which is no longer sponsored | string | | | | | | history_operations | | +| value | The manage data operation allows an account to write and store data directly on the ledger in a key value pair format. The value is the value of a key for a data entry. | string | | | | | | history_operations | | +| clear_flags | Array of numeric values of the flags cleared for a given trustline in the operation. If the flag was originally set, this will delete the flag | array[integer] | 1 - Auth Required 2 - Auth Revocable 4 - Auth Immutable | | | | | history_operations | | +| clear_flags_s | Array of string values of the flags cleared for a given trustline in the operation. If the flag was originally set, this will delete the flag | array[string] | Auth Required Auth Revocable Auth Immutable | | | | | history_operations | | +| destination_min | The minimum amount to be received, designated in the expected destination asset | string | | | | | | history_operations | | +| bump_to | The new desired value of the source account's sequence number | string | | | | | | history_operations | | +| sponsor | The account address of another account that maintains the minimum balance in XLM for the source account to complete operations | string | | | | | | history_operations | | +| sponsored_id | The account address of the account which will be sponsored | string | | | | | | history_operations | | +| begin_sponsor | The account address of the account which initiated the sponsorship | string | | | | | | history_operations | | +| authorize_to_maintain_liabilities | Indicates whether the trustline is authorized. 0 is the account is not authorized to transact with the asset in any way. 1 if the account is authorized to transact with the asset. 2 if the account is authorized to maintain orders, but not to perform other transactions. | boolean | | | | | | history_operations | | +| clawback_enabled | Indicates whether the asset can be clawed back by the asset issuer | boolean | | | | | | history_operations | | +| liquidity_pool_id | Unique identifier for a liquidity pool | string | | | | | | history_operations | | +| reserve_a_asset_type | The identifier for type of asset code, can be a alphanumeric with 4 characters, 12 characters or the native asset to the network, XLM. | string | credit_alphanum4 credit_alphanum12 native | | | | | history_operations | | +| reserve_a_asset_code | The 4 or 12 character code representation of the asset of one of the two asset pairs in a liquidity pool | string | | | | | | history_operations | | +| reserve_a_asset_issuer | The account address of the original asset issuer that created one of the two asset pairs in the liquidity pool | string | | | | | | history_operations | | +| reserve_a_max_amount | The maximum amount of reserve a that can be deposited into the pool. | float | | | | | | history_operations | | +| reserve_a_deposit_amount | The amount of reserve a that ended up actually deposited into the pool | float | | | | | | history_operations | | +| reserve_b_asset_type | The identifier for type of asset code, can be a alphanumeric with 4 characters, 12 characters or the native asset to the network, XLM. | string | credit_alphanum4 credit_alphanum12 native | | | | | history_operations | | +| reserve_b_asset_code | The 4 or 12 character code representation of the asset of one of the two asset pairs in a liquidity pool | string | | | | | | history_operations | | +| reserve_b_asset_issuer | The account address of the original asset issuer that created one of the two asset pairs in the liquidity pool | string | | | | | | history_operations | | +| reserve_b_max_amount | The maximum amount of reserve b that can be deposited into the pool. | float | | | | | | history_operations | | +| reserve_b_deposit_amount | The amount of reserve b that ended up actually deposited into the pool. | float | | | | | | history_operations | | +| min_price | The floating point value indicating the minimum exchange rate for this deposit operation. Reported as Reserve A / Reserve B | float | | | | | | history_operations | | +| min_price_r | A fractional representation of the prices of the two assets in a pool. The n is the numerator (value of asset a) and the d is the denominator (value of asset b) | array[record] | | | | | | history_operations | | +| max_price | The floating point value indicating the maximum exchange rate for this deposit operation. Reported as Reserve A / Reserve B | float | | | | | | history_operations | | +| max_price_r | A fractional representation of the prices of the two assets in a pool. The n is the numerator (value of asset a) and the d is the denominator (value of asset b) | array[record] | | | | | | history_operations | | +| shares_received | A floating point number representing the number of pool shares received for this deposit. A pool share is a compilation of both asset a and asset b reserves. It is not possible to own only asset a or asset b in a pool | float | | | | | | history_operations | | +| reserve_a_min_amount | The minimum amount of reserve a that can be withdrawn from the pool. | float | | | | | | history_operations | | +| reserve_b_min_amount | The minimum amount of reserve b that can be withdrawn from the pool. | float | | | | | | history_operations | | +| shares | The number of shares withdrawn from the pool. It is not possible to withdraw only asset a or asset b, equal value must be withdrawn from the pool | float | | | | | | history_operations | | +| reserve_a_withdraw_amount | The amount of reserve a that ended up actually withdrawn from the pool. | float | | | | | | history_operations | | +| reserve_b_withdraw_amount | The amount of reserve b that ended up actually withdrawn from the pool. | float | | | | | | history_operations | | +| op_application_order | The order number in the transaction set in which the operation is executed. The application order and transaction id is a natural key that comprises the (operation) id | integer | | | | | | history_operations | | +| op_id | Unique identifier for an operation | integer | | | | | | history_operations | | +| op_source_account | The account address that originates the operation | string | | | | | | history_operations | | +| op_source_account_muxed | If an account is multiplexed (muxed), the virtual account address that originates the operation | string | | | | | | history_operations | | +| transaction_id | The transaction identifier in which the operation executed. There can be up to 100 operations in a given transaction | integer | | | | | | history_operations | | +| type | The number indicating which type of operation this operation executes | integer | 0 - Create Account 1 - Payment 2 - Path Payment Strict Receive 3 - Manage Sell Offer 4 - Create Passive Sell Offer 5 - Set Options 6 - Change Trust 7 - Allow Trust 8 - Account Merge 9 - Inflation 10 - Manage Data 11 - Bump Sequence 12 - Manage Buy Offer 13 - Path Payment Strict Send 14 - Create Claimable Balance 15 - Claim Claimable Balance 16 - Being Sponsoring Future Reserves 17 - End Sponsoring Future Reserves 18 - Revoke Sponsorship 19 - Clawback 20 - Clawback Claimable Balance 21 - Set Trust Line Flags 22 - Liquidity Pool Deposit 23 - Liquidity Pool Withdraw | | | | | history_operations | | +| transaction_hash | A hex-encoded SHA-256 hash of this transaction's XDR-encoded form | string | | | | | | history_transactions | | +| ledger_sequence | The sequence number of the ledger that this transaction was included in | integer | | | | | | history_transactions | | +| txn_application_order | Each transaction within the transaction set for a ledger is executed and applied sequentially to the network. The validator nodes randomly shuffle submitted transactions and assign them an application order number, which corresponds to the order in which they are applied | integer | | | | | | history_transactions | | +| txn_account | The account address that originates the transaction | string | | | | | | history_transactions | | +| account_sequence | The source account's sequence number that this transaction consumed. Sequence numbers can only be used once and help maintain atomicity and idempotency on the network. | integer | | | | | | history_transactions | | +| max_fee | The maximum fee (in stroops) that the source account is willing to pay for the transaction to be included in a ledger. When the network enters surge pricing, this helps determine if a transaction is included in the set | integer | | | | | | history_transactions | The stroop is the fractional representation of a lumen (XLM). 1 stroop is 0.0000001 XLM. | +| txn_operation_count | The number of operations contained within this transaction | integer | | | | | | history_transactions | A transaction is permitted to have up to 100 operations | +| txn_created_at | The date the transaction was created | timestamp | | | | | | history_transactions | | +| memo_type | The type of memo | string | MemoTypeMemoHash MemoTypeMemoId MemoTypeMemoNone MemoTypeMemoReturn MemoTypeMemoText | | | | | history_transactions | Defaults to \`MemoTypeMemoNone\` | +| memo | An optional freeform field that attaches a memo to a transaction | string | | | | | | history_transactions | Memos are heavily used by centralized exchanges to help with account management. | +| time_bounds | A transaction precondition that can be set to determine when a transaction is valid. The user can set a lower and upper timebound, defined as a UNIX timestamp when the transaction can be executed. If the transaction attempts to execute outside of the time range, the transaction will fail | string | | | | | | history_transactions | | +| successful | Indicates if this transaction was successful or not | boolean | | | | | | history_transactions | A transaction's success does not indicate whether it was included and written to a ledger. It only indicates whether the operations in the transaction were successfully applied to mutate the ledger state. | +| fee_charged | The fee (in stroops) paid by the source account to apply this transaction to the ledger. At minimum, a transaction is charged # of operations \* base fee. The minimum base fee is 100 stroops | integer | | | | | | history_transactions | The stroop is the fractional representation of a lumen (XLM). 1 stroop is 0.0000001 XLM. | +| fee_account | An account that is not the originating source account for a transaction is allowed to pay transaction fees on behalf of the source account. These accounts are called fee accounts and incur all transaction costs for the source account. | string | | | | | | history_transactions | | +| new_max_fee | If an account has a fee account, the fee account can specify a maximum fee (in stroops) that it is willing to pay for this account's fees. When the network is in surge pricing, the validators will consider the new_max_fee instead of the max_fee when determining if the transaction will be included in the transaction set | integer | | | | | | history_transactions | | +| account_muxed | If the user has defined multiplexed (muxed) accounts, the account exists "virtually" under a traditional Stellar account address. This address distinguishes between the virtual accounts | string | | | | | | history_transactions | | +| fee_account_muxed | If the fee account that sponsors fee is a multiplexed account, the virtual address will be listed here | string | | | | | | history_transactions | | +| ledger_hash | The hex-encoded SHA-256 hash that represents the ledger's XDR-encoded form | string | | | | | | history_ledgers | | +| previous_ledger_hash | The hex-encoded SHA-256 hash of the ledger that immediately precedes this ledger | string | | | | | | history_ledgers | | +| transaction_count | The number of successful transactions submitted and completed by the network in this ledger | integer | | | | | | history_ledgers | | +| ledger_operation_count | The total number of successful operations applied to this ledger | integer | | | | | | history_ledgers | | +| closed_at | Timestamp in UTC when this ledger closed and committed to the network. Ledgers are expected to close ~every 5 seconds | timestamp | | | | MONTH partition | | history_ledgers | | +| ledger_id | Unique identifier for the ledger | integer | | | | | | history_ledgers | | +| total_coins | Total number of lumens in circulation | integer | | | | | | history_ledgers | | +| fee_pool | The sum of all transaction fees | integer | | | | | | history_ledgers | | +| base_fee | The fee (in stroops) the network charges per operation in a transaction for the given ledger. The minimum base fee is 100, with the ability to increase if transaction demand exceeds ledger capacity. When this occurs, the ledger enters surge pricing | integer | | | | | | history_ledgers | | +| base_reserve | The reserve (in stroops) the network requires an account to retain as a minimum balance in order to be a valid account on the network. The current minimum reserve is 10 XLM | integer | 5000000 100000000 | | | | | history_ledgers | | +| max_tx_set_size | The maximum number of operations that Stellar validator nodes have agreed to process in a given ledger. Since Protocol 11, ledger capacity has been measured in operations rather than transactions | integer | 50 - original max 500 1000 - current max | | | | | history_ledgers | | +| protocol_version | The protocol verstion that the Stellar network was running when this ledger was committed. Protocol versions are released ~every 6 months | integer | integers 1 - 19 (will increment) | | | | | history_ledgers | | +| successful_transaction_count | The number of successful transactions submitted and completed by the network in this ledger | integer | | | | | | history_ledgers | | +| failed_transaction_count | The number of failed transactions submitted to the network in this ledger. The transaction was still paid for but contained an error that prevented it from executing | integer | | | | | | history_ledgers | | +| batch_id | String representation of the run id for a given DAG in Airflow. Takes the form of "scheduled__-". Batch ids are unique to the batch and help with monitoring and rerun capabilities | string | | | | | | history_operations | | +| batch_run_date | The start date for the batch interval. When taken with the date in the batch_id, the date represents the interval of ledgers processed. The batch run date can be seen as a proxy of closed_at for a ledger. | datetime | | | | | | history_operations | The table is partitioned on batch_run_date. It is recommended to always include the batch_run_date in the filter if possible to help reduce query cost. | +| batch_insert_ts | The timestamp in UTC when a batch of records was inserted into the database. This field can help identify if a batch executed in real time or as part of a backfill | timestamp | | | | | | current timestamp | | +| ledger_bounds | A transaction precondition that can be set to determine valid conditions for a transaction to be submitted to the network. Ledger bounds allow the user to specify a minimum and maxiumum ledger sequence number in which the transaction can successfully execute | string | | | | | | history_transactions | | +| min_account_sequence | A transaction precondition that can be set to determine valid conditions for a transaction to be submitted to the network. This condition contains an integer representation of the lowest source account sequence number for which the transaction is valid | integer | | | | | | history_transactions | | +| min_account_sequence_age | A transaction precondition that can be set to determine valid conditions for a transaction to be submitted to the network. This condition contains a minimum duration of time that must have passed since the source account's sequence number changed for the transaction to be valid | integer | | | | | | history_transactions | | +| min_account_sequence_ledger_gap | A transaction precondition that can be set to determine valid conditions for a transaction to be submitted to the network. This condition contains an integer representation of the minimum number of ledgers that must have closed since the source account's sequence number change for the transaction to be valid | integer | | | | | | history_transactions | | +| extra_signers | An array of up to two additional signers that must have corresponding signatures for this transaction to be valid | array[string] | | | | | | history_transactions | | +| asset_id | Unique identifier for asset_code, asset_issuer | | | | | | | history_operations | | +| buying_asset_id | Unique identifier for buying_asset_code, buying_asset_issuer | | | | | | | history_operations | | +| selling_asset_id | Unique identifier for selling_asset_code, selling_asset_issuer | | | | | | | history_operations | | +| source_asset_id | Unique identifier for source_asset_code, source_asset_issuer | | | | | | | history_operations | | +| reserve_a_asset_id | Unique identifier for reserve_a_asset_code, reserve_a_asset_issuer | | | | | | | history_operations | | +| reserve_b_asset_id | Unique identifier for reserve_b_asset_code, reserve_b_asset_issuer | | | | | | | history_operations | | +| asset_balance_changes | The balance changes applied to an account or contract from an invoke host function. An asset must be a classic asset transferred through the [SAC](https://soroban.stellar.org/docs/tokens/stellar-asset-contract) to be included. | record | | | | | | history_operations | More details about the record structure can be found in the \`history_operations\` tab | +| parameters | The parameters passed to the function call for a Soroban contract. These are base64 encoded XDR. The record follows the format of \`type\` + \`value\` pair | record | | | | | | history_operations | More details about the record structure can be found in the \`history_operations\` tab | +| parameters_decoded | The decoded human readable parameters passed to a function call for a Soroban contract. The record follows the format of \`type\` + \`value\` pair | record | | | | | | history_operations | More details about the record structure can be found in the \`history_operations\` tab | +| function | The function type invoked by the host operation | string | HostFunctionTypeHostFunctionTypeInvokeContract HostFunctionTypeHostFunctionTypeCreateContract HostFunctionTypeHostFunctionTypeUploadContractWasm | | | | | history_operations | | +| address | The wallet address used to create and deploy a Soroban contract instance. | string | | | | | | history_operations | | +| soroban_operation_type | The type of Soroban operation that is invoked within a host function | string | invoke_contract create_contract upload_wasm extend_footprint_ttl restore_footprint | | | | | history_operations | | +| extend_to | The number of ledgers in which the Soroban ledger entry is extended | integer | | | | | | history_operations | | +| contract_id | The unique identifier of the deployed contract instance. Each custom Soroban contract and deployed SAC token will have a unique contract_id. | string | | | | | | history_operations | | +| contract_code_hash | The hex-encoded SHA-256 hash that represents the contract code's XDR-encoded form | string | | | | | | history_operations | | +| resource_fee | The fee charged less the inclusion fee for the Soroban transaction. This is calculated by the read/write operations and how process intensive the Soroban transaction is | integer | | | | | | history_transactions | | +| soroban_resources_instructions | Number of CPU instructions the Soroban transaction uses | integer | | | | | | history_transactions | | +| soroban_resources_read_bytes | Number of bytes read by the Soroban transaction | integer | | | | | | history_transactions | | +| soroban_resources_write_bytes | Number of bytes written by the Soroban transaction | integer | | | | | | history_transactions | | +| transaction_result_code | The detailed result code that outlines why a transaction failed. This code is only useful for failed transactions. The full list of domain values can be found [here](https://pkg.go.dev/github.com/stellar/go/xdr#TransactionResultCode). | string | | | | | | history_transactions | | +| inclusion_fee_bid | The maximum bid the submitter is willing to pay for inclusion of the transaction. This fee is used to prioritize transactions that are included in the ledger. | integer | | | | | | history_transactions | | +| inclusion_fee_charged | The fee charged for the transaction to be included in the ledger. | integer | | | | | | history_transactions | | +| resource_fee_refund | The amount of the resource fee refunded to the transaction submitter. The refundable fees are calculated from rent, events and return value. Refundable fees are charged from teh source account before the transaction is executed and then refunded based on the actual usage. | integer | | | | | | history_transactions | | +| operation_result_code | The result code returned when the Stellar Network applies an operation. This code is helpful for understanding failed transactions. | string | | | | | | history_operations | | +| operation_trace_code | The trace code returned when an operation is applied to the Stellar Network. This code is helpful for understanding failure types. | string | | | | | | history_operations | | \ No newline at end of file diff --git a/network/hubble/data-catalog/data-dictionary/history-assets.mdx b/network/hubble/data-catalog/data-dictionary/history-assets.mdx new file mode 100644 index 000000000..3f186494b --- /dev/null +++ b/network/hubble/data-catalog/data-dictionary/history-assets.mdx @@ -0,0 +1,15 @@ +--- +title: History Assets +sidebar_position: 90 +--- + +| Name | Description | Data Type | Domain Values | Primary Key? | Natural Key? | Partition or Cluster Field? | Required? | Notes | +| --------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------- | ----------------------------------------------- | ------------ | ------------ | --------------------------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | +| id | Unique identifier for the asset code, type and issuer combination. This is not a primary key on the table | float | | | Yes | | Yes | | +| asset_type | The identifier for type of asset code, can be a alphanumeric with 4 characters, 12 characters or the native asset to the network, XLM. | string | credit_alphanum4 credit_alphanum12 native | | Yes | cluster | Yes | XLM is the native asset to the network. XLM has no asset code or issuer representation and will instead be displayed with an asset type of 'native' | +| asset_code | The 4 or 12 character code representation of the asset on the network | string | | | Yes | cluster | No | Asset codes have no guarantees of uniqueness. The combination of asset code, issuer and type represents a distinct asset | +| asset_issuer | The account address of the original asset issuer that created the asset | string | | | Yes | cluster | No | | +| batch_id | String representation of the run id for a given DAG in Airflow. Takes the form of "scheduled__-". Batch ids are unique to the batch and help with monitoring and rerun capabilities | string | | | Yes | | Yes | | +| batch_run_date | The start date for the batch interval. When taken with the date in the batch_id, the date represents the interval of ledgers processed. The batch run date can be seen as a proxy of closed_at for a ledger. | datetime | | | | MONTH partition | Yes | The table is partitioned on batch_run_date. It is recommended to always include the batch_run_date in the filter if possible to help reduce query cost. | +| batch_insert_ts | The timestamp in UTC when a batch of records was inserted into the database. This field can help identify if a batch executed in real time or as part of a backfill | timestamp | | | | | Yes | | +| asset_id | Unique identifier for asset_code, asset_issuer | integer | | | | | No | | \ No newline at end of file diff --git a/network/hubble/data-catalog/data-dictionary/history-effects.mdx b/network/hubble/data-catalog/data-dictionary/history-effects.mdx new file mode 100644 index 000000000..6e04646d4 --- /dev/null +++ b/network/hubble/data-catalog/data-dictionary/history-effects.mdx @@ -0,0 +1,160 @@ +--- +title: History Effects +sidebar_position: 100 +--- + +| Name | Description | Data Type | Domain Values | Primary Key? | Natural Key? | Partition or Cluster Field? | Required? | Notes | +| ----------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------- | ------------- | ------------ | ------------ | --------------------------- | --------- | ----- | +| address | The address of the account. The address is the account's public key encoded in base32. All account addresses start with a \`G\` | string | | | | cluster | | | +| address_muxed | Address multiplexed | string | | | | | | | +| operation_id | Unique identifier for an operation | integer | | | | cluster | | | +| type | The number indicating which type of effect | integer | | | | cluster | | | +| type_string | The string indicating which type of effect | string | | | | | | | +| details | Unstructured JSON object that contains details based on the type of effect. Each effect will return its own relevant details, with the rest of the details as null | record | | | | | | | +| details.liquidity_pool | Liquidity pools provide a simple, non-interactive way to trade large amounts of capital and enable high volumes of trading | record | | | | | | | +| details.liquidity_pool.fee_bp | The number of basis points charged as a percentage of the trade in order to complete the transaction. The fees earned on all trades are divided amongst pool shareholders and distributed as an incentive to keep money in the pools | integer | | | | | | | +| details.liquidity_pool.id | Unique identifier for a liquidity pool. There cannot be duplicate pools for the same asset pair. Once a pool has been created for the asset pair, another cannot be created. | string | | | | | | | +| details.liquidity_pool.total_shares | Total number of pool shares issued | numeric | | | | | | | +| details.liquidity_pool.total_trustlines | Number of trustlines for the associated pool shares | integer | | | | | | | +| details.liquidity_pool.type | The mechanism that calculates pricing and division of shares for the pool. With the initial AMM rollout, the only type of liquidity pool allowed to be created is a constant product pool. | string | | | | | | | +| details.liquidity_pool.reserves | Reserved asset in liquidity pool | record | | | | | | | +| details.liquidity_pool.reserves.asset | Reserve asset | string | | | | | | | +| details.liquidity_pool.reserves.amount | Reserve asset amount | numeric | | | | | | | +| details.reserves_received | Asset amount received for reserves from liquidity pool withdraw | record | | | | | | | +| details.reserves_received.asset | Recieved asset | string | | | | | | | +| details.reserves_received.amount | Recieved asset amount | numeric | | | | | | | +| details.reserves_deposited | Asset amount deposited for reserves from liquidity pool deposit | record | | | | | | | +| details.reserves_deposited.asset | Deposited asset | string | | | | | | | +| details.reserves_deposited.amount | Deposited asset amount | numeric | | | | | | | +| details.reserves_revoked | Asset amount revoked for reserves from liquidity pool revoke | record | | | | | | | +| details.reserves_revoked.asset | Revoked asset | string | | | | | | | +| details.reserves_revoked.amount | Revoked asset amount | numeric | | | | | | | +| details.reserves_revoked.claimable_balance_id | Claimable balance id | string | | | | | | | +| details.bought | Asset bought from trade | record | | | | | | | +| details.bought.asset | Asset bought | string | | | | | | | +| details.bought.amount | Asset amount bought | numeric | | | | | | | +| details.sold | Asset sold from trade | record | | | | | | | +| details.sold.asset | Asset sold | string | | | | | | | +| details.sold.amount | Asset amount sold | numeric | | | | | | | +| details.shares_revoked | Shares revoked from liquidity pool revoke | numeric | | | | | | | +| details.shares_received | Shares received from liquidity pool deposit | numeric | | | | | | | +| details.shares_redeemed | Shares redeemed from liquidity pool withrdaw | numeric | | | | | | | +| details.liquidity_pool_id | Unique identifier for a liquidity pool | string | | | | | | | +| details.balance_id | The unique identifier of the claimable balance. The id is comprised of 8 character type code + SHA-256 hash of the history operation id that created the balance. The balance id can be joined back to the \`claimable_balances\` table to gather more details about the balance | string | | | | | | | +| details.new_seq | New sequence number after bump sequence | integer | | | | | | | +| details.name | The manage data operation allows an account to write and store data directly on the ledger in a key value pair format. The name is the key for a data entry. | string | | | | | | | +| details.value | Value of data from manage data effect | string | | | | | | | +| details.trustor | Account address of trustor | string | | | | | | | +| details.limit | The upper bound amount of an asset that an account can hold | numeric | | | | | | | +| details.inflation_destination | Inflation destination account id | string | | | | | | | +| details.authorized_flag | Auth value for set trustline flags | boolean | | | | | | | +| details.auth_immutable_flag | Auth value for set trustline flags | boolean | | | | | | | +| details.authorized_to_maintain_liabilites | Auth value for set trustline flags | boolean | | | | | | | +| details.auth_revocable_flag | Auth value for set trustline flags | boolean | | | | | | | +| details.auth_required_flag | Auth value for set trustline flags | boolean | | | | | | | +| details.auth_clawback_enabled_flag | Auth value for set trustline flags | boolean | | | | | | | +| details.claimable_balance_clawback_enabled_flag | Auth value for set trustline flags | boolean | | | | | | | +| details.clawback_enabled_flag | Auth value for set trustline flags | boolean | | | | | | | +| details.high_threshold | The sum of the weight of all signatures that sign a transaction for the high threshold operation. The weight must exceed the set threshold for the operation to succeed. | integer | | | | | | | +| details.med_threshold | The sum of the weight of all signatures that sign a transaction for the medium threshold operation. The weight must exceed the set threshold for the operation to succeed. | integer | | | | | | | +| details.low_threshold | The sum of the weight of all signatures that sign a transaction for the low threshold operation. The weight must exceed the set threshold for the operation to succeed. | integer | | | | | | | +| details.home_domain | The home domain used for the stellar.toml file discovery | string | | | | | | | +| details.asset_issuer | The account address of the original asset issuer that created the asset | string | | | | | | | +| details.asset | Asset on network | string | | | | | | | +| details.asset_code | The 4 or 12 character code representation of the asset on the network | string | | | | | | | +| details.asset_type | The identifier for type of asset code, can be a alphanumeric with 4 characters, 12 characters or the native asset to the network, XLM. | string | | | | | | | +| details.signer | The address of the account that is allowed to authorize (sign) transactions for another account. This process is called multi-sig | string | | | | | | | +| details.sponsor | The account address of the sponsor who is paying the reserves for this signer | string | | | | | | | +| details.new_sponsor | The new account address of the sponsor who is paying the reserves for this signer | string | | | | | | | +| details.former_sponsor | The former account address of the sponsor who is paying the reserves for this signer | string | | | | | | | +| details.weight | Signer weight | integer | | | | | | | +| details.public_key | Signer public key | string | | | | | | | +| details.amount | Asset amount | numeric | | | | | | | +| details.starting_balance | Account asset starting balance | numeric | | | | | | | +| details.seller | Selling account | string | | | | | | | +| details.seller_muxed | Account multiplexed | string | | | | | | | +| details.seller_muxed_id | Account multiplexed id | integer | | | | | | | +| details.offer_id | The unique id for the offer. This id can be joined with the \`offers\` table | integer | | | | | | | +| details.sold_amount | Amount of asset sold | numeric | | | | | | | +| details.sold_asset_type | The identifier for type of asset code, can be a alphanumeric with 4 characters, 12 characters or the native asset to the network, XLM. | string | | | | | | | +| details.sold_asset_code | The 4 or 12 character code representation of the asset on the network | string | | | | | | | +| details.sold_asset_issuer | The account address of the original asset issuer that created the asset | string | | | | | | | +| details.bought_asset_type | The identifier for type of asset code, can be a alphanumeric with 4 characters, 12 characters or the native asset to the network, XLM. | string | | | | | | | +| details.bought_asset_code | The 4 or 12 character code representation of the asset on the network | string | | | | | | | +| details.bought_asset_issuer | The account address of the original asset issuer that created the asset | string | | | | | | | +| details.bought_amount | Amount of asset bought | numeric | | | | | | | +| details.data_name | Ledger entry data name | string | | | | | | | +| details.predicate | The condition which must be satisfied so the destination can claim the balance. The predicate can include logical rules using AND, OR and NOT logic. | record | | | | | | | +| details.predicate.not | | record | | | | | | | +| details.predicate.not.abs_before | | string | | | | | | | +| details.predicate.not.rel_before | | integer | | | | | | | +| details.predicate.not.unconditional | | boolean | | | | | | | +| details.predicate.not.and | | record | | | | | | | +| details.predicate.not.and.abs_before | | string | | | | | | | +| details.predicate.not.and.rel_before | | integer | | | | | | | +| details.predicate.not.and.unconditional | | boolean | | | | | | | +| details.predicate.not.and.abs_before_epoch | | integer | | | | | | | +| details.predicate.not.or | | record | | | | | | | +| details.predicate.not.or.abs_before | | string | | | | | | | +| details.predicate.not.or.rel_before | | integer | | | | | | | +| details.predicate.not.or.unconditional | | boolean | | | | | | | +| details.predicate.not.or.abs_before_epoch | | integer | | | | | | | +| details.predicate.not.not | | record | | | | | | | +| details.predicate.not.not.abs_before | | string | | | | | | | +| details.predicate.not.not.rel_before | | integer | | | | | | | +| details.predicate.not.not.unconditional | | boolean | | | | | | | +| details.predicate.not.not.abs_before_epoch | | integer | | | | | | | +| details.predicate.not.abs_before_epoch | | integer | | | | | | | +| details.predicate.type | | integer | | | | | | | +| details.predicate.and | | record | | | | | | | +| details.predicate.and.abs_before | | string | | | | | | | +| details.predicate.and.rel_before | | integer | | | | | | | +| details.predicate.and.unconditional | | boolean | | | | | | | +| details.predicate.and.and | | record | | | | | | | +| details.predicate.and.and.abs_before | | string | | | | | | | +| details.predicate.and.and.rel_before | | integer | | | | | | | +| details.predicate.and.and.unconditional | | boolean | | | | | | | +| details.predicate.and.and.abs_before_epoch | | integer | | | | | | | +| details.predicate.and.or | | record | | | | | | | +| details.predicate.and.or.abs_before | | string | | | | | | | +| details.predicate.and.or.rel_before | | integer | | | | | | | +| details.predicate.and.or.unconditional | | boolean | | | | | | | +| details.predicate.and.or.abs_before_epoch | | integer | | | | | | | +| details.predicate.and.not | | record | | | | | | | +| details.predicate.and.not.abs_before | | string | | | | | | | +| details.predicate.and.not.rel_before | | integer | | | | | | | +| details.predicate.and.not.unconditional | | boolean | | | | | | | +| details.predicate.and.not.abs_before_epoch | | integer | | | | | | | +| details.predicate.and.abs_before_epoch | | integer | | | | | | | +| details.predicate.or | | record | | | | | | | +| details.predicate.or.abs_before | | string | | | | | | | +| details.predicate.or.rel_before | | integer | | | | | | | +| details.predicate.or.unconditional | | boolean | | | | | | | +| details.predicate.or.and | | record | | | | | | | +| details.predicate.or.and.abs_before | | string | | | | | | | +| details.predicate.or.and.rel_before | | integer | | | | | | | +| details.predicate.or.and.unconditional | | boolean | | | | | | | +| details.predicate.or.and.not | | record | | | | | | | +| details.predicate.or.and.not.abs_before | | string | | | | | | | +| details.predicate.or.and.not.rel_before | | integer | | | | | | | +| details.predicate.or.and.not.unconditional | | boolean | | | | | | | +| details.predicate.or.and.not.abs_before_epoch | | integer | | | | | | | +| details.predicate.or.and.abs_before_epoch | | integer | | | | | | | +| details.predicate.or.or | | record | | | | | | | +| details.predicate.or.or.abs_before | | string | | | | | | | +| details.predicate.or.or.rel_before | | integer | | | | | | | +| details.predicate.or.or.unconditional | | boolean | | | | | | | +| details.predicate.or.or.abs_before_epoch | | integer | | | | | | | +| details.predicate.or.not | | record | | | | | | | +| details.predicate.or.not.abs_before | | string | | | | | | | +| details.predicate.or.not.rel_before | | integer | | | | | | | +| details.predicate.or.not.unconditional | | boolean | | | | | | | +| details.predicate.or.not.abs_before_epoch | | integer | | | | | | | +| details.predicate.or.abs_before_epoch | | integer | | | | | | | +| details.predicate.abs_before | Deadline for when the balance must be claimed. If a balance is claimed before the date then the clause of the condition is satisfied. | string | | | | | | | +| details.predicate.rel_before | A relative deadline for when the claimable balance can be claimed. The value represents the number of seconds since the close time of the ledger which created the claimable balance \#### Notes: This condition is useful when creating a timebounds based on creation conditions. If the creator wanted a balance only claimable one week after creation, this condition would satisfy that rule. | integer | | | | | | | +| details.predicate.unconditional | If true it means this clause of the condition is always satisfied. \#### Notes: When the predicate is only unconditional = true, it means that the balance can be claimed under any conditions | boolean | | | | | | | +| details.predicate.abs_before_epoch | A UNIX epoch value in seconds representing the same deadline date as abs_before. | integer | | | | | | | +| batch_id | String representation of the run id for a given DAG in Airflow. Takes the form of "scheduled__-". Batch ids are unique to the batch and help with monitoring and rerun capabilities | string | | | | | | | +| batch_run_date | The start date for the batch interval. When taken with the date in the batch_id, the date represents the interval of ledgers processed. The batch run date can be seen as a proxy of closed_at for a ledger. | datetime | | | | MONTH partition | | | +| batch_insert_ts | The timestamp in UTC when a batch of records was inserted into the database. This field can help identify if a batch executed in real time or as part of a backfill | timestamp | | | | | | | \ No newline at end of file diff --git a/network/hubble/data-catalog/data-dictionary/history-ledgers.mdx b/network/hubble/data-catalog/data-dictionary/history-ledgers.mdx new file mode 100644 index 000000000..75bf49fae --- /dev/null +++ b/network/hubble/data-catalog/data-dictionary/history-ledgers.mdx @@ -0,0 +1,28 @@ +--- +title: History Ledgers +sidebar_position: 110 +--- + +| Name | Description | Data Type | Domain Values | Primary Key? | Natural Key? | Partition or Cluster Field? | Required? | Notes | +| ---------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------- | ---------------------------------------------- | ------------ | ------------ | --------------------------- | --------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| sequence | The sequence number that corresponds to the individual ledgers. As ledgers are written to the network, the sequence is incremented by 1 | integer | | | Yes | cluster | Yes | | +| ledger_hash | The hex-encoded SHA-256 hash that represents the ledger's XDR-encoded form | string | | | | | Yes | | +| previous_ledger_hash | The hex-encoded SHA-256 hash of the ledger that immediately precedes this ledger | string | | | | | No | | +| transaction_count | The number of successful transactions submitted and completed by the network in this ledger | integer | | | | | Yes | Defaults to 0 | +| operation_count | The total number of successful operations applied to this ledger | integer | | | | | Yes | Defaults to 0 | +| closed_at | Timestamp in UTC when this ledger closed and committed to the network. Ledgers are expected to close ~every 5 seconds | timestamp | | | Yes | cluster, MONTH partition | Yes | | +| id | Unique identifier for the ledger | integer | | Yes | | | No | | +| total_coins | Total number of lumens in circulation | integer | | | | | Yes | | +| fee_pool | The sum of all transaction fees | integer | | | | | Yes | | +| base_fee | The fee (in stroops) the network charges per operation in a transaction for the given ledger. The minimum base fee is 100, with the ability to increase if transaction demand exceeds ledger capacity. When this occurs, the ledger enters surge pricing | integer | | | | | Yes | The stroop is the fractional representation of a lumen (XLM). 1 stroop is 0.0000001 XLM. | +| base_reserve | The reserve (in stroops) the network requires an account to retain as a minimum balance in order to be a valid account on the network. The current minimum reserve is 10 XLM | integer | 5000000 100000000 | | | | Yes | The stroop is the fractional representation of a lumen (XLM). 1 stroop is 0.0000001 XLM. | +| max_tx_set_size | The maximum number of operations that Stellar validator nodes have agreed to process in a given ledger. Since Protocol 11, ledger capacity has been measured in operations rather than transactions | integer | 50 - original max 500 1000 - current max | | | | Yes | | +| protocol_version | The protocol verstion that the Stellar network was running when this ledger was committed. Protocol versions are released ~every 6 months | integer | integers 1 - 19 (will increment) | | | | Yes | Defaults to 0 | +| ledger_header | A base64-encoded string of the raw LedgerHeader xdr struct for this ledger | bytes | | | | | No | | +| successful_transaction_count | The number of successful transactions submitted and completed by the network in this ledger | integer | | | | | No | | +| failed_transaction_count | The number of failed transactions submitted to the network in this ledger. The transaction was still paid for but contained an error that prevented it from executing | integer | | | | | No | | +| tx_set_operation_count | The total number of operations in the transaction set for this ledger, including failed transactions. | integer | | | | | No | Transactions on Stellar are atomic. If one of the operations within a transaction set fails, the entire transaction will failed, including any other operations. | +| batch_id | String representation of the run id for a given DAG in Airflow. Takes the form of "scheduled__-". Batch ids are unique to the batch and help with monitoring and rerun capabilities | string | | | | | Yes | | +| batch_run_date | The start date for the batch interval. When taken with the date in the batch_id, the date represents the interval of ledgers processed. The batch run date can be seen as a proxy of closed_at for a ledger. | datetime | | | | | Yes | The table is partitioned on batch_run_date. It is recommended to always include the batch_run_date in the filter if possible to help reduce query cost. | +| batch_insert_ts | The timestamp in UTC when a batch of records was inserted into the database. This field can help identify if a batch executed in real time or as part of a backfill | timestamp | | | | | Yes | | +| soroban_fee_write_1kb | Soroban write fee costs | integer | | | | | | | \ No newline at end of file diff --git a/network/hubble/data-catalog/data-dictionary/history-operations.mdx b/network/hubble/data-catalog/data-dictionary/history-operations.mdx new file mode 100644 index 000000000..eee0df090 --- /dev/null +++ b/network/hubble/data-catalog/data-dictionary/history-operations.mdx @@ -0,0 +1,137 @@ +--- +title: History Operations +sidebar_position: 120 +--- + +| Name | Description | Data Type | Domain Values | Operation Types Supported | Primary Key? | Natural Key? | Partition or Cluster Field? | Required? | Notes | +| ------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------ | ------------ | --------------------------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| application_order | The order number in the transaction set in which the operation is executed. The application order and transaction id is a natural key that comprises the (operation) id | integer | | | | | | Yes | | +| id | Unique identifier for an operation | integer | | | Yes | Yes | | Yes | The operation id is the transaction id + order number | +| source_account | The account address that originates the operation | string | | | | | cluster | Yes | Defaults to '' | +| source_account_muxed | If an account is multiplexed (muxed), the virtual account address that originates the operation | string | | | | | | No | | +| transaction_id | The transaction identifier in which the operation executed. There can be up to 100 operations in a given transaction | integer | | | | | cluster | Yes | | +| type | The number indicating which type of operation this operation executes | integer | 0 - Create Account 1 - Payment 2 - Path Payment Strict Receive 3 - Manage Sell Offer 4 - Create Passive Sell Offer 5 - Set Options 6 - Change Trust 7 - Allow Trust 8 - Account Merge 9 - Inflation 10 - Manage Data 11 - Bump Sequence 12 - Manage Buy Offer 13 - Path Payment Strict Send 14 - Create Claimable Balance 15 - Claim Claimable Balance 16 - Being Sponsoring Future Reserves 17 - End Sponsoring Future Reserves 18 - Revoke Sponsorship 19 - Clawback 20 - Clawback Claimable Balance 21 - Set Trust Line Flags 22 - Liquidity Pool Deposit 23 - Liquidity Pool Withdraw | | | | cluster | Yes | When new features are rolled out to the network, many times the new feature results in a new operation type, which is added to the type list. | +| type_string | The string indicating which type of operation this operation executes | string | | | | | | Yes | | +| details | Unstructured JSON object that contains details based on the type of operation executed. Each operation will return its own relevant details, with the rest of the details as null | blob | | see details below (E10:E108) | | | | No | Bigquery does not have a JSON field type (currently in pre-GA pilot only) so this field is a structured, sparse, record field instead. In the upstream data, this field is a true json blob | +| details.account | The new resulting account address that is created and funded (create operation) The account address that is being removed and merged into another account (merge operation) | string | | 0 - Create Account 8 - Account Merge | | | | No | | +| details.account_muxed | The virtual address of the account if the account is multiplexed | string | | 8 - Account Merge | | | | No | | +| details.account_muxed_id | Integer representation of the virtual address of the account if the account is multiplexed | integer | | 8 - Account Merge | | | | No | | +| details.account_id | The address of the account which is no longer sponsored | string | | 18 - Revoke Sponsorship | | | | No | | +| details.amount | Float representation of the amount of an asset sent/offered/etc | float | | 1 - Payment 2 - Path Payment Strict Receive 3 - Manage Sell Offer 4 - Create Passive Sell Offer 12 - Manage Buy Offer 13 - Path Payment Strict Send 14 - Create Claimable Balance 19 - Clawback | | | | No | | +| details.asset | The asset available to be claimed in the form of "asset_code:issuing_address". If the claimable balance is in XLM, it is reported as "native" | string | | 14 - Create Claimable Balance | | | | No | | +| details.asset_code | The 4 or 12 character code representation of the asset on the network | string | | 1 - Payment 2 - Path Payment Strict Receive 6 - Change Trust 7 - Allow Trust 13 - Path Payment Strict Send 19 - Clawback 21 - Set Trust Line Flags | | | | No | Asset codes have no guarantees of uniqueness. The combination of asset code, issuer and type represents a distinct asset | +| details.asset_issuer | The account address of the original asset issuer that created the asset | string | | 1 - Payment 2 - Path Payment Strict Receive 6 - Change Trust 7 - Allow Trust 13 - Path Payment Strict Send 19 - Clawback 21 - Set Trust Line Flags | | | | No | | +| details.asset_type | The identifier for type of asset code, can be a alphanumeric with 4 characters, 12 characters or the native asset to the network, XLM. | string | credit_alphanum4 credit_alphanum12 native | 1 - Payment 2 - Path Payment Strict Receive 6 - Change Trust 7 - Allow Trust 13 - Path Payment Strict Send 19 - Clawback 21 - Set Trust Line Flags | | | | No | XLM is the native asset to the network. XLM has no asset code or issuer representation and will instead be displayed with an asset type of 'native' | +| details.authorize | Indicates whether the trustline is authorized. 0 is the account is not authorized to transact with the asset in any way. 1 if the account is authorized to transact with the asset. 2 if the account is authorized to maintain orders, but not to perform other transactions. | boolean | | 7 - Allow Trust | | | | No | | +| details.balance_id | The unique identifier of the claimable balance. The id is comprised of 8 character type code + SHA-256 hash of the history operation id that created the balance. | string | | 15 - Claim Claimable Balance 20 - Clawback Claimable Balance | | | | No | | +| details.buying_asset_code | The 4 or 12 character code representation of the asset that is either bought or offered to buy in a trade | string | | 3 - Manage Sell Offer 4 - Create Passive Sell Offer 12 - Manage Buy Offer | | | | No | | +| details.buying_asset_issuer | The account address of the original asset issuer that created the asset bought or offered to buy | string | | 3 - Manage Sell Offer 4 - Create Passive Sell Offer 12 - Manage Buy Offer | | | | No | | +| details.buying_asset_type | The identifier for type of asset code, can be a alphanumeric with 4 characters, 12 characters or the native asset to the network, XLM. | string | credit_alphanum4 credit_alphanum12 native | 3 - Manage Sell Offer 4 - Create Passive Sell Offer 12 - Manage Buy Offer | | | | No | XLM is the native asset to the network. XLM has no asset code or issuer representation and will instead be displayed with an asset type of 'native' | +| details.claimable_balance_id | The balance id of the claimable balance which is no longer sponsored | string | | 18 - Revoke Sponsorship | | | | No | | +| details.claimant | The account address of the account which claimed the claimable balance | string | | 15 - Claim Claimable Balance | | | | No | | +| details.claimant_muxed | If the account is multiplexed, the virtual address of the account which claimed the claimable balance | string | | 15 - Claim Claimable Balance | | | | No | | +| details.claimant_muxed_id | If the account is multiplexed, an integer representation of the muxed account which claimed the balance | integer | | 15 - Claim Claimable Balance | | | | No | | +| details.claimants | An unstructured field that lists account addresses eligible to claim a balance and the conditions which must be satisfied to claim the balance (typically time bound conditions) | array[record] | | 14 - Create Claimable Balance | | | | No | | +| details.data_account_id | The account address of the account whose data entry is no longer sponsored | string | | 18 - Revoke Sponsorship | | | | No | | +| details.data_name | The name of the data entry which is no longer sponsored | string | | 18 - Revoke Sponsorship | | | | No | | +| details.from | The account address from which the payment originates (the sender account) | string | | 1 - Payment 2 - Path Payment Strict Receive 13 - Path Payment Strict Send 19 - Clawback | | | | No | | +| details.from_muxed | If the account is multiplexed, the virtual address of the sender account | string | | 1 - Payment 2 - Path Payment Strict Receive 13 - Path Payment Strict Send 19 - Clawback | | | | No | | +| details.from_muxed_id | If the account is multiplexed, the integer representation of the virtual address of the sender account | integer | | 1 - Payment 2 - Path Payment Strict Receive 13 - Path Payment Strict Send 19 - Clawback | | | | No | | +| details.funder | When a new account is created, an account address "funds" the new account | string | | 0 - Create Account | | | | No | | +| details.funder_muxed | If the account is multiplexed, the virtual address of the account funding the new account | string | | 0 - Create Account | | | | No | | +| details.funder_muxed_id | If the account is multiplexed, the integer representation of the virtual address of the account funding the new acocunt. | string | | 0 - Create Account | | | | No | | +| details.high_threshold | The sum of the weight of all signatures that sign a transaction for the high threshold operation. The weight must exceed the set threshold for the operation to succeed. | integer | | 5 - Set Options | | | | No | Each operation falls under a specific threshold category: low, medium or high. Thresholds define the level of privilege an operation needs in order to succeed (this is a security measure) Low Security: Allow Trust, Set Trust Line Flags, Bump Sequence and Claim Claimable Balance Medium Security: Everything Else High Security: Account Merge, Set Options | +| details.home_domain | The home domain used for the stellar.toml file discovery | string | | 5 - Set Options | | | | No | | +| details.inflation_dest | The account address specifying where to send inflation funds. The concept of inflation on the network has been discontinued | string | | 5 - Set Options | | | | No | Inflation was retired from the network in 2019. | +| details.into | The account address receiving the deleted account's lumens. This is the account in which the intended deleted account will be merged | string | | 8 - Account Merge | | | | No | | +| details.into_muxed | If the account is multiplexed, the virtual address of the account receive the deleted account's lumens | string | | 8 - Account Merge | | | | No | | +| details.into_muxed_id | If the account is multipled, the integer representation of the account receiving the deleted account's lumens | integer | | 8 - Account Merge | | | | No | | +| details.limit | The upper bound amount of an asset that an account can hold | float | | 6 - Change Trust | | | | No | | +| details.low_threshold | The sum of the weight of all signatures that sign a transaction for the low threshold operation. The weight must exceed the set threshold for the operation to succeed. | integer | | 5 - Set Options | | | | No | Each operation falls under a specific threshold category: low, medium or high. Thresholds define the level of privilege an operation needs in order to succeed (this is a security measure) Low Security: Allow Trust, Set Trust Line Flags, Bump Sequence and Claim Claimable Balance Medium Security: Everything Else High Security: Account Merge, Set Options | +| details.master_key_weight | An accounts private key is called the master key. For signing transactions, the account holder can specify a weight for the master key, which contributes to thresholds validation when processing a transaction | integer | Integers from 1 to 255 | 5 - Set Options | | | | No | Defaults to 1 | +| details.med_threshold | The sum of the weight of all signatures that sign a transaction for the medium threshold operation. The weight must exceed the set threshold for the operation to succeed. | integer | | 5 - Set Options | | | | No | Each operation falls under a specific threshold category: low, medium or high. Thresholds define the level of privilege an operation needs in order to succeed (this is a security measure) Low Security: Allow Trust, Set Trust Line Flags, Bump Sequence and Claim Claimable Balance Medium Security: Everything Else High Security: Account Merge, Set Options | +| details.name | The manage data operation allows an account to write and store data directly on the ledger in a key value pair format. The name is the key for a data entry. | string | | 10 - Manage Data | | | | No | If the name is new, the manage data operation will add the given name/value pair to the account. If the name is already present, the associated value will be modified. | +| details.offer_id | The unique id for the offer. This id can be joined with the \`offers\` table | integer | | 3 - Manage Sell Offer 12 - Manage Buy Offer 18 - Revoke Sponsorship | | | | No | | +| details.path | Path payments maximize the best exchange rate path when sending money from one asset to another asset. The intermediary assets that this path hops through will be reported in the record. This feature is especially useful when the market between the original asset pair is illiquid | record | | 2 - Path Payment Strict Receive 13 - Path Payment Strict Send | | | | No | Up to 6 paths are permitted for a single payment. Example: sending EUR -> MXN could look like EUR -> BTC -> CNY -> XLM -> MXN to maximize the best exchange rate Payments are atomic, so if an exchange in the middle of a path payment fails, the entire payment will fail which means the user will keep their original funds. They will not be stuck with an intermediary asset in the event of payment failure. | +| details.price | The ratio of selling asset to buying asset. This is a number representing how many units of a selling asset it takes to get 1 unit of a buying asset | array[float] | | 3 - Manage Sell Offer 4 - Create Passive Sell Offer 12 - Manage Buy Offer | | | | No | | +| details.price_r | Precise representation of the buy and sell price of the assets on an offer. The n is the numerator, the d is the denominator. By calculating the ratio of n/d you can calculate the price of the bid or ask | record | | 3 - Manage Sell Offer 4 - Create Passive Sell Offer 12 - Manage Buy Offer | | | | No | | +| details.selling_asset_code | The 4 or 12 character code representation of the asset that is either sold or offered to sell in a trade | string | | 3 - Manage Sell Offer 4 - Create Passive Sell Offer 12 - Manage Buy Offer | | | | No | | +| details.selling_asset_issuer | The account address of the original asset issuer that created the asset sold or offered to sell | string | | 3 - Manage Sell Offer 4 - Create Passive Sell Offer 12 - Manage Buy Offer | | | | No | | +| details.selling_asset_type | The identifier for type of asset code, can be a alphanumeric with 4 characters, 12 characters or the native asset to the network, XLM. | string | credit_alphanum4 credit_alphanum12 native | 3 - Manage Sell Offer 4 - Create Passive Sell Offer 12 - Manage Buy Offer | | | | No | XLM is the native asset to the network. XLM has no asset code or issuer representation and will instead be displayed with an asset type of 'native' | +| details.set_flags | Array of numeric values of the flags set for a given trustline in the operation | array[integer] | 1 - Auth Required 2 - Auth Revocable 4 - Auth Immutable | 21 - Set Trust Line Flags | | | | No | | +| details.set_flags_s | Array of string values of the flags set for a given trustline in the operation | array[string] | Auth Required Auth Revocable Auth Immutable | 21 - Set Trust Line Flags | | | | No | | +| details.signer_account_id | The address of the account of the signer no longer sponsored | string | | 18 - Revoke Sponsorship | | | | No | | +| details.signer_key | The address of the signer which is no longer sponsored | string | | 5 - Set Options 18 - Revoke Sponsorship | | | | No | | +| details.signer_weight | The weight of the new signer. For transactions, multiple accounts can sign a transaction from a source account. This weight contributes towards calculating whether the transaction exceeds the specified threshold weight to complete the transaction | integer | Integers from 1 to 255 | 5 - Set Options | | | | No | | +| details.source_amount | The originating amount sent designated in the source asset | float | | 2 - Path Payment Strict Receive 13 - Path Payment Strict Send | | | | No | | +| details.source_asset_code | The 4 or 12 character code representation of the asset that is originally sent | string | | 2 - Path Payment Strict Receive 13 - Path Payment Strict Send | | | | No | | +| details.source_asset_issuer | The account address of the original asset issuer that created the asset sent | string | | 2 - Path Payment Strict Receive 13 - Path Payment Strict Send | | | | No | | +| details.source_asset_type | The identifier for type of asset code, can be a alphanumeric with 4 characters, 12 characters or the native asset to the network, XLM. | string | credit_alphanum4 credit_alphanum12 native | 2 - Path Payment Strict Receive 13 - Path Payment Strict Send | | | | No | XLM is the native asset to the network. XLM has no asset code or issuer representation and will instead be displayed with an asset type of 'native' | +| details.source_max | The maxium amount to be sent, designated in the source asset | float | | 2 - Path Payment Strict Receive | | | | No | Exchanging an asset causes a small amount of the asset value to be spent in fees and exchange rates. The sender can specify a maximum amount they are willing to send if the rates between the asset pair are bad. | +| details.starting_balance | The amount of XLM to send to the newly created account. The account starting balance will need to exceed the minimum balance necessary to hold an account on the Stellar Network | float | | 0 - Create Account | | | | No | | +| [details.to](http://details.to/) | The address of the account receiving the payment funds | string | | 1 - Payment 2 - Path Payment Strict Receive 13 - Path Payment Strict Send | | | | No | | +| details.to_muxed | If the account is multiplexed, the virtual address of the account receiving the payment | string | | 1 - Payment 2 - Path Payment Strict Receive 13 - Path Payment Strict Send | | | | No | | +| details.to_muxed_id | If the account is multiplexed, the integer representation of the virtual address of the recipient account | integer | | 1 - Payment 2 - Path Payment Strict Receive 13 - Path Payment Strict Send | | | | No | | +| details.trustee | The issuing account address (only present for \`credit\` asset types) | string | | 6 - Change Trust 7 - Allow Trust | | | | No | | +| details.trustee_muxed | If the issuing account address is multiplexed, the virtual address | string | | 7 - Allow Trust | | | | No | | +| details.trustee_muxed_id | If the issuing account address is multiplexed, the integer representation of the virtual address | integer | | 7 - Allow Trust | | | | No | | +| details.trustline_account_id | The address of the account whose trustline is no longer sponsored | string | | 18 - Revoke Sponsorship | | | | No | | +| details.trustline_asset | The asset of the trustline which is no longer sponsored | string | | 18 - Revoke Sponsorship | | | | No | A sponsor can determine they want to revoke sponsorship of certain assets but maintain the sponsorship of other assets | +| details.trustor | The trusting account address, or the account being authorized or unauthorized | string | | 6 - Change Trust 7 - Allow Trust 21 - Set Trust Line Flags | | | | No | | +| details.trustor_muxed | If the trusting account is multiplexed, the virtual address of the account | string | | 6 - Change Trust | | | | No | | +| details.trustor_muxed_id | If the trusting account is multiplexed, the integer representation of the virtual address | integer | | 6 - Change Trust | | | | No | | +| details.value | The manage data operation allows an account to write and store data directly on the ledger in a key value pair format. The value is the value of a key for a data entry. | string | | 10 - Manage Data | | | | No | | +| details.clear_flags | Array of numeric values of the flags cleared for a given trustline in the operation. If the flag was originally set, this will delete the flag | array[integer] | 1 - Auth Required 2 - Auth Revocable 4 - Auth Immutable | 21 - Set Trust Line Flags | | | | No | | +| details.clear_flags_s | Array of string values of the flags cleared for a given trustline in the operation. If the flag was originally set, this will delete the flag | array[string] | Auth Required Auth Revocable Auth Immutable | 21 - Set Trust Line Flags | | | | No | | +| details.destination_min | The minimum amount to be received, designated in the expected destination asset | string | | 13 - Path Payment Strict Send | | | | No | Exchanging an asset causes a small amount of the asset value to be spent in fees and exchange rates. The sender can specify a guaranteed minimum amount they want sent to the recipient to ensure they receive a specified value. | +| details.bump_to | The new desired value of the source account's sequence number | string | | 11 - Bump Sequence | | | | No | | +| details.authorize_to_maintain_liabilities | Indicates whether the trustline is authorized. 0 is the account is not authorized to transact with the asset in any way. 1 if the account is authorized to transact with the asset. 2 if the account is authorized to maintain orders, but not to perform other transactions. | boolean | | 7 - Allow Trust | | | | No | | +| details.clawback_enabled | Indicates whether the asset can be clawed back by the asset issuer | boolean | | 5 - Set Options 7 - Allow Trust | | | | No | | +| details.sponsor | The account address of another account that maintains the minimum balance in XLM for the source account to complete operations | string | | Any Type | | | | No | | +| details.sponsored_id | The account address of the account which will be sponsored | string | | 16 - Begin Sponsoring Future Reserves | | | | No | | +| details.begin_sponsor | The account address of the account which initiated the sponsorship | string | | 17 - End Sponsoring Future Reserves | | | | No | | +| details.begin_sponsor_muxed | If the initiating sponsorship account is multiplexed, the virtual address | string | | 17 - End Sponsoring Future Reserves | | | | No | | +| details.begin_sponsor_muxed_id | If the initiating sponsorship account is multiplexed, the integer representation of the virtual address | integer | | 17 - End Sponsoring Future Reserves | | | | No | | +| details.liquidity_pool_id | Unique identifier for a liquidity pool | string | | 6 - Change Trust 18 - Revoke Sponsorship 22 - Liquidity Pool Deposit 23 - Liquidity Pool Withdraw | | | | No | Liquidity pools are automated money markets between an asset pair. A given pool will only ever have two assets unless there is a protocol change | +| details.reserve_a_asset_type | The identifier for type of asset code, can be a alphanumeric with 4 characters, 12 characters or the native asset to the network, XLM. | string | credit_alphanum4 credit_alphanum12 native | 22 - Liquidity Pool Deposit 23 - Liquidity Pool Withdraw | | | | No | | +| details.reserve_a_asset_code | The 4 or 12 character code representation of the asset of one of the two asset pairs in a liquidity pool | string | | 22 - Liquidity Pool Deposit 23 - Liquidity Pool Withdraw | | | | No | | +| details.reserve_a_asset_issuer | The account address of the original asset issuer that created one of the two asset pairs in the liquidity pool | string | | 22 - Liquidity Pool Deposit 23 - Liquidity Pool Withdraw | | | | No | | +| details.reserve_a_max_amount | The maximum amount of reserve a that can be deposited into the pool. | float | | 22 - Liquidity Pool Deposit | | | | No | Deposit operations calculate via formula how much of both asset a and asset b should be deposited out of a source account and into a pool. The source account must deposit an equivalent value of both asset a and b. Since markets fluctuate, a maximum amount will specify the upper limit of an asset the account is willing to deposit | +| details.reserve_a_deposit_amount | The amount of reserve a that ended up actually deposited into the pool | float | | 22 - Liquidity Pool Deposit | | | | No | | +| details.reserve_b_asset_type | The identifier for type of asset code, can be a alphanumeric with 4 characters, 12 characters or the native asset to the network, XLM. | string | credit_alphanum4 credit_alphanum12 native | 22 - Liquidity Pool Deposit 23 - Liquidity Pool Withdraw | | | | No | | +| details.reserve_b_asset_code | The 4 or 12 character code representation of the asset of one of the two asset pairs in a liquidity pool | string | | 22 - Liquidity Pool Deposit 23 - Liquidity Pool Withdraw | | | | No | | +| details.reserve_b_asset_issuer | The account address of the original asset issuer that created one of the two asset pairs in the liquidity pool | string | | 22 - Liquidity Pool Deposit 23 - Liquidity Pool Withdraw | | | | No | | +| details.reserve_b_max_amount | The maximum amount of reserve b that can be deposited into the pool. | float | | 22 - Liquidity Pool Deposit | | | | No | Deposit operations calculate via formula how much of both asset a and asset b should be deposited out of a source account and into a pool. The source account must deposit an equivalent value of both asset a and b. Since markets fluctuate, a maximum amount will specify the upper limit of an asset the account is willing to deposit | +| details.reserve_b_deposit_amount | The amount of reserve b that ended up actually deposited into the pool. | float | | 22 - Liquidity Pool Deposit | | | | No | | +| details.min_price | The floating point value indicating the minimum exchange rate for this deposit operation. Reported as Reserve A / Reserve B | float | | 22 - Liquidity Pool Deposit | | | | No | Market rates fluctuate for pricing and the source account can specify a minimum price they expect to receive as a ratio of the two assets in the pool | +| details.min_price_r | A fractional representation of the prices of the two assets in a pool. The n is the numerator (value of asset a) and the d is the denominator (value of asset b) | array[record] | | 22 - Liquidity Pool Deposit | | | | No | | +| details.max_price | The floating point value indicating the maximum exchange rate for this deposit operation. Reported as Reserve A / Reserve B | float | | 22 - Liquidity Pool Deposit | | | | No | Market rates fluctuate for pricing and the source account can specify a maximum price they expect to receive as a ratio of the two assets in the pool | +| details.max_price_r | A fractional representation of the prices of the two assets in a pool. The n is the numerator (value of asset a) and the d is the denominator (value of asset b) | array[record] | | 22 - Liquidity Pool Deposit | | | | No | | +| details.shares_received | A floating point number representing the number of pool shares received for this deposit. A pool share is a compilation of both asset a and asset b reserves. It is not possible to own only asset a or asset b in a pool | float | | 22 - Liquidity Pool Deposit | | | | No | | +| details.reserve_a_min_amount | The minimum amount of reserve a that can be withdrawn from the pool. | float | | 23 - Liquidity Pool Withdraw | | | | No | | +| details.reserve_a_withdraw_amount | The amount of reserve a that ended up actually withdrawn from the pool. | float | | 23 - Liquidity Pool Withdraw | | | | No | | +| details.reserve_b_min_amount | The minimum amount of reserve b that can be withdrawn from the pool. | float | | 23 - Liquidity Pool Withdraw | | | | No | | +| details.reserve_b_withdraw_amount | The amount of reserve b that ended up actually withdrawn from the pool. | float | | 23 - Liquidity Pool Withdraw | | | | No | | +| details.shares | The number of shares withdrawn from the pool. It is not possible to withdraw only asset a or asset b, equal value must be withdrawn from the pool | float | | 23 - Liquidity Pool Withdraw | | | | No | | +| details.asset_balance_changes | The balance changes applied to an account or contract from an invoke host function. An asset must be a classic asset transferred through the [SAC](https://soroban.stellar.org/docs/tokens/stellar-asset-contract) to be included. | record | | 24 - Invoke Host Function | | | | No | | +| details.asset_balance_changes.amount | The amount of token minted, transferred or burned using the SAC contract. | integer | | 24 - Invoke Host Function | | | | No | | +| details.asset_balance_changes.asset_code | The 4 or 12 character code representation of the asset transferred using SAC contract | string | | 24 - Invoke Host Function | | | | No | | +| details.asset_balance_changes.asset_issuer | The wallet address of the account that issued the asset. This asset is a classic asset even though it is sent through SAC contract. | string | | 24 - Invoke Host Function | | | | No | | +| details.asset_balance_changes.asset_type | The identifier for type of asset code, can be a alphanumeric with 4 characters, 12 characters or the native asset to the network, XLM. | string | credit_alphanum4 credit_alphanum12 native | 24 - Invoke Host Function | | | | No | | +| details.asset_balance_changes.from | The originating wallet address or contract id from where the funds were sent | string | | 24 - Invoke Host Function | | | | No | | +| details.asset_balance_changes.to | The destination wallet address or contract id where the funds go | string | | 24 - Invoke Host Function | | | | No | | +| details.asset_balance_changes.type | The specific SAC operation type that indicates the type of value transfer occurring. | string | mint transfer burn | 24 - Invoke Host Function | | | | No | | +| details.parameters | The parameters passed to the function call for a Soroban contract. These are base64 encoded XDR. The record follows the format of \`type\` + \`value\` pair | record | | 24 - Invoke Host Function | | | | No | | +| details.parameters_decoded | The decoded human readable parameters passed to a function call for a Soroban contract. The record follows the format of \`type\` + \`value\` pair | record | | 24 - Invoke Host Function | | | | No | | +| details.function | The function type invoked by the host operation | string | HostFunctionTypeHostFunctionTypeInvokeContract HostFunctionTypeHostFunctionTypeCreateContract HostFunctionTypeHostFunctionTypeUploadContractWasm | 24 - Invoke Host Function | | | | No | | +| details.address | The wallet address used to create and deploy a Soroban contract instance. | string | | 24 - Invoke Host Function | | | | No | | +| details.type | The type of Soroban operation that is invoked within a host function | string | invoke_contract create_contract upload_wasm extend_footprint_ttl restore_footprint | 24 - Invoke Host Function 25 - Extend Footprint Ttl 26 - Restore Footprint | | | | No | | +| details.extend_to | The number of ledgers in which the Soroban ledger entry is extended | integer | | 25 - Extend Footprint Ttl | | | | No | | +| details.contract_id | The unique identifier of the deployed contract instance. Each custom Soroban contract and deployed SAC token will have a unique contract_id. | string | | 24 - Invoke Host Function 25 - Extend Footprint Ttl 26 - Restore Footprint | | | | No | | +| details.contract_code_hash | The hex-encoded SHA-256 hash that represents the contract code's XDR-encoded form | string | | 24 - Invoke Host Function 25 - Extend Footprint Ttl 26 - Restore Footprint | | | | No | | +| batch_id | String representation of the run id for a given DAG in Airflow. Takes the form of "scheduled__-". Batch ids are unique to the batch and help with monitoring and rerun capabilities | string | | | | | | Yes | | +| batch_run_date | The start date for the batch interval. When taken with the date in the batch_id, the date represents the interval of ledgers processed. The batch run date can be seen as a proxy of closed_at for a ledger. | datetime | | | | | MONTH partition | Yes | The table is partitioned on batch_run_date. It is recommended to always include the batch_run_date in the filter if possible to help reduce query cost. | +| batch_insert_ts | The timestamp in UTC when a batch of records was inserted into the database. This field can help identify if a batch executed in real time or as part of a backfill | timestamp | | | | | | Yes | | +| closed_at | Timestamp in UTC when this ledger closed and committed to the network. Ledgers are expected to close ~every 5 seconds | timestamp | | | | | | Yes | We are aiming to repartition this table on closed_at | +| operation_result_code | The result code returned when an operation is applied. This code is helpful for understanding failed operations. | string | OperationResultCodeOpInner OperationResultCodeOpBadAuth OperationResultCodeOpNoAccount OperationResultCodeOpNotSupported OperationResultCodeOpTooManySubentries OperationResultCodeOpExceededWorkLimit OperationResultCodeOpTooManySponsoring | | | | | Yes | Field will be backfilled at a future date | +| operation_trace_code | The trace code returned when an operation is applied to the Stellar Network. This code is helpful for understanding nuanced failures by operation type. This code provides the lowest level detail regarding why a transaction fails. | string | InvokeHostFunctionResultCodeInvokeHostFunction Success Malformed Trapped ResourceLimitExceeded EntryArchived InsufficientRefundableFee ExtendFootprintTtlResultCodeExtendFootprintTtl Success Malformed ResourceLimitExceeded InsufficientRefundableFee RestoreFootprintResultCodeRestoreFootprint Success Malformed ResourceLimitExceeded InsufficientRefundableFee | All operations, only Soroban Operation types are detailed (see notes for more) | | | | Yes | See the XDR [documentation](https://pkg.go.dev/github.com/stellar/go/xdr#OperationResultTr) for more details | \ No newline at end of file diff --git a/network/hubble/data-catalog/data-dictionary/history-trades.mdx b/network/hubble/data-catalog/data-dictionary/history-trades.mdx new file mode 100644 index 000000000..80bbef078 --- /dev/null +++ b/network/hubble/data-catalog/data-dictionary/history-trades.mdx @@ -0,0 +1,34 @@ +--- +title: History Trades +sidebar_position: 130 +--- + +| Name | Description | Data Type | Domain Values | Primary Key? | Natural Key? | Partition or Cluster Field? | Required? | Notes | +| ------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------- | ------------------------------------------------------------ | ------------ | ------------ | --------------------------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | +| history_operation_id | The operation id associated with the executed trade. The total amount traded in an operation can be broken up into multiple smaller trades spread across multiple orders by multiple parties | integer | | | Yes | | Yes | There is a many to one relationship for history_operation_id with the history_operations table. | +| order | The sequential number assigned the portion of a trade that is executed within a operation. The history_operation_id and order number together represent a unique trade segment | integer | | | Yes | | Yes | | +| ledger_closed_at | The timestamp in UTC when the ledger with this trade was closed | timestamp | | | Yes | MONTH partition | Yes | | +| selling_account_address | The account address of the selling party | string | | | | | No | | +| selling_asset_code | The 4 or 12 character code of the sold asset within a trade | string | | | | | No | Asset codes have no guarantees of uniqueness. The combination of asset code, issuer and type represents a distinct asset | +| selling_asset_issuer | The account address of the original asset issuer for the sold asset within a trade | string | | | | | No | | +| selling_asset_type | The identifier for type of asset code used for the sold asset within the trade | string | credit_alphanum4 credit_alphanum12 native | | | | Yes | XLM is the native asset to the network. XLM has no asset code or issuer representation and will instead be displayed with an asset type of 'native' | +| selling_amount | The amount of sold asset that was moved from the seller account to the buyer account, reported in terms of the sold amount | float | | | | | Yes | | +| buying_account_address | The account address of the buying party | string | | | | | No | | +| buying_asset_code | The 4 or 12 character code of the bought asset within a trade | string | | | | | No | Asset codes have no guarantees of uniqueness. The combination of asset code, issuer and type represents a distinct asset | +| buying_asset_issuer | The account address of the original asset issuer for the bought asset within a trade | string | | | | | No | | +| buying_asset_type | The identifier for type of asset code used for the bought asset within the trade | string | credit_alphanum4 credit_alphanum12 native | | | | Yes | XLM is the native asset to the network. XLM has no asset code or issuer representation and will instead be displayed with an asset type of 'native' | +| buying_amount | The amount of purchased asset that was moved from the seller account into the buying account, reported in terms of the bought asset | float | | | | | Yes | | +| price_n | The price ratio of the sold asset: bought asset. When taken with price_d, the price can be calculated by price_n/price_d | integer | | | | | No | | +| price_d | The price ratio of the sold asset: bought asset. When taken with price_n, the price can be calculated by price_n/price_d | integer | | | | | No | | +| selling_offer_id | The offer ID in the orderbook of the selling offer. If this offer was immediately and fully consumed, this will be a synthetic ID. | integer | | | | | No | | +| buying_offer_id | The offer ID in the orderbook of the buying offer. If this offer was immediately and fully consumed, this will be a synthetic ID. | integer | | | | | No | | +| batch_id | String representation of the run id for a given DAG in Airflow. Takes the form of "scheduled__-". Batch ids are unique to the batch and help with monitoring and rerun capabilities | string | | | | | No | | +| batch_run_date | The start date for the batch interval. When taken with the date in the batch_id, the date represents the interval of ledgers processed. The batch run date can be seen as a proxy of closed_at for a ledger. | datetime | | | | | No | The table is partitioned on batch_run_date. It is recommended to always include the batch_run_date in the filter if possible to help reduce query cost. | +| batch_insert_ts | The timestamp in UTC when a batch of records was inserted into the database. This field can help identify if a batch executed in real time or as part of a backfill | timestamp | | | | | No | | +| selling_liquidity_pool_id | The unique identifier for a liquidity pool if the trade was executed against a liquidity pool instead of the orderbook | string | | | | | No | | +| liquidity_pool_fee | The percentage fee (in basis points) of the total fee collected by the liquidity pool for executing the trade. The fee is pooled and distributed back to liquidity pool shareholders to incentivize users to stake money in the pool. | integer | 30 | | | | No | Liquidity pool fees can only change with protocol changes to the network itself | +| trade_type | Indicates whether the trade was executed against the orderbook (decentralized exchange) or liquidity pool | integer | 1 - Decentralized Exchange Trade 2 - Liquidity Pool Trade | | | cluster | No | | +| rounding_slippage | Applies to liquidity pool trades only. With fractional amounts of an asset traded, the network must round a fraction to the nearest whole number. This can cause the trade to "slip" price by a percentage compared with the original offer. Rounding slippage reports the percentage that dust trades slip before executing. | integer | | | | | No | Defaults to 1 Rounding Slippage is always unprofitable for the trader and is not a valid way to try and extract more value from the network. | +| seller_is_exact | Indicates whether the buying or selling party trade was impacted by rounding slippage. If true, the buyer was impacted. If false, the seller was impacted | boolean | | | | | No | | +| selling_asset_id | Unique identifier for selling_asset_code, selling_asset_issuer | integer | | | | cluster | No | | +| buying_asset_id | Unique identifier for buying_asset_code, buying_asset_issuer | integer | | | | cluster | No | | \ No newline at end of file diff --git a/network/hubble/data-catalog/data-dictionary/history-transactions.mdx b/network/hubble/data-catalog/data-dictionary/history-transactions.mdx new file mode 100644 index 000000000..0b950d990 --- /dev/null +++ b/network/hubble/data-catalog/data-dictionary/history-transactions.mdx @@ -0,0 +1,51 @@ +--- +title: History Transactions +sidebar_position: 140 +--- + +| Name | Description | Data Type | Domain Values | Primary Key? | Natural Key? | Partition or Cluster Field? | Required? | Notes | +| ----------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------ | ------------ | --------------------------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| id | A unique identifier for a this transaction | integer | | Yes | Yes | | Yes | | +| transaction_hash | A hex-encoded SHA-256 hash of this transaction's XDR-encoded form | string | | | | | Yes | | +| ledger_sequence | The sequence number of the ledger that this transaction was included in | integer | | | | cluster | Yes | | +| application_order | Each transaction within the transaction set for a ledger is executed and applied sequentially to the network. The validator nodes randomly shuffle submitted transactions and assign them an application order number, which corresponds to the order in which they are applied | integer | | | | | Yes | | +| account | The account address that originates the transaction | string | | | | cluster | Yes | | +| account_sequence | The source account's sequence number that this transaction consumed. Sequence numbers can only be used once and help maintain atomicity and idempotency on the network. | integer | | | | | Yes | | +| max_fee | The maximum fee (in stroops) that the source account is willing to pay for the transaction to be included in a ledger. When the network enters surge pricing, this helps determine if a transaction is included in the set | integer | | | | | Yes | The stroop is the fractional representation of a lumen (XLM). 1 stroop is 0.0000001 XLM. | +| operation_count | The number of operations contained within this transaction | integer | | | | | Yes | A transaction is permitted to have up to 100 operations | +| created_at | The date the transaction was created | timestamp | | | | | No | | +| memo_type | The type of memo | string | MemoTypeMemoHash MemoTypeMemoId MemoTypeMemoNone MemoTypeMemoReturn MemoTypeMemoText | | | | Yes | Defaults to \`MemoTypeMemoNone\` | +| memo | An optional freeform field that attaches a memo to a transaction | string | | | | | No | Memos are heavily used by centralized exchanges to help with account management. | +| time_bounds | A transaction precondition that can be set to determine when a transaction is valid. The user can set a lower and upper timebound, defined as a UNIX timestamp when the transaction can be executed. If the transaction attempts to execute outside of the time range, the transaction will fail | string | | | | | No | | +| successful | Indicates if this transaction was successful or not | boolean | | | | cluster | No | A transaction's success does not indicate whether it was included and written to a ledger. It only indicates whether the operations in the transaction were successfully applied to mutate the ledger state. | +| fee_charged | The fee (in stroops) paid by the source account to apply this transaction to the ledger. At minimum, a transaction is charged # of operations \* base fee. The minimum base fee is 100 stroops | integer | | | | | No | The stroop is the fractional representation of a lumen (XLM). 1 stroop is 0.0000001 XLM. | +| inner_transaction_hash | A transaction hash of a transaction wrapped with its signatures for fee-bump transactions | string | | | | | No | | +| fee_account | An account that is not the originating source account for a transaction is allowed to pay transaction fees on behalf of the source account. These accounts are called fee accounts and incur all transaction costs for the source account. | string | | | | | No | | +| new_max_fee | If an account has a fee account, the fee account can specify a maximum fee (in stroops) that it is willing to pay for this account's fees. When the network is in surge pricing, the validators will consider the new_max_fee instead of the max_fee when determining if the transaction will be included in the transaction set | integer | | | | | No | | +| account_muxed | If the user has defined multiplexed (muxed) accounts, the account exists "virtually" under a traditional Stellar account address. This address distinguishes between the virtual accounts | string | | | | | No | | +| fee_account_muxed | If the fee account that sponsors fee is a multiplexed account, the virtual address will be listed here | string | | | | | No | | +| ledger_bounds | A transaction precondition that can be set to determine valid conditions for a transaction to be submitted to the network. Ledger bounds allow the user to specify a minimum and maxiumum ledger sequence number in which the transaction can successfully execute | string | | | | | No | | +| min_account_sequence | A transaction precondition that can be set to determine valid conditions for a transaction to be submitted to the network. This condition contains an integer representation of the lowest source account sequence number for which the transaction is valid | integer | | | | | No | | +| min_account_sequence_age | A transaction precondition that can be set to determine valid conditions for a transaction to be submitted to the network. This condition contains a minimum duration of time that must have passed since the source account's sequence number changed for the transaction to be valid | integer | | | | | No | | +| min_account_sequence_ledger_gap | A transaction precondition that can be set to determine valid conditions for a transaction to be submitted to the network. This condition contains an integer representation of the minimum number of ledgers that must have closed since the source account's sequence number change for the transaction to be valid | integer | | | | | No | | +| extra_signers | An array of up to two additional signers that must have corresponding signatures for this transaction to be valid | array[string] | | | | | No | | +| tx_envelope | base-64 encoded XDR blob | string | | | | | No | | +| tx_result | base-64 encoded XDR blob | string | | | | | No | | +| tx_meta | base-64 encoded XDR blob | string | | | | | No | | +| tx_fee_meta | base-64 encoded XDR blob | string | | | | | No | | +| batch_id | String representation of the run id for a given DAG in Airflow. Takes the form of "scheduled__-". Batch ids are unique to the batch and help with monitoring and rerun capabilities | string | | | | | Yes | | +| batch_run_date | The start date for the batch interval. When taken with the date in the batch_id, the date represents the interval of ledgers processed. The batch run date can be seen as a proxy of closed_at for a ledger. | datetime | | | | MONTH partition | Yes | The table is partitioned on batch_run_date. It is recommended to always include the batch_run_date in the filter if possible to help reduce query cost. | +| batch_insert_ts | The timestamp in UTC when a batch of records was inserted into the database. This field can help identify if a batch executed in real time or as part of a backfill | timestamp | | | | | Yes | | +| resource_fee | The fee charged less the inclusion fee for the Soroban transaction. This is calculated by the read/write operations and how process intensive the Soroban transaction is | integer | | | | | No | | +| soroban resources_instructions | Number of CPU instructions the Soroban transaction uses | integer | | | | | No | | +| soroban resources_read_bytes | Number of bytes read by the Soroban transaction | integer | | | | | No | | +| soroban_resources_write_bytes | Number of bytes written by the Soroban transaction | integer | | | | | No | | +| closed_at | Timestamp in UTC when this ledger closed and committed to the network. Ledgers are expected to close ~every 5 seconds | timestamp | | | | | Yes | We aim to repartition the table by closed_at | +| transaction_result_code | The detailed result code that outlines why a transaction failed. This code is only useful for failed transactions. The full list of domain values can be found [here](https://pkg.go.dev/github.com/stellar/go/xdr#TransactionResultCode) | string | TransactionResultCodeTxFeeBumpInnerSuccess TransactionResultCodeTxSuccess TransactionResultCodeTxFailed TransactionResultCodeTxTooEarly TransactionResultCodeTxTooLate TransactionResultCodeTxMissingOperation TransactionResultCodeTxBadSeq TransactionResultCodeTxBadAuth TransactionResultCodeTxInsufficientBalance TransactionResultCodeTxNoAccount TransactionResultCodeTxInsufficientFee TransactionResultCodeTxBadAuthExtra TransactionResultCodeTxInternalError TransactionResultCodeTxNotSupported TransactionResultCodeTxFeeBumpInnerFailed TransactionResultCodeTxBadSponsorship TransactionResultCodeTxBadMinSeqAgeOrGap TransactionResultCodeTxMalformed TransactionResultCodeTxSorobanInvalid | | | | Yes | | +| inclusion_fee_bid | The maximum bid the submitter is willing to pay for inclusion of the transaction. This fee is used to prioritize transactions that are included in the ledger. | integer | | | | | No | | +| inclusion_fee_charged | The fee charged for the transaction to be included in the ledger. This is a fixed fee for the entire ledger and starts at a minimum of 100 stroops. The fee increases based on demand | integer | | | | | No | | +| resource_fee_refund | The amount of the resource fee refunded to the transaction submitter. The refundable fees are calculated from rent, events and return value. Refundable fees are charged from the source account before the transaction is executed and then refunded based on the actual usage. | integer | | | | | No | | +| non_refundable_resource_fee_charged | The amount charged for the transaction that is not refundable | integer | | | | | | | +| refundable_resource_fee_charged | The amount charged for the transaction from the refundable_fee | integer | | | | | | | +| rent_fee_charged | The rent fee charged to persist the contract or contract code | integer | | | | | | | +| refundable_fee | The amount of resource fees that are refundable based on the actual usage of resources in the transaction | integer | | | | | | | \ No newline at end of file diff --git a/network/hubble/data-catalog/data-dictionary/liquidity-pools.mdx b/network/hubble/data-catalog/data-dictionary/liquidity-pools.mdx new file mode 100644 index 000000000..df6039bd4 --- /dev/null +++ b/network/hubble/data-catalog/data-dictionary/liquidity-pools.mdx @@ -0,0 +1,28 @@ +--- +title: Liquidity Pools +sidebar_position: 50 +--- + +| Name | Description | Data Type | Domain Values | Primary Key? | Natural Key? | Partition or Cluster Field? | Required? | Notes | +| -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | --------- | ------------------------------------------------------------------------------------------------------------------------------- | ------------ | ------------ | --------------------------- | --------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| liquidity_pool_id | Unique identifier for a liquidity pool. There cannot be duplicate pools for the same asset pair. Once a pool has been created for the asset pair, another cannot be created. | string | | | Yes | cluster | Yes | There is a good primer on AMMs [here](https://developers.stellar.org/docs/glossary/liquidity-pool/) | +| type | The mechanism that calculates pricing and division of shares for the pool. With the initial AMM rollout, the only type of liquidity pool allowed to be created is a constant product pool | string | constant_product | | | | Yes | For more information regarding pricing and deposit calculations, read [Cap-38.](https://github.com/stellar/stellar-protocol/blob/master/core/cap-0038.md) | +| fee | The number of basis points charged as a percentage of the trade in order to complete the transaction. The fees earned on all trades are divided amongst pool shareholders and distributed as an incentive to keep money in the pools | integer | 30 | | | | Yes | Fees are distributed immediately to accounts as the transaction completes. There is no schedule for fee distribution | +| trustline_count | Total number of accounts with trustlines authorized to the pool. To create a trustline, an account must trust both base assets before trusting a pool with the asset pair | integer | | | | | Yes | If the issuer of A or B revokes authorization on the trustline, the account will automatically withdraw from every liquidity pool containing that asset and those pool trustlines will be deleted. | +| pool_share_count | Participation in a liquidity pool is represented by a pool share. The total number of pool shares is calculated by a constat product formula and is an arbitrary number representing the amount of participation in the pool. | float | | | | | Yes | Shares are not transferable; the only way to increase the number of pool shares held is to deposit into a liquidity pool. Conversely, decreasing pools shares can only be accomplished through a withdraw operation. Shares cannot be sent in payments or sold using offers. | +| asset_a_type | The identifier for type of asset code, can be a alphanumeric with 4 characters, 12 characters or the native asset to the network, XLM. | string | credit_alphanum4 credit_alphanum12 native | | | | Yes | | +| asset_a_code | The 4 or 12 character code representation of the asset of one of the two asset pairs in a liquidity pool | string | | | | | No | | +| asset_a_issuer | The account address of the original asset issuer that created one of the two asset pairs in the liquidity pool | string | | | | | No | | +| asset_a_amount | The raw number of tokens locked in the pool for one of the two asset pairs in the liquidity pool | float | | | | | Yes | The amount is a better representation of liquidity in the pool over pool share counts. | +| asset_b_type | The identifier for type of asset code, can be a alphanumeric with 4 characters, 12 characters or the native asset to the network, XLM. | string | credit_alphanum4 credit_alphanum12 native | | | | Yes | | +| asset_b_code | The 4 or 12 character code representation of the asset of one of the two asset pairs in a liquidity pool | string | | | | | No | | +| asset_b_issuer | The account address of the original asset issuer that created one of the two asset pairs in the liquidity pool | string | | | | | No | | +| asset_b_amount | The raw number of tokens locked in the pool for one of the two asset pairs in the liquidity pool | float | | | | | Yes | The amount is a better representation of liquidity in the pool over pool share counts. | +| last_modified_ledger | The ledger sequence number when the ledger entry (this unique signer for the account) was modified. Deletions do not count as a modification and will report the prior modification sequence number | integer | | | Yes | cluster | Yes | | +| ledger_entry_change | Code that describes the ledger entry change type that was applied to the ledger entry. | integer | 0 - Ledger Entry Created 1 - Ledger Entry Updated 2 - Ledger Entry Deleted 3 - Ledger Entry State (value of the entry) | | Yes | | Yes | Valid entry change types are 0, 1, and 2 for ledger entries of type \`liquidity_pools\`. | +| deleted | Indicates whether the ledger entry (liquidity pool) has been deleted or not. Once an entry is deleted, it cannot be recovered. Liquidity pools are deleted once all pool shares are withdrawn from the pool | boolean | | | | | Yes | | +| batch_id | String representation of the run id for a given DAG in Airflow. Takes the form of "scheduled__-". Batch ids are unique to the batch and help with monitoring and rerun capabilities | string | | | | | Yes | | +| batch_run_date | The start date for the batch interval. When taken with the date in the batch_id, the date represents the interval of ledgers processed. The batch run date can be seen as a proxy of closed_at for a ledger. | datetime | | | | MONTH partition | Yes | The table is partitioned on batch_run_date. It is recommended to always include the batch_run_date in the filter if possible to help reduce query cost. | +| batch_insert_ts | The timestamp in UTC when a batch of records was inserted into the database. This field can help identify if a batch executed in real time or as part of a backfill | timestamp | | | | | Yes | | +| asset_a_id | Unique identifier for asset_a_code, asset_a_issuer | integer | | | | cluster | No | | +| asset_b_id | Unique identifier for asset_b_code, asset_b_issuer | integer | | | | cluster | No | \ No newline at end of file diff --git a/network/hubble/data-catalog/data-dictionary/offers.mdx b/network/hubble/data-catalog/data-dictionary/offers.mdx new file mode 100644 index 000000000..eccdd4060 --- /dev/null +++ b/network/hubble/data-catalog/data-dictionary/offers.mdx @@ -0,0 +1,29 @@ +--- +title: Offers +sidebar_position: 60 +--- + +| Name | Description | Data Type | Domain Values | Primary Key? | Natural Key? | Partition or Cluster Field? | Required? | Notes | +| -------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------- | ------------------------------------------------------------------------------------------------------------------------------- | ------------ | ------------ | --------------------------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | +| seller_id | The account address that is making this offer | string | | | | | Yes | | +| offer_id | The unique identifier for this offer | integer | | | | | Yes | | +| selling_asset_type | The identifier for type of asset code, can be a alphanumeric with 4 characters, 12 characters or the native asset to the network, XLM. | string | credit_alphanum4 credit_alphanum12 native | | | | Yes | | +| selling_asset_code | The 4 or 12 character code representation of the asset offered to be sold | string | | | | | No | | +| selling_asset_issuer | The account address of the original asset issuer that minted the asset which will be sold in exchange for another asset. | string | | | | | No | | +| buying_asset_type | The identifier for type of asset code, can be a alphanumeric with 4 characters, 12 characters or the native asset to the network, XLM. | string | credit_alphanum4 credit_alphanum12 native | | | | Yes | | +| buying_asset_code | The 4 or 12 character code representation of the asset desired to be purchased | string | | | | | No | | +| buying_asset_issuer | The account address of the original asset issuer that minted the asset which will be bought in exchange for a currently held asset | string | | | | | No | | +| amount | The amount of selling that the account making this offer is willing to sell | float | | | | | Yes | | +| pricen | The numerator of the precise representation of the buy and sell price of assets on offer (The buy amount desired) | integer | | | | | Yes | If an offer wants to sell 10 XLM in exchange for 1 USD, the numerator will be 1. | +| priced | The denominator of the precise representation of the buy and sell price of assets on offer (The sell amount offered) | integer | | | | | Yes | If an offer wants to sell 10 XLM in exchange for 1 USD, the denominator will be 10. | +| price | How many units of buying it takes to get 1 unit of selling. This number is the decimal form of pricen / priced | float | | | | | Yes | If an offer wants to sell 10 XLM in exchange for 1 USD, the price will be 0.1 | +| flags | Denotes the enabling/disabling of certain asset issuer privileges | integer | 0 - None, Default 1 - Passive (offer with this flag will not act on and take a reverse offer of equal price) | | | | Yes | | +| last_modified_ledger | The ledger sequence number when the ledger entry (this unique signer for the account) was modified. Deletions do not count as a modification and will report the prior modification sequence number | integer | | | Yes | cluster | Yes | | +| ledger_entry_change | Code that describes the ledger entry change type that was applied to the ledger entry. | integer | 0 - Ledger Entry Created 1 - Ledger Entry Updated 2 - Ledger Entry Deleted 3 - Ledger Entry State (value of the entry) | | Yes | | Yes | Valid entry change types are 0, 1, and 2 for ledger entries of type \`offers\`. | +| deleted | Indicates whether the ledger entry (offer id) has been deleted or not. Once an entry is deleted, it cannot be recovered. | boolean | | | | | Yes | | +| sponsor | The account address that is sponsoring the base reserves for the offer. | string | | | | | No | | +| batch_id | String representation of the run id for a given DAG in Airflow. Takes the form of "scheduled__-". Batch ids are unique to the batch and help with monitoring and rerun capabilities | string | | | | | Yes | | +| batch_run_date | The start date for the batch interval. When taken with the date in the batch_id, the date represents the interval of ledgers processed. The batch run date can be seen as a proxy of closed_at for a ledger. | datetime | | | | MONTH partition | Yes | The table is partitioned on batch_run_date. It is recommended to always include the batch_run_date in the filter if possible to help reduce query cost. | +| batch_insert_ts | The timestamp in UTC when a batch of records was inserted into the database. This field can help identify if a batch executed in real time or as part of a backfill | timestamp | | | | | Yes | | +| selling_asset_id | Unique identifier for selling_asset_code, selling_asset_issuer | integer | | | | cluster | No | | +| buying_asset_id | Unique identifier for buying_asset_code, buying_asset_issuer | integer | | | | cluster | No | | \ No newline at end of file diff --git a/network/hubble/data-catalog/data-dictionary/trustlines.mdx b/network/hubble/data-catalog/data-dictionary/trustlines.mdx new file mode 100644 index 000000000..dfacdd2e7 --- /dev/null +++ b/network/hubble/data-catalog/data-dictionary/trustlines.mdx @@ -0,0 +1,26 @@ +--- +title: Trustlines +sidebar_position: 70 +--- + +| Name | Description | Data Type | Domain Values | Primary Key? | Natural Key? | Partition or Cluster Field? | Required? | Notes | +| -------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------ | ------------ | --------------------------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | +| ledger_key | The unique ledger key when the trust line state last changed | string | | | | | Yes | | +| account_id | The account address | string | | | Yes | cluster | Yes | | +| asset_type | The identifier for type of asset code, can be a alphanumeric with 4 characters, 12 characters or the native asset to the network, XLM. | integer | credit_alphanum4 credit_alphanum12 native | | Yes | | Yes | | +| asset_issuer | The account address of the original asset issuer that created the asset held by this account | string | | | Yes | | No | | +| asset_code | The 4 or 12 character code representation of the asset held by this account | string | | | Yes | | No | | +| liquidity_pool_id | If the asset held is part of a liquidity pool share, the unique pool id from which the asset balance originates | string | | | Yes | cluster | No | | +| balance | The number of units of an asset held by this account | float | | | | | Yes | | +| trust_line_limits | The maximum amount of this asset that this account is willing to accept. The limit is specified when opening a trust line | integer | | | | | Yes | | +| buying_liabilities | The sum of all buy offers owned by this account for non-native assets | float | | | | | Yes | | +| selling_liabilities | The sum of all sell offers owned by this account for non-native assets | float | | | | | Yes | | +| flags | Denotes the enabling and disabling of certain asset issuer privileges | integer | 0 - None, Default 1 - Authorized (issuer has authorized account to perform transaction with its credit) 2 - Authorized to Maintain Liabilities (issuer has authorized account to maintain and reduce liabilities for its credit) 4 - Clawback Enabled (issuer has specified that it may clawback its credit, including claimable balances) | | | | Yes | Flags are set on the issuer accounts for an asset. When user accounts trust an asset, the flags applied to the asset originate from this account | +| last_modified_ledger | The ledger sequence number when the ledger entry (this unique signer for the account) was modified. Deletions do not count as a modification and will report the prior modification sequence number | integer | | | Yes | cluster | Yes | | +| ledger_entry_change | Code that describes the ledger entry change type that was applied to the ledger entry. | integer | 0 - Ledger Entry Created 1 - Ledger Entry Updated 2 - Ledger Entry Deleted 3 - Ledger Entry State (value of the entry) | | Yes | | Yes | Valid entry change types are 0, 1, and 2 for ledger entries of type \`trust_lines\`. | +| deleted | Indicates whether the ledger entry (trust line) has been deleted or not. Once an entry is deleted, it cannot be recovered. | boolean | | | | | Yes | | +| batch_id | String representation of the run id for a given DAG in Airflow. Takes the form of "scheduled__-". Batch ids are unique to the batch and help with monitoring and rerun capabilities | string | | | | | Yes | | +| batch_run_date | The start date for the batch interval. When taken with the date in the batch_id, the date represents the interval of ledgers processed. The batch run date can be seen as a proxy of closed_at for a ledger. | datetime | | | | MONTH partition | Yes | The table is partitioned on batch_run_date. It is recommended to always include the batch_run_date in the filter if possible to help reduce query cost. | +| batch_insert_ts | The timestamp in UTC when a batch of records was inserted into the database. This field can help identify if a batch executed in real time or as part of a backfill | timestamp | | | | | Yes | | +| sponsor | The account address that is sponsoring the base reserves for the trust line. | string | | | | | No | | +| asset_id | Unique identifier for asset_code, asset_issuer | integer | | | | | No | | \ No newline at end of file diff --git a/network/hubble/data-catalog/data-dictionary/ttl.mdx b/network/hubble/data-catalog/data-dictionary/ttl.mdx new file mode 100644 index 000000000..85ddd5677 --- /dev/null +++ b/network/hubble/data-catalog/data-dictionary/ttl.mdx @@ -0,0 +1,17 @@ +--- +title: TTL +sidebar_position: 80 +--- + +| Name | Description | Data Type | Domain Values | Primary Key? | Natural Key? | Partition or Cluster Field? | Required? | Notes | +| --------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------- | ------------- | ------------ | ------------ | --------------------------- | --------- | ----- | +| key_hash | Ledger key hash used to identify expiring contract data or contract code ledger entries | string | | | Yes | Cluster | Yes | | +| live_until_ledger_seq | Ledger sequence the contract or wasm will live until | integer | | | | | Yes | | +| last_modified_ledger | The ledger sequence number when the ledger entry (this unique signer for the account) was modified. Deletions do not count as a modification and will report the prior modification sequence number | integer | | | Yes | Cluster | Yes | | +| ledger_entry_change | Code that describes the ledger entry change type that was applied to the ledger entry. | integer | | | | | Yes | | +| deleted | Indicates whether the ledger entry (balance id) has been deleted or not. Once an entry is deleted, it cannot be recovered. | boolean | | | | | Yes | | +| batch_id | String representation of the run id for a given DAG in Airflow. Takes the form of "scheduled__-". Batch ids are unique to the batch and help with monitoring and rerun capabilities | string | | | | | Yes | | +| batch_run_date | The start date for the batch interval. When taken with the date in the batch_id, the date represents the interval of ledgers processed. The batch run date can be seen as a proxy of closed_at for a ledger. | datetime | | | | | Yes | | +| batch_insert_ts | The timestamp in UTC when a batch of records was inserted into the database. This field can help identify if a batch executed in real time or as part of a backfill | timestamp | | | | | Yes | | +| closed_at | The UNIX timestamp of the sequence number's age | timestamp | | | Yes | Parition | Yes | | +| ledger_sequence | The unsigned 32-bit ledger number of the sequence number's age | integer | | | Yes | | Yes | | \ No newline at end of file diff --git a/network/hubble/data-catalog/data-lineage.mdx b/network/hubble/data-catalog/data-lineage.mdx new file mode 100644 index 000000000..dd36ab1b0 --- /dev/null +++ b/network/hubble/data-catalog/data-lineage.mdx @@ -0,0 +1,8 @@ +--- +id: data-lineage +title: Data Lineage +--- + +import RedirectPage from '@site/src/components/RedirectPage'; + + \ No newline at end of file diff --git a/network/hubble/data-catalog/data-model-diagram.mdx b/network/hubble/data-catalog/data-model-diagram.mdx new file mode 100644 index 000000000..7b25a93c7 --- /dev/null +++ b/network/hubble/data-catalog/data-model-diagram.mdx @@ -0,0 +1,10 @@ +--- +title: Data Model Diagram +sidebar_position: 0 +--- + +The following diagram shows the relationships between the history and state tables within Hubble. + +![Hubble Data Model Diagram](/img/hubble/data_model_diagram.png) + +For more detailed information see the [Full Hubble Data Model Diagram](https://dbdiagram.io/d/Hubble-Public-Data-Model-66671e056bc9d447b1501801) or the [Compressed Hubble Data Model Diagram](https://dbdiagram.io/d/Hubble-Public-Data-Model-Compressed-666730996bc9d447b151a181). \ No newline at end of file diff --git a/network/requirements.mdx b/network/requirements.mdx new file mode 100644 index 000000000..c32142c93 --- /dev/null +++ b/network/requirements.mdx @@ -0,0 +1,23 @@ +--- +title: Node Hardware Requirements +--- + +Here you can find the requirements for running the various types of nodes the operate the Stellar network. We offer some modest recommendations for each type of resource, as well as a generally applicable SKU for some popular cloud computing providers. These may require customizations or adjustments, depending on your specific use-case. + +| Node Type | CPU | RAM | Disk | AWS SKU | Google Cloud SKU | +| --- | --- | --- | --- | --- | --- | +| Core Validator Node | 8x Intel Xeon @ 3.4 GHz | 16 GB | 100 GB NVMe SSD | [c5d.2xlarge] | [n4-highcpu-8] | +| Horizon API Service | 4 vCPU | 16 GB | 100 GB SSD >= 1.5K IOPS | [c5d.xlarge] |[n4-standard-4] | +| Horizon PostgreSQL | 4 vCPU | 32 GB | 2 TB\* SSD (NVMe or Direct Attached Storage) >= 7K IOPS | [i4g.xlarge] | [c3-highmem-8] | +| Soroban RPC | 2 vCPU | 4 GB | 30 GB persistent volume >= 3K IOPS | [c5.large] | [n4-highcpu-2] | + +_\* Assuming a 30-day retention window for data storage._ + +[c5.large]: https://aws.amazon.com/ec2/instance-types/c5/ +[c5d.2xlarge]: https://aws.amazon.com/ec2/instance-types/c5/ +[c5d.xlarge]: https://aws.amazon.com/ec2/instance-types/c5/ +[n4-highcpu-2]: https://cloud.google.com/compute/docs/general-purpose-machines#n4-highcpu +[n4-highcpu-8]: https://cloud.google.com/compute/docs/general-purpose-machines#n4-highcpu +[n4-standard-4]: https://cloud.google.com/compute/docs/general-purpose-machines#n4-standard +[i4g.xlarge]: https://aws.amazon.com/ec2/instance-types/i4g/ +[c3-highmem-8]: https://cloud.google.com/compute/docs/general-purpose-machines#c3_machine_types diff --git a/network/soroban-rpc/admin-guide.mdx b/network/soroban-rpc/admin-guide.mdx index e7b3bb4d0..3b9c876a5 100644 --- a/network/soroban-rpc/admin-guide.mdx +++ b/network/soroban-rpc/admin-guide.mdx @@ -33,7 +33,7 @@ The Quickstart image with the RPC service can run on a standard laptop with 8GB :::info -It's also possible to run a contract in the local sandbox environment without a network using just the Soroban CLI. See [Run on Sandbox] for more details. +It's also possible to run a contract in the local sandbox environment without a network using just the Stellar CLI. See [Run on Sandbox] for more details. ::: @@ -56,10 +56,10 @@ Once the image is started, you can check its status by querying the Horizon API: curl "http://localhost:8000" ``` -You can interact with this local node using the Soroban CLI. First, add it as a configured network: +You can interact with this local node using the Stellar CLI. First, add it as a configured network: ```bash -soroban config network add standalone \ +soroban network add standalone \ --rpc-url "http://localhost:8000/soroban/rpc" \ --network-passphrase "Standalone Network ; February 2017" ``` @@ -88,7 +88,7 @@ This uses [command expansion](https://www.gnu.org/software/bash/manual/html_node ::: -Now that you have a configured network and a funded identity, you can use these within other Soroban CLI commands. For example, deploying a contract: +Now that you have a configured network and a funded identity, you can use these within other Stellar CLI commands. For example, deploying a contract: ```bash soroban contract deploy \ @@ -127,10 +127,10 @@ docker run --rm -it \ --enable-soroban-rpc ``` -And you'll want to configure it for use with the `--network` flag in Soroban CLI: +And you'll want to configure it for use with the `--network` flag in Stellar CLI: ```bash -soroban config network add testnet \ +soroban network add testnet \ --rpc-url "http://localhost:8000/soroban/rpc" \ --network-passphrase "Test SDF Network ; September 2015" ``` @@ -158,10 +158,10 @@ docker run --rm -it \ --enable-soroban-rpc ``` -And you'll want to configure it for use with the `--network` flag in Soroban CLI: +And you'll want to configure it for use with the `--network` flag in Stellar CLI: ```bash -soroban config network add futurenet \ +soroban network add futurenet \ --rpc-url "http://localhost:8000/soroban/rpc" \ --network-passphrase "Test SDF Future Network ; October 2022" ``` @@ -523,10 +523,10 @@ For all deployments, we recommend at least 10GB of disk/storage space. ## Use the RPC Instance -You can configure Soroban CLI to use a remote RPC endpoint: +You can configure Stellar CLI to use a remote RPC endpoint: ```bash -soroban config network add --global testnet \ +soroban network add --global testnet \ --rpc-url https://soroban-testnet.stellar.org:443 \ --network-passphrase 'Test SDF Network ; September 2015' ``` diff --git a/network/soroban-rpc/api-reference/methods/getFeeStats.mdx b/network/soroban-rpc/api-reference/methods/getFeeStats.mdx new file mode 100644 index 000000000..959af6630 --- /dev/null +++ b/network/soroban-rpc/api-reference/methods/getFeeStats.mdx @@ -0,0 +1,8 @@ +--- +hide_title: true +description: Returns statistics about charged inclusion fees for Soroban transactions and Stellar transactions +--- + +import { RpcMethod } from "@site/src/components/RpcMethod"; + + diff --git a/network/soroban-rpc/api-reference/methods/getTransactions.mdx b/network/soroban-rpc/api-reference/methods/getTransactions.mdx new file mode 100644 index 000000000..23fd33fc9 --- /dev/null +++ b/network/soroban-rpc/api-reference/methods/getTransactions.mdx @@ -0,0 +1,8 @@ +--- +hide_title: true +description: Returns list of transactions +--- + +import { RpcMethod } from "@site/src/components/RpcMethod"; + + diff --git a/network/soroban-rpc/api-reference/methods/getVersionInfo.mdx b/network/soroban-rpc/api-reference/methods/getVersionInfo.mdx new file mode 100644 index 000000000..23f886d68 --- /dev/null +++ b/network/soroban-rpc/api-reference/methods/getVersionInfo.mdx @@ -0,0 +1,8 @@ +--- +hide_title: true +description: Returns version information +--- + +import { RpcMethod } from "@site/src/components/RpcMethod"; + + diff --git a/network/stellar-disbursement-platform/README.mdx b/network/stellar-disbursement-platform/README.mdx index e1961fe37..56f520bc6 100644 --- a/network/stellar-disbursement-platform/README.mdx +++ b/network/stellar-disbursement-platform/README.mdx @@ -1,10 +1,11 @@ --- -title: Stellar Disbursement Platform +title: Introduction sidebar_position: 10 -sidebar_label: Introduction slug: /stellar-disbursement-platform --- -The Stellar Disbursement Platform (SDP) is a tool built for organizations to make bulk payments to a group of recipients over the Stellar network. +# Stellar Disbursement Platform + +The Stellar Disbursement Platform (SDP) is a tool built for organizations to make bulk payments to a group of recipients over the Stellar network. In this section, you'll find an [Admin Guide](./admin-guide/README.mdx) that will teach you how to run the Stellar Disbursement Platform as well as an [API Reference](./api-reference/resources/README.mdx). diff --git a/network/stellar-disbursement-platform/admin-guide/configuring-sdp.mdx b/network/stellar-disbursement-platform/admin-guide/configuring-sdp.mdx new file mode 100644 index 000000000..17e180ec3 --- /dev/null +++ b/network/stellar-disbursement-platform/admin-guide/configuring-sdp.mdx @@ -0,0 +1,187 @@ +--- +id: configuring-sdp +title: Configuring the SDP +description: Understand the configuration options available for the Stellar Disbursement Platform (SDP) +keywords: [SDP, configuration] +sidebar_position: 45 +--- + +Stellar Disbursement Platform services can be configured using a set of configuration options that are passed to the command line or set as environment variables. +Depending on how you're using and deploying the SDP, these configurations can be set in a ConfigMap in Kubernetes, as environment variables in a Docker container, passed in as command line arguments, etc. + +In this section we will discuss the different configuration options available for the SDP. + +**Notes:** +* Configurations that are tagged with 🔑 are sensitive and should be stored securely. +* These configurations are valid for version 2.x of the SDP. +* All configurations can be passed in as either environment variables or CLI flags. For instance, the env var `BASE_URL` could be passed in through the `--base-url` flag. CLI flags take priority over env vars, even though env vars are more convenient. + +## SDP Core Service + +For the most up-to-date configuration, you can run the following command in the [stellar-disbursement-platform-backend git repository](https://github.com/stellar/stellar-disbursement-platform-backend): + + + +```bash +./stellar-disbursement-platform serve --help +``` + + + +### Operational Configuration +Operational Configuration allows controlling metrics, logging, and other operational aspects of the SDP Core Service. +* `PORT` - The port on which the SDP Core Service will listen for incoming HTTP requests. Default: 8000. +* `LOG_LEVEL` - Determines the verbosity level of logs. Options: "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "FATAL", or "PANIC". Default: "TRACE". +* `METRICS_PORT` - The port on which the SDP Core Service will expose its metrics. Default: 8002. +* `METRICS_TYPE` - The type of metrics to expose. Options: "PROMETHEUS". Default: "PROMETHEUS". +* `CRASH_TRACKER_TYPE` - The crash tracker type to use. Options: "SENTRY", "DRY_RUN". Default: "DRY_RUN". +* `SENTRY_DSN` - 🔑 The DSN (client key) of the Sentry project. If not provided, Sentry will not be used. +* `ENVIRONMENT` - The environment where the application is running. Example: "development", "staging", "production". Default: "development". +* `DATABASE_URL` - 🔑 The connection string for the PostgreSQL database. Format is `postgres://username:password@host:port/database?sslmode=disable`. Default: "postgres://localhost:5432/sdp?sslmode=disable". +> behaviour of `base_url` and `sdp_ui_base_url` will change after https://stellarorg.atlassian.net/browse/SDP-1148 is done. +* `BASE_URL` - The SDP backend server's base URL. Default: "http://localhost:8000". +* `SDP_UI_BASE_URL` - The SDP UI/dashboard Base URL used to send the invitation link when a new user is created. + +### Messaging Configuration +Messaging Configuration allows configuring the messaging service used to send messages to recipients and sdp dashboard users. The default configuration is set to "DRY_RUN" which means no messages will be sent and the messages will be logged to the console. This is recommended for testing purposes only. +* `EMAIL_SENDER_TYPE`: The messenger type used to send invitations to new dashboard users. Options: "DRY_RUN", "AWS_EMAIL". Default: "DRY_RUN". +* `SMS_SENDER_TYPE`: The messenger type used to send SMS messages to recipients. Options: "DRY_RUN", "TWILIO_SMS", "AWS_SMS". Default: "DRY_RUN". + +#### AWS Configuration +The following configurations are required when using AWS SES or SNS to send emails or SMS messages. +* `AWS_ACCESS_KEY_ID` - 🔑 The AWS access key ID. +* `AWS_REGION` - The AWS region where the SES service is available. +* `AWS_SECRET_ACCESS_KEY` - 🔑 The AWS secret access key. +* `AWS_SES_SENDER_ID` - The email that AWS SES will use as the sender when sending emails. Required when `EMAIL_SENDER_TYPE` is set to "AWS_EMAIL". +* `AWS_SNS_SENDER_ID` - The sender ID to use when sending SMS messages using AWS SNS. Required when `SMS_SENDER_TYPE` is set to "AWS_SMS". + +#### Twilio Configuration +The following configurations are required when `SMS_SENDER_TYPE` is set to "TWILIO_SMS". +* `TWILIO_ACCOUNT_SID` - 🔑 The Twilio account SID. +* `TWILIO_AUTH_TOKEN` - 🔑 The Twilio auth token. +* `TWILIO_SERVICE_SID` - The Twilio service SID. + +General Messaging Configuration: +* `MAX_INVITATION_SMS_RESEND_ATTEMPTS` - The maximum number of attempts to resend the SMS invitation to the Receiver Wallets. Default: 3. + +### Stellar Configuration +Stellar Configuration allows configuring accounts, transactions, and other Stellar-related settings. + +* `NETWORK_PASSPHRASE` - The Stellar network passphrase. Default "Test SDF Network ; September 2015". +* `HORIZON_URL` - The URL of the Horizon server to use for submitting transactions. Default "https://horizon-testnet.stellar.org/". +* `SEP10_SIGNING_PUBLIC_KEY` - The public key of the Stellar account that signs the SEP-10 transactions. It's also used to sign URLs. +* `SEP10_SIGNING_PRIVATE_KEY` - 🔑 The private key of the Stellar account that signs the SEP-10 transactions. It's also used to sign URLs. +* `MAX_BASE_FEE` - The max base fee for submitting a Stellar transaction. Default: 10000. + +The remaining configurations related to distribution accounts are detailed in the `Stellar accounts configuration` section of [1.x to 2.x Migration Guide](single-tenant-to-multi-tenant-migration#environment-variables). + +### Security Configuration +Security Configuration allows configuring the security aspects of the SDP Core Service. + +* `CORS_ALLOWED_ORIGINS` - Specifies the domains allowed to make cross-origin requests. "*" means all domains are allowed. Domains can contain wildcards, e.g., "https://*.example.com". +* `SEP24_JWT_SECRET` - 🔑 The secret used to sign the JWT token for SEP-24 transactions. This secret is used during the receiver wallet registration flow. + +#### Dashboard Authentication Configuration +The following configurations are related to dashboard user authentication and authorization. +* `RESET_TOKEN_EXPIRATION_HOURS` - The expiration time in hours of the Reset Password Token. Default: 24 (hours). +* `EC256_PUBLIC_KEY` - The EC256 Public Key used to validate the token signature. This EC key needs to be at least as strong as prime256v1 (P-256). +* `EC256_PRIVATE_KEY` - 🔑 The EC256 Private Key used to sign the authentication token. This EC key needs to be at least as strong as prime256v1 (P-256). +* `DISABLE_MFA` - Disables Multi-Factor Authentication (MFA) for the SDP dashboard users. +* `DISABLE_RECAPTCHA` - Disables Google reCAPTCHA v2 for the SDP dashboard users. This flag doesn't affect the reCAPTCHA used during the SEP-24 flow. + +#### Recaptcha Configuration +The following configurations are required when using Google reCAPTCHA v2 to protect the SDP Core Service from bots. ReCaptcha is used both for dashboard users and receivers of funds during the SEP-24 flow. + +* `RECAPTCHA_SITE_KEY` - The Google reCAPTCHA v2 - I'm not a robot site key. +* `RECAPTCHA_SITE_SECRET_KEY` - 🔑 The reCAPTCHA site secret key used to validate reCAPTCHA responses. + +### Anchor Platform Configuration +Anchor Platform Configuration allows configuring the anchor platform used by the SDP Core Service. + +* `ANCHOR_PLATFORM_BASE_PLATFORM_URL` - The base URL of the anchor platform. +* `ANCHOR_PLATFORM_BASE_SEP_URL` - The base URL of the anchor platform's SEP-24 implementation. +* `ANCHOR_PLATFORM_OUTGOING_JWT_SECRET` - 🔑 The JWT secret used to create a JWT token used to send requests to the anchor platform. + +### Event Broker and Scheduled Jobs Configuration +For asynchronous processing, the SDP Core Service gives user the choice to use either the Event Broker or Scheduled Jobs. + +The configurations for this section are detailed in the `Event Broker and Scheduler Configurations` of the [1.x to 2.x Migration Guide](single-tenant-to-multi-tenant-migration#environment-variables). + +### Multi-tenancy Configuration + +The configurations for this section are detailed in `General Environment Variables` of the [1.x to 2.x Migration Guide](single-tenant-to-multi-tenant-migration#environment-variables). + + +## Transaction Submission Service (TSS) + +For the most up-to-date configuration, you can run the following command in the [stellar-disbursement-platform-backend git repository](https://github.com/stellar/stellar-disbursement-platform-backend): + + + +```bash +./stellar-disbursement-platform tss --help +``` + + + +### General Configuration +* `QUEUE_POLLING_INTERVAL` - Polling interval (seconds) to query the database for pending transactions to process. Default: 6. + +### Operational Configuration +Operational Configuration allows controlling metrics, logging, and other operational aspects of the Transaction Submission Servic (TSS) +* `LOG_LEVEL` - Determines the verbosity level of logs. Options: "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "FATAL", or "PANIC". Default: "TRACE". +* `TSS_METRICS_PORT` - The port on which the TSS will expose its metrics. Default: 9002. +* `TSS_METRICS_TYPE` - The type of metrics to expose. Options: "PROMETHEUS". Default: "PROMETHEUS". +* `CRASH_TRACKER_TYPE` - The crash tracker type to use. Options: "SENTRY", "DRY_RUN". Default: "DRY_RUN". +* `SENTRY_DSN` - 🔑 The DSN (client key) of the Sentry project. If not provided, Sentry will not be used. +* `ENVIRONMENT` - The environment where the application is running. Example: "development", "staging", "production". Default: "development". +* `DATABASE_URL` - 🔑 The connection string for the PostgreSQL database. Format is `postgres://username:password@host:port/database?sslmode=disable`. Default: "postgres://localhost:5432/sdp?sslmode=disable". +> behaviour of `base_url` will change after https://stellarorg.atlassian.net/browse/SDP-1148 is done. +* `BASE_URL` - The SDP backend server's base URL. Default: "http://localhost:8000". + + +### Stellar Configuration +Stellar Configuration allows configuring accounts, transactions, and other Stellar-related settings. + +* `NETWORK_PASSPHRASE` - The Stellar network passphrase. Default "Test SDF Network ; September 2015". +* `HORIZON_URL` - The URL of the Horizon server to use for submitting transactions. Default "https://horizon-testnet.stellar.org/". +* `MAX_BASE_FEE` - The max base fee for submitting a Stellar transaction. Default: 10000. + +#### Channel Accounts Configuration +The following configurations are required for using channel accounts to submit transactions to the Stellar network. + +* `NUM_CHANNEL_ACCOUNTS` - Number of channel accounts to utilize for transaction submission. Default: 2. +* `CHANNEL_ACCOUNT_ENCRYPTION_PASSPHRASE` - 🔑 A Stellar-compliant ed25519 private key used to encrypt/decrypt the channel accounts' private keys. When not set, it will default to the value of the 'DISTRIBUTION_SEED' option. + +#### Distribution Accounts Configuration +The following configurations are related to the distribution accounts used to send funds to recipients. This configuration should match the configuration in the SDP Core Service. +For more details, refer to the `Stellar accounts configuration` section of [1.x to 2.x Migration Guide](single-tenant-to-multi-tenant-migration#environment-variables). + +* `DISTRIBUTION_SIGNER_TYPE` - The type of signer used to sign Stellar transactions for the tenants' distribution accounts. Options: "DISTRIBUTION_ACCOUNT_ENV", "DISTRIBUTION_ACCOUNT_DB". Default: "DISTRIBUTION_ACCOUNT_DB". +* `DISTRIBUTION_ACCOUNT_ENCRYPTION_PASSPHRASE` - 🔑 A Stellar-compliant ed25519 private key used to encrypt/decrypt the in-memory distribution accounts' private keys. It's mandatory when the distribution-signer-type is set to "DISTRIBUTION_ACCOUNT_DB". +* `DISTRIBUTION_PUBLIC_KEY` - The public key of the HOST's Stellar distribution account, used to create channel accounts. +* `DISTRIBUTION_SEED` - 🔑 The private key of the HOST's Stellar distribution account, used to create channel accounts. + +### Event Broker Configuration +If an Event Broker is used for asynchronous processing, the TSS will need to be configured to use it. +For more details, refer to the `Event Broker and Scheduler Configurations` of the [1.x to 2.x Migration Guide](single-tenant-to-multi-tenant-migration#environment-variables). + +* `EVENT_BROKER_TYPE` - The type of event broker to use. Options: "KAFKA", "NONE". Default: "KAFKA". +* `BROKER_URLS` - List of Message Broker URLs comma-separated. +* `CONSUMER_GROUP_ID` - Message Broker Consumer Group ID. +* `KAFKA_SASL_USERNAME` - 🔑 Kafka SASL Username. +* `KAFKA_SASL_PASSWORD` - 🔑 Kafka SASL Password. +* `KAFKA_SECURITY_PROTOCOL` - Kafka Security Protocol. Options: PLAINTEXT, SASL_PLAINTEXT, SASL_SSL, SSL. +* `KAFKA_SSL_ACCESS_CERTIFICATE` - 🔑 Kafka SSL Access Certificate in PEM format that matches with the Kafka Access Key. +* `KAFKA_SSL_ACCESS_KEY` - 🔑 The Kafka Access Key (keystore) in PEM format. + +## Dashboard + +The SDP Dashboard is a web application that allows users to manage their accounts, view transaction history, and more. Environment variables can be set either on a global `window._env_` object or as `process.env` variables. All environment variables used in this repo are in `src/constants/envVariables.ts` file, including types. The default location of the `window._env_` object is `public/settings/env-config.js`. + + +### General Configuration +* `API_URL` - The base URL of the SDP Core Service. Default: "http://localhost:8000". +* `STELLAR_EXPERT_URL` - The base URL of the Stellar Expert explorer. Default: "https://stellar.expert/explorer/testnet". +* `HORIZON_URL` - The base URL of the Horizon server. Default: "https://horizon-testnet.stellar.org". +* `RECAPTCHA_SITE_KEY` - The Google reCAPTCHA v2 - I'm not a robot site key. This key needs to match the key used in the SDP Core Service. diff --git a/network/stellar-disbursement-platform/admin-guide/deploy-the-sdp.mdx b/network/stellar-disbursement-platform/admin-guide/deploy-the-sdp.mdx index f6e8e9917..5bc995b06 100644 --- a/network/stellar-disbursement-platform/admin-guide/deploy-the-sdp.mdx +++ b/network/stellar-disbursement-platform/admin-guide/deploy-the-sdp.mdx @@ -38,6 +38,14 @@ curl -O https://raw.githubusercontent.com/stellar/stellar-disbursement-platform- You can find the full list of configurable values in the [SDP GitHub repository](https://github.com/stellar/stellar-disbursement-platform-backend/blob/develop/helmchart/sdp/README.md#stellar-disbursement-platform-sdp-parameters). +There is a more detailed explanation of how to configure the SDP in the [Configuring the SDP Guide](configuring-sdp). + +### Multi-tenant considerations + +When running the SDP in a multi-tenant configuration, you will need to acquire wildcard TLS certificates to facilitate tenant provisioning as the SDP relies on subdomains to differentiate between tenants. This will allow you to provision tenants without having to manually configure TLS certificates for each tenant. You can use a service like [Let's Encrypt](https://letsencrypt.org/) or [Namecheap](https://www.namecheap.com/security/ssl-certificates/) to acquire these certificates. + +For more information about multi-tenancy in the SDP, see the [Design and Architecture Guide](design-and-architecture#multi-tenancy). + ### Install the chart To install the chart with the release name `sdp` and the values file `myvalues.yaml`: diff --git a/network/stellar-disbursement-platform/admin-guide/design-and-architecture.mdx b/network/stellar-disbursement-platform/admin-guide/design-and-architecture.mdx index 86408d678..0bc19e062 100644 --- a/network/stellar-disbursement-platform/admin-guide/design-and-architecture.mdx +++ b/network/stellar-disbursement-platform/admin-guide/design-and-architecture.mdx @@ -8,6 +8,7 @@ The Stellar Disbursement Platform consists of four services deployed together: - **Dashboard**: the user interface administrators use to initiate and track the progress of disbursements - **SDP Core Service**: the core backend service that performs several functions: - **Dashboard API**: the API used by the front-end UI for all disbursement requests. The API is documented [here](../api-reference/resources/README.mdx) + - **Admin API**: the API used by the host organization to manage tenant provisioning and configuration. The API is documented [here](../api-reference/resources/admin/README.mdx) - **Messaging Service**: a recurring process that sends text messages to users prompting them to download the wallet selected for a particular disbursement and verify their phone with an OTP - **Wallet Registration UI**: a web application that collects and verifies the recipient’s OTP code and verification information via Stellar’s [SEP-24: Hosted Deposit and Withdrawal](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md) protocol - **Anchor Platform Service**: the API server that the wallet uses to authenticate and initiate the recipient’s registration process through the SEP-24 deposit flow @@ -17,11 +18,46 @@ The Stellar Disbursement Platform consists of four services deployed together: - **Container Orchestration**: the SDP is packaged as Docker containers and can be deployed to Kubernetes or AWS Fargate. SDF provides a Helm Chart for Kubernetes - **Postgres**: the SDP uses a Postgres database server for all of its services +- **Apache Kafka**: the SDP optionally uses Kafka for streaming events between services. This is primarily used between SDP Core Service and Transaction Submission Service - **Twilio or AWS SNS and SES**: the SDP’s messaging service uses SMS messages via Twilio or AWS SNS and administrative emails for organization account setup and recovery via AWS SES - **Stellar Accounts**: - - Distribution Account: the SDP requires access to a funded Stellar account to make payments to the recipient + - Distribution Account: the SDP requires access to at least one funded Stellar account to make payments to the recipient - SEP-10 Auth Account: the SDP requires a Stellar account for the mutual authentication protocol [SEP-10: Stellar Web Authentication](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0010.md) used to connect to wallet applications ## Architecture Diagram ![Architecture Diagram](/assets/SDP/SDP2.png) + +## Database & Schemas {#database} + +The SDP uses a Postgres database for all of its services. The database schema is managed by the SDP Core Service and is versioned in the codebase. +The database schema is designed to be tenant-aware, meaning that each tenant has its own set of tables and data. This allows the SDP to be multi-tenant and support multiple organizations using the same instance. + +There are 3 types of schemas in the database: + +- **Admin Schema**: contains tables for managing tenants. This schema is used by the Admin API to manage tenant configuration and provisioning. +- **TSS Schema**: contains tables for managing transactions. This schema is used by the Transaction Submission Service to manage the state of payment transactions. +- **Tenant Schemas**: each tenant has its own schema that contains tables for managing disbursements, recipients, and other tenant-specific data. These schemas are prefixed with `sdp_`. + +## Multi-tenancy {#multi-tenancy} + +The SDP can be deployed in a multi-tenant configuration, where multiple organizations share the same instance of the SDP. Each organization is referred to as a tenant and has its own set of data and configuration. A host organization can manage multiple tenants and manage their configuration through the Admin API. + +### Tenant Resolution {#tenant-resolution} + +The SDP uses a tenant resolution strategy to determine which tenant a request belongs to. Tenant resolution is only required for unauthenticated requests, as authenticated requests include the tenant information already in the JWT token. + +- **Header**: the `SDP-Tenant-Name` header is used to specify the tenant name in the request. When present, this header is used to attempt resolving the tenant. +- **Subdomain**: the SDP can use the subdomain of the request URL to resolve the tenant. For example, `tenant1.sdp.backend.test` would resolve to the tenant `tenant1`. + +Resolution priority goes as follows: JWT token (authenticated requests) > Header > Subdomain. + +#### Single Tenant Mode {#single-tenant-mode} +When single tenant mode is enabled using the `SINGLE_TENANT_MODE` environment variable, all tenants will automatically resolve to the default tenant. A default tenant is set by calling the API [`POST /tenants/default-tenant`](../api-reference/resources/default-tenant). + +Default tenant is useful for development purposes or when the SDP is used by a single organization. This allows the organization to skip specifying the tenant in every request and simplifies the SDP setup operationally by removing the need of providing wildcard TLS certificates for multi-tenant configurations. + +#### Subdomain Resolution {#subdomain-resolution} +When running the SDP in multi-tenant mode, the SDP uses the subdomain of the request URL to resolve the tenant. For example, `tenant1.sdp.backend.test` would resolve to the tenant `tenant1`. This allows the SDP to differentiate between tenants without requiring the tenant name to be specified in the request. + +The subdomain resolution is particularly important for the Wallet Registration process, as the SDP relies on subdomains to differentiate between tenants during the SEP-24 deposit flow. Home domains, which contain the tenant name as a subdomain, are used during the registration process by the SDP to identify the tenant and route the wallet-registration request to the correct tenant context. \ No newline at end of file diff --git a/network/stellar-disbursement-platform/admin-guide/getting-started.mdx b/network/stellar-disbursement-platform/admin-guide/getting-started.mdx index 91e546396..6f3b55a55 100644 --- a/network/stellar-disbursement-platform/admin-guide/getting-started.mdx +++ b/network/stellar-disbursement-platform/admin-guide/getting-started.mdx @@ -7,9 +7,9 @@ import { CodeExample } from "@site/src/components/CodeExample"; In this guide, you will learn to: -- create and fund a distribution account for making payments +- create and fund a host distribution account that may be used to fund tenant-level distribution accounts or directly for making payments - set up an instance of the Stellar Disbursement Platform (SDP) locally -- create login credentials for users of the SDP +- provision a new tenant and create login credentials for users belonging to tenant - set up a Stellar account to accept funds as a receiver - make your first disbursement - register your receiver account with the SDP @@ -19,7 +19,7 @@ By the end of this guide, you'll have a clear understanding of the Stellar Disbu Note that while we'll be using USDC and the [Demo Wallet][demo-wallet] in this guide, other Stellar assets and wallets can be used in development or production. -## Create and Fund a Distribution Account +## Create and Fund a Host Distribution Account You'll need a minimum of two accounts when using the Stellar Disbursement Platform, a distribution and receiver account. We'll create the distribution account now and will create the receiver account while making our first disbursment. @@ -65,7 +65,7 @@ Make sure you have Docker installed on your system. If not, you can download it We will need two Stellar accounts to set up the SDP, one of which you already created above. -1. A Distribution account that will be used for sending funds to receivers. You should have just created this account using the [Create and Fund a Distribution Account](#create-and-fund-a-distribution-account) process above. +1. A Host Distribution account that will be used for sending funds to receivers. You should have just created this account using the [Create and Fund a Host Distribution Account](#create-and-fund-a-host-distribution-account) process above. 1. A SEP-10 account that will be used for authentication. It can be created the same way as the distribution account, but it doesn't need to be funded. Make sure to create this account now if you haven't already done so. The public and private key of these two accounts will be used to configure the SDP in the next step. @@ -104,67 +104,107 @@ cp .env.example .env Update the `.env` file with the public and private keys of the two accounts created in the previous step. -Then build it using the pre-defined docker compose files. +Execute the following command to create all the necessary Docker containers needed to run SDP as well as provision sample tenants: ```bash -docker-compose up +./main.sh ``` -You should now have the Stellar Disbursement Platform running locally on port 3000. However, you won't be able to log in until you create a user. +This will bring up the following services: -**Note:** If you make a code change, you'll need to instruct docker-compose to rebuild the sdp image. You can do this by adding the `--build` flag to the `docker-compose up` command. +- `sdp_v2_database`: The main SDP and TSS database. +- `anchor-platform-postgres-db`: Database used by the anchor platform. +- `anchor-platform`: A local instance of the anchor platform. +- `sdp-api`: SDP service running on port 8000. +- `sdp-tss`: Transaction Submission service. +- `sdp-frontend`: SDP frontend service running on port 3000. +- `kafka`: Kafka service running on ports 9092, 9094(external). +- `kafka-init`: Initial workflow to exec into the Kafka container and create topics. +- `demo-wallet`: The demo wallet client that will be used as a receiver wallet, running on port 4000. - +> If you wish to start the sdp containers with monitoring services, you can use the docker-compose-monitoring.yml file +> +> `docker-compose -f docker-compose.yml -f docker-compose-monitoring.yml up` -```bash -docker-compose up --build -``` +The following are optional monitoring services that can be started through docker-compose-monitoring.yml and are primarily used for monitoring Kafka: - +- `db-conduktor`: Database instance for the Conduktor service. +- `conduktor-monitoring`: Conduktor Monitoring service integrated into the Conduktor Platform. +- `conduktor-platform`: Provides solutions for Kafka management, testing, monitoring, data quality, security, and data governance. -## Create an Organization Owner +## New Tenant Provisioning Process +When you ran `main.sh` file, you've already created new tenants: `tenants=("redcorp" "bluecorp")`. To add more tenants, simply append them separated by spaces to that variable like so: `tenants=("redcorp" "bluecorp" "greencorp")` and run main.sh again. -We need to create an organization owner account with privileges (or role) to use the SDP. We will use the SDP CLI to add the user. Connect to the sdp-api container and create an owner account. +Be sure that the added tenant hosts are included in the host configuration file. To check it, you can run the command cat `/etc/hosts`. To include them, you can run command sudo nano /etc/hosts and insert the lines below: - -```bash -docker exec -it sdp-api bash -./stellar-disbursement-platform auth add-user owner@stellar.org john doe --password --owner --roles owner +``` +127.0.0.1 bluecorp.sdp.local +127.0.0.1 redcorp.sdp.local ``` - +## Setup Owner User Password for each tenant +Go through the forgot password flow to be able to login as an owner user. -The command will ask you to define a password and then create the user. +Go to Forgot Password page on `http://${tenant}.stellar.local:3000/forgot-password` and enter the tenant and owner email `owner@${tenant}.org`. -## Log In +A token will be generated, and it's possible to check it on `sdp-api` logs. This token will be needed to Reset Password on `http://${tenant}.stellar.local:3000/reset-password`. -Now that you have created an owner account, navigate to the dashboard by opening a browser to [localhost:3000](http://localhost:3000/) and login with the account you just created. +## Create Your First Disbursement -![Login](/assets/SDP/SDP4.png) +Navigate to the frontend service by opening a browser and going to http://bluecorp.stellar.local:3000. -Click the Sign in button and the SDP Dashboard will open. You will have no disbursements data at this point. +- Click `New Disbursement+` on the Dashboard screen. +- Use `Demo Wallet` as your wallet and choose a verification method. +- Upload a disbursement file. A sample file is available at `./dev/sample/sample-disbursement.csv`. Make sure to update the invalid phone number before using it. +- Finally, confirm the disbursement. + +## Log In -![Dashboard](/assets/SDP/SDP5.png) +Once the password for your target org user has been reset to one of your choice, navigate to the dashboard by opening a browser to localhost:3000 and login with the user account. +![Login](/assets/SDP/SDP26.png) + +Click the Sign in button and the SDP Dashboard will open. You will have no disbursements data at this point. +![Dashboard](/assets/SDP/SDP27.png) ## Create Your First Disbursement -Create your first disbursement by clicking the New Disbursement button. Use Demo Wallet as your wallet and USDC as your asset. You can choose whatever values you like for Country and Name. Then upload your disbursement file with receiver information. You can download the template and update the values within it. +Create your first disbursement by clicking the New Disbursement button. Use Demo Wallet as your wallet and USDC as your asset. You can choose whatever values you like for Country and Name, but ensure that Verification type matches the type used in the disbursement file that you will then upload with receiver information. Refer to `./dev/sample/sample-disbursement.csv` for the disbursement file template. +![Disbursement Details](/assets/SDP/SDP28.png) + +You also have the option of modifying the message in the receiver invite. +![Disbursment Details 2](/assets/SDP/SDP29.png) + +## Deposit Money -- `phone`: E164-formatted phone number of the receiver -- `id`: a unique identifier for the receiver, ensuring the receiver is only listed once per file -- `amount`: the amount to send -- `verification`: the data to verify. Currently built to verify date of birth. +To deposit money into your account: -![New Disbursement](/assets/SDP/SDP6.png) +- Access [demo-wallet](http://localhost:4000) in your browser. +- Click on `Generate Keypair for new account` to generate a new keypair. Make sure to save your public key & secret if you want to use this account later. +- Click `Create account` (in front of public key) to actually create the account on the Stellar testnet. +- Your newly created account will have 10,000 XLM. +- Add your home domain to the account by clicking on `Add Home Domain` and entering `http://bluecorp.stellar.local:8000`. +- In the `Select action` dropdown, select `SEP-24 Deposit`. +- In the new window, enter the phone number from the disbursement CSV. +- Enter the passcode. You can use `000000` passcode or find the actual passcode in the `sdp-api` container logs. +- Enter the birthday that matches the phone number in the CSV. +- Keep an eye on the dashboard until the payment status reaches `Success`. If everything was set up correctly, your money should be disbursed successfully. -Review and confirm the disbursement. +## Troubleshooting +### Distribution account out of funds +Payments will start failing if the distribution account runs out of funds. To fix this, you can either write a script that funds the distribution account or use the tools available to add more funds to the distribution account by following these steps: -![Confirm](/assets/SDP/SDP7.png) +- The distribution account address can be found under `Distribution Account` on the frontend sidebar. Depending on the value of `DISTRIBUTION_SIGNER_TYPE` that's configured in `dev/docker-compose.yml`, this account may either be the host account or a new account that was created during the tenant provisioning process. +- Access [https://horizon-testnet.stellar.org/accounts/:accountId](https://horizon-testnet.stellar.org/accounts/GARGKDIDH7WMKV5WWPK4BH4CKEQIZGWUCA4EUXCY5VICHTHLEBXVNVMW) in your browser and check the balance. +- If the balance is indeed low, you can add more funds by creating a new account and sending funds to the distribution account. + - Access [https://demo-wallet.stellar.org/](https://demo-wallet.stellar.org/) in your browser. + - Click on `Generate Keypair for new account` to create a new testnet account. Your account comes with 10,000 XLM. + - Click on `Send` and enter the distribution account public key and the amount you want to send. + - Using Freighter or [Stellar Laboratory](https://laboratory.stellar.org/#account-creator?network=test), swap the XLM for USDC if you wish to test with USDC. ## Verify Your Identity @@ -190,7 +230,7 @@ A SEP-24 interactive window will appear. This simulates the wallet application p ![Webflow](/assets/SDP/SDP14.png) -Next, enter the passcode and birthday that you used in the payment file. Note: use 000000 for this example (or 999999 if you want to see an error response). +Next, enter the passcode and the verification field that you used in the disbursement file. Note: use 000000 for this example (or 999999 if you want to see an error response). ![Passcode and Birthday](/assets/SDP/SDP15.png) diff --git a/network/stellar-disbursement-platform/admin-guide/making-your-wallet-sdp-ready.mdx b/network/stellar-disbursement-platform/admin-guide/making-your-wallet-sdp-ready.mdx index cb82737cd..51d30162d 100644 --- a/network/stellar-disbursement-platform/admin-guide/making-your-wallet-sdp-ready.mdx +++ b/network/stellar-disbursement-platform/admin-guide/making-your-wallet-sdp-ready.mdx @@ -79,10 +79,10 @@ Once the user has installed the wallet application, the wallet should be able to https://?asset=&domain=&name=&signature= ``` -- `asset`: the Stellar asset -- `domain`: the domain hosting the SDP's `stellar.toml` file -- `name`: the name of the organization sending payments -- `signature`: a signature from the SDP's [SEP-10] signing key +- `asset`: the Stellar asset. +- `domain`: the domain hosting the SDP's `stellar.toml` file. The wallet will need to use it to both fetch the `stellar.toml` file, and to populate the `home_domain` field in the [SEP-10] GET challenge transaction. +- `name`: the name of the organization sending payments. +- `signature`: a signature from the SDP's [SEP-10] signing key. > Note that the deep link is specific to each SDP, payer org, and asset. It is not specific per individual receiver. There is no risk in sharing the link with receivers who are part of the same disbursement. The link will be the same for multiple receivers and they will prove their identity as part of the [SEP-24] deposit flow. @@ -140,7 +140,10 @@ When opening registration [deep link], these are the steps the wallet should fol 1. Check the `asset` from the link and confirm that the recipient user has a trustline for that asset. Create one if it doesn't exist. 1. (Optional) Use the `name` from the link to update the wallet user interface. 1. Initiate the [SEP-24] deposit flow with that asset using the `TRANSFER_SERVER_SEP0024` value from the SDP's toml file. - - This includes using [SEP-10] to authenticate the user with the SDP's server and implementing the `client_domain` check, as detailed in the [SEP-10] spec. + - This includes using [SEP-10] to authenticate the user with the SDP server. Please notice that the SDP requires both the `client_domain` and `home_domain` fields to be provided in the `GET ` request, and they should be set as follows: + - `client_domain`: the domain of the wallet server that exposes the wallet server's `stellar.toml` file. + - `home_domain`: the domain of the SDP's server that was present in the registration link. + - `account`: the Stellar account of the receiver's wallet. 1. Launch the deposit flow interactive _in-app browser_ within your mobile app, following the instructions in the [SEP-24] spec. - ATTENTION: the wallet should not, in any circumstances, scrape or attempt to scrape the content from the _in-app browser_ for the recipient's information. - NOTE: it's highly recommended to use an _in-app browser_ rather than a webview. diff --git a/network/stellar-disbursement-platform/admin-guide/migrating-to-sdp-multi-tenant.mdx b/network/stellar-disbursement-platform/admin-guide/migrating-to-sdp-multi-tenant.mdx new file mode 100644 index 000000000..955256eda --- /dev/null +++ b/network/stellar-disbursement-platform/admin-guide/migrating-to-sdp-multi-tenant.mdx @@ -0,0 +1,470 @@ +--- +id: single-tenant-to-multi-tenant-migration +title: 1.x to 2.x Migration Guide +description: Single-tenant to multi-tenant migration guide. +keywords: [migration, single-tenant, multi-tenant, SDP, 1.x, 2.x] +--- + +import { CodeExample } from "@site/src/components/CodeExample"; + +Here you will find the required steps to migrate an existing single-tenant (`1.x`) Stellar Disbursement Platform application (SDP) to a multi-tenant (`2.x+`) version. + +## Why Migrate? + +Starting with version `2.x`, the SDP provides a multi-tenant architecture, where multiple organizations can manage disbursements under a unified infrastructure while maintaining separate datasets and funds management. + +New features and fixes will only be published to the multi-tenant version. + +The multi-tenant version also suits single-tenant scenarios, through a simplified configuration that will be described later in this document. + +> **DISCLAIMER**: this guide was prepared and tested with `1.1.6 -> 2.0.0-rc1` code bases. If you're in a later version, it's possible that the new database migrations cause an error when following these steps. +> +> You have the option of using the `2.0.0-rc1` version to perform this migration, and then upgrade to the latest version after the migration is completed. + +## Preparing for the Migrations + +### Halt the Single-Tenant Version 🚧 + +Before proceeding with the migration, ensure that the single-tenant version of the SDP is not running. This is crucial to prevent any data inconsistencies or conflicts during the migration process. + +### Double-Spending Prevention 🚨 + +To avoid double-spending, ensure that no payment is in the `PENDING` state, otherwise this could result in having the same payment submitted independently by both single-tenant and multi-tenant instances. You can do that by checking the `payments` table for any payment in the `PENDING` state: + + + +```sql +SELECT * FROM public.payments WHERE status = ANY(array['PENDING']::payment_status[]); +``` + + + +Similarly, check the `submitter_transactions` table for any transaction in the `PENDING` state: + + + +```sql +SELECT * FROM public.submitter_transactions WHERE status = ANY(array['PROCESSING']::transaction_status[]); +``` + + + +If there are any payments in the `PENDING` state or transactions in the `PROCESSING` state, you should wait for them to be processed and transitioned to either `SUCCESS` or `FAILED` before proceeding with the migration. + +### Remove Channel Accounts 🧹 + +In version `2.x`, the channel accounts are encrypted using the `CHANNEL_ACCOUNT_ENCRYPTION_PASSPHRASE`, which is a different env from the one used in the single-tenant version (`DISTRIBUTION_SEED`). To avoid any issues, let's remove all existing channel accounts in the single-tenant version priot to the migration: + + + +```bash +./stellar-disbursement-platform channel-accounts delete --delete-all-accounts +``` + + + +### Database Backup & Setup 💾 + +Backup your single-tenant database before proceeding with the migration. At this point, the single-tenant instance should be halted, and there shouldn't be any `PENDING` payments nor `PROCESSING` submitter_transactions. + +It's also recommended that you create a new database for the multi-tenant version to avoid any data loss. Use the dump from the single-tenant database to populate the initial state of this multi-tenant one. From this point onwards, anytime we refer to **the database**, we'll be referring to the new multi-tenant database that was created from a dump of the single-tenant database. + +Here's how you can do the backup and restore: + + + +```bash +pg_dump --dbname=$singleTenantDB > sdp-singleTenant.sql +createdb $multiTenantDB +psql --dbname=$multiTenantDB < sdp-singleTenant.sql +``` + + + +## Changes Explained + +Among the changes introduced in the multi-tenant version, the most significant ones are: + +1. **Infrastructure**: the multi-tenant version includes an event-broker (Kafka) as an additional infrastructure component that is highly-recommended for multi-tenant setups, especially when high throughput is required. +1. **Environment Variables**: the multi-tenant version introduces new environment variables to configure the event broker, as well as additional variables relevant for multi-tenancy. +1. **Seggregation of Funds**: the multi-tenant version introduces the concept of a distribution account for each tenant, which is used to submit transactions on behalf of the tenant. There's also the HOST distribution account, that's used to fund the tenant distribution accounts and the TSS channel accounts. +1. **CLI Commands**: some CLI commands have been revised to be tenant-aware, while others have been included to support new multi-tenant features. +1. **Database Structure**: the database structure has been revised to accommodate multi-tenancy and the tables are now distributed across multiple schemas, providing isolation between tenants. + +### Infrastructure + +For the infrastructure setup, SDP Multi-tenant offers flexible operational modes. + +#### Event Broker vs Scheduled Jobs + +Administrators can choose between using an event broker for event-driven operations, or scheduled jobs for periodic operations. Event brokers are recommended for multi-tenant setups, as they provide a scalable and reliable way to handle events, while scheduled jobs are recommended for local setups or single-tenant SDPs. Also, event-brokers provide faster communication between services. + +#### Anchor Platform Version + +While the single-tenant used [`stellar/anchor-platform:2.1.3`](https://hub.docker.com/layers/stellar/anchor-platform/2.1.3/images/sha256-e6ef4b17a8d3e5d1455fa3d8f5f7e2a2b9534ad749584ff5446d685eb07837e9?context=explore), the multi-tenant version requires [`stellar/anchor-platform:2.6.0`](https://hub.docker.com/layers/stellar/anchor-platform/2.6.0/images/sha256-913fa2461d36d5150724a172ca46f8c76284a3890b60a9d5709fe0c606af78b9) or later. + +### Environment Variables + +Below are the environment variables that have been added or modified in the multi-tenant version. + +General environment variables: + +- `ADMIN_ACCOUNT`: The username of the admin account used to authenticate HTTP requests to the Admin server. The Admin-targeted requests should add the "Authorization" header, formatted as Base64-encoded `"ADMIN_ACCOUNT:ADMIN_API_KEY"`. +- `ADMIN_API_KEY`: The api key of the admin accountused to authenticate HTTP requests to the Admin server. The Admin-targeted requests should add the "Authorization" header, formatted as Base64-encoded `"ADMIN_ACCOUNT:ADMIN_API_KEY"`. +- `ADMIN_PORT`: the port of the Admin server used to create and manage tenants. Default is 8003. +- `INSTANCE_NAME`: the name of the SDP instance to be displayed in the `stellar.toml` file. Example: "SDP Testnet". +- `SINGLE_TENANT_MODE`: When set to `"true"`, it enables the single-tenant mode, which is useful for local development or single-tenant setups. In addition to set it to true, you'll need to configure the default tenant by calling the [`POST /tenants/default-tenant`](../api-reference/resources/default-tenant) request. +- `TENANT_XLM_BOOTSTRAP_AMOUNT`: The amount of XLM that the HOST Stellar account will deposit deposited to the tenant distribution account for tenant bootstrap. + +Stellar accounts configuration environment variables: + +- `CHANNEL_ACCOUNT_ENCRYPTION_PASSPHRASE`: A Stellar-compliant ed25519 private key used to encrypt/decrypt the channel accounts' private keys. When not set, it will default to the value of the 'distribution-seed' option, which was used in the single-tenant version. **Attention**, when migrating from the single-tenant, setting this config to something different from the old `DISTRIBUTION_SEED` will prevent the code from being able to decrypt the channel accounts. +- `DISTRIBUTION_SIGNER_TYPE`: The type of signer used to sign Stellar transactions for the tenants' distribution accounts. Options: `DISTRIBUTION_ACCOUNT_DB` (recommended), `DISTRIBUTION_ACCOUNT_ENV` (same as the single-tenant version). +- `DISTRIBUTION_ACCOUNT_ENCRYPTION_PASSPHRASE`: A Stellar-compliant ed25519 private key used to encrypt/decrypt the in-memory distribution accounts' private keys. It's mandatory when the distribution-signer-type is set to `DISTRIBUTION_ACCOUNT_DB`. + +Event broker configuration environment variables: + +- `BROKER_URLS`: A comma-separated list of the message broker URLs. +- `CONSUMER_GROUP_ID`: Specifies a group ID for the broker consumers. +- `EVENT_BROKER_TYPE`: Specifies the type of event broker to be used. Options: "KAFKA", "NONE". Defaults to "Kafka". +- `KAFKA_SECURITY_PROTOCOL`: Defines the security protocol for Kafka. Options: PLAINTEXT, SASL_PLAINTEXT, SASL_SSL, SSL. +- `KAFKA_SASL_USERNAME`: Specifies the Kafka SASL Username, required when the kafka security protocol is set to either `SASL_PLAINTEXT` or `SASL_SSL`. +- `KAFKA_SASL_PASSWORD`: Specifies the Kafka SASL Password, required when the kafka security protocol is set to either `SASL_PLAINTEXT` or `SASL_SSL`. +- `KAFKA_SSL_ACCESS_KEY`: The Kafka Access Key (keystore) in PEM format, required when the kafka security protocol is set to `SSL`. +- `KAFKA_SSL_ACCESS_CERTIFICATE`: The Kafka SSL Access Certificate in PEM format that matches with the Kafka Access Key, required when the kafka security protocol is set to `SSL`. + +Scheduler environment variables: + +- `ENABLE_SCHEDULER`: Default "false". This enables scheduled jobs that replace the operations of a broker for synchronizing payments between SDP and TSS as well as submitting receiver invitations. It should be set to "true" when the event broker is disabled. +- `SCHEDULER_PAYMENT_JOB_SECONDS`: Interval in seconds for the job that synchronizes payments between SDP and TSS. Minimum is 5s. +- `SCHEDULER_RECEIVER_INVITATION_JOB_SECONDS`: Interval in seconds for the job that submits receiver invitations. Minimum is 5s. + +On the Anchor Platform side, we must set the following envs: + +- `SEP10_HOME_DOMAINS="localhost:8000, *.stellar.local:8000"`: a comma-separated list of home domains used for [SEP-10]. This should contain the domains of the SDP tenant instances. +- `SEP10_HOME_DOMAIN=""`: this should be an empty string for the Multi-tenant version. +- `SEP10_WEB_AUTH_DOMAIN=`: the home domain of the anchor platform instance. + +### Seggregation of Funds + +In the multi-tenant version, we support the segregation of funds between tenants by configuring the `DISTRIBUTION_SIGNER_TYPE`: +- When set to `DISTRIBUTION_ACCOUNT_ENV`, the distribution account private key is read from the environment variable `DISTRIBUTION_SEED` and the funds are not seggregated. +- When set to `DISTRIBUTION_ACCOUNT_DB`, the distribution account private key is stored in the database and the funds are seggregated between tenants. The secret is encrypted using the `DISTRIBUTION_ACCOUNT_ENCRYPTION_PASSPHRASE` environment variable. + +The channel accounts on the other hand are shared between tenants, and they are created by the HOST distribution account, set in the `DISTRIBUTION_SEED` environment variable. The channel accounts are encrypted using the `CHANNEL_ACCOUNT_ENCRYPTION_PASSPHRASE` environment variable, or the `DISTRIBUTION_SEED` if the former is not set. In the single-tenant version, the channel accounts were encrypted by the `DISTRIBUTION_SEED`. + +### CLI Commands + +The following CLI commands were updated to become tenant-aware: + +#### Database Migrations & Population + +The single-tenant commands for DB migration and pre-population used to be: + + + +```bash +./stellar-disbursement-platform db migrate up # ⚠️ DECOMISSIONED in 2.x! +./stellar-disbursement-platform db auth migrate up # ⚠️ 2.x REQUIRES A (NEW) TENANT-AWARE FLAG! +./stellar-disbursement-platform db setup-for-network # ⚠️ 2.x REQUIRES A (NEW) TENANT-AWARE FLAG! +``` + + + +The new multi-tenant commands are: + + + +```bash +./stellar-disbursement-platform db admin migrate up +./stellar-disbursement-platform db tss migrate up +./stellar-disbursement-platform db auth migrate up --all +./stellar-disbursement-platform db sdp migrate up --all +./stellar-disbursement-platform db setup-for-network --all +``` + + + +Please notice that some commands require a tenant-aware flag, that can be either: +- `--all`: to execute these migrations in all tenants. +- `--tenant-id`: to specify the tenant ID to execute the migrations. + +#### Channel Accounts + +The ensure command was updated from using the `--num-channel-accounts-ensure` flag to using a positional argument: + + + +```bash +./stellar-disbursement-platform channel-accounts ensure --num-channel-accounts-ensure 1 # OLD WAY +./stellar-disbursement-platform channel-accounts ensure 1 # NEW WAY +``` + + + +### Database Structure + +In the updated version, the database structure has been revised to accommodate multi-tenancy. As a result, the tables are now distributed across multiple schemas, and new tables have been introduced to support the multi-tenant architecture. The following schemas are used in the multi-tenant version: + +- **admin**: it houses tables associated with tenant administration. It serves as the central point for managing tenant-related information and to resolve tenant schema names based on tenant IDs. None of these tables existed in the single-tenant version. +- **sdp\_<tenant_name>**: are per-tenant schemas that are prefixed with `sdp_`. For example, for tenants BlueCorp and RedCorp, the provisioned schemas would be named `sdp_bluecorp` and `sdp_redcorp`, respectively. These schemas contain all necessary tables for the SDP operation tailored to each tenant, including per-tenant user authentication. +- **tss**: is a schema dedicated to the Transaction Submitter Service (TSS). The TSS tables do not belong to any tenant, although each TSS transaction contains a column that signals which tenant it belongs to. + +These changes allow for the isolation of tenant data per schema, ensuring that each tenant's data is kept separate from other tenants. + +## Step-by-Step Migration Guide + +> EDIT: the code contains a helper script called [`./dev/migrate_1.1.6_to_2.0.0.sh`](https://github.com/stellar/stellar-disbursement-platform-backend/pull/267) that does most of the below steps automatically for you. Keep in mind that you'll need to edit the script with values such as your database DSN, and your tenant name. If you see any errors, you may still need to resort to the steps below to incrementally execute the migration manually. + +Using the new database created from the single-tenant database dump as a starting point (as described in the [Database Backup & Setup](#database-backup--setup-) section), we can now proceed with the migration steps below. + +### Deploy the New Version + +To transaction to a multi-tenant setup, deploy the latest version of the SDP `2+` version. If you're using helm charts, you can get the helm chart from the [SDP Helm Chart repository](https://github.com/stellar/helm-charts/pull/80). + +### Executing Initial Database Migrations + +Following the deployment of the multi-tenant SDP, the next step is to perform the initial **database migrations**. It does not include the tenant-specific tables yet, they will be created later. + +Migration Commands: + + + +```bash +./stellar-disbursement-platform db admin migrate up +./stellar-disbursement-platform db tss migrate up +``` + + + +These commands will create the tenant admin tables on the **admin** schema and the Transaction Submitter Service tables on the **tss** schema, respectively. + +### New Tenant Provisioning Process + +After successfully applying the database migrations, the next step is to provision a new tenant. This is achieved by making an HTTP request to the **Admin API**. + +Be aware that it will provision the tenants with all the per-tenant migrations included. + +#### Starting the SDP API server + +To facilitate tenant provisioning, initiate the SDP Server using the command: + + + +```bash +./stellar-disbursement-platform serve +``` + + + +#### Posting to the Admin API + +- **API port**: The Admin API is accessible on port `8003` by default. This port setting can be adjusted by altering the `ADMIN_PORT` environment variable. +- **Authentication**: Admin API employs Basic Authentication for securing access. To authenticate, populate the request "Authorization" header with `"Authorization: Basic ${Base64(ADMIN_ACCOUNT:ADMIN_API_KEY)}"`. + +Here's a shell script that can be used to create a tenant through the Admin API: + + + +```bash +ADMIN_ACCOUNT="SDP-admin" +ADMIN_API_KEY="api_key_1234567890" +basicAuthCredentials=$(echo -n "$ADMIN_ACCOUNT:$ADMIN_API_KEY" | base64) +AuthHeader="Authorization: Basic $basicAuthCredentials" + +tenant="bluecorp" +baseURL="http://$tenant.stellar.local:8000" +sdpUIBaseURL="http://$tenant.stellar.local:3000" +ownerEmail="owner@$tenant.org" + +curl -X POST http://localhost:8003/tenants \ + -H "Content-Type: application/json" \ + -H "$AuthHeader" \ + -d '{ + "name": "'"$tenant"'", + "organization_name": "Blue Corp", + "base_url": "'"$baseURL"'", + "sdp_ui_base_url": "'"$sdpUIBaseURL"'", + "owner_email": "'"$ownerEmail"'", + "owner_first_name": "john", + "owner_last_name": "doe" + }' +``` + + + +> TODO: check if `base_url` and `sdp_ui_base_url` should be removed after https://stellarorg.atlassian.net/browse/SDP-1148 is done. + +In the SDP Multi-tenant, certain configurations previously managed through environment variables in the single-tenant setup are now stored within the **tenants** table in the admin schema. This change allows each tenant to have its own custom configuration. + +The field **name** is important because it's the tenant identifier. The other fields can be set to the same values used on the environment variables used on the non-tenant version. + +### Importing your data + +Now that we've provisioned a new tenant, we can import our data into it. We need to copy our old tables' data to the new tenant schema. + +Please notice that the following tables don't need to be copied: + +- **_gorp_migrations_** +- **_auth_migrations_** +- **_countries_** +- **_organizations_** + +To import your data from the single-tenant structure, we'll start by removing pre-existing multi-tenant entries that were automatically added when provisioning the tenant: + + + +```sql +BEGIN TRANSACTION; + +DELETE FROM sdp_.auth_users; +DELETE FROM sdp_.wallets_assets; +DELETE FROM sdp_.assets; +DELETE FROM sdp_.wallets; + +COMMIT; +``` + + + +Now we can import the data for the remaining tenant tables. Please notice that some tables cannot be imported directly due to a custom-type conflict. For instance, the `status` column in the `public.payments` table depends on `public.payment_status` enum type, while the one in the `sdp_.payments` table depends on the `sdp_.payment_status` enum type. To solve this, we update the type in the source table to match the destination table type: + + + +```sql +-- INSERT new data: +BEGIN TRANSACTION; + +-- These tables can be copied without changing any types in the source table columns: +INSERT INTO sdp_.wallets SELECT * FROM public.wallets; +INSERT INTO sdp_.assets SELECT * FROM public.assets; +INSERT INTO sdp_.wallets_assets SELECT * FROM public.wallets_assets; +INSERT INTO sdp_.auth_users SELECT * FROM public.auth_users; +INSERT INTO sdp_.receivers SELECT * FROM public.receivers; +INSERT INTO sdp_.auth_user_mfa_codes SELECT * FROM public.auth_user_mfa_codes; +INSERT INTO sdp_.auth_user_password_reset SELECT * FROM public.auth_user_password_reset; + +-- These tables need to have the type of some columns changed, we do that with the `ALTER TABLE` directives: +-- NOTE: we're not reverting the types back to the original ones, as the source tables will be dropped after the migration. +ALTER TABLE public.receiver_wallets + ALTER COLUMN status DROP DEFAULT, + ALTER COLUMN status TYPE sdp_.receiver_wallet_status + USING status::text::sdp_.receiver_wallet_status; +INSERT INTO sdp_.receiver_wallets SELECT * FROM public.receiver_wallets; + +ALTER TABLE public.receiver_verifications + ALTER COLUMN verification_field TYPE sdp_.verification_type + USING verification_field::text::sdp_.verification_type; +INSERT INTO sdp_.receiver_verifications SELECT * FROM public.receiver_verifications; + +ALTER TABLE public.disbursements + ALTER COLUMN status DROP DEFAULT, + ALTER COLUMN status TYPE sdp_.disbursement_status + USING status::text::sdp_.disbursement_status; +ALTER TABLE public.disbursements + ALTER COLUMN verification_field DROP DEFAULT, + ALTER COLUMN verification_field TYPE sdp_.verification_type + USING verification_field::text::sdp_.verification_type; +INSERT INTO sdp_.disbursements SELECT * FROM public.disbursements; + +ALTER TABLE public.payments + ALTER COLUMN status DROP DEFAULT, + ALTER COLUMN status TYPE sdp_.payment_status + USING status::text::sdp_.payment_status; +INSERT INTO sdp_.payments SELECT * FROM public.payments; + +ALTER TABLE public.messages + ALTER COLUMN status DROP DEFAULT, + ALTER COLUMN status TYPE sdp_.message_status + USING status::text::sdp_.message_status; +ALTER TABLE public.messages + ALTER COLUMN type TYPE sdp_.message_type + USING type::text::sdp_.message_type; +INSERT INTO sdp_.messages SELECT * FROM public.messages; + +COMMIT; +``` + + + +This concludes the SDP **tenant data** import, so the next step will be to import the Transaction Submitter Service (TSS) data. As a pre-requisite for that, make sure you have exactly one result in from this query and that no fields are empty: + + + +```sql +SELECT id, name, distribution_account_address FROM admin.tenants; +``` + + + +Now we can use these fields to import the TSS data: + + + +```sql +BEGIN TRANSACTION; + +---- 1. add new columns to the transaction_submitter table and populate them +ALTER TABLE public.submitter_transactions + ADD COLUMN tenant_id VARCHAR(36), + ADD COLUMN distribution_account_address VARCHAR(56); +WITH SelectedTenant AS ( + SELECT id AS tenant_id, distribution_account_address + FROM admin.tenants + LIMIT 1 +) +UPDATE public.submitter_transactions SET tenant_id = (SELECT tenant_id FROM SelectedTenant), distribution_account_address = (SELECT distribution_account_address FROM SelectedTenant); + +---- 2. copy values to the new table +INSERT INTO tss.submitter_transactions +SELECT + id, external_id, + status::text::tss.transaction_status AS status, + status_history, status_message, asset_code, asset_issuer, amount, destination, created_at, updated_at, locked_at, started_at, sent_at, completed_at, synced_at, locked_until_ledger_number, stellar_transaction_hash, attempts_count, xdr_sent, xdr_received, tenant_id, distribution_account_address +FROM public.submitter_transactions; + +COMMIT; +``` + + + +This concludes the migration of the SDP data to the multi-tenant version. The next step is to drop the old tables that are no longer needed. + +### Drop Old Tables + +Now, the only missing step is to drop the single-tenant tables that should not be in the multi-tenant database: + + + +```sql +BEGIN TRANSACTION; + +DROP TABLE public.messages CASCADE; +DROP TABLE public.payments CASCADE; +DROP TABLE public.disbursements CASCADE; +DROP TABLE public.receiver_verifications CASCADE; +DROP TABLE public.receiver_wallets CASCADE; +DROP TABLE public.auth_user_password_reset CASCADE; +DROP TABLE public.auth_user_mfa_codes CASCADE; +DROP TABLE public.receivers CASCADE; +DROP TABLE public.auth_users CASCADE; +DROP TABLE public.wallets_assets CASCADE; +DROP TABLE public.assets CASCADE; +DROP TABLE public.wallets CASCADE; +DROP TABLE public.organizations CASCADE; +DROP TABLE public.gorp_migrations CASCADE; +DROP TABLE public.auth_migrations CASCADE; +DROP TABLE public.countries CASCADE; +DROP TABLE public.submitter_transactions CASCADE; +DROP TABLE public.channel_accounts CASCADE; + +COMMIT; +``` + + + +### Conclusion 🎉 + +This should conclude the data migration from the single-tenant version to the multi-tenant version of the SDP. Please, make sure to run an e2e test to ensure that everything is working as expected. + +[SEP-10]: https://stellar.org/protocol/sep-10 \ No newline at end of file diff --git a/network/stellar-disbursement-platform/api-reference/resources/README.mdx b/network/stellar-disbursement-platform/api-reference/resources/README.mdx index cafc03e7f..e69df632a 100644 --- a/network/stellar-disbursement-platform/api-reference/resources/README.mdx +++ b/network/stellar-disbursement-platform/api-reference/resources/README.mdx @@ -11,6 +11,7 @@ Data on the Stellar Disbursement Platform is organized according to resources. E | | | | --------------------------------------------------- | --- | +| [Admin (Tenant Management)](./admin/README.mdx) | | | [Authentication](./auth/README.mdx) | | | [Disbursements](./disbursements/README.mdx) | | | [Organization](./organization/README.mdx) | | diff --git a/network/stellar-disbursement-platform/api-reference/resources/admin/README.mdx b/network/stellar-disbursement-platform/api-reference/resources/admin/README.mdx new file mode 100644 index 000000000..37302591f --- /dev/null +++ b/network/stellar-disbursement-platform/api-reference/resources/admin/README.mdx @@ -0,0 +1,21 @@ +--- +title: Admin (Tenant Management) +order: 9 +--- + +import {EndpointsTable} from "@site/src/components/EndpointsTable"; + +The Admin API oversees the management of tenants within the system, facilitating tasks such as provisioning new tenants, updating their information, and retrieving tenant data. + + + +| | | +| --- | --------------------- | +| GET | [/tenants](../get-all-tenants.api.mdx) | +| POST | [/tenants](../create-tenant.api.mdx) | +| GET | [/tenants/:arg](../retrieve-a-tenant.api.mdx) | +| PATCH | [/tenants/:id](../update-a-tenant.api.mdx) | +| DELETE | [/tenants/:id](../soft-delete-a-tenant.api.mdx) | + + + diff --git a/network/stellar-disbursement-platform/api-reference/resources/authenticate-mfa.api.mdx b/network/stellar-disbursement-platform/api-reference/resources/authenticate-mfa.api.mdx index d7f9cf2d2..e62477cfe 100644 --- a/network/stellar-disbursement-platform/api-reference/resources/authenticate-mfa.api.mdx +++ b/network/stellar-disbursement-platform/api-reference/resources/authenticate-mfa.api.mdx @@ -5,7 +5,7 @@ description: "Governs the multi-factor authentication process for SDP user login sidebar_label: "Provide Multi-Factor Authentication" hide_title: true hide_table_of_contents: true -api: eJzNVkuPGkcQ/iutOdkSD8dKcuAGyzohiRO0YEUWQetipmZo09M96QdrjPjvqeoZzADrtQ97yK60C13dX72/qn2SoUutrLw0Ohkkv5gtWu2EX6Mog/Kym0PqjRUQ6Eh7mQLfFJU1KTonchLNxlMRHFqhTCF1R0idqpBJXUQUWEkl/U54IyyWWK7oIp9nuJUpCmfE2zdDIZ3QxgtQD7BzdPHfIC1mvaSTmApt1DnJyL6WGUjvSO6hcMlgkQzPDEyWnaQCCyV6tCzfJ5L9WyNkaOmZJhF9H0crupMxHR21JoMclMPORWgmGcPnkuw3ecsFeunSNZaQDPaJ31UM67wl/5PDYVnDovMjk+34Rmq0JyD+CFWlGnv7Hx0r2V9DmdVHTD0poZBTKLxEx9Iyh/vUZHit9NLut0+kMSIc2MY6M/dlG3BljELQV4ij+lzkCoqrvHIl1JApVD5dw703G9TftnPO12JBWbwZTuc3vw7FFpTMoqk9cfflNAJyyRwzJoJWXI2s/8N4MhuO/ri9v7tt7n8gN3Uui1DXET906NlwbwP2KEvt3C9OoV0eWHQRTSrWJqOCLIOzumG8COYqo12dqNevXvG/c5RZSLl98qAuMkJwz1Qg3xn187apQ0sROUTXf3zM9hFklIsYgeeztqRoQPEd1TxGD1I5ohUTfEw4Wmtsy+Qfrk1+pznKxsrPlKVOQwKs9/BsDtRWXDNAJ8FP3oL7NoLz4EP7ng7cVAzx1ejUPuMnKCuFLTOSP5lM2z6frDjqoUi1kC9ftIHjs2NR82dqy/Ds6poEEmOvDVN9ZWKBVeDX9K1PXclMi2mwNE5mnJbasBGCRct13IoPVPJ33J14ftioOjbZ+TA4r5bf/p4zi2WRi87bsyOcLDSJHqRfC6LA29nrn36maSi3NJDEBnc1nXD13J14//aUoBNvnyr8jH2ZQx5hz1ZBSZ2b6Kr0jJnMPCoFVoylWwXrCEx7MVXgyf5SDKcTUkFT3dXeXfMu9dDTEC9owr9k2gTiB6PEKkjlY3SMLUA3UXXMqCVskORqIyrYMUo8BVFYEyqem+SYrGQU8KoRO/ioXaN/MHbTE+9NEClF11KCRGksNu0e3HGr4J1jsUaLyxdr7ys36PdpGqPihnI9VwP2yLx+ZlLX53WhMHbXp7x26X23udHNWg53q8bhlz0OM9dfCZEEmiKaWrOVGYp6or6pJ+rwkr/Potua9//D3appFk/d2ifnqSnI72AV2133XZyGvEytuRvp636/AofvrDoc+JhK3NJas6CPW7ASVlyRi+XhSLJx86Igs+Ari1U7RE/sWI/aSg13scQ11JSQdN+Ib2r47pwRTjeu2P70YkjTufJP3l22mGr612xOl1fNhlfW7W3hgXub/g6Sf+g37rKxUSKd8vk+UaCLUDNijcs//wEu9RFo +api: eJzNVktvGkkQ/iutuSSReGSjbA7ceGXDZu0gg7WKWESamWLo0NM92w8cFvHft6p7WAZwnBx8WFuyoav7q/dXtU8ysKkRpRNaJZ3kN70Foyxza2CFl040Vzx12jDu8Ug5kXK6yUqjU7CWrVA0GYyZt2CY1LlQDSZUKn0mVB5Q+FJI4XbMaWaggGKJF+k8g61IgVnNbt53mbBMace4fOA7ixf/9sJA1koaiS7BBJ2jDO2rmQH4DuWO5zbpzJLumYHJvJGU3PACHBiS7xNB/q2BZ2DwmUIRfh8EK5qjAR4dtSadFZcWGhehGWUEvxJov17VXMCXNl1DwZPOPnG7kmCtM+h/cjjMIyxY19PZjm6kWjkEoo+8LGVlb/urJSX7ayi9/AqpQyUYcgyFE2BJWqz4ItUZXCu9tPvmiTQGhAPZGDOzKOqAS60lcHWF2IvnbCV5fpVXqoQImfLSpWu+cHoD6sd2TulaKCgD/e542v/QZVsuRRZMbbG7/04DIJXMMWPMK0nVSPq/DEaTbu+P4eJuWN3/gm6qlch9rCN6aMGR4c54aGGW6rmfnUI7P5DoIppYrFVGGVrGz+qG8AKYLbWyMVFvXr+mf+coE59S+6y8vMgIwj1Tgfxk1M/bJoYWI3IIrr99zPYezzAXIQLPZ22B0eD5T1TzABwX0iKtaO9CwsEYbWom/3Jt8r2iKGsj/sEsNSoSIL2HZ3MgWnHNAI0EvjnD7Y8RrOPO1+8pT01FEN+NTvQZvvGilFAzI7klMq37fLLiqAcjVUO+fFEHDs+ORU2fsS39s6urEoiMvdZE9aUOBVZyt8ZvbexKYlpIvcFxMqG0RMN6wA0YquNafHgpPsLuxPPdStWxyc6HwXm1/P7nlFgsC1x03p4NZkWuUPQg3JohBQ4nb359h9NQbHEgsQ3sWpSvHrcivbBo7Vx5HBWBXOnONbXSKfswnY7ZRWdGjQyfwbu3TVDEUBmLdUAD6UV3cDO6XXT7/U/3t9NO9W08Wnwcfn4RSY5q+u40jYansjlNk1Pfnc0EYrZHOL1W5kKtdHBXOMJMJg6k5IYNhF16YxFMOTaW3GFUC4aGoQrcNWz0+3oaYGc/DfES945XROYcWUtLtvRCupAzbXKuqlxb4vmCbwDlcsNKviOUcMpZbrQvKXjomChFENACFHjlqF2Be9Bm02KftWcp5txg2bBCG6hIyNvjrkOb0GwNBuYvKd22027jjgCS2ty2bARsoXntTKe2TUtMrs2ujdXWxPfN6kYzqzncLCuHX4XSoq4oeKCmqrTHRm9FBizO+fdxzncvp8pZdGtbyP9w46saxiGHtNF5bFX02xtJdkc2CDOaVrw1cQR+3e+pL+6NPBzoGEvc4LI1w49bbgRfUkXO5ocj9Yd9EINMgu+se/UQPbH5PWor0sDFalkRZoLSfSXuR/jmlBBON65m0OlFF3eG0j15d17jz/GnyRQvL6u9s4jtbfgD9Tb+7SR/4W/YsEOjBJKn830iucp95OmISz//AlftQp0= sidebar_class_name: "post api-method" info_path: network/stellar-disbursement-platform/api-reference/resources/stellar-disbursement-platform-api custom_edit_url: null diff --git a/network/stellar-disbursement-platform/api-reference/resources/create-asset.api.mdx b/network/stellar-disbursement-platform/api-reference/resources/create-asset.api.mdx index 990ee1922..024978e96 100644 --- a/network/stellar-disbursement-platform/api-reference/resources/create-asset.api.mdx +++ b/network/stellar-disbursement-platform/api-reference/resources/create-asset.api.mdx @@ -5,7 +5,7 @@ description: "This endpoint is used to create a new asset that can be used in a sidebar_label: "Create Asset" hide_title: true hide_table_of_contents: true -api: eJzVVW1v2zYQ/isEP7WAbWVN2gDGMMCOk66rl7q1k6BL8+EkXSzWkqjxxaln+L/vjpQTJW2HAf1UGJAp3gv53D3PaStztJlRjVO6lkO5KJQVWOeNVrUTtPYWc+G0yAyCQwGixjsB1qITrgAnMqhFitFN1WSfKJt6Y7HC2g3EuXY4JE8U2iyhVv8AHyQqb50odJlTQAol1BnG6AaMU5kvwewP0ZxbKBfteTe77EkHSyuH1/JdJ7u86UmDf3u0bqzzjRxuZaZrRxG8hKYpVRYck8+WQW+lzQqsgFdu0yCVQaefMXOUvzG6QboS2pgmx46XdUbVS/J6WkNsLx/8exK/QNWUHHExn5zIXU8qaz2a/5eq9e2meT0eT46O35y9ml69PZ4d/zk5vZyfXH04nswuri4Pzz8eThbvTy/Ppkfno8XR6P3vh39Np2fT0Uu528XSKIM5l629YHvEzY7tj28w2neBmhw5kMtuDmc8hqS20bWNZXpx8Av/fStRm0JYn2Vo7a0vyw0X5Ojg4OuQMeSibWSP2r+GUt1viJRaS6QK3KIurVVOaRlPEtEweduYQcBtMfNGOeLD9VaOEQyakXcFvd7siDEVukITINloGzoPbJNJ6KSVD/FzJksE2s1y30po1FvcUEANFb+zWZs9N6nYDK1AyENTHyP+42oRpXRLyIACibQtWXvCqmVNpjvlCkGqO52/ePmKoKs1C3OFmwiTOf3hgf2ne9Ls2Rs5+EDBHyATY7nVAbpygZhzhyVrtzsExKwER3gqMZq9oYPXaGxE+026/3eKZ/PJ7Dm3FoiTuhSpV6UL1erOF8uErWCFZC9XNFQ2nCXsglga7Ruhb4lJmWpUMGi6VGDS/vQa3Z02q4H4qH2YccTbXFTakLRT7R11ifQaQyYzcV2gwZtnhXONHSZJjmsseXDYgY0JB3S9JNeZTaibuNRmk1Cf+xTfbz363dHWb1rAzwdcZqZkBWFUtaQ6ieM4iOppGTvj7ueb51FDDr+4hGpAWiH43pSMKiryWraKJM0WLFXa2W5TsHhhyt2Ot4n8hmVOyzUYBSlzk1Te28uOJwAJhusYK9Vf8LnsXvqo4ScfiUcTYvZuviDntP24VFFXBu54MtJzKD/Rj1506EgYFWF/K6k0Sw9L9o95WbLw1QBZhQHSLvi2e1O96dzy6WSJkPi5630n5FfSoKDx9Nu9e7R8N+B+UEVvbgh/Jv4FevXR7w== +api: eJzVVdtu2zgQ/RWCL20BX9LGTQBjUcC2nG02ruPWSoI0GxSUNLFYS6KWpJx6Df/7zpByojhtUWCfigAOKc4M53LO4YYnYGItSytVwfs8TKVhUCSlkoVluK4MJMwqFmsQFphgBdwzYQxYZlNhWSwKFoE3kwWeB9JElTaQQ2E7bKos9NESmNILUch/BV3E8spYlqosQYdIZKKIwXuXQlsZV5nQu0sUxWbS+vOkGZ23uBULw/s3/LwRnd+2uIZ/KjB2qJI17294rAqLHrQUZZnJ2Bl2vxoqesNNnEIuaGXXJWAbVPQVYovxS61KwJTA+DAJNKyM1bJYoNV+D6FO3tm3OHwTeZmRx8U8GPFti0tjKtC/Fqq2bYb5czgMesenJ0eTq7Pj2fGHYHw5H119Og5mF1eXh9PrwyD8OL48mfSmg7A3+Pj+8PNkcjIZvOXbrW+N1JBQ2+oE6ytut3T+NIPBbgo4ZI+BhDdjWF2BC2pKVRjfpjcHr+nf9wLVIZip4hiMuauybE0N6R0cPHcZioTVg2zh+Fcikw8fWISjRVA5bOGUVjLBsFRP11dD4K19Oq5uA3GlpUU83Gz4EIQGPahsitvbLSImB5sqLIiXyrjJCzrjXTdJwx/95wQWX2gzysMoRSnPYI0OhchpT8dK77CJzabSUhCJG+rTiv+6Cj2V7rAygY4I2hqsLWbkosCje2lThqwbz9+8PcLS5YqIuYR1hxo5FEbGexml1pZUgEsc9xHZPLvbebL3YThjgyc31zciUQ0c9dpQUJdxhA6yTN2xF4Pgw+n0y2A0Or+Yhv16Nzv9cja+fuGbT0z79MjJ8Q7KO055ZjwS439AnDp8p1z50jq6zC1kpChNaWKzTFjscs4wUbx4Bdr4PnyXhD8P8XIezF4R4AQyRWUsqmRm3QybqmeIRrlYAp5nS5S6NUVxXwVbaFWV1EwNsSylO1CYlMP37vYC7L3Syw67VpVTXmRTwnKlUXAiVVnEDo3EuQQzdpOChtuXNH7T73YTWEFGcmY6xgfsYHrdRMWmi5OGhdLrLqKvjf7t2qLdFNx2WRf8ykGNiJILJ6A11Ef+kXBU329jQ4R/v1fG88jCN9vFHiCDsfxKZ1SV14kbXusEKklKAoJfNhtizIXOtlv6jODXJD64XAktRUTYRO1p7cSAdAlpTH30nWqHdC+ZZ5VXlr2n64luzc7nIRpH9ZOXe15pcU96jb99/jf+4Ua5iTgBc983HFuzqMSC7H1coqx4JmtLJ2v1grLdHRXrRpb7eudLot9t6wcufyAHGYrmuwdzf/JDhwf59NY0EHq8/gNTMAMz sidebar_class_name: "post api-method" info_path: network/stellar-disbursement-platform/api-reference/resources/stellar-disbursement-platform-api custom_edit_url: null diff --git a/network/stellar-disbursement-platform/api-reference/resources/create-disbursement.api.mdx b/network/stellar-disbursement-platform/api-reference/resources/create-disbursement.api.mdx index c4f6957cb..e08ca8f11 100644 --- a/network/stellar-disbursement-platform/api-reference/resources/create-disbursement.api.mdx +++ b/network/stellar-disbursement-platform/api-reference/resources/create-disbursement.api.mdx @@ -5,7 +5,7 @@ description: "Creates a new disbursement in ```draft``` state with basic details sidebar_label: "Create Disbursement" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "post api-method" info_path: network/stellar-disbursement-platform/api-reference/resources/stellar-disbursement-platform-api custom_edit_url: null diff --git a/network/stellar-disbursement-platform/api-reference/resources/create-tenant.api.mdx b/network/stellar-disbursement-platform/api-reference/resources/create-tenant.api.mdx new file mode 100644 index 000000000..cad71b547 --- /dev/null +++ b/network/stellar-disbursement-platform/api-reference/resources/create-tenant.api.mdx @@ -0,0 +1,49 @@ +--- +id: create-tenant +title: "Create Tenant" +description: "Create Tenant" +sidebar_label: "Create Tenant" +hide_title: true +hide_table_of_contents: true +api: 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 +sidebar_class_name: "post api-method" +info_path: network/stellar-disbursement-platform/api-reference/resources/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import ApiTabs from "@theme/ApiTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import Markdown from "@theme/Markdown"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; + +

Create Tenant

+ + + + + +Create Tenant + +## Request + +

Body

+ +Provision a new tenant + +
Schema
+ +Unauthorized + +
Response Headers
    Schema
      extras object
    diff --git a/network/stellar-disbursement-platform/api-reference/resources/create-user.api.mdx b/network/stellar-disbursement-platform/api-reference/resources/create-user.api.mdx index 54760bfa9..a99e957ec 100644 --- a/network/stellar-disbursement-platform/api-reference/resources/create-user.api.mdx +++ b/network/stellar-disbursement-platform/api-reference/resources/create-user.api.mdx @@ -5,7 +5,7 @@ description: "This endpoint creates a new SDP user as the result of an SDP owner sidebar_label: "Create User" hide_title: true hide_table_of_contents: true -api: eJzNVmFv4zYM/SuCP90BcdKkSZMWw7De7gb0BmzF2mIYuqCgLTrR1ZY8SU4vC/LfR8pO6jZpdjt0w1DAcS2SIh/5nrSKLLrSaIcuOltFg6M+/0h0qVWlV0ZHZ9H3FsGjjDpRarRH7dkEyjJXKbBJ75Nju1Xk0jkWwG9+WSJ5muQTpp4cS2tKtF7VuyjZsnHeKj0jG/wMRZnzp/74+CRBeRyPk9NBPByfHMWTLBvEo36WHE0Qj8anWbTuRJmyzt9pKPBwvI9mrtk+hy8yf2+QrakUle9a0oo1eV1IswLWwpJCKI+F2+NBLsrdQerVor11YigO6LBu8Y9KWQL57JbheVJbO/FNWpsk2pGnrSJua5SjMQzTk9FoFPez8XE8PE2OYxj0+3F2OkrkIJlgenr0dLcGridoBUi2iNS/34VnNzXFNhnKXeICc+41Z9Mq2tsK150mqVE2lFlfyjidDLN4OBlAPBmCjEfDfpbJ4QmOR7CTFGj82qQypUGnCvI7HmD6nO/kl0HucD1dr7kZw30suNFQ+bmx6s9AhTmCRMvdXr8aL9BaY/dOHH72FtzfR3AefNW201WRULEUokDnYLZn9Ouat5OzTSP6yXjxpObHLDb7EFKtyM892oGD20Zr+H0BefXq2236d7zbvx+MTZSUqP/j5u3H9jGbf4RR260plnMIGV/IrVaLG0dN7zxD4HqunEAtS6O0F2mwdAKExgdx9f5SVOQkwAk/R0FZVLkXJhOgw6J50LwqJRXFFsoKpTNji7A3vQe3m4uuuKCm5M6IOWhJNQlHWzZOZLYgkRQ1SylBD7PAUM7XMSVZB9H5d0Yuue5X6s2hg+LwufB1av/S0fF0Fr5MdLcqllROaZr9oPMviF4zEw7Tyiq/DOfAOwSL9px4Qv9O11NmEHGGp6U0LoAFvBb1qtCFR/crhreuvR3kEYlS/YgMRZPwecPF0CRGiKeu5trOMH789ZoHTgqaoUBianPT3o5waqZp6UH5Oc/fh6vB6ESUVi14tu9x2Q1Q8hT88jgvH/5dZLmczITqlQ/3hCuPeQ5WvFcuqawjqIhWlzl4poU4v7ygPRaEaF3wHjqiOBziDRHvrVDMUU93BZFUijjJgBk7A90ATYQ1ooB7pPX8XpSw5CjhK4iZNVXJNLaYqlKFBUNJBTZudtfoH4y974rfTCVSApykQYrCWBSQmMoLxqcmMEvB7RwtTt/MvS/dWa+3PfJd19UBu5ReT5rU9aihODN2yaMVk3/cWMSyVXBcNgW/7TLMPJQFBH437Togai2J+F/qW00UT0dZj6pU4Rpa2aANNetuo2qjfXNmI31YrRJweGPz9Zo/04BbZjK9LsAqSML9brreHGOB5EQKBqrGIr7mbTub42NXOvkmVnucpymW/qBtWzAuf766JuOkkefCSPax8MB0oudZ9Dv9RXwqhdEMBxp/XxH/9Kyqz+06LlMYdgTlPghK88KVbZb0spXlc6Wpi+Enl7bX5RsipCC5+nZrXq+86LAVrtqae8f3w78AZeqEgQ== +api: eJzNVmtv2zYU/SuEvrQFLDt2/IoxDHMew9JiabA4GIrMCCjxymYjkypJOfUM//fdS8mOHDteV2TDYECWyPs493XIZWDAZlpZsMFgGbSOmvQnwMZGZk5qFQyCMwPcgQhqQayVA+VIhGdZKmNOIo3PluSWgY2nMOP05hYZoKaOPkPsUDEzOgPjZOFFioqMdUaqCcrAVz7LUlpq9o67EYjjsBedtMJ2r3sU9pOkFXaaSXTUBzjqnSTBqhYk0lh3r/gMDtt7r6eK5FP+TeLnGkgaQ5HpriTuGJ0WgZQ73Bi+QBPSwczu0UAVae957OS86jrSaIcrv2/gSy4NJnlwR+nZiq0KfA1rDaJqeVwJ4q7IctDj7bjb6XTCZtI7Dtsn0XHIW81mmJx0ItGK+hCfHG17K9O1lS2fkk1Giv+f/LMe69kGDGIXMIeUak1oKkE7k8OqVoLqJG2RNIUI4347Cdv9Fg/7bS7CTruZJKLdhV6H74DiCr4XVCIVV7Hk6T01MC6nO/gSnlpYjVcrKkZ73xTcKp67qTbyTz8KU+ACDFV79WpzAcZos7fj4Ksz3P69Beu4y6tyKp9FGCyamIG1fLKn9YuYN52zgRFcace2Yn5CsfaDmapYfq5RNezV1lxD73Oe5q/ubl2/4936/axNJIUA9R8Xb39un9D8oxxV1cpgCYNHfCk2XM1uLRa99iwDo6m0DJTItFSOxV7SMs4UPLKb82uWoxLjlrkpMESRp47phHHlN/Wjol0hMCiSkIZJlWgz877x3avdXtbZJRYltZpNuRIYE7PoslRCsTmSJCumFAE6PvETSngtjSTxIFh3qsWC4n6l2hw6KA6fC9/H9i8dHdu98G2ku2GxKLdSYe97nn+B9MqesBDnRrqFPwdOgRswQ5wT/ByvxjRBODPULZm2Plmc9oJG7qvwpH5D6S1irxp5ykQmPwClogQ8LGfRF4kyRF1XzNpOM77/fUQNJxj2kB9iLHNZ3hqzcqJw61G6KfXfxU2r02WZkXPq7QdY1Kkup9zK+BmiqXMZBeCB0xFLMju+vSb7ZTS6ZsMtz6VHhmrQbYegYi0QR1E+GoY3w/NfL6/uh2dnH2+vRoPy6/ry/sPFpzd1X2Dqzd+euvji3603JTnRPgPS+dvLjYM05YadSxvlxmIecNivU+5oWBliRR9zrHORij0kAeywibdIB++YJOZweINhUS6RKaiM2ky4KsuPNKLZjD8A7qcPLOMLsuJXOZsYnWeUTwOxzKTf0AjKc8TauwL3qM1DnX3SOYuxDZCwBJtpA4xHOneM8lPQChHU3RQMjN9SB9hBo7G5iNi6LQzWEV5D6Ng2sNgw0WZBDR+iflhKhKIScJiVAb/z3UajMuOedcpyHaDaCnH9L1m3GBaHB2wDo5T+cpwbz1gFF9wF+ZqRp8QRuLBc0lTcmnS1omVscEP8gq9zbiSP/K1zvFofrp56cFQpUUUuwhG5ra0PtV1Cp/thoTGMY8jcQdkqjV1/vBmhcFQeGjMcWlw1/JHGCZ+D4A/8BXRW+tb0xyytL3H+1CQvbhOFXRphvkNzD57myheKbL2lFhWUz/mvCIaeFNpelR9wIBmS6I8b8WLnRYUNnRbSVDu6tf4F4Bm1tg== sidebar_class_name: "post api-method" info_path: network/stellar-disbursement-platform/api-reference/resources/stellar-disbursement-platform-api custom_edit_url: null diff --git a/network/stellar-disbursement-platform/api-reference/resources/default-tenant.api.mdx b/network/stellar-disbursement-platform/api-reference/resources/default-tenant.api.mdx new file mode 100644 index 000000000..96ca02205 --- /dev/null +++ b/network/stellar-disbursement-platform/api-reference/resources/default-tenant.api.mdx @@ -0,0 +1,53 @@ +--- +id: default-tenant +title: "Default Tenant" +description: "Default Tenant" +sidebar_label: "Default Tenant" +hide_title: true +hide_table_of_contents: true +api: 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 +sidebar_class_name: "post api-method" +info_path: network/stellar-disbursement-platform/api-reference/resources/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import ApiTabs from "@theme/ApiTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import Markdown from "@theme/Markdown"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; + +

    Default Tenant

    + + + + + +Default Tenant + +## Request + +

    Body

    + +Set the given tenant as default when Single Tenant Mode is enabled. Once set, the default tenant can be overwritten but never unset. + +
    Schema
    + +Unauthorized + +
    Response Headers
      Schema
        extras object
      + +Forbidden + +
      Response Headers
        Schema
        diff --git a/network/stellar-disbursement-platform/api-reference/resources/delete-asset.api.mdx b/network/stellar-disbursement-platform/api-reference/resources/delete-asset.api.mdx index 1c4712fce..432e97512 100644 --- a/network/stellar-disbursement-platform/api-reference/resources/delete-asset.api.mdx +++ b/network/stellar-disbursement-platform/api-reference/resources/delete-asset.api.mdx @@ -5,7 +5,7 @@ description: "This endpoint is used to soft delete an asset." sidebar_label: "Delete Asset" hide_title: true hide_table_of_contents: true -api: eJydVE2P2jAQ/SuWT7sSkNVq20NUVaKCw7aVigpVVSEOJpkQC2N7/cE2RfnvnYkDZT/YQy/gZGbezDy/lwMvwRdO2iCN5jlf1NIz0KU1UgeG5+ihZMEwb6rASlAQgAnNhPcQRnzAg9h4ni/5N7cRWv4RHc5qwK1wYofJjqIHrvEB4WWJJZIaWRFqPD/tfj9hpmKhhoRPfVNLzHTwEKWDkufBRRhwX9SwEzw/8NBYwvbBSb3hbbuiZG+N9uApfntzQ39PW427Bgm9ZD4WBXhfRaUa3g6w5O5SiVAORNkcSyn77nK2NoFVJmrMw0QPRXQyNB0ln0A4cOOIPOTLFU2NfNUGF+SnpTuWcp51dPjsIMuW/4OZEwVpx3OwEyPCyi/QYEHPPoWNO15SfxE1bgPuxVV8/rlId18ZxwQWgg6y6CoHzMuNxtCjDDWJYTq/ffeeWSf3AtWxhWbUbSt1ZbppZFDUfh5AKeHYRPp1dB5HR4nNlAjYYsfGs3scYo+CSQO8mGiBsngb4mo+mV2TaAUqxyi2jlKFbgFzpk5PstqJLWBcbZkVDaF0bwXbOBMtidBBIa3sAgaH6kR57K4hPBq3HbFfJrICCSBFsJ1xqNu1iQGJQyWmksmMLWtwsLqqQ7A+z7IS9qCMxUVHPgGOcLysNIXPkGDYGNdkSP0Q64d9xrA8W3ho+4WvR6Q+a3zYCU1M9/c8STbtFPicxgMvjA6I8l9mT7oK8DtkOATqB/tHpwg2SXXJk1QxOUezo6hrHI/eHw5r4eGHU21Lrx8iOPIBHvfCSbEmiaArcFE6owsqoTy8Mf3V9/6LcM3e+m68OvPRIJrcsRcqQlIcajd9pdpVe+bHyfTrdDHFuHhhsG1nsP5AC7wK/dx5qQ/9toMLJR/QEAzt+/GUniIXC05G7pfQtETb/gVmCAUG +api: eJydVNtOGzEQ/RXLL4CUC0KUh1VVKZBIpbQQNUEVQhFydidZK469+BK6jfbfO+PdpIEQHvqS2Ou5njln1jwDl1pZeGk0T/g4l46BzgojtWd4Dg4y5g1zZuZZBgo8MKGZcA58h7e4F3PHk0d+Z+dCyz8ixpm0eCGsWKKxpdc113jB8DJDF0mJCuFzPL/Oft1nZsZ8DnV8ylunREsLz0FayHjibYAWd2kOS8GTNfdlQbGdt1LPeVVNyNgVRjtw9H52ekp/r1P1YoI6esZcSFNwbhaUKnnVQpfzQy5CWRBZuXEl6/PD1tp4NjNBox0aOkiDlb6MkFyCsGB7AXFIHidUNeKVG2yQb5uOKCW8G+Fw3bXMKv4vzIggqHvcDbZFRBTyBkp0aNCnZ2M3Q2oGkWM3YPdG8e3XuJ79zFgm0BG0l2n0bDEn5xqfXqTPiQyD0dmnC1ZYuRLIjgWUHULlUjiZvqko977gzezoPiWbvdzRk30dj4es9ypzk5GhG1yct0GnJqPpxckTdY56/R/Xt0+9q6u7+9tx0tyG1083g4ejTpyB1DMTK5JeUQkjD0oJy/rSTYN1WBcSf6iEx8aXDH2xvBXSuC5tr9YxkvXjEMej/vCEpCSQz0axaZDKR1jNjmYckX0pFoDvasEKUVKU+FWwuTWhoP4spLKQ8cFgUVEqm+wa/Iuxiw57MIGlOBbiKVsai2qamuBxnIRSdOkP2WMOFibHNBGXdLsZrECZAhvtuDpgB8vrZiZ1XQQf5saWXSREG/3bjUU722m4XTQNn8TpF8b5pdCEdMO+fr08oi7ewrjmqdEeo/zXCqq55eG372IRyGrMH6yisLWAHnktIDROcAWh1HIsj76v18Sle6uqij4/B7CkTjyuhJViShRBrWKjdEZtzoRy8EH1xz+bPXXCPtpm79a8ka0mza6EClAzDhVV785qUu1sif7g+2A8wHexJ/tFlH1zoAbeDf12H9R56LdqHXD5jIJguFS+bM3rl4MO2/XSNKGpiar6C0RmNjs= sidebar_class_name: "delete api-method" info_path: network/stellar-disbursement-platform/api-reference/resources/stellar-disbursement-platform-api custom_edit_url: null diff --git a/network/stellar-disbursement-platform/api-reference/resources/download-disbursement-instructions.api.mdx b/network/stellar-disbursement-platform/api-reference/resources/download-disbursement-instructions.api.mdx index 35fffb5c1..b3df69298 100644 --- a/network/stellar-disbursement-platform/api-reference/resources/download-disbursement-instructions.api.mdx +++ b/network/stellar-disbursement-platform/api-reference/resources/download-disbursement-instructions.api.mdx @@ -5,7 +5,7 @@ description: "Allows an SDP user to download the raw CSV file that was uploaded sidebar_label: "Download Disbursement Instructions" hide_title: true hide_table_of_contents: true -api: eJzlV1Fv2zYQ/iuEnhLAtrou24MxDHCbdvAGDEHtriiCPJyks8WaJjWSsusZ+u+7oyRbsp0U27Jh2F5i2uTdfffdd0dmH1l0hdEOXTTeRy9fvOCPDF1qZeGl0dE4upUuKa3DNWovXs9+EQupMBpEOUKGNti9NtrT7pCOFsbJ2vDUzzzHYKphjcIshKfvFn1pNWYHvyNy7NIc18AO/K5AsnTeSr2MqmpwiDQPO6chPH72ceo2TzohL2ntJey2JrTGz7AuVE1FywuvN6BKdsHGbH5ziaZXkIl3+GuJzvfIeTzcGUSTfMKUrQtrCrRe1lDQWmMvZDIgwN6C+7KHhTEX7dfoHCzxIkvBfeCjgyGaaiJDZlS4NtMjhhAlSsBGHc+nFqIASwLwTE4dBYpCyRSYxviTq5XzhUr8jXiaAn91XuD3GkqfGyt/w+xfV2HnwZfdc7pcJ2j/XJF/Nl70cj2iaOMQQ11STyyeobDPgqEp5tfnxXxrbCKzDPU/VMnLRB9R/HXCer6axG/OE2eW3ppS/w8kvGjSvKScm65yejecPlg+k4qfA0YNhdkKQKYZHzdbrQzdOj27qSZqypRPOQraL/5EKbN1ArSY3d6J0qEV3oisdRRuZNgeLmP6AbzYghNlwQfont7mqEVqkWDoZTDIOtFHYp5LJ7ZSKWG02jX3O324UnkKvKA5K2QHoshhgyJB8greA4ktY0ggMkuH+84pHQ9L4u2+R5WLHkhKxyk+vt9H/MagfCXzLjnzAnx+Rsf0tn2HdP3RMb4bpKUhMiag+NRjgkI7TEsr/S4EfoVg0U5oDNHXB94mVLnhei0xaJ6BjKO4m5mL9zKrYtkvXet3xsFrrXW9H7BAIX/CHRk0SU+aGRiU0uZft/oZAz9+mLMMMpKaDcOT0DRiHwgnl/w020qfs2TezF5+860orNyAR7HC3SiMNakX9eNCem7BaOZRKbB9Vd4p8BRiLSZ3UwKxoTrVAM4Q8SvxaRdXpN1rQTIDUopRIiml8iEBY5egm8Qdy2gNKxJXqVZ0y+8C07W4ltaUBdfeYioLGTbMhruhE12j3xq7GomPphQpsIqpR9bGooDElJ6Ia3uAu+k+R4sPV7n3hRvHcYYbVNywbuRqhyOCF2cmdTERjEtjdzFRPyT7YXNi2BXFsGgSvh7xCKR3tV9DmD5Nnf94/++PQ/4/MApq9Ye7iqgilRNLpVWcZt1k91Gvychm3AyEDkXUoTlRy6f3+wQcvreqqvhneh5abmpabsBKSFje1OLklNfU0gtQDp/g+OpdM0euxaOj5mIabWdrbuvDfx+DiJqunmrVQ9Ve3wFTvTFJUyx8x+RwkfcG0Q9v5nQGzqbIKkyRZsFeL8I4HS91aP5bDR4x+Y66XtCM+v5wvN551OAwrZqENSdcVb8D2FckFg== +api: eJzlV21v2zYQ/iuEvjQBbKvrsn4whgHOSzevWBrUzoYiCApaOltsKFIjKbueof++O1KyJdtJsS0bhu2LLZm8u+eeu3tIbyIDttDKgo2Gm+jVy5f0lYJNjCic0CoaRpfCzkpjIQfl2MXkZzYXEqJelAFPwXi7C60crvZxa6GtCIb7fqYZeFPFc2B6zhy+G3ClUZBu/Q7QsU0yyDk5cOsC0NI6I9QiqqreNtLUr+yHcPDZxYldPukEvSTBi19tTPAZPvO8kIGKhhd6XnJZkgsyJvOzYzSd85S9h19LsK5DzuPhDiDq2SdIyLowugDjRIACxmhzJJMeAnaG2y97mGt91D4Ha/kCjrLk3Xs+WhiisUIyRIqFazLdYfBRohk3UcvzvgUruMEGcEROiMKLQoqEE43xJxs65wuV+Bvx1AX+6rDAt4qXLtNG/Abpv67C1nFXtvepMp+B+XNFvtaOdXLdoWjiIENtUvcsnqGwz4KhLubXh8V8o81MpCmof6iSx4neofjrhHV81YmfHSZOLL3RpfoftPC8TvNY55y1O6dzwqmt5TN18XPACFCILQ9knNJ2vVJS46nTsRsrpKZMaJfFoN3ij6TUK8u4YpPLG1ZaMMxpljaO/InMV9vDGH/gjq24ZWVBG/CcXmWgWGIAYaiFN0hb0QdsmgnLVkJKppVc1+c7ftlSOgw8R51logWRZXwJbAbolTvHsdlSgsRZanBz1zmm4/gCebvrUGWje2ylnYoP7zYR3TEwX0G8C8q84C47oGN82dxD2v5wG50NwqCIDBEoPHWZwNAWktIIt/aBz4EbMCOUIXy9p2VElWmq1wJ8zxOQYRS3M7PxRqRVLLqla/xOKHjotbb3LRZeiLewRoM66VGtgb5TmvzDqB8w8OMvU2qDFFvNePFENHWz95gVC7qarYTLqGWuJq++ec0KI5bcAXuA9YBG85xbkewhypwrmisY+CMY9xzE9pbsh+n0ho06keuIDM3g9VkfVKKp9QLnVLEXo8ufxtcfRxcX726vp8P67Wb88e3VhxcDL7ZCzcOVRzgShmjiQEpuurNyI7nDxHOGtghvid0ToB1gpbvr0y5OcKJOGTY/x/7Vks1KIZ2nVZsFV3U5LDV3zh+w5Uv5gHePta9/aPmF0WVB+RlIRCH8gl7SjLaiK3ArbR4G7IMuWcJptnByc22A8ZkuHZazmUya8bsMDNyfUEXsMI5TWIIkGbEDGxwOEF6c6sTGSD4stFnH2BB9tO/XO/rtVu0XdcKnvvp423c595pYd98fV6XN7uj5DwhUmAB/giJVOHvIUmkkpRlG/y7qjD7aDGuZalGEupEhtbR7s6E5uDWyquhnvLQakhp8XHIj+IzaG4UHndIzCs2cSwtPcHzyvla3U/aoAB5No9EbRWKz/U/Ui1AKgtZW91VzqfCYwsIoSaBwLZPt9aIjj99fTXEPP9C2B69t9QN5PQpjX/RCaPqseo+YfItTz1A5v9tuDyuPGmw1tE5YUcJV9TtRTVVL sidebar_class_name: "get api-method" info_path: network/stellar-disbursement-platform/api-reference/resources/stellar-disbursement-platform-api custom_edit_url: null diff --git a/network/stellar-disbursement-platform/api-reference/resources/forgot-password.api.mdx b/network/stellar-disbursement-platform/api-reference/resources/forgot-password.api.mdx index e39882800..436d05988 100644 --- a/network/stellar-disbursement-platform/api-reference/resources/forgot-password.api.mdx +++ b/network/stellar-disbursement-platform/api-reference/resources/forgot-password.api.mdx @@ -5,7 +5,7 @@ description: "Sends an email with a token to an SDP user who has gone through th sidebar_label: "Forgot Password" hide_title: true hide_table_of_contents: true -api: eJy1Vd9v2jAQ/lcsP60VkKra9sDT6I9p3R6GCtM0MTQdyZG4JLFnO1CG+N93Z4c1pVWlPRQkEnKX83efv++8kxm61Crjla7lUE6wzpyAWmAFqhQb5QsBwusV1vTLgcnVWDQOrdgUWhTgRK5rFL6wuskLuqL4qG2uvRiDcxttM2GsTtG5gexJbdACL3WT0WLLkHjIo7CH3MnhTI4aqlN7lYZcOe9Ji78bdP5CZ1s53MlU154S+BaMKdvE5M5xEzvp0oLw853fGqSV9OIOU08rEBaC4BU6joYmO2nOW1XnlEbIKqDybUbviKXrQI5ehnaZDLlniCkYnxbwK9D1XNnHVaaBVVpKWLwcjaeXn0ZiDaXKYtf7fWxbWcyYlAhlvufnjwu1hJsD4S1ZggqB7BbxtsFQ1Rldu8jB+dkZX16uGNXgiHLhmpR3c9mU5ZaKd3biNDn9H/IrqgI5PuXpuPFDIrdOobfPAb6ATNzGtl8H1DHnV+iJErLKQjc+6ACt1SSE+OlRJV9oVrnRAZMBX9C/JIq+bx5U7zBtrPLbCWOMMC4QLFq2QQcJGPUFmfMaKv7PYW3VnyiXnlSMq0DISI/HcD9/n7JQsyA3eGSvnnAqrykUzV6L68n5u/fkWrUGj2KF20HYEjbX7YMNr++hMiV2bCTZCR8wPh+kupLPmOLfJjPepQ7tKc915MRjWYIVV8otGuuIC5LbuATPbhSj8Q3VW6N1saOndqI9eLnEG5pdJ0K5MNF0KRaNKn1ghPYE6pZJx4OughVSvFyRB7ZcJTwFkdOYM+x8akwZFQKaQAUFHFav0dPWrgbih25ESoxa2hRRaYutXBpHFMRXaJrOCrQ4f1N4b9wwSTJcY8madAMXCw4IXpLp1CW0Y5hru02I6j69328z+lmn4b5pGz4ZMM2svwrCPGqFczSgj5nsjNfXPg9aZXu89wmhJgUT4MaGmRwNM5PHhqHToGBLUWi3W4DDb7bc7/kxadPS8TCj2zVYBQuW1WxOJVtXDGc7SXqmFS9jh/0pA+D0sokWOzpM9r3DGyMae8Z3cnmy7Ocdo4+/TqYUX7RnVKUzTrOwYR/Q71D+pG84BYPOOCk838kS6rwJc0fGZfnzF3cSqVg= +api: eJy1VVFv0zAQ/iuWX2BT20wIeOgTXTfEmICKFiFUquma3BLTJDa201Gq/nfu7BSybELigVZqE/t8/u7z9533MkOXWmW80rUcyznWmRNQC6xAleJO+UKA8HqDNf3yxPxiJhqHVtwVWhTgRK5rFL6wuskL+kfxWttcezED5+60zYSxOkXnRnIgtUELvNVVRpvdhsBjHE17yJ0cL+WkoTy1V2mIlauBtPi9QefPdbaT471Mde0pgB/BmLINTL45LmIvXVoQfn7yO4O0k15/w9TTDoSFIHiFjmdDkZ0w562qcwojZBVQ+jZi0GPpMpCjb0O5TIY8MMQUjE8LuAl0PZb2fpZFYJW2Ehank9li+mYitlCqLFZ9OMSylcWMSYlQVgcev5+oJdwcCW/JEpQIZDeJtw2GrM7o2kUOnp2d8d/fM0Y1OKJcuCbl07xtynJHyTsncZqc/gv5FWWBHB/y1C/8GMil09TzxwCfQyY+xrL/D6g+5xfoiRKyylo3PugArdUkhPgZUCZfaFa50QGTAV/QWxJFPzR/VO8wbazyuzljjDDOESxatkEHCRh1jcx5DRW/87S26meUy0AqxlUgZKTHPty3nxcs1CzIDe7ZayCcymuaimavxeX82YuX5Fq1BY9ig7sRy/scnEp7iArvDRcQgNP7mmMe7B1WijeLxUzcN/axvdAyfPl8iHWqM8IRGWd7PZlcvLt6fzOZTj98er8Yt2+zq5vryy9PRkEobPmPf5rD5Q+oTIkdc0v25yuM46NUV/IRq/6WHrN4q0OJynMeOfdYlmDFhXLrxjoqlEwwK8FzjxAEhvJt0bpY60OTkzL+nuIpddQToVzos7oU60aVPpwTKQXq9nwdt98KNkjz5YacueMsYRRETs3XMGFUmDIqTGgCFXR53L1GT4LbjMQX3YiUztmSVESlLbYibhzTHpZQj18WaHH1lI/YjZMkwy2W7BQ3cjHhiOAlmU5dQqeJuba7hKge0vphGzHMOgUPTVvwSZATu6KC0CVbOfeujT6Tnab/v2+pVt0ef/iEUJOvCHBjw00RbbyUfRvTHVWw0Wlqv2dBf7Ll4cDDpE1Ll9aSHrdgFaxZVssVpWy9Ol7uJbmMdpzGCocLBsDhZRON37viDoPjigk1Y+M7sdzvDqtO+5l9mC9oft3enBVZjEYt3LEP6Hcsv9I33M1BZxwUxveyhDpvQjeUcVv+/AIt1NqN sidebar_class_name: "post api-method" info_path: network/stellar-disbursement-platform/api-reference/resources/stellar-disbursement-platform-api custom_edit_url: null diff --git a/network/stellar-disbursement-platform/api-reference/resources/get-all-assets.api.mdx b/network/stellar-disbursement-platform/api-reference/resources/get-all-assets.api.mdx index 582706d77..fd87a8ddb 100644 --- a/network/stellar-disbursement-platform/api-reference/resources/get-all-assets.api.mdx +++ b/network/stellar-disbursement-platform/api-reference/resources/get-all-assets.api.mdx @@ -5,7 +5,7 @@ description: "Fetches the list of available assets to populate the dropdown box sidebar_label: "Get All Assets" hide_title: true hide_table_of_contents: true -api: eJzVVm2P2kYQ/isrf0okDD4wUKGqEheOaxp6JYW7U3JC1do7wIa119ldQwjiv3d2zYs5uCpRX6TyAeydmWdmnp0XNh4DHSueGS5Tr+P1wcRz0MTMgQiuDZFTQpeUCxoJIFRrMCiUJJNZLqgBp8iUzJhcpSSSXwhP3dkdrEiP6yhXGhJIDZkKuaqSO2mg4xSkmtGUf6XWMUlydDWXghFKIipoGoMFoiSjyvAYXanCufWdaxSaQs5KLqpexTN0pr3Ok/dbCd2bVDwFOpOpBhRuvHoQ2J/TzLvHfF2WCBbL1CCu1aVZJnjs4GqftDXYeBqZSqh9MusMEIIqRddoxw0kunQuo08QGxRkSBRgQkUYnJV0tFE8naEOfKFJJuzRdEohDqOGH7aiwA9ZFPo0jEO/FTeawQ9Bs90Omt7WhsngEtKz/Bx9Trfs5H7Ue2NBuNY5qG+FKbQJZQyJ1SeAt9fXvbD9tt8aPL5rD9u/9m4eRm8ef2/3hvePD427D43e+P3NQ38Q3nXHYff9z42Pg0F/0C0yUYA1xf6g5lIgU6kSK/EYKvmGJ6eZ1IN6ww/qftAYXwWdsNlpXlWDIPhogfOM/TvADAT8TeDWDrhZAi4+FS8Mrs4r9T6luZlLxb8CQ7w5UAbKVtT2+0v2hdIEpeSFYtja6I2i31Dc2lCTl/XSPImwwBAiwZKhswslW+R84OcQhodTg5zkfIxi7weZKiE/tygDO7P9PLDPSyryf9zd/v4a5/fXlyrijEH6H1/eZW6P0XwXR2WzXbIa4lxxs8b5u/GugSpQXeQEXyfbiWUL+cGR583AxUytyKsdpu3efGTTLCIogxynbMbfgR2zKU3se3fHezHrcZJZjgtez6bXL49juz4Ywc50F4Z072iuEM1nKYpW3MwJTcnNqN5skUzxpd1zC1hXHUM8nUoXDTeuiUcGhF1PJ8tuiLvRNj/pDt9iEEu84iKAs4jGuAr/GuLVqDd8jRMXt52RUpAo58K4BMor1G3lhC4A5WKBe3NtUdwpJTMl88yuNgUxz7gTSAzKLeK99xTMSqpFlXyQOYmRABzGjCRS4d6PZG6QOCyjwqQ3JE9zUDB5NTcm051ajcEShK1CXdUFYBXDqzEZ6xoSDDOp1jWk3kd7f6fhl7e3n+0Sfl21QyKT2iTU1f3unm9x73SFIN19wZwQuTl2z///T0xR6AbHTg1ZwYK2K0wJm2XRNk/erm2wr+bIlD3ZbCKq4V6J7dYef8YFbVsRH5dUcZu668T9zHFdilVtOyiOIbM9uevy8+lz0r+3N2PUpWdduXBduXuw6HtRui5hP2/XIgT7va28YPIjdhHBnv/poF5IXjQ4dH+hbQmc4Ij6E0aHugw= +api: eJzVVm1P20gQ/isrf2kr4cQQJzlFp5MCAcpB0/QSQBQhtPYOyRbb6+6uQ9Mo//1m1g44BE6t7kU6PgTbM/PMy848s0tPgIm1zK1UmdfzjsDGMzDMzoAl0lim7hifc5nwKAHGjQGLQsVylRcJt+AUhVa5UA8Zi9Q3JjP3bQgPbCBNVGgDKWSW3SXqocGGykLPKSg95Zn8zskxSwt0NVOJYJxFPOFZDATEWc61lTG60qVz8l0YFNpSLmouGt6OZ/nUeL1r72MN3bvZ8TSYXGUGULj09oKA/m1m3n/K12WJYLHKLOKSLs/zRMYOrvnFkMHSM1iplNOTXeSAEFxrvkA7aSE1te8q+gKxRUGOhQJMqAxDipqOsVpmU9SBbzzNE/p0d8chDqOWH3aiwA9FFPo8jEO/E7fawS9Bu9sN2t6KwhTwEtKz/Fz5nG7dyfl4cEAg0pgC9I/ClNqMC4GFNRuAx/v7g7B7ctQ5uzztjrofBocX44PLP7qD0fnlRWt41RpMPh1eHJ2Fw/4k7H963/p8dnZ01i8z0YA9JW65fSmQO6VTkngClXwr081M9oK9lh/s+UFrshv0wnavvdsIguAzARe5+HeABSTwN4E7FXC7Blz+7XhhsLvdqecZL+xMafkdBOLNgAvQ1FGrn2/ZV1oTtFYvNMOKorea/0BzG8ttUdfLijTCBkOIFFuGT19o2TLnx/o8huEha7CNnJ+iWPvBStWQn1vUgZ3Zmg/oec6T4h93tz6/1vb5HSkdSSEg+48P7+XaPkXzUzWqm1XJGogLLe0C+Xfp7QPXoPtYE3y9Wd1QtbA+SHneFFzMnERe85Ft1+ZjSrOMoA7yxLK5PAWi2Yyn9N6v6l5yPTIZ1bis6xZ7/X45ofUhGE6mOzAsd1XmHWbkNEPRg7QzxjN2ON5rd1iu5Zz23D0sGtS8+9zI+FlEM2tzSsAFju8R6Wz5dpbs/WQyYv0Nz5VHXHwGOqEPGZG0YOWx0UJ60x98OBne9g8OPp4PJ73qbXRye3p49abhzk1md8pFJK2jlrGFhJbmxgoe4cYmSmJoi+HNsfHK0LZineCC/muIt+PB6B3uAYzbKpWwqJCJdWWtL3Z3V0j5PaA8ucdtviAU95WzqVZFTvlpiGUunUBhUO56sPaegX1Q+r7BrlTBYjwWXBGCpUrjbSRShcXjpCo5k8GIXc9Aw81bOhHTazYFzCGh2TANUwI2MLymULFpYvFhqvSiiQ3ho71fafj1O4WfVwm/c6efK2NT7qax6r5j3Ib9JGH9dRtvFHL5NNP//6tV2ewWybCJVcExo8WqE8qyHOZrrxpmnPYZVoq+LJfU1uc6Wa3o81e8NhBB4OOca0mpO35YM6HjDpw1mus4hpyYouKebU7cYJXjwwnq8i2uuHdcUT0Q+lqULWrYz0mkDIF+VzuvmPyKU8SQiX57VC8lrxo8clKpTQW8QeL8E9Ii60E= sidebar_class_name: "get api-method" info_path: network/stellar-disbursement-platform/api-reference/resources/stellar-disbursement-platform-api custom_edit_url: null diff --git a/network/stellar-disbursement-platform/api-reference/resources/get-all-countries.api.mdx b/network/stellar-disbursement-platform/api-reference/resources/get-all-countries.api.mdx index 2e38285b3..e3f1c306a 100644 --- a/network/stellar-disbursement-platform/api-reference/resources/get-all-countries.api.mdx +++ b/network/stellar-disbursement-platform/api-reference/resources/get-all-countries.api.mdx @@ -5,7 +5,7 @@ description: "Fetches the list of available countries to populate the dropdown b sidebar_label: "Get All Countries" hide_title: true hide_table_of_contents: true -api: eJzVVW1vGzcM/ivCfWoBv1ycJh+MYYDXtEVXoA1mB8MWBAN9R/tU604apbPrGv7vI3V+OcfJ0ALbgOVDchHJR+QjPuQmydFnpF3QtkqGyVsMWYFehQKV0T4oO1OwBG1galBltq4CabFb5ayrDQSMvjlZl9tVpab2i9JVPPuIK3Wj/bQmjyVWQc2MXfXURNxxBrUJzRWEM4NZ8GqOdk7gCp3xTUskmKPcP7657Wa2dBC0JLECYzAoR3apcyTfSzpJgLlPhvfJJ5pDpb9CrOahkxB6ZyuPbNwkgzSVP6cFjw5lHopjvMxWgTMWd3DO6Cwi9j97idkknjkqQb7C2iGjABGsOU4HLH3r3E4/c2Vs4GwdUtBNJpnNseXl+dpqzl6nqU0KQuxmBRBkAUm9H39SlxfX1yqGdxL8AqUzAnD34Zdk20kqKL8B9nWsc62i9wnKgkBXKEgZIb9s/geEp/BmlkqxJDk7dYN+hDNIB5fddNBNLycX6fDV1fDqopem6e8CXLv83wBufjrJq/Ti/InvKqhDYUl/xZzxCgRpG/bbfv9DP/OgSGTpvKKtZB8IvqElfIBQt/2qupwiCUSJ3rMUnoCPNR/4OaSRfLRBndR8zGJ/DzPVQn4c0QaOYXshyfcSTP2PX7d/v8vz93traarzHKv/+PGe5vaYzXdx1A7bFesxq0mHNQ+uTfITAiGNmBP+92H7IGwxPzmHzjHmDGJK+u0xtUcYS6VNEm2c43hy+gPKfGomRDLaUd/MSR5bQnND7dm4+PnXiao95orFGd+MGd8x3VFezys2rXQoFFTqzXhwdc2TWS9lLyxw3Ysk6WpmYzY6RB2PAxoDdLocbnmXiP7V6PY9J8Hj3zcJPDEXUf09xAteGS+V9gp4UVmjprXmZSMF2NaCiFushAWy3SyUg7WgxFNQc7K1k7VAmGmno0F2Utxs+9srDCtLi576zdYqYwJ4bOaqtIQKprYOTBx3UhNyc6vuCyR8eFGE4Pyw389xiUYa0fd8A9jj9Pq5zXyfCca5pXWfqe9yfHfn0c1bBXfdruCXPZkTzvpQQmz93Tu/4z05Mka9bvXMCZebo4b+t6u/afHAM6fPfHAry5ohI8U1mrlPjpphXRVMkxxuNlPweEdmu5XjP2skkSJ/LoG0FB2VuJ85UaXc0iKfLEMnmtyp/Hz6nOj33ZsJ+8KZJBdRkrsPQd+bqnUL+7FWmxTk97bzTMgPLCHFgv/x4N5Yng04SL/xFg4feET9BZQAf/o= +api: eJzVVm1v20YM/isHfWkL+C3OywdjGOAmaZcFS4zawdAFRnCWaOvqk+7GO9l1Df/3kSfZluNkaIFtwPIhkXTkQ/Lh8WHWUQIuRmW9MnnUiz6Aj1NwwqcgtHJemKmQC6m0nGgQsSlyj4rPjbDGFlp6CLYJGpuYZS4m5qtQefh2B0txpdykQAcZ5F5MtVm2xIjNYSoL7csQCFMNsXdiBmaG0qYqpkgLQDkDjj+8GjRjk1npFSexlFqDFxbNQiWArhU1Ii9nLuo9Rvc4k7n6JkM140aE4KzJHdDhOup2OvznsOD+rsxdcYQXm9xTxmwurdUqDojtL4591pEjjjLJT35lgVAkolyRn/KQudp3M/lCldEBZWsBvSoziU0CNStHYfMZWR2mNkoRoBmnEmXsAcXN8F6cnlxciODeiOCrzKxmgIfbT9GmEeUy+w7Yy1DnSgTrA5Q5SpUDI8UI1NnkSfqX8KYGMz6JEjJqevUMp9vpnjY73WbndHTS6Z2d985PWp1O5w8GLmzybwCXP43orHNy3OKHXBY+Nai+QUJ4KUi+NmS3+fFGv9JQQDR4XNGGs/cov+NKOC99UbfLi2wCyBAZOEej8AJ8qHnHzy6N6M54cVDzPottHGKqhvzcow4c3LaDxM8LqYt/PNy2f6fH/ftgcKKSBPL/uHkvc7vP5oc4qrtVxTqIC1R+RcK1jt6DRMA+cUKv482Y2SJ+EnKdQchZ8lHUrsvUFmHIlZZJ1HH28mTVLbA+lQoR9SvqS50k2WKaS2qP5OLX30eicJAIGs7QM2K8YrohnJrldLRUPhUyF9fD7vkFKbNa8F6Yw6rF9/e9dCp+llHqveUCQuL0PmGbo9jBU/wyGg1E/yByFVGQG1ycNSFnSUxE2TkW8zf9q99u7p76l5f3D3ejXvU2uHm6vf78phVap/KpCRkpH9Rl6EFriYcra0AbjlVJkC+lR0vJlam9oNYg/h7iLS2yd0I5ytsbo8WkULQCmVZTW1tht2ZyDnSu58LKFaOEr1LM0BSW60OIlVXhgDdl2Lfb6Dn4pcF5S3w2hYipLSTmicgMgpATU3hqJ7MUXK4G4jEFhPFb7ojrtdsJLEDzeLiWKwFblF47MbFrE/kwM7hq04Vokn+zsmgmtYKbtir4Xei+Nc5nMgxkdfs+0vbuay0uazf5gMv1frL/t/+QlNfckxK2iQ8aMF5+qLm4cpIfo/0k07SnRBN/XK/5Tj+g3mz4858FIAsEPS4kKi466MNWCYN20KDxUMcxWFaKSnuONfFAVT5ej8hWHgnFPAhF9cDo26N8VcN+riBlCvx703jF5ScaIUEy9PPOvDx51WEnSKU1czgm4fwLW5qxLw== sidebar_class_name: "get api-method" info_path: network/stellar-disbursement-platform/api-reference/resources/stellar-disbursement-platform-api custom_edit_url: null diff --git a/network/stellar-disbursement-platform/api-reference/resources/get-all-roles.api.mdx b/network/stellar-disbursement-platform/api-reference/resources/get-all-roles.api.mdx index 1ce9f5646..67f9b2325 100644 --- a/network/stellar-disbursement-platform/api-reference/resources/get-all-roles.api.mdx +++ b/network/stellar-disbursement-platform/api-reference/resources/get-all-roles.api.mdx @@ -5,7 +5,7 @@ description: "Fetches available SDP roles, such as owner, financial controller, sidebar_label: "Get All Roles" hide_title: true hide_table_of_contents: true -api: eJy9VWFv2zYQ/SsHfWoBx87abR+CokCGdkVbYAuWBEURGMNZusisKZI7Us48Q/99d5RsK3HabUDXLwlF3h3fvXeP3hZMMXgXKRZn2+LZ6an+qyiWbEIy3hVnxa/vi0mxJKyINaibFKV3iVzSUAzBmhI1dPYpavy2iOWSGtRV2gSSCn7xicokVQL7QJxMfxt72y+GMGTGjUSZRM14PyY2ri66Tq6mP7EJlkbpNwJ3TVYLS+6tcehKg/Z3BSkhNm8v2mgcxShLf+dkaz4q1oMZeND1Gm37Va7oMubvT787ZvXaYZuWns1fVP1P/BKz50d41MYTY/znCjFhasdxrm0W0pqUaKRVrOlRme7rNMAofvEJ7vV8QLG7R5gaVX6Y0f0rzb7mdTv9nh/r97Pnhakqct9YvMe5PaD5TxyN04ZmFUNG/LaSgDeU4Nxa+C0bYfKQA0rSTQRco7G4sASXry4gm2YCsS2XgBGyGSawdw0cXDOBnWmgjfqJroK91aZyX8I6++86Kr/zSRGpbNmkjWxui58ImfhcJJPPeTdXMUU+BV5TphT1qJhp9TjjoYldjUuVomdpXOnwHgXznvRBctjo9/kwG5kefaeUg177I2refbjSniq49ZyHSkZiGAWhxtROju5MEoYcvL589sOPENisMRGsaDPNKhp36zMak1Ts4jKRtcjwysRFy1GguwQXFpNc0cD5xVsBsZY+ewBHiK6WIs8XSzwR9Z6CET0heW9FHGNTbsBzjW5oPMohNLgiObcrCLjRKnkXoWbfBvC3wFSaYPKBF1CQRrc7SneeV1P46FsohQAWDqHxTIAL3ybQoaj7FJmnmyUxzZ8sUwrxbDbbz0ecxr7gVODNKl/GmRBMteeNCn4i+SdDxEk1avgkDA0/nepDFnxMDWZvDjp/cei3B4N/i/nvJzHJ2zUT2DJxgrhlqzj64b4p8nBLbD/eYoKldKQH2+0CI12z7Trd/qMlVt/Ico1sFG+2ze79ypaS6dNJL0sKaqDhxTh+ye6Z7c3rK4nFI/essnuGhVbfHbnNqPZDW/UQ9G83+UzKC5l2EG++3If3J59N2Lu0j1Ye9ef5b9TvIgU= +api: eJy9Vm1v2zYQ/isHfWkL+CXrun4IhgFuk3VZsDRYHAxFYAS0dJFZUyR3pJx6hv777ijZVuK024CuXxKKvJfnnrvn4E1GGLyzAUN2vMleHh3JvwJDTtpH7Wx2nL0/zwbZAlWBJEbNIMudjWijmCrvjc6VmI4/BrHfZCFfYKXkFNceOYKbf8Q8chRPziNF3WYjZ9pDZ6aI1JqtdMSqfx8iaVtmTcOp8ZOqvMGe+w3DXaGRwOx7p62yuVbmVkCyiUnX8zpoiyHw0d1bvpr1grVgOh7kvFKm/iopmoT51dF3h6xeW1XHhSP9Fxb/E79I5OgJHqXwSCr8c4QQVaz7drau5lwah6i4VFXik2162KcORnbhIjyoeY9im4eZ6kV+7NH8q559zXTb/n1/2L+fHc11UaD9xs17mts9mv/EUd+tK1YwJMRnBRu8wwgTY+D3JITBYw4wcjUB1Eppo+YG4erkEpJoBhDqfAEqQBLDAHaqgb1qBrAVDdRBPpUtYCe1EeeLqkz6uw7C72yQBcxr0nHNl5vsDSpCmnDL+HPWzKSZ3D4BXmKiVMlTNpboYUxdEdsYV9KKlqV+pP0+8vocZSFZVcn3pJuNRI/sKeGg7f0BNb/+MZWaCrhzlIaKR6IbBaZGl5af7nVkhiycXr384TV40isVEZa4HonA3qig80eIFjF6KSAB5++52BzkTp7wy3R6CZMHmbuMwG74+tUQbe4KxtGOFrg7eDY5+e3s4nby9u3764vpcfd1eXZ7fvrh2SjNlrZ3LiHSUUYwu4pojCI40WFeU2BcNsKlUZELr4B9Gd6K2W+hHWCdLnhovhjiOc/UC9A8ZRCdMzwy2sREq6NS2a4dgR+hUkvkd7MEr9YSJd0qKMnVXuojzLXX6cExKIi97BbjvaPlCD64GnJuC3FnoXKEoOaujiCjWrYuPOU3CyScPZeOhOPxeDe1YRTagCOGNy5cHsZMPpaO1jKGQ/YfdhbDolfw0HcFv0jd9y7ESqWN0U3fF6W42a+db6HKdhojb9Qxw2YdMOKajOBoJXeTJcmxbSs6luaCK5KHzUbG75pM08j1nzWSqJmPK0Va8CYxb7dqEjprQvSX5+hF1t0eO9yvD1bAu9Mp26oDTS+TpruDRN8+2XUv9mOxtxDkbzP4jMuPPO3AG+OnnXn78lmH3e5orYVH+dHwN4FgUzo= sidebar_class_name: "get api-method" info_path: network/stellar-disbursement-platform/api-reference/resources/stellar-disbursement-platform-api custom_edit_url: null diff --git a/network/stellar-disbursement-platform/api-reference/resources/get-all-tenants.api.mdx b/network/stellar-disbursement-platform/api-reference/resources/get-all-tenants.api.mdx new file mode 100644 index 000000000..474ebb018 --- /dev/null +++ b/network/stellar-disbursement-platform/api-reference/resources/get-all-tenants.api.mdx @@ -0,0 +1,47 @@ +--- +id: get-all-tenants +title: "Get All Tenants" +description: "Get All Tenants" +sidebar_label: "Get All Tenants" +hide_title: true +hide_table_of_contents: true +api: eJy1V/tz2jgQ/lc0nptpOxfzDqTMzc2Q4Gsg4dFg6COTo8KSQY2xXElOjmbyv9+ubcAUmqadu/wCrLS7n/bx7ebBUlxHMtRcW80Hq1Iq4Qfj2lMiMkKGVtNqkUBoQ6RPIiXvhAYpZ8TwkIZGk3thFsQsuFDEk6Ev5rGiqKitIwsEcM2gSRpFgfCSk+JnjXYfLO0t+JLiN7OKOHiiStEV6AnDlzonl7PP3DNwAAAiroxI0QqWu6ONEuEc7vB/6DIKUFRuVOszzqp2Y/a6Ytca9ZJ94vsV+7jsz0onnJcar33r8cgK6ZI/bWkWxNyTKgLhbmzcBc8iQdBKgXQM0QsZB4wsqfGSyJCIGsNVSD79fU3tr/bN7799KqDfGdV8Gqvgad8LYyLdLBbXGOwZ9W55yAqaRQWp5gcxjdpDkt0jmqs7rl5ogv7I+OoycQ7a01hMfw3DD32PO0VG9WImqWLkdMevoSbWB92F8dJqXluu02/13enZldNynTYcZILh1WDSGXUG/bywdeZ2Jrv32s5WeAMemUAXsxghTqnnyTg0U8oYVP5hHJtnvzl73+pW33erk4tq96/z6tte+6/B6KJX6fd6H09Hg+qk49ad8fDtu1H7XaXbqPUq1aur0eXhsBgeBFSRDAHJEJBYQzf5UpEtznBO/DhkOgnYQfgp5u/H0OlPpiPXubxsXYG0fTqdtMaX7kZ08xyAaPvX0P04x0mGHBAMnX67038zHY+cq3UyIcWHEaZ2kYmwrfKuN6B/hFfoKeM+jQOTgzeTMuA0TNKWnfk00PxbDKfpPeIHdA4QaNLr98CBCw6AVIIqYwOhU4ypPQKAQmkSBJ7i1HA2peZQgAD6Ek8sBpdsI4CZ8hVZKVVqdqlqVxpuudGslJvH5UKpVPqIhuOI/T+GGQ/4Txo+wJJwAPlbRhitMB+qe6rJSy1984pkngrPhAbYFP8SC8UZFhXMg4zMNzSzE+6dEN3kXKSjxDqplZhHa8c2KzPfrtU8Zp9UvbJdP/ZKtUr12Ksc+2sPTfDMspGw5dANUWaHB7h6j3e/1cnfzfroMAMear2EtN5O2r3hwOlXz8+73XptUqtcjN1Bf/C+3zirTyrD0WTYunQm3caw82FwWu9V291Jo2/tNodRMd8t1u8nYrf2nkoY/h1ZtVJ5f80YhzQ2C6nEV455XHDKuEISefz5ReI7CwNXSqr9Gn7EUjCKPmPl2GM24LMZV2gCylvT+QFWTt+cK7YMhtWXMAXyb96iWPuBSOUsf6uRN5yorZc5/H5HYVj/1+6yBGJIkhR0sG/ecENaQUDcdCUEy4bOdULzbClCbDXNvVgJswLhgwX7gPBaYBd+3TzuMf2+uSXQq0RPc56khKKqVTSbC2vzIyyENBSnnCquUi/bBTMSF3y17eFW9rjkLdgA6D+tvD0S675zt9MFowIFmRXiEdFijktxsgzDgHBGleM6rMviDrqC3PJVwvy5d28QYfPjAxLgOIrwzp7vRJOcu+6QtHY8Zx6T1a5es3noSQY40srDQfmi1e51+jBZzwbjvtvMfg070wvnw4tCQqEi9GWCSJiEb9d7QFvoWaw04AKSHgbUINMT0AV4sFDqFNqTu85hEy9hQ3yFE5ISAxOVzGIBIxLDCrRHwywdMEAlLNG3HM6DW1iiV2glkVIyVzKO8H2KeyISyYG8y0bw2nvIzb1UtwXyQcbEg7QAmcFeLhUndCZjXBYwSibbWa9hhPObl2s6ZvyOB1jouqBTg8jKRSY9XYTg87lUqyIUhA36dnbDZrkH21H24FdJ9iOpzZImfJVV336h70RyUyMGGrUIxqA6ccyny3raBNfWugmgjRbgAUUPD1gOYxU8PqL4S8wVNh58vaNK0Blm+Ro346zSsSehRrEfPI9H2GIZeeyzLbbrph3fOC7cpbsVva7g9BNtr5svXOUs/5HWNJYzGcO/KBiTP+E8BRJnEnjwM/SHVGvINNvqR5kE8AJh/QtA3QEU +sidebar_class_name: "get api-method" +info_path: network/stellar-disbursement-platform/api-reference/resources/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import ApiTabs from "@theme/ApiTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import Markdown from "@theme/Markdown"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; + +

        Get All Tenants

        + + + + + +Get All Tenants + +
        + +A list of provisioned tenants with their configurations + +
        Schema
        • Array [
        • ]
        + +Unauthorized + +
        Response Headers
          Schema
            extras object
          diff --git a/network/stellar-disbursement-platform/api-reference/resources/get-all-users.api.mdx b/network/stellar-disbursement-platform/api-reference/resources/get-all-users.api.mdx index 33b684a79..0beb40710 100644 --- a/network/stellar-disbursement-platform/api-reference/resources/get-all-users.api.mdx +++ b/network/stellar-disbursement-platform/api-reference/resources/get-all-users.api.mdx @@ -5,7 +5,7 @@ description: "Fetches all SDP users within the organization, whether they are ac sidebar_label: "Get All Users" hide_title: true hide_table_of_contents: true -api: eJy9Vm1v2zYQ/iuEPrWA5XfHdjAMy5CuaAcUwZJgGAIjOEknm7VEqiTl1DX833dHSY4cp0E6bPMHW+a98Lnn3rQLDNpCK4s2ON8Fw36ffxK0sZGFk1oF58Ef6EqjrABRwFIqcJiITFondCpuLRpxiQ5kZoNOEGvlUDn2AUWRyRjYR++zZUe7wMYrzIGf3LZAcg3GwJbspMPcts519BljR4LC6AKNkxU8mbR0rDNSLUkHv0JeZHw0mI7OIkxG4TSaD8Px9KwfztJ0GE4GadSfIfan8zTYd4JUGuvuFeT4sr+PeqVYP4NXqV9qZG0KUWanmiQxOkP7ivAbCzKR9h5iJzftqyNNfkB5ucEvpTRIxNwxPUextYE3sBoQbc+LVhB3FcvBFMbx2WQyCQfpdBSO59EohOFgEKbzSZQMoxnG8/7xbTVdR2x5Sg6MVL+/+O9urPMDGMKe4AYzzjWjaQXtTIn7Tg1qko6TdJAkYTwbp+F4NoRwNoYknIwHaZqMz3A6gRNQoPCfgkqp2lUsIbvnwqbj7ARfCpnF/WLPn04w7g9O++dWQelW2shvyAlaISRoON37H2+Y7zQGGqPNsyWHX52BV7SWdeDKtp4q84iiJRc5WgvLZ2q/ivlQOgcYwSftxFHMjyiae4ipluenFm3H3qyZUvy8gaz8169r8jc6zd9v2kQySVD9z8l7nttHND/EUdusDpYxeMQfuLfeoxMXWeYnOo+HJxygo2hoB5DG9eWVKFlLPEi3kkq4FQptlqDkN++vIx5WSIeGJVsBBkXVLmJLl2gjlHZdusLB0rdZdSX1lcW4NNJt/Rj6FcnQXFCW6O9iv+D8UcYY6xI9i8CioFfWiBvra+a9oqTt43HqFvJ35LFbj4OLuhA8dh6MHHCV6BMePv55w7EnIqUwuIIo/3XeO8LKpSIRsyJAiXfXw8mZKIzc0MoUa9x2q4muUu3RSOe3xrXDLAPaotJGpbEEXTlxlYGjK3JxcfWBQGwowgrACaIbIv9lF28oYW+F5AXuaHOIqJSZ8wG0k2ZJKHJYI8mzNa36LXvxpyCWRpcF73uDsSykF+hNleDD7QrdgzbrrvhLlyImAgxxKHLN6Y906Yg4quvKhErojgoEF29WzhX2vNc7LADbtZXDLsHrJTq2PSIYl9psOdUh2Ye1Rpi0Ag6LOuC3XZ5ahbYuB9+IdZ5frPDdYzf/R8VeFZ+j2dQjpNK/WJTGvyhUlXwXlE0jrAg8H+x2EVi8Ndl+z8dfSjTcHPS4ASMh8ht7sW/mku8bKjQu6jjGgrukngSnE+qoo96/uyFdOGmUtW+U+oG9NyK1bfl+2kEVBP7m1f2syU9U2ILa8OeDeiX5rsGhIStt5o+37t+jM62I +api: eJy9Vm1v2zYQ/iuEvrQFLL/Kb8EwzG2yLi2WBYuDoQgMg5JONmuJVEnKqWv4v++Okh05ToN02OYPskTey3N3zx259TSYXEkDxjvbet12m/5iMJEWuRVKemfen2ALLQ3jLOcLIbmFmKXCWKYSdmtAs3OwXKTGa3iRkhakJRs8z1MRcbLR+mzI0NYz0RIyTm92kwOa5lrzDeoJC5mpravwM0QWN3KtctBWlPBEXJMxVgu5QBn4yrM8paXOsDcIIe75w3Dc9YPhoO2PkqTr9ztJ2B4BtIfjxNs1vERoY+eSZ/C8vQ9qKUk+5S8SP1dA0hiiSE8lcUerFMwLwt9roIowcx5Zsa67DhXa4dLta/hSCA2YmDtKz1FsdeB7WHsQdcuzWhB3ZZa9IQ+iQb/f9zvJsOcH47Dn826n4yfjfhh3wxFE4/axtypdR9lyKTlkpPz/xT2bkcoOYBB7DGtIqdaEpha01QXsGhWofhLESSeO/WgUJH4w6nJ/FPDY7wedJImDAQz7/AQUl/BPQSXIdhkJns6J2LicnuBLeGpgN9vRr+EF7c5p/9xKXtil0uIbUIGWwGPQVO7djzfMdxoDtFb6ScrBV6v5C1rLWG6LupwsshCjRRMZGMMXT3C/jPlAnQMM70pZdhTzA4q9H8xUzfJjjbphp7afUvS+5mnxr7vb1693Wr9flQ5FHIP8n4v3dG4f0PxQjupqVbCEwSG+pN56D5ZN0tRNdBoPj3IAFqPBMwAlbs6vWUFS7F7YpZDMLoEpveBSfHP2Gux+CbioaWfDuAZWtgvboBOlmVS2iS4sX7g2K11iXxmICi3sxo2ht4CKeoJVws/Zbkb1w4oR1gW4LHLa8lpFhXivfUN5L1NSt/EwdXPxEWjsVuNgUhHBYafBSAGXhT7Jw4e/phR7zBIMgxiE9a/q3mBGLCRuUVYYl+ziptsfsFyLNR6ZbAWbJnXTW25E9AjR0tqcAnDAacCTzIlvp8l+m06v2eTIc+WRoRoMAh9kpGLEUfKITulXk/PfL6/mk3fv/ri9mp5VX9eX848Xn141y3NGJsohEtadZTcW0pTj2S5MWGiDuKRl1ym3GHjGUBfhrTHvJbQTrFOkxPMmXiON3jBB1wqL5xkLC5Fal9Y6lQxusoyvAPfTFV5ANmTFrXK20KrIKT4NkciF21DrknYH7xLsvdKrJvukChZhWTRWlmWKSBmqwmI5KUtOBYl9h7SF2WuqiDlrtQ7Hkmma0mAT4bViFZkWJh8WSm+IgD7q+5WEH9cC9vMq4Deu+rkyNuNuPFTse7bvtg8z5j9qwZKAFidmC5EKd90ptLu+lP115xX79lwieFrYbolptzrd7Wj5SwGaWhZf11wLHrp7xGy3n5aum5H+1GpRBDn1bjWfTufmUZ+/v5iiLD9p35Vr3+qFrO+35KZm+3FflxDoSReKJ1V+QmIzHA4/H8TLne8qHMZEKU35o7vA30JT3r0= sidebar_class_name: "get api-method" info_path: network/stellar-disbursement-platform/api-reference/resources/stellar-disbursement-platform-api custom_edit_url: null diff --git a/network/stellar-disbursement-platform/api-reference/resources/get-all-wallets.api.mdx b/network/stellar-disbursement-platform/api-reference/resources/get-all-wallets.api.mdx index a17124962..873922dfb 100644 --- a/network/stellar-disbursement-platform/api-reference/resources/get-all-wallets.api.mdx +++ b/network/stellar-disbursement-platform/api-reference/resources/get-all-wallets.api.mdx @@ -5,7 +5,7 @@ description: "Fetches the list of available wallet providers to populate the dro sidebar_label: "Get All Wallets" hide_title: true hide_table_of_contents: true -api: eJztVm1v2zYQ/isEP7WAZcuOnXTGMMBD2mIb0AZIumILDIMSzzZriuRIyq5r+L/vTvKLHCdpC2z7tHxIFPLu4d3Du+e44RJC7pWLyho+5G8g5nMILM6BaRUis1MmlkJpkWlgK6E1ROa8XSoJHs0sc9aVWkSoXKS3TtqVYZn9zJSp1t7Bil2rkJU+QAEmsqm2qza7wy3rZ8KoL4IOZ2FuSy1Zbq2XyhDiSsV5BfHgXJbB1HpgATTkUZkZE8wJH1WOkfgza7RFA9kIoT5dGRWV0HWeHqYEFhg6s9vrmyS3hcPAjmmHNm/xKGaBD+/5+0bkfNziHoKzJgBubngvTenPKbOjA587OETLrYkYDhkL57TKK7zOp0AeGx7wKgpBX3HtADGE92KNfipCERrrNvuEseMG5uwAiajjULJhE6JHptAGPovCaVoaCCl+ADlI+oOBSPpXr3qJSAGS7mV6dXkFqYSsy7ctbkQBzyP9rjIv8GpHIWCS5DO3BTgx+4rfPEYXhp3OsvZHEtrIO/kHcJNuOsm1QoIm0hZCmeexhFOJhGX7HEsCgmllFpMzRr85pk6QjuAJL/eA5SknIj6GhOVW0A6XaJREhdw14Xtp7yJJr5KL7l0vHQ7SYX/Qvuy/+pOASyf/DeD6p8X7afe8Lj8YUca59eoLSMSbg6DORrvt99fnE3UI3lt/ntGWoo9efEMlhyhi2bQzZZGBJ4gCQni0zuqcD/wcwuDvbGQnOR+j2J+DTDWQH3o0gSu3fffT91Lo8h8/bn9/F+f398b6TEkJ5j++vMe5PUbzXRw13XbJBshLr+Ia1XbDfwbhwY+QE/x3vB0TW8gP6hufQRWzoC3eOWrr3v+W8qxDaKIcNdWp34BEtVY5PtoRX0s7ai2RXBPLWw+4//XjHSsDyHrEoCPyveO5xYKaGdyqhpgw7PVtb3CJQ0ktabQtYN2uKFJmaqtoVKy6+DaCpiF2MjFvcMBS97PRzS8YxBLvuA7gLCKaa89DvMDh9pIpHHQ4va1mWal0rBJoTuNqtBdiAbivFzhd14RSrQo287Z0NMk85MqpasNiUNWs3p9uIK6sX7TZH7ZkORKAoilZQXNbZLaMSBxN7srl+obdz8HD+MVefFFpQVMZhnaoAdsYXkfaPHSQYJhZv+4g9Qn6JzuLpDniE7dL+GWbVMLZEAtRFf7unt/iE2GEs/7joWJOmNwc++f/R9HXHkV1J0UUtg7Sjh1Ds8xrYrFuzHu+b8wxPQ3wiYBLm00mAnzwerul5b9K8NTt+LkUXhG3VbPvZa0SAuwb6tE8B0dtvxOSc4E7kYi3r+/QVpz1/aLq+90Hoe+3zLqB/VAQ6hDo97b1hMuP2KcMVeWng3m986TDQV9qa2JwjCr4Nw0pCmY= +api: eJztVm1v2zYQ/iuEvrQFLFtxbKczhgFuk3ZdsTRAnBVdYBiUeLFZSyRHUnZdw/99d5Rf5DhJW2Dbp+WDI4l3D+8eHp+7VSTAZVYaL7WK+tEb8NkUHPNTYLl0nuk7xudc5jzNgS14noNnxuq5FGDRTDOjTZlzD8FFWG2EXiiW6i9MqvDtEhbsXLq0tA4KUJ7d5XrRZENc0nbClfzKaXPmprrMBcu0tkIqQlxIPw0Q9/ZlKdxpC8xBDpmXasI4M9x6mWEk9sgabdFA1EKodpdKesnzKk8LdwTmGDqz6/OrONOFwcD2abtm1Ig8n7iofxt9qEUejRqRBWe0coCLq6idJPTvkNnBjs8NHKJlWnkMh4y5MbnMAl7rsyOPVeTwKApOT35pADG4tXyJftJD4WrfdfoZY8cFzNkAElHFIUXNxnmLTKENfOGFyelTlwv+E4hu3Ol2edw5e9mOeQIQn/SSs94ZJALSk2jdiBQv4GmkP2RqOR7twDlMknymugDDJ9/wm3pvXL/Vmlf+SEITeSd/B2Z8koyzXCJBY6ELLtXTWNzIWMC8eYwlAMFyqWbjI0a/O6aWE4bgCS+zgOUpxtw/hITlVtBKJNAo9hK5q8O3k/ZpnJzFpyfDdtLvJv1Ot9nrvPyTgEsj/g3g6q8RdZKT47q8Ubz0U23lVxCINwVONxvt1j9en4/UIVir7XFGa4reW/4dlew892XdTpVFCpYgCnDuwTqrct7xswsjutSeHeS8j2K7DzJVQ77vUQcObtvbT89znpf/+Hbb8zs9Pr832qZSCFD/8eE9zO0+mh/iqO62SdZBVlrpl6i2q+gVcAt2gJzg62g9IraQH9S3aAIhZk5LUWuvrVv/a8qzCqGOstdUI98DiWqlctFgQ3wl7ai1RHJFbNS4x/1vH4esdCCqFoOOyPeG5wZzcqJwKTQxrtjFdbvbw6Yk59TaZrBsUvW+4k5m9yIiAaIEQuD4npLN0d7Bk/06HF6xwcHOmx0ZukGvE4PKtMA4qnOj/vNscP77u8vx4PXrDzeXw/7m7erd+P3Fp2fNcHBS3ekQkfRBW6495NRaD/r4FbZ90iSGvhjeHCuvCu0oVuq2T0M8x5b7gklsvzhT6Jylpcx9oLU+I4SBo+AzwPV8hj1/SSjhK2cTq0tD+VnIpJFhQWNQYYLY7q7AL7SdNdknXbIMjwWlXLCCpgme6tLjcRJLweX8it1OwcLo+bYloP5DTpfDNV0F2MTwWkJnroXkw0TbZQsLIkb/eGMR1weP2GwSfhFO32jnCx6u46b63uLgMsAJ5OOujg+YXO1v9f+j2rdGteo2eZTbFtKO95g6rM2JxUoubqOtXIxoYMHBBT+tVnRxbmy+XtPnv0qwpEH4OOdWErdBgrZiG+QJbzMpR5aBITHayNux7B4I19uLIdryIzWaBTXaPBD6dkkta9j3ZaoKgX7XjUdcfsZ7ylDrftmZVyuPOuxUr7ImBkeozX8DMWA7mw== sidebar_class_name: "get api-method" info_path: network/stellar-disbursement-platform/api-reference/resources/stellar-disbursement-platform-api custom_edit_url: null diff --git a/network/stellar-disbursement-platform/api-reference/resources/get-organization-info.api.mdx b/network/stellar-disbursement-platform/api-reference/resources/get-organization-info.api.mdx index 73c0f1b3f..8fb39d867 100644 --- a/network/stellar-disbursement-platform/api-reference/resources/get-organization-info.api.mdx +++ b/network/stellar-disbursement-platform/api-reference/resources/get-organization-info.api.mdx @@ -5,7 +5,7 @@ description: "This endpoint returns the organization's info. It is used in many sidebar_label: "Get Organization Info" hide_title: true hide_table_of_contents: true -api: eJzVV+tOG0cUfpXR/kmi+kIhTSVUVSKBpEAIBENIi5Azu3vsnXh3ZjMza2osS32Nvl6fpN/Zi1ljoK0UqQpCeL0z5/ad71yYB5ZcbrQjF2zPg82NDf6IyUVW5V4ZHWwHp+QLq50wdiy1upH8WsTkpUpd0Akioz1pz3Iyz1MVlRf6nx0LzwMXJZRJfvKznKDOhJ8p8hDMrcnJelWZ1jKj1i3nrdJj3KLfZZan/GrgKU2lFTsqDhadIDVjMyxs+rhQ4n3utvt9Vwl3Y+XCwjrK4HI3T6UfGZt1QxlNSMfdmKa9+mYP4fbbIffZIBuGCtgJC345lFFkCu2HeREi9OGEZo/78+bVx52DrY8HWx8Otw5e/7L1/mj39fHg8Gjz3dHRby8Hx1sf9s9e7J2fvL8Y7F5sHvz4/Ghz6/R08JYNe5XRjdE0LHw0NKORI/+4se82NraRUYgqN0RyrJnKdGjpS6EsxeuZ3tMyTMmJrEi96haOrGikxLWxk1FqrgUAE20UmQO1C6ExKUnd9sHbgmDfZQ52x4xcCeYwI+fkmIaeMs4CrTtzlpCICudNJgZHA1ELiEZAIPrSF497bdVC6any1BOs4FNMI4loPi3lldNPPASY0xT3xL4uNdTHT5yo+SyUx5fcOKeAifBGyDgur45MChyA9a0vU2lVCd22mM97xy3WvAOtFwtxnagoge1SQftc8AW2OVLjAkkRUses47QV0VulJ3d1pHgnxqQJVyAVzsRg94S9dOAxf1awRKSmyOJTpUUkHcJIII9fbbzIUfploCsIdKrAZQHgYT2SaTpjFkAte+fLu/jyrHeb93uo96spRCKnJKTI5Yx5Iq6l8owaJ22G45FFau+FqydeoZgmD+CA4Kp8k+0xt43P/xudjs9O7qdTAx9fiExMazhGhsPztE46Lo1vnHKIek2sBcS9xHockP+Bd8s4YAwksw+AkyfoowIRqFE9sMo4wafypxM83/h+nUPnGu4lxqobdM9OkJCMyfL0Wny1MUjWGrve1RccI6B1/6zBeemL9j1dZCFZVlFDfY/6MuYliks3gnfI10rMt140doBUS/NdibbiUqzZN/gZc6X46ubqBDIkZQr2Yx67qO6VGtjXIwP9d3sEWAOO5UbppmCrQmgvAmCpgjTq2DPLMCZj5nIm9UygNiMMUBlZVHEpeb5fXmwr41WnYb+W0xA7DZcgf63WCIE1QpjRmuW//vjTifb6Ier1o6wJOQY8l0E7zOAKo5eiwiqPveRyHrwkacnuADB8vVpcMZQAjyEaU8klyUfByuYT3CoZMI2rRLZVLfkkc3WIFahTr3PBTp2aRo9imKu6WUP/4OKsApMHBOcU5VSXUUc4NUbvFNfKJwBL7A02f3iBTqKm3AsBF1cuq0dW2RvlV1bG3da+Ik7qrU/snOzDCTQBVzlwDx9IPK7iKabuM2aBRGs0qQgLlVZrSRtAx30zkxPCeTppBmL5VoqxNUXO2UZTVbkqDwz3Vt+yrsnzAtYTPFcjAGCBociMxYANTeEBXDkdWAR7wGVClq6eNssv1lpKuSDcynYbm8j1ATCNjZ31AX0X8t1HN+Vn5cTFiPKg++3a/u/qa37bJL/xUqvI7tGd+nADpAYo9b8iVQFdBuZOGSbAjN/P5yEG4rlNFwt+/aUgy6WJx2ail5XZTJeyasv/KoKdKKKca7Rum+tzZqWe3+yd4a5cq89JWZ/1A2tvjvSspftu4VYu8N9F5wGRn1BPAtX/8/J6dfKgwLIPVLcZxiv07r8BgLsvbQ== +api: eJzVV+tOG0cUfpXR/iFRfaGQphKqKjlAEiAGgiGXIuSMd4/tiXdnNjOzpo5lqa/R1+uT9Duza1hjoK0UqQpC4N2Zc/vOdy6eR5ZcbrQjF+3Mo63NTf6XkIutyr0yOtqJzsgXVjth7Ehq9VXya5GQlyp1USOKjfakPcvJPE9VHC60PzsWnkcuHlMm+ZOf5QR1ZvCZYg/B3JqcrFelaS0zqt1y3io9wi36XWZ5yq96ntJUWtFRSbRoRKkZmX5h08eFxt7nbqfddqVwM1FuUFhHGVxu5qn0Q2Oz5kDGE9JJM6Fpq7rZQrjteshtNsiGoQJ2BgW/7Ms4NoX2/bwYIPT+hGaP+/Nq90PncPvD4fa7o+3Dl6+333b3Xp70jrpbx93uby96J9vvDs6f71+cvn3f23u/dfjzs+7W9tlZ7w0b9iqjr0ZTv/Bx3wyHjvzjxn7Y3NxBRiGqXB/JsWYq076lL4WylKxnel/LQUpOZEXqVbNwZMVSSlwbOxmm5loAMFFHkTlQuTAwJiWp6z54WxDsu8zB7oiRC2D2M3JOjqjvKeMs0Loz52MSceG8yUSv2xOVgFgKCEQffPG4V1ctlJ4qTy3BCj4lNJSI5tONvHJ6w0OAOU1JSxzooKE63nCi4rNQHg+5cU4BE+GNkEkSrg5NChyA9a0vU2lVgG5HzOetkxprjkHrxUJcj1U8hu2goH4u+ALbHKpRgaQIqRPWcVaL6I3Sk7s6UrwTI9KEK5AazERv75S9dOAx/y9hiUlNkcUnSotYOoQxhjx+tfEiR+mHQFcQaJSBywLAw3os03TGLIBa9s6Hu3h42rrN+z3U+2gKMZZTElLkcsY8EddSeUaNkzbD8dAitffC1RK7KKbJAzgguDLfZFvMbePz/0ank/PT++m0hI8vxCahNRxjw+F5Wicdl8Z3TjlEvSZWA+JeYj0OyP/Au5s4YAwksw+Ak4/RRwUiUMNqYIU4wafw04iebf64zqELDffGxqqv6J6NaEwyIcvTa/HNxiBZa+x6V19wjIDW/bMG56Uv6vd0kQ3IsooK6nvUh5hvULxxIzpGvlZivvViaQdI1TTflagrDmLLfYM/Y64U39xclUCGJKTgIOGxi+peqYEDPTTQf7dHgDXgWG6UXhZsWQj1RQAsVZBGHXtmGcZkwlzOpJ4J1GaMASpjiyoOkhcH4WJdGa86S/ZrOR1gp+ES5MdyjRBYI4QZrln+648/naivH6JaP0JNyBHguYzqYUZXGL0UF1Z57CWX8+gFSUu2A8DweLW4YigBHkM0osAlyUfRyuYT3SrpMY3LRNZV3fBJ5uoIK1CjWueiTpWapR7FMJd1s4b+4fvzEkweEJxTlFNVRg3h1Ai9U1wrPwZYYr+39dNzdBI15V4IuMIkeCGdiu94xAsgBxAc5x2F76zZDpLi9Tn6XWfFcmVRQIyeP2uS5jaRiLJuOEcbnb3uwXG/s7t7cnF8vlM9nR70j/Y/bnA/4aDBNfZI+ZVFdq+2RYnTahcVkIV7aE2udO0elpJ4XMUT7AJPmZsSDdukYlCotFyW6ml13M0zOSGcp5PlmA5vpRhZU+QcH1q9ylU4MNzxfc26Js9rYUvwtI+RFovMisxYjP2BKTzSGWYWi2A7uRyTpasny5UcyzalXKZuZedOTOzaAJ9Gxs7aIEQT8s1H9/enIfsYnB5FePtl4t9V/fy2dX/nDaAkvEfPbMMNlBpAqb4glWV9GZk7zWEMzPj9fM4Ev7DpYsGvvxRkuWHg43LPCP1iOfNCLwnfdaJOHFPOnaNq5uvTb6XLvNo/x1251jUmoWtUH1j78kjParrvtpPSBf67aDwg8gvqSaAn/XpzvTx5UOCmO5W3GcYrTJS/AaEUYKI= sidebar_class_name: "get api-method" info_path: network/stellar-disbursement-platform/api-reference/resources/stellar-disbursement-platform-api custom_edit_url: null diff --git a/network/stellar-disbursement-platform/api-reference/resources/get-organization-logo.api.mdx b/network/stellar-disbursement-platform/api-reference/resources/get-organization-logo.api.mdx index 706427dbe..ab4b7b4a0 100644 --- a/network/stellar-disbursement-platform/api-reference/resources/get-organization-logo.api.mdx +++ b/network/stellar-disbursement-platform/api-reference/resources/get-organization-logo.api.mdx @@ -5,7 +5,7 @@ description: "Retrieves the logo of the organization for display in the UI navba sidebar_label: "Retrieve Organization Logo" hide_title: true hide_table_of_contents: true -api: eJytU01v2zAM/SuETi2QxEWB7ZBbhxZF1gENlhbDEORA26wtRJY0iU7nBfnvo2xnczFsp+USyY8f71GPR1VSLIL2rJ1VS/WZOGg6UASuCYyrHLiX/uxChVb/wBQILy5AqaM32IG2Pf68AouHHMNCzZTzFPrIVSlF74kfJ9mfpKrEMFZRLbdqCqndTAWK3tlIAh7V9dVV+ntL8vFB0gtnmSwnFL03uugLZK5g4nnkQNgkLBY1NZhO3HmSZIG0raSAaGhQ8lWuLYZOndJvphri2iXWFbFEeeRaLtlUfmYGBZGKNmjuNqnHwPcDYaBw06akXy3R6wfqJMFik+4JduEseaZ0ElUTlhTk9lbrxy9P0EYq+5GjJIrmUesMoq6sQK+aa0ALd5vrd+/BB31AJthTt1BJkbYvrmej2aT2GyZjMMCtjnkbolC3DGuDnCYCN+uVkDhQiAOBPxg9yWP/u8TF5nZ9CToCAjtnIG+14V7AdIpiMQcN7klwswePXarSf0Wogmt9sl6gQnvdA05I9VY7d7fEry7sF/DVtVDIAOTRS2hcIMDctSyDk6ceUm7XsK0p0O6iZvZxmWWl2Nwko8ZFHAouhF5WuiJmMmCqXOgyGf1c8udjxLycCJ77UfClzFmc4iI3aNOkx3c+LxNMLQ6j/d8M9fjbzv9rBUfvMX3nTILEY8KxDSY1G0y9VdOCktLbWjawFiUJPh5zjPQczOmUPn9rSdZkuZXjAYPGPLlpu5Oyo3eX26MS1yWHFwX5tD4HNO2wAn9Z0dNusnL3d0/i2J/hgJy1 +api: eJytVN9v2jAQ/ldOfmkrAamqrQ+80VJ1rFuLBmiqEKpMck0sEtuzHboM8b/vzqRbWLU9jRfs3K/vu7vPO5GhT52yQRkthuILBqdwix5CgVCa3IB5jmfjcqnVD8mO8GwcZMrbUjagdLQvJqDldi3dQPSEseii5ySjpLcYHjrRnygr+QSZezFciq5JrHrCobdGeyTjTlycn/PfMciHOwpPjQ6oA1ultaVKY4LEpAFD3weHsmKbTwusJJ9CY5GCyaR0TgmIQyUpXqyVlq4Re/71RIWhMIw6x0BeVoaCLkmXflIeGHhMa6dCM+MaB7xXKB26Uc1Bv0pKq+6woQAtK76z2bhXyj2hmFSBMkNHt2OuH7/OofaYxZZLCiTOLdceeJVrMr2oUIDUcDO7eH8J1qmtDAgbbAaCCF1Jr9I/EBUhWCYQgXML2OdN7RgJH+bzKYyOKrcVgcLw8l0fdWoywnFoLS/MyWj8eXL/NLq+fljcz4ftbTp5urt5PCFUeyb9bCIiFUqGMAtYltLBWPl17Tzh0gGmpQw8J6BYgrdF5w/Q3mCd0wr+O8XpbDw9A+UJdzCmhHWtyhDb2p0tLb6BSm6Q7OUGrGw4S/wqIXemtszPYaqsigZDoKIAXqtrDC/GbQbwaGpIaSy0ihlUxiHItakDjZO7FEPGU1gW6HB1yhPxwyTJSHwly8cP/CHhgOAlmUl9Qs3H3LgmoYXoU3y/9ehnHcJ92xI+i9O3xodKau50u32vEoeu8KAV5VFTd79F9r8ehnb/An4PCTnR5hPG2pVc7CC1pegmpJAoNnoXCmLC5t2O127hyv2eP3+rkcQ7XNJxK52Sa96m5YrStooaLneCtMC6S1O0LOqtLOuDMP/ycOxXnYfg9mZOG/sT2/DN6g== sidebar_class_name: "get api-method" info_path: network/stellar-disbursement-platform/api-reference/resources/stellar-disbursement-platform-api custom_edit_url: null diff --git a/network/stellar-disbursement-platform/api-reference/resources/get-profile.api.mdx b/network/stellar-disbursement-platform/api-reference/resources/get-profile.api.mdx index b68ca2296..79c511a32 100644 --- a/network/stellar-disbursement-platform/api-reference/resources/get-profile.api.mdx +++ b/network/stellar-disbursement-platform/api-reference/resources/get-profile.api.mdx @@ -5,7 +5,7 @@ description: "Fetches the individual information of the logged in user to popula sidebar_label: "Get Profile" hide_title: true hide_table_of_contents: true -api: eJy1VE1PGzEQ/SuWTyAlWYTUHlBVlSoUQS9RQ1VVKKqc3cmuidd2x95AGuW/M+PdfFJQL+UAi+fN+M2bN15JhOCdDRDkxUqen53xnwJCjtpH7ay8kN8gNmiDaAKg8Ohm2oDsydzZCDYyXnlvdK4Ynz0ETlrJkFdQK/6KSw9Uxk0fII+USCU8YNTtlTONIf6yqoY9bIiobUlYeFK1N3x0qyzIdU8a9U/woUtooqDN28iHwsEnhg0clpyDzrTUuhyFqJaUoiPU4WWtNaVQprL6T1LgFXIM21562Hbb20Frif+W/hHHLcV7mtQCDMspJ39lIccRjFEoLnVBFPiHcIRPoJuCENcQxWg71cPRf4FIYwwiViC0LfRCF40y9DlzWKcSws1S1LiyhIIirU2iE975xqgIKdxdILwqYUDXRFUm/puLiX2AvEEdl3S8kp9BIeBlEyv6d7KmcA2xcsy3hGQixSGZ7fy4yR+z8doB7lfZjdPrr8Dz7BTisMNONh4zN16BKkjUYz1uf9xxf4Wg/oWiRFqAzvg9EXRpKfSoYyWUFVfj83fvaV/0gkWYw3KQPMDaJTY6mv0BDXWYNhiIuqV5kHAssbgc3RCJBWBoCbxgdEfivl3iZDwcnQodhKKpOCOmjTYxNbDvl8Ajq9UcKG7mNKclV0mnSpToGs+TRsi11yngFjzmvdstxEeH84H46RqRkwBIGoraIQg1dU0k4WgP2pThSNxXgDA5qWL04SLLtkYOg9AWZKtnhctDRgJD6XCZkfR9yu93iH6x13Dfdw2fDniJvQuxVukl6ub8hs9Xu8fsP1q+tV+Ep5gRV7IZ0WwwvU6tm++l361DRQ3w0Wo1VQG+o1mv+fh3A8grQp8LhVpN2US0Ib2NZXl7yGxs7DwHz7uyUKZpnX/0TB/s1fXVHWHVi2WZp2XpPrj6JmSXe7WPt6ilwL/XvVdSPpC5Ba3ixy28jbyasF3KFs0KTuhBewbXYVgl +api: eJy1VV1P2zAU/StWXgCpbRDaeKimaYUyBmhQrUUTQhVyk9vE1LE92yl0Vf/77nXS74H2sj60ie/Xufee484jC85o5cBF7Xl0cnxMPym4xArjhVZRO/oBvrTKsdKBZcbqsZAQNaJEKw/Kkz83RoqEk3/87ChoHrkkh4LTk58ZwDR69AyJx0BMYcB6UZUcC+v8k+IFbPg6b4XK0BdeeWEkHV1zBdGiEUn+T+5dHbwRgpDvez6nGr6QW0vbjGKslhW0OoZby2cYIjwUbj/XAkMwkivxO0zgDXDktiq63XbV21ZrAf8K/g7GFcRH3NQUJI0zGv4VRdT3ICW3rCNShEAf9EP/4HSVoscleNZbbXV79V/B4xod8zkwoVIxFWnJJT6OtS1CCqbHwSp1lkGKloomXjOjTSm5h2CuCzDDM2hhGc+zgH9ZGNE7SEor/AyP59EZcAu2U/ocX4cLNBfgc014Mwgk4mSK4jUfl/F9Il61wM0s63UacQO0z3pCZNa2HhutmRrPgac41N15XP8cUH8pw/4Zx0AUQE38BnMiU2h6ET5nXLGL/snHU9SLmNIQJjBrEbnOuBPJDqLce0MNBOD4PiKfvdohkn0bDHqss1W5rsgwDE4/NEElOkUcFe9oPwed7ver26fO+fnd/e2gXb/1rp5uLh4OWoGZtNGASHi5SZuucKPSOsSlkCW4Tlo8w1iENwXrKmh7WAe48vdTHPa7vSMmHOL2Wks2KoX0YaybLHZEpIJPAO1yguyZUZZwyllmdWmoPwuJMCIY9JTIt1FdgX/RdtJiD7pkCa7F4mZZoS0wPtKlx3XSlEJIt8cec7AwPKSNuHYcr+TlWq5KSAKMU524GIcPmbazGAnRxPhm7dFMNxpumrrho7B9o50veLgfa/a9o775+or9j0KsKOjh1ceIFcmPMEsb7sxKY4+RWYs0xwboaD4ntt1buVjQ8a8SLAkXH6fcCj4iEqFuG0shkaZRAiS3JAFDCp5yWVZ63Pnz2FL75cUAffmehCdBwvUDZV+a1Gwj9662Kwj0vWi8EfIJyc3wgvi8cq8sbwasrorKmyY4xGv2D/IsiVo= sidebar_class_name: "get api-method" info_path: network/stellar-disbursement-platform/api-reference/resources/stellar-disbursement-platform-api custom_edit_url: null diff --git a/network/stellar-disbursement-platform/api-reference/resources/list-all-disbursement-receivers.api.mdx b/network/stellar-disbursement-platform/api-reference/resources/list-all-disbursement-receivers.api.mdx index 8baa596c5..055f5c49d 100644 --- a/network/stellar-disbursement-platform/api-reference/resources/list-all-disbursement-receivers.api.mdx +++ b/network/stellar-disbursement-platform/api-reference/resources/list-all-disbursement-receivers.api.mdx @@ -5,7 +5,7 @@ description: "Fetches a list of receivers within a specific disbursement using t sidebar_label: "List All Disbursement Receivers" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "get api-method" info_path: network/stellar-disbursement-platform/api-reference/resources/stellar-disbursement-platform-api custom_edit_url: null diff --git a/network/stellar-disbursement-platform/api-reference/resources/list-all-disbursements.api.mdx b/network/stellar-disbursement-platform/api-reference/resources/list-all-disbursements.api.mdx index f8167a042..0663f4b9d 100644 --- a/network/stellar-disbursement-platform/api-reference/resources/list-all-disbursements.api.mdx +++ b/network/stellar-disbursement-platform/api-reference/resources/list-all-disbursements.api.mdx @@ -5,7 +5,7 @@ description: "Fetches all disbursements the organization has created. This endpo sidebar_label: "List All Disbursements" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "get api-method" info_path: network/stellar-disbursement-platform/api-reference/resources/stellar-disbursement-platform-api custom_edit_url: null diff --git a/network/stellar-disbursement-platform/api-reference/resources/list-all-payments.api.mdx b/network/stellar-disbursement-platform/api-reference/resources/list-all-payments.api.mdx index fdfa3ffed..b3314a0bb 100644 --- a/network/stellar-disbursement-platform/api-reference/resources/list-all-payments.api.mdx +++ b/network/stellar-disbursement-platform/api-reference/resources/list-all-payments.api.mdx @@ -5,7 +5,7 @@ description: "Returns all individual payments matching the request criteria. Thi sidebar_label: "List All Payments" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "get api-method" info_path: network/stellar-disbursement-platform/api-reference/resources/stellar-disbursement-platform-api custom_edit_url: null diff --git a/network/stellar-disbursement-platform/api-reference/resources/list-all-receivers.api.mdx b/network/stellar-disbursement-platform/api-reference/resources/list-all-receivers.api.mdx index edba480f0..99a0f328e 100644 --- a/network/stellar-disbursement-platform/api-reference/resources/list-all-receivers.api.mdx +++ b/network/stellar-disbursement-platform/api-reference/resources/list-all-receivers.api.mdx @@ -5,7 +5,7 @@ description: "Returns all receivers matching the request criteria. This endpoint sidebar_label: "List All Receivers" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "get api-method" info_path: network/stellar-disbursement-platform/api-reference/resources/stellar-disbursement-platform-api custom_edit_url: null diff --git a/network/stellar-disbursement-platform/api-reference/resources/log-in.api.mdx b/network/stellar-disbursement-platform/api-reference/resources/log-in.api.mdx index 76183af26..e4d67ee46 100644 --- a/network/stellar-disbursement-platform/api-reference/resources/log-in.api.mdx +++ b/network/stellar-disbursement-platform/api-reference/resources/log-in.api.mdx @@ -5,7 +5,7 @@ description: "Allows credentialed SDP users to log in to the SDP dashboard with sidebar_label: "Log In" hide_title: true hide_table_of_contents: true -api: eJztVm1v2zYQ/isEP7WAX+qs6ZZ8mu0mrZI4TmOncZwFKUWdJdoUqZKUHdXwf99RsjM1zbphWL8Mc4CYIu+Od8/z3MlrasBmWlmw9HBN91698l8RWG5E5oRW9JAOT2mDJsAiMN5o06BcKwfKeVOWZVJw5k3bc+vt19TyBFLmV67IACPocA7cYZTM6AyME9VtTi9A1cysM0LFdIM3wANLMwk1KwrFSRK+42IoTo6vvgSdcxHYQF3u837wJlhkk4/9k4MWGnX43scimGc/B6lcBHMtosm55KKTTfvokH50N9fS+v3pdSdh1w/d6nuV3+wduECsBE8P7HQyEEPpMMZ+El5f+UvH0aQnuZpmfO+gCFQnmo1WYjpJVhjr4XzOO8PxTTEcf/hp9qH1ejo/KHoTnjRFfnxz3Fzw+6Pk/cXDPFtl9xAPhmfhcPk6nJ4OO4PjJU+P4un+QE7ed+47s+ksvnpg5z0+6EeXgzeDd6PPp5qv3qluHZkSwB13fr1kMv8fr6d4+U+Dvn5O1j0WkUv4nIN1P0jfYIw2z+jbk+gMs38dwTrm8rqdytMQjA+RgrUshufa50kDbdOggUKNiIhwAxFWJ5i0tJ7K7jJEqxb+0S23YBRLgWhDMmbtSpuIbv6WJH9wBluWPXAlUUGETmc6JoHC8F+z3pVSr2wtA4jI6O1FGdsSp4lEP6H8yiVQHkXMJqFmJiIr4RLCHu9ukXPt4JAwKR/3LElz60gIhDkigeH6F8ITZhh3/gapVUyYijAM12koVJkx0TOSZ5g/ZxbQzXnbBhqvnm5VAsCFj2GLNNTStrBKx2IE7pZ2c0wbC6skS+8ayEip8Z6OCo/xv6XtlAn5rLYfmXnu0ABnmUM87v9k+D/la+zNyAwZN9DvXoz777ukVEOZdgs7eLdbBiTCEl+wQH5JrlCUtuTx09tg1O2dHd1fHm3tPyH+aibivNKMd7TgSt5NDq1y1u4ieWCrgmvl3X3dZBUedK4TFWn41T+2kOG6xyFNCwsoPUe3kk3BJdofZLqcQhlzCT61UYTCaxetcyNcMfKsVMD3gBkwnuYaeCwTp1Cgg28Pr3I81kZ8qUTQoMJDWY24bxA+uR579UclyOwr+TSIFbGCnfAVORrt7b8hmRFL5oAsoKhw8uK5/ENmR/8cFp/qTJeVCedD0JEDKZkhb4UNc2MRBuXIhWQO001J9yLAUEvsiKqYb/Xjm/i7IV5gj7/09DMkX0sS5kK6EgxtYqa2IJazIWULwHO5wHYvfJRyl5HY6DzzPYzyFpkoDzQmVY2Q7e0KHJa7aJEbnROOYBrkg6Ta4KgIde6QBGyAx6lzm4CBuxeJc5k9bLcjWIL0DWhbtgrYwvTakea2jWRBrE3RRhqb6N/cWjSjWsHNbFvwy1bZpSi4lJUNuNXM8wOzNjD+u7OzaiKHL6I2ooTNggDlphxvVUfe0qojsecT36m4sV6HGPzKyM3Gb6P4Dc7XW1wumREs9OK9vdvsflngw5piw+A9/QrQ5thf29i9Jb+dxpvGzqPLOWTuu7Z3tWFyMRyN0TjcTvxUR97HsBVu+v+H9Df8o/6NWUq7fG/7/TWVTMV59dat4vrP74vlP6o= +api: eJztVm1zGjcQ/iua+5Jkhpfg2m7NpwLG8dnhJQbHGNdDdDrBCXTSRdKBLwz/vbt34OKXpp1O86VTPGN00u5q93me3WPtGW4TrSy3Xn3tHbx/j18ht8yIxAmtvLrXu/RKXsRpyA0abUoe08px5dCUJokUjKJpdW7Rfu1ZFvGY4splCYcIOphz5iBKYnTCjRPFbU4vuNozs84INfM2cAN/oHEi+Z6Vx7OLKPjARE9cnF1/82td4VtfXR2xln/sL5LR59bFSQWMauzgc+bPk5/9WC78uRbhqCuZqCXjFjjEn93tjbS4P76pRfTmoVF8r9LbgxPni5Vg8YkdjzqiJx3EOIqCm2u8dBiOmpKpccIOTjJf1cLpYCXGo2gFsR66c1brDW+z3vDTT9NPlcPx/CRrjlhUFunZ7Vl5wSbt6Lz/ME9WyYTPOr2PQW95GIwve7XO2ZLF7dn4qCNH57VJbTqezq4faLfJOq3wqnPc+TD4eqnZ6oNq7COTA7jjDtdLKtP/8XqOF35K3uFrsm7SkFzxrym37gfpmxujzSv6RhKdofavI1hHXbpvp9I44AZDxNxaOuOvtc+zBtqm4fkKNCJCwgwPoTpBpfX2U9ldBmjthX90Sy03isacaEMSau1Km9Db/C1J/uAMtiwjcDlRfghOH/WM+ArCP2W9IaVe2b0MeEgGp/08tiVOEwl+QuHKRTw/CqmNAk1NSFbCRYQ+3l0hXe14nVApH/csiVPrSMAJdURyCutfCIuooczhDVKrGaEqhDBMx4FQecZET0maQP6MWg5uDm1LYLx6vlUIABYYw2ZxoKWtQJWOzgC4O6+RQtpQWCFZ774EjOQab+owQ4z/LW3HVMhXtf3IzGuHhjOaOMBj8ifD/zlfQzQjU2Dc8FajP2ydN0iuhjztCnTwbjcPSIQlWLAAfkmqQJQ25/HLqT9oND+2J1ftrf0XwF9NxSwtNIOOlrucd5PySj5rd5EQ2KLgvfLunzZZgYc315EKNf8VHyvA8L5H3Yszy0F6zttKNuYu0niQ6HwKJdRF8FQFEQrULlinRrhsgKwUwDc5NdwgzXvg0URc8gwcsD1Q5XCsjfhWiKDkCYSyGHEvEL64GaL6wxxk+kQ+JWLFTPGd8BVpDw6OjklixJI6ThY8qyCpTWoFe5ZR5FyCBeSJw3OANi/uzj3J+XDYJ0+Fu2s1cOPHh2WumA4hj0Ik2C1vGqcdvztptFq96+6wvn3q+5PL9u2bgj2U9NUf4m//c7IQwKnOqxMOQ3gDx6WkhpwKG6TGQo3Kkb6kDkCMCeQBoZbQp0WZL1WNo+W7Id7C5HmHoqQgSS1JkArpcoq0mVG1pTafWDFdcDiXCxhCGUbJdymZGZ0miBU0nUhEfqAhqWKwbW9X3EG5iwq51SlhQLEBlZBYGxhggU4dSAMR383Cu4gbfv8W2bX1ajXkSy5xLNiKLQJWIL1qqJmtApF8pk1WBXGVwb+8tSiHewWXk23B73IlYRvENB8LWyW/Psb3xth/d6IXjeTg9VgFlKCFAaDU5EO3mBN3XjEnYBJFOD9gY73Gjrk2crPBbRC/gal/B8slNYIGKN67+83u9w48rD1oY7inVQBaHuK1pd27++U7YlPaeTQY44n7ru393ojr9wZDMA6276EYGhp2DV3BJv6ve7/Bn4fv8Vza+a8J3F97kqpZWvwWKOLi53cAG3Df sidebar_class_name: "post api-method" info_path: network/stellar-disbursement-platform/api-reference/resources/stellar-disbursement-platform-api custom_edit_url: null diff --git a/network/stellar-disbursement-platform/api-reference/resources/provide-signed-challenge-transaction.api.mdx b/network/stellar-disbursement-platform/api-reference/resources/provide-signed-challenge-transaction.api.mdx index 97223a69a..5e7a92d74 100644 --- a/network/stellar-disbursement-platform/api-reference/resources/provide-signed-challenge-transaction.api.mdx +++ b/network/stellar-disbursement-platform/api-reference/resources/provide-signed-challenge-transaction.api.mdx @@ -5,7 +5,7 @@ description: "Allows the wallet to post the signed SEP-10 challenge transaction. sidebar_label: "Provide Signed Challenge Transaction" hide_title: true hide_table_of_contents: true -api: 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 +api: eJztV1tzozgW/isU+zDTNYkNxHbHqZoHg7GDY+Mbxpferm4BshE3YUnYMan895Gwk053quaytVu1D00qGIlzk3TO9x2eZAJpjjMKqXz3JGuKIn4CSH2CcoZwJt/Jc3NyrSpSCLKAhiCG0hFQiRa+DyndFklNvpJDCAJIhInnK9nHGYMZE4ZAnifIB8JQPaLC2pNM/RCmQDyxUw65fexF0GfcSk5wDglD51gYjmH2RowygrKd/Mw9wEeQ5gl8IyXD0yD0+j4ao4G1KC3VRha1slnTN6yWFecr1xi0a1yoDJaWELqfOht37obrhemulovNwDGbfBzo03J0s3RmMz4PHLe3nJm5NTPZ0lU2YB4NhlM1cKdx4tqLZL2Mm+Z0zh2luQLm3FFkKnZ/WtpRgNaaddw4/mmt9dAmnaFNf6GN+m64cfRw0/XLkWZHduTGo9TUbGd3M+ruyk2/h0baVBs5m3Tc3akjJz6OoikaGoPcvxmJuHFwPzv6JT4MtQ1dr/QjnKsIrAbxcDkL/ftOsUmT02Y5CH3NrcZrrc2GJxFjEgZ8M0bOorS7fIPKuGkbR7RZhUcrwo+2M1JG5ZT/x8p2WrvNPP32ZtM69PWdoa7a5MZu4anRc/SyiyynszUGgM62TCmVt0dSndxLSonnA0iKnwf1f3NQ4rqSG4r6vswXGShYiAkqYfA/KmlICCZ/WdIXKdkJocT1DyiAgcQIyCjwhVsJUSnDTOKphYK/l3z/1ORln0Ts1UqtgCtPzorSHO0yrm6EIElgtoOS880QX/L3u9pJEnykEgsFbHJ5JjEs5ZiyaoqeTV0Q1n+1+Ca0mjTCBEoo22KSVsFI4voUQgI//xoyltO7en2HWFh4NR+ndcpgkgDy8nvN18uwj5O6l2CvngI+T+rQx/TEn7g4zK8VRVVqafCv1wA+1CSxVTALcowyJhUkkXyQiQhFeF7BxI697iTKqtUwnCbSFiVQKjKeO9Xc169fl6b+pbNw7r+YdncytmyHz/GdJgh4CRTswcCOH90neQZ3iKdEtUj58xU/yn0BKdNxcBKH+N/ilTen9Zfs8lZW7ohrJ25dC80KTSf7PRz7E+12sjTibqPbnEUR3Ycf1fvjYd9b/dZruCsh3p92vr/M6r4qycKvXunbMduqP7zXz4+mfkvCvQ0+KrN1BOysp3ZmpmZ4w6aCZu37yWru1LdWOrArfUPE19UV0E9KsLLDoO+WgdEs18tmvE7bjWHa40gTHnzUDL3Uxt7NIPY0NQTLRoVAVr+nBv3dq/9pP+iPe4k1TdUS9HNzaa6VoeIOFr1N4ffdZBY/uk53rbkKexi5+mS92hQL19XtSMdDpb0CRlsdae4hiJuNZW/A5k7nMNUW35Z6CGHPPVbuQvhgqvdRP1sY9nHirW7T8qOxx2wePnid3x5H2r0XJa2V4ui5mRN3vHCjTivZjwZq1NIO5DFT094NHJR0CNq0Hc7wtn/ToWgd3ywq+8Qi8WGfdhS3nVgb3z0ZiyACLQMd48mRurf61moYm/Fppo73H0/0YA+Wx7XSb2hB/mi3xxN1XzaCIr0FeV8L94dHdxnF3envv8sXuEghx0+BFKK+Rd4BFvJR/V0B8HcU+gVB7DQXWXtOTB0CAkmnEEqveQly9ABPXCEDqRh3LhgNLmiDRGKesfod9gyWjlRQXp8cOiQB7rx6LlVz9QI9Rw4cEq9sc641W7yi0QEwKMXwVJP5inRAkf9DRAJyxAKqwPnYEzLvfFea0r3jTKTOd54vHiWuBluNa5j5WEDIuf4kvJV+6XRHlv2lYxjjhe3cXUYT68uDuf6lVlWoKPnZN3Awfxbsz4L9ZwUrCmeLq4xBTKSOPD/TpdRF1CsI5bnNeW+SACZ4V+L5x1P8wBuic2a9y3dBl39u4td5d/JB0CbgRIkTTqIoYVVpYrID2aWkqegPUvGV5RVJLOXgJKxUs0DaEVzkokYI9FGOqhf4cGHaF+8ZZEdM4pq0xkVF2oSjg5SKJgJ4mDN3QUWlVSrdyY+NRAAPMBF0SWuXBqLGw6sH2Kd1XsBwh8mpzkHlmutfv7QYwZsFX+eXBX+oEERAYQoqpr0g2H/SRr0h/58d1d/pqM5QzeAjq/Pz4CTBj4K7FDt5ZqVP8ntW4i1XKJiLv3x6Evi8IMnzs5jmUEt4D/aJP764EaPnl88EPniSOWlwn8b5oK4dEcLVSwv+vmN7vnrR6Pg+zNmfyn5+Q66T8VwQqHfpClNOH3yWgCOfFPc7+d/8Txbde1VQ1UeBmH+SE77XBdgJ+bNdcf0BUGrE1w== sidebar_class_name: "post api-method" info_path: network/stellar-disbursement-platform/api-reference/resources/stellar-disbursement-platform-api custom_edit_url: null diff --git a/network/stellar-disbursement-platform/api-reference/resources/refresh-token.api.mdx b/network/stellar-disbursement-platform/api-reference/resources/refresh-token.api.mdx index 9bf9e14e4..1f1608af2 100644 --- a/network/stellar-disbursement-platform/api-reference/resources/refresh-token.api.mdx +++ b/network/stellar-disbursement-platform/api-reference/resources/refresh-token.api.mdx @@ -5,7 +5,7 @@ description: "A user’s token expires after 15 minutes. This endpoint handles r sidebar_label: "Refresh Token" hide_title: true hide_table_of_contents: true -api: eJztVttu4zYQ/RVCT7uAL3E2SZGgKOBcV0kdZ2MncRwEAUWNJdoSySUp21rDQH+jv9cv6VCSEydutn3YvhT1gy2Jw8OZM+eMvPA0GCWFAeMdLLztrS33E4JhmivLpfAOvGuwmRaGUCJgRihjYAyxcgLCq3kx0BC027yseUwKC8I6CKpUwhl1EM2xcTgLz7AYUuqubK4AkWUwBmYRRWmpQFteZlFiv4QZq7mIvCWeAHOaqgTWojzIz+PgjPEuPz+9+ea3LrlvfHG9y478PX+iBrdH5/sNDGqx7dvcH6uf/DSZ+GPJw8FlwnhLDY9wQ3pr7+8S454P71oxvZu3y99Zdr+9b30+4yzdN8NBh3cTixi7cXB34w7th4PDhImhYtv7uS9a4ag348NBPEOs+eWYtbr9+7zb//Jp9KWxMxzv54cDFtd5dnp/Wp+wp5P489V8rGbqCaJO99egO90JhhfdVud0ytKTaLjbSQafW0+t0XAU3czp5SHrHIXXnb3OWe/rhWSzM9FeZ6YgcNVTdz2lSfY/X2/5cp+at/NXcj+kIbmGrxkYp8wfJOkUPUMj2BR17c3px2ApT9BsgcwssTEQ0FrqtZRbmynfCJrZWGr+DcJ/yZNlFpuedMKzmpq/RzCW2mw9TmRpANpBvMtOWfOa6as0vEtpyauaX7JYnYNMrSG/3bH8R575kcdVDXSUFC3ww2K2jvDgmPSrcfq6r22SGdB//PZ7NW8JzBXHeEJHFjRp7ZKUi8yCaZB+zA0BESrJhSUxFSHWRXQJj1QWUnqDNuOYH6os5EZneGYZxbU7BjQHwaBBfEsQGdsRRaAhLDZxUcB92qobQH25hyKUMxLASGoo1l7l28DKLI2QpQevjaSgHisdeo81DzEyzW2OqwvvEKgG7YLw9nH56DjFLB1XShaOVNStec2qtvrqTbSC6TlFlz1dB3uWFlX8AnLcIGjq7ttVl8p8ah53zJcW2mjI+V3fkRgSrLNo70slNWJ4JCqCCBXkpLe9u0eU5lNqgUwgbxRzmouRLLLh1kna61lIEqrJMTdBpg2mjv27SqjFI1LSvvIxiSm6uUxgI6M+cv19iA+946uProcUmyITEmQ8sUUBUkdUVIU7TZCUTgDXkwlRNHcoxVNKIi0zReQI9cS44sWCxKSKTq9OF2BnUk8a5F5mhCEBGjkkqRNEOcwys9IhZkQeYpTT44fYWmUOms0QppA4b5iGKQEbmF4zlMw0kWCIpM6bSH0d99eriHq4VnBdVQV/bLiR4sSS0mLEVX3+rtUWL3Pyv+W6UvMW51UTCUJtIzeZTlzFpZEevNdGQsfFzmi4sFgE1MCNTpZL9xhfidqZFC+nVHMaOP2iR1cvnMK/qHNHIf5JVM6s1STdfPW8cvZVt9fHYLph1Elh1OrCwa+WRL4G/tbBZQ7ue1l7Z8vPaCyCY+CX5/By5d0NzwOhjHZEPuI8/xPSp/Pg +api: eJztVttOI0cQ/ZXWvOyu5AtmgQgURTLmNhBfFhswRgi1e8ozbc9093b3+LKWpfxGfi9fkuqZMRgcNnnYvEThAWamq05VnTpVzdLTYJQUBox3tPR2d3bcnwAM01xZLoV35F2DTbUwhBIBM0IZA2OIlRMQXsmLgAagnfOq5DEpLAjrIKhSMWfUQVTHxuEsPcMiSKh7sgsFiCyHY2AWUZSWCrTleRY59ouZsZqL0FthBJjTRMWwYeXB4jIanjPe5pdnN9/8Wov7xhfX+6zhH/gT1b9tXB5W0KjGdm8X/lj95CfxxB9LHvRbMeM1NWigQ3Jr7+9i474P7moRvZvX87+z9H730Pp8xllyaAb9Jm/HFjH2o+HdjQvaC/rHMRMDxXYPF76oBaPujA/60Qyx5q0xq7V794t278vn0ZfK3mB8uDjus6jM07P7s/KEPZ1GF535WM3UE4TN9q/D9nRvOLhq15pnU5achoP9Zty/qD3VRoNReDOnrWPWbATXzYPmeffrlWSzc1HfZCYjcN1T9zylcfo/X2/5cj8lb++v5H5MA3INX1MwTpk/SNIJzgwNYVvUpTfRT8BSHuOwDWVqiY2AgNZSb6Rc2075RtDURlLzbxD8SzOZZ7E9k054VlPz9wjGUptu2ok0GYJ2EO+yk9e8MfRFGl5LWvKq5pcs1nGQqQ3ktx6rfzQzPzJc0UBHSdYCP8h26wgDR6RXrNPXfa2T1ID+47ffi31LYK442hM6sqBJbZ8kXKQWTIX0Im4IiEBJLiyJqAiwLqJzeKQyk9IbtBnH/FBlATc6xZi5FdcuDGgOgkGF+JYgMrYjDEFDkDlxkcF93ikbQH25jyKQMzKEkdSQnb3Kt4KVWRoiSw9eHUlBPRY69B5LHmKkmtsFni69Y6AatDPC18fVo+MUs3RcKZlNpKLuzKsWtZXXN9EapusUnfd0E+xZWlTxK1igg6CJe68XXcrzKXncMZ+P0FZDLu96jsSAYJ1Ze18qKRHDQ1EQRKggp93d/QOiNJ9SC2QCi4qT+jE1nL3JKLJWuQKyxPF96Gy2Ymee5KLX65DXHBYRCbrBwV4Z2yYDzCMfISJH5EP9pOm3nuqNRvum1Tsq3jr+09Xp/YdKdntwMZJZRty6QfO6FuKYanLCzTDVBvNCVXViarHwhKAvpjfFHZOntpVrDxXwfYiP3ZPOJ6csilKRMRmmPLYZrVKHVBTtcEolCZ0AnscToujCoWRfKQm1TJWrTwPjimcHEpPK9LeOLsDOpJ5UyL1MCcO2aOwsSZxM8xWbmvV0YEbkIUKRP350HTFH1WoAU4jdxJqKyQErmF41kMxUkXwIpV5UURBl9C8XFuVgo+CyKgr+lHXfSTih2eIt1PfdBbB82d7/rV2Q697iFq0iQThxyE2qY1dxPt4P3uvxxj0QufHHg+XSCf1Gx6uV+4wXtXarAx+nVHM6dPrFzbG+BrOtgtPnKMR/XZVbIcV+374QX+2bTrvbQ2O6tT4m2fooHhz8+kgsNsDf7pU8B/d7VXrH5WccLILL6Zdn8/zkXYfnNZVbOyIf8Zb5EwpqJSQ= sidebar_class_name: "post api-method" info_path: network/stellar-disbursement-platform/api-reference/resources/stellar-disbursement-platform-api custom_edit_url: null diff --git a/network/stellar-disbursement-platform/api-reference/resources/request-challenge-transaction.api.mdx b/network/stellar-disbursement-platform/api-reference/resources/request-challenge-transaction.api.mdx index 58c71a561..b3e4c428d 100644 --- a/network/stellar-disbursement-platform/api-reference/resources/request-challenge-transaction.api.mdx +++ b/network/stellar-disbursement-platform/api-reference/resources/request-challenge-transaction.api.mdx @@ -5,7 +5,7 @@ description: "Allows the wallet to get the SEP-10 challenge transaction to be si sidebar_label: "Request Challenge Transaction" hide_title: true hide_table_of_contents: true -api: eJztV1tz2jgU/isa70symxhDQ9p0pw/cQy5AuNNMppVtgQW2ZSQZApn89z2SDeTCpu12d2Z3pn4AWzo61+98x34wOBERCwURxscHI2dZ6s8lwuE0kpSFxkejeWkcGR7BLuFK6PHIcFgoSSiVKI4inzpYiWamQsk/GMLxSIDVnVxFBDQwe0ocCVoiziLCJU2sSY5DgZ3EzFZYSE7DiQFmQiKXjM++RFiIyONYkD1iIEfucRD55JVKo6Cuifop12k7zhX5fE6aTiv3oTUozcon5Xx7OhVz7332fLmYV4e/V0/6QyVeuyk8vyr6d7jmPUdvFcdNOc6+2C8mt5XiB+7NG/i91R5NcSOsZgvtSq5kX+Ut2j47bw073cy4Hlw09PmS8q9ctHDNX+Nhw3Nr/bVbyq9Hg/xsFJydXAXVeJTzFg7Ne3bQYPa7i5mdy3p4cALrZ7Jeq2bd2mRr/6bm1ppVv34TZNe4FlUGlZF1ZfUvetXPsVPr++3Zfb9bHuX6lry87hdbo+HnuNfvFxvTIruyzoa4dJa9zvUX7ix/MqheyE63sLjJ9Xahjj1S7S+1OY9cVrLn01rYKzWWLXv4IVi/L82Z7HiXduH3++vcuT31T4dWtxhVIt5v9vrTwqk/v77ITk9zC34fZoPqO3KxFlf4TJx5bTauvStMPn0y9tfe6BIhUadcRY1kF/2BOiSSJLAJRzkrm38KBw2xDbrV/QL78S+Q/AIJgERdR8bJPrarj5FgAUE0HDMeaGJDSyxQQIUAwkGMwxZAibrmv0SLhHPG9xIiuQfoim9rwI7D4sSRl2z5gi9TW0YRu4iTeQy5U2HtDG1Vbe6Qg8OQSWQTRIJIrozH7+q5f8ZQWjgVq85t3QX5dqIOlTzs+yScENR90uBHL+pb8H22FEh6BMoK8hJJhibqD1Y6ldZx1kLOVtMTqlBy4Iugk5C4Jrpm/DlI1HXrEU7uDjwpI/Exk5lQ6cW26bAgIyTxfcw3/8dQMMkc5mdsn9mZAMM6zxCHiRXcgTiJji0ra5mB+9vWm0MTdcFJEroRo5CgmPsqScpd5asdS0QFAs0L6hIXnNMx1SC2TmIVQgj83flNoVAcAoi18NevXweV4pdCr3v+pdIot5r1RhfW0AJzim2fqJpJPIGK3ULeJxRwpaM37gCDmOOASN0Otw9GCA+7asI5qtIPpeKrV0VRYZV8Cs2DCon8EVp61PF0fJB1jNLEoQ06DmqmaR6qdgzie4h2u36t16WHk5KmapdUeESoGuIYlkOpuhMgABVKKk/4gnBTxafgSTkBaEkek6PXfbt79dhGGZCAfTtEJaVdkBJDbHCnTO9Fm4maob9CAPSASqmqOYYkdPYnAaoeCwXKrZEgFrpz2BgppxGwFWqCMZ76AGsCYUCw6jARRxHjYOR59GPsi+8M39FJ/uKyANPw7TzgTUXKWtgEmobo0t6KFW3Co71CkJNUUmQGulHFjxUHEAlo9JiiCOhvRZJYevCQeYVw2BPEiTmVq47Sl/BYkUCCeCFWh7bqcUQviYoqjVxtM07XOCUbHXkyFV6FfjHo6johII2nMITdo5RXEkAC5iudXP4UepkuFExnZGXqdxtFONobKhWBGxtAlKmwYy7Adchsy8dS8RIqtOrgBOBaJA7sBeXbKg465ZYGGIYaMR9IhvpSB8D4BIdp4LqxAjxTJOTPUIRXSkvSbmjCWRwpJHLi0EhXFLFFSjgb6+koN9GIxbrpOeQQBYpksc2A2WI9ffWRcusl0bpkQXw1FYSZ8oQJ7mVc5oiM6vMJ46sMpP4Yzh9vKNh9EvBxlAZ8aKpBGzEhA6yndlrnHxoyD7tXgV/z5ufnTdJ5Et4VMlAm6DCoEPii8py09K3xuqWh/T2ootp8eLDh1bDH/cdHtZzwkhpRgABlZMd1f1nFg3bKO4foPzWr9uYG2OLZ4E1fwgxDMfb3x/x/mVhv5CAdy38zAU+K/pNT6w0XX47Ona936iFpA0Dr3ePma0NDNzkMAIRPmyenXn13PBuDtUoXpsifEM0hEg== +api: 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 sidebar_class_name: "get api-method" info_path: network/stellar-disbursement-platform/api-reference/resources/stellar-disbursement-platform-api custom_edit_url: null diff --git a/network/stellar-disbursement-platform/api-reference/resources/request-registration-url.api.mdx b/network/stellar-disbursement-platform/api-reference/resources/request-registration-url.api.mdx index 125336174..f6df55205 100644 --- a/network/stellar-disbursement-platform/api-reference/resources/request-registration-url.api.mdx +++ b/network/stellar-disbursement-platform/api-reference/resources/request-registration-url.api.mdx @@ -5,7 +5,7 @@ description: "The deposit endpoint allows a wallet to get deposit information fr sidebar_label: "Request Registration URL" hide_title: true hide_table_of_contents: true -api: eJztVmFP40YQ/Ssr90OPU2KjwMEVqarSBHqBFtI4gHocQuv1JN7G9rq766S+iP/emV0nBO5aPvVDpUaR7Ng7s2/evHmbdZCCEVpWVqoyOAmmGbAUKmWkZVCmlZKlZTzP1cowzlZ4B5ZZxeZ42ayT5UzpglMGNtOqYLzEr8iU7jBmFMbVBjTLuKFMzOIWuyElQAopJZWltJJbwIg2d8g+lSMCgGlwZ+OCfW5mKhBy1jCeppIS8fxZWptx65a7zYvaWGbqpHB4LWgurFxC3rCl5Lhfpaq6YpgVigRSwpNorBkjV7JM1YrgJbh1kgPdbuGxcQ7cABMZiIXbLgXLZY4JUiXqAkrr4dxloOH+TWZtZU6iaC5tViehUEVkLOQ515trt9LKKqHyKMlVEhUcn+sIhDIN3uFyqLr7+73DsEi/aWF0e3vhpzLoBPAnrkUihkqY4GT9ordnWAkrlPb0MwKEMbXO8d2/hCt47ASWzxHMXTCBuTRWOzqC+06gwVSqNOCQ9vb3vwTc3+iIafijlhjw1FBswkyimlT9XID4RZ1CUvE5sEwhNGxls6ObEGsWCiVQWtrxbfSWLgYbWHC6s00FuLdKfgdhcS2WXYG20uP0b7ersB5ZznHVC+D5ijeGGT8rO3p7EKhDVYB+IMwPXvqh6xwvqpxSvraaKHU9ew3E9eTnrxPAaMjbUTaZqvOULijxTBpGUYh5yzMNrZ+O5zA3guGVDNunTjWLRszQLX7gQqi6tN//1B/cHl9eXd4cHvzycXT2YXB1Mfj1vH8Rn8ejOB4Nzm6uz3uDo9OPo9t3x8cHV9cHH4ZHhzcjKlOmr1c53db1rfFMkxGMhgwl4Sva2FSEo2yzVHMs3QkKjH3GxYr0hEX7MEyBPOAq7cmLULqlocagxLbWiEv86Buc89owNXOLN+mfUfa+N8vMce+72dFBmu0vD4NH/+kEBdhMYbEBInWa4zbDX9F00r+Mz04nD/Hp5MZdxjRiu1BM1NYX7QgHUxgQtZa2iUnYXrs/Ateg+zXl3tKK/buABgNKXtBveq20/OzHFHtAJGfAU9BfcH9+OyW+Usc1x0CcKSlcZIcZOS/xFXFOB8Jp3Ht3xCotl2TwC2jCgConYTs00jqOYm82bChNUmsDZKDosdzShLP+eIQglqCNB/BVNfxzijfxcLzHJKnaKpWzpJa5dQUoPedlW7ihxhZ8Afg+X7CKN5TFPeVsrhWdFTPsspCVdC/UkjxpZ/cS7ErpRch+UzUTSIBGDr378oRMqzYoZx8yHL88HlLAs4l8x4St/YYIL8IjxURIMMyVbiKkvovx3Y1BpzsFd6u24L2QJol0VfCSmG77PPEKZbuuTMP/ktL1k1n+/+fgP/3noB14i38SIlQHDvbTSeIN5y74G8Oh6B3LcRpxyZ1BPNkOnup04lCm9TrB0q91/vhIj52P4nO8XXItiSr6hQhabzm5WwfoCuRAQkBFmZc8rwkxHdGP9zsuOb6Kp+gefwENiMvu +api: eJztVm1P40YQ/isr9wPHKbFR4KBFqqpcAiXQgzQOoDsORev1JN7G9rq766RuxH/vzNoJCVzLp36o1CiSX3Zm9pmZZ571yovBCC0LK1XunXrjBFgMhTLSMsjjQsncMp6mamkYZ0u8A8usYjO8rO1kPlU64xSBTbXKGM/xLxKlW4wZhX6lAc0SbigSs7jFtksOEENMQWUureQW0KOJ7bOv+YAAYBjc2TjnOjYzBQg5rRiPY0mBeLoT1ibcOnO3eVYay0wZZQ6vBc2FlQtIK7aQHPcrVFEWDKNCFkFMeCKNOaPnUuaxWhK8CLeOUqDbDTw2TIEbYCIBMXfbxWC5TDFArESZQW5rOA8JaHh8l1hbmNMgmEmblJEvVBYYC2nK9fraLrSySqg0iFIVBRnH9zoAoUyFd2gORfvgoHPkZ/F3DYx2Z9//mnstD/5AWyxEXwnjna5e9PYcM2GZ0nX5GQFCn1KnuPYv4fKeWp7lMwTz4I1gJo3VrhzeY8vTYAqVG3BIOwcHrwF31zxiGn4vJTo8NxSbMJXIJlXuEhD/yFOICj4DliiEhq2stnjjY85CIQVySzu+D97TxWADM053tioA91bRbyAs2mLaBWgra5z16sYK85H5DK1eAE+XvDLM1LOyxbeJQB6qDPSEME9q6vuuczwrUgr5ljWV1PXsLRC3o1++XQBGQ96MsklUmcZ0QYon0jDyQsybOtPQ1tOxC3NNGF5Iv3nrWDOvxBTV4icuhCpz++PP3d79yfXN9d3R4acvg/OL3s1V79fL7lV4GQ7CcNA7v7u97PSOz74M7j+cnBze3B5e9I+P7gaUpozfznK8yWvP1JUmIRj0GVKizmgtUwGOsk1izTF1RygwdqcWS+ITJl27YQisA1rpungBUjc31Bik2EYa0aQefYNzXhqmps54HX6nZN93pok56fwwPT6Mk4PFkfdU/1peBjZRmKyHSB3nuE3wKRiPutfh+dloEp6N7txlSCO2DcUETX7BFnEwhAFRammrkIhdc/cjcA26W1LsTVmxf1dQoUPOM3qmZaXln/WYYg+oyAnwGPSr2l/ej6lesas1R0ecKSmcZ4sZOctxiWpOB8JZ2PlwzAotFyTwc6h86vBHbqR4gYiYRQk44Pgckc2rvZ0nuxiPh6y7s3OzI0M3OD5qQy4UyXlNH+rPXrf/aXA96fZ6N7fX49PmaTiYXJ193kNURDwcN4dIWte5sJZA1pcmKrUBknVUfm5Jdxj6IrwFaFND+yZH/znEu7A/3GeSZs0qlbKolKl1ZVV6xvOmHYbolvE54Ho6ZwWvKIp7y9lMKzrBpsg9IQvpFtSClHJr9xzsUum5zz6rkglsi8bO1mcCj0hKS0NVci794ctDKwY8MUkNjd8cCj7CC/CgMwEWH2ZKVwESoo3+7fWxEW8l3C6ahPdd94ntGc+p0g37RvXcsO2zgiTpZUlXzxL+/yfLf/qTpRl6i58uAbID5eb5fKtl8MH7Gxkk7y0hdBxxwZ1sPYshfmvQOUiRViuShVudPj3Ra6fu+B5vF1xLKhU9IYJG8U4fVh5qFemiEFBQ5AVPS0JMHw5Pj1vaPbwJx6gefwH83P0j sidebar_class_name: "post api-method" info_path: network/stellar-disbursement-platform/api-reference/resources/stellar-disbursement-platform-api custom_edit_url: null diff --git a/network/stellar-disbursement-platform/api-reference/resources/reset-password.api.mdx b/network/stellar-disbursement-platform/api-reference/resources/reset-password.api.mdx index 1ab360a3d..8502b30fc 100644 --- a/network/stellar-disbursement-platform/api-reference/resources/reset-password.api.mdx +++ b/network/stellar-disbursement-platform/api-reference/resources/reset-password.api.mdx @@ -5,7 +5,7 @@ description: "Allows an SDP user who has gone through the Forgot Password proces sidebar_label: "Reset Rassword" hide_title: true hide_table_of_contents: true -api: eJzFVV2P0zAQ/CsrP4HUjxMCHvp2x4EESFBdDyFUKrRNtompExvbaQlV/zu7TqqmB4IXJFKpTeL17M54dntQOYXMaxe1rdVMXRtj9wGwhsXtHJpAHvalhRIDFLYmiKW3TVHyL8Er6wsbYY4h7K3PwXmbUQgQLQSKEqI91LQHd4rY61gCcsCWao6pI+w0AlWozUSNlHXkUQp5nXMpnhjlBM6rEYugZkt13TByHXWWQtVqxJHfGgrxxuatmh1UZuvIAXKLzpk+cPo1CMODClnJGeUuto44kV1/pSxyBibAFURNQVZPVQ8iQ/S6LjjyUrR3Q44b65M6op06jjoaXxLlvyPdJ2V4ay4q6lx4blqWbIdG5+ckCRR63up47DTQnnJRyJ1FG2ZfHSXwMuFdAhrgJkTIMaIagkbfUEfG2Tp0Aj25upKfS8D5ZYmhycQTm8aYVtR4+rs9N5jDXc9l9K+Or+K0WNDfNb+lyP5jz69tk1wL5L3ls+uuESPF0oojnU0FOowlP00Tw/FA7EBZ43VsF1JiV8UNoScvlh0Ugk6/pZY31FjJsyxbr390hh4pLWWVhDk76GG1bz7ed/4Qn+FFK4wg6KKmU5vV8HLx5Nlzbku9w0iwpXaSrCJK3p1b5uV3rJyhS8ufxbrw7+n1UYrc2MRJR9msFpGMQQ+3OqwbH1gAbu+5wciFVnA9f81YO/Kho/Gr81n3P0M84on0GHRIA8QaWDfaxCQDzyGse/nS+KlwS7xutuzsVlDSW4SCh5cDu2FzZtrptGC5qHTqp+w1RdZgO4FPtoGMZfR8ElBZT71FmsASdFt4Ri5L8rR6VMbowmw6zWlHRnwYJqEDnHB509xmYcrHRIX17ZQPcMz7x33EOB8QHrue8OOJyCyeqzA5v3dL17J3Z9tdCDkYf/93mPdej/Q9TpkSe5rZNN50PpN+WKoHHcSjvJQW45XDYY2BPnhzPMprNqvn2b7k2x16jWux3HLFiH2bzJYHxQbnhC86+uN7yS/hpul67sEoOY5OO655RLn4x9jVYArM3y/uOXjd/9tUNpc9HvfSLPw9U5/5k/7OkiElKL0/KIN10aShpDpcuX4C3bioZw== +api: eJzFVduO0zAQ/ZWRXwCpF4SAh751L4gFsVTbrhAq1cpNpompExvbaQlV/50ZJ1WTBcELEqnUXDyey5lzxgeRok+cskGZUkzEVGuz9yBLmF/NoPLoYJ8byKWHzJQIIXemynK6I7wxLjMBZtL7vXEpWGcS9B6CAY+BTZSDEvdgTxZ7FXKQZLDFkmzKADslAQup9EgMhLHoJCdyk1IqDsnLyTmtBpl5MVmKaUWey6CSaCpWA7L8VqEPFyatxeQgElMGMuBHaa1uDcdfPVd4ED7JKSI/hdoiBTLrr5gEikAFUAZBoefVU9YdSx+cKjOy7IN2261xY1xEh7ETx0FTxkMs+e+eFhEZ2poyiirlOjc1QbaTWqXnINEptHWL47HBQDlMGSF7Bq0bfXVkw37Au+io4zd6hFQGKbpOg6uwKcaa0jcAvXj+nG99h7N+ir5KmBObSuua0Xj5uz0XMoW7tpbBv2pfQWFlhn/H/AoD8Y84vzZVZC2gc4Z611wD8hRyw4y0JiZoZcjpbRwrHHbA9phUToV6zik2WVygdOiYsp1EpFXvsaYNpSz4nZeNUz8aQg+E4rRylCkx6HG27z4tGn4wz2RPCgPwKivxJLMSrucvXr0mWaqdDAhbrEfcggvpVfIoozwEywXExOl9zTa/xI474e1iMYO+CE/Cpm34+uUQy8SklEcDOJgNPJlefbi5fZheXn68v11M2rfZzcP7689PRpHA3N+7s5Cvv8vCauwL8dzCnqpOn48M3cbEulTgzWIeUGvp4Er5deU8VUdDZ6ZlIPgKoAzI1w6dbwr8VY/Ehj+7eEpz8hkoH8ea0bCulA6xOTQdZdk2NQ7FQm6R1vWW9Fazl/hVQkYj1TJKDhNlVVwwlFTk4il6iYEw2I7gs6kgoeY64gcUxmFL3Moz1nELTe5ljg5XT7mvfjIep7hDzerwI984HFF649QkfkwtxMy4eky0GtL+YWsxTDsFD21b8LPIIVZCIaMeWw43g+TuLIYekJ2h/H+PmJbvAb+HMZVESqNqKqcbnrEmluKRrumAyVn4tHI4MMPvnT4e+TOR1dGJs6THnXRKrplyyxV5bMU7WR4EyY4CXjblDxccn8111UyCRwPuODjtmNLgtOGPtqvObJp9nC/IeN2egQUJkM9QuWex0P9EfKFfPGQjIdkofj8ILcusiqNSNH75+glhgtmc sidebar_class_name: "post api-method" info_path: network/stellar-disbursement-platform/api-reference/resources/stellar-disbursement-platform-api custom_edit_url: null diff --git a/network/stellar-disbursement-platform/api-reference/resources/retrieve-a-disbursement.api.mdx b/network/stellar-disbursement-platform/api-reference/resources/retrieve-a-disbursement.api.mdx index 2d04e4ccb..35f6c2cac 100644 --- a/network/stellar-disbursement-platform/api-reference/resources/retrieve-a-disbursement.api.mdx +++ b/network/stellar-disbursement-platform/api-reference/resources/retrieve-a-disbursement.api.mdx @@ -5,7 +5,7 @@ description: "Fetches information on a specific disbursement by ```id```." sidebar_label: "Retrieve a Disbursement" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "get api-method" info_path: network/stellar-disbursement-platform/api-reference/resources/stellar-disbursement-platform-api custom_edit_url: null diff --git a/network/stellar-disbursement-platform/api-reference/resources/retrieve-a-payment.api.mdx b/network/stellar-disbursement-platform/api-reference/resources/retrieve-a-payment.api.mdx index d7cdfb5f2..e239f3b8a 100644 --- a/network/stellar-disbursement-platform/api-reference/resources/retrieve-a-payment.api.mdx +++ b/network/stellar-disbursement-platform/api-reference/resources/retrieve-a-payment.api.mdx @@ -5,7 +5,7 @@ description: "Fetches detailed information on a specific payment by ```id```." sidebar_label: "Retrieve a Payment" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "get api-method" info_path: network/stellar-disbursement-platform/api-reference/resources/stellar-disbursement-platform-api custom_edit_url: null diff --git a/network/stellar-disbursement-platform/api-reference/resources/retrieve-a-receiver.api.mdx b/network/stellar-disbursement-platform/api-reference/resources/retrieve-a-receiver.api.mdx index 8f205b76e..3a1f71ad6 100644 --- a/network/stellar-disbursement-platform/api-reference/resources/retrieve-a-receiver.api.mdx +++ b/network/stellar-disbursement-platform/api-reference/resources/retrieve-a-receiver.api.mdx @@ -5,7 +5,7 @@ description: "Fetches detailed information on a specific receiver by ```id```, i sidebar_label: "Retrieve a Receiver" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "get api-method" info_path: network/stellar-disbursement-platform/api-reference/resources/stellar-disbursement-platform-api custom_edit_url: null diff --git a/network/stellar-disbursement-platform/api-reference/resources/retrieve-a-tenant.api.mdx b/network/stellar-disbursement-platform/api-reference/resources/retrieve-a-tenant.api.mdx new file mode 100644 index 000000000..412337221 --- /dev/null +++ b/network/stellar-disbursement-platform/api-reference/resources/retrieve-a-tenant.api.mdx @@ -0,0 +1,53 @@ +--- +id: retrieve-a-tenant +title: "Retrieve a Tenant" +description: "Retrieve a Tenant" +sidebar_label: "Retrieve a Tenant" +hide_title: true +hide_table_of_contents: true +api: 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 +sidebar_class_name: "get api-method" +info_path: network/stellar-disbursement-platform/api-reference/resources/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import ApiTabs from "@theme/ApiTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import Markdown from "@theme/Markdown"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; + +

          Retrieve a Tenant

          + + + + + +Retrieve a Tenant + +## Request + +

          Path Parameters

          + +Tenant details + +
          Schema
          + +Unauthorized + +
          Response Headers
            Schema
              extras object
            + +Not Found + +
            Response Headers
              Schema
                extras object
              diff --git a/network/stellar-disbursement-platform/api-reference/resources/retrieve-all-statistics.api.mdx b/network/stellar-disbursement-platform/api-reference/resources/retrieve-all-statistics.api.mdx index 4fcf0fb57..dc70be4f1 100644 --- a/network/stellar-disbursement-platform/api-reference/resources/retrieve-all-statistics.api.mdx +++ b/network/stellar-disbursement-platform/api-reference/resources/retrieve-all-statistics.api.mdx @@ -5,7 +5,7 @@ description: "Fetches all metrics on all disbursements the organization has crea sidebar_label: "Retrieve All Statistics" hide_title: true hide_table_of_contents: true -api: eJzVVm1v4kYQ/iuj/XQnEXC45D5EVaW0uZ6ulaqoJKqqCKHBHswettfdXZNyiP9+M2sDJia5JDpVbT4Q4523feZ5ZlgrS640hSOnLtZqGEXyLyEXW116bQp1oT5SQRYzGHn02nkdO9g6qZ6KTeGp8OKGZZnpGMVt8NmJ71q5eE45ypNflcTRzPQzxZ4dS2tKsl7Xmb3xmE0S7aaVdZRzRNdy0pwjJcteh6XdiBcUVT4lC2YGh/49NTM2R18HeH/GL+gfzMuMQw6jDZeAK7GcxKbiBNZ9u8zE4swfLezxVKecyRImqxf6DaVCKhJdpC/0fBfuVjlKXlGqq+KY3HH0H/c8Z88Z6uxVKUPzX+p3ttm0Woi59NBNpqsJOkftHqG1uGJX7Sl/RouDO1MioZat81ba0MqvbkdXP6tuBS/n0JHYp1HUZykeIc4R4+HOuMuWI+bv9uYPKfJkJV1eHDE/35l3yPBkcFzyiEm/gfje/CFhjhmfNdbhT4CMSXOWyT1mGTFT/puir/1SnrNkX6WlWYZp+q+psBZhPby3CL9mcO99n6wyiqJtP8+i0+6qui2w8nNj9RdGoKfm3IC6ns13W1RkrbFd6m2kTG/xGXRyvEertl0Ng4TIWWBHZVDfeQfErgz1u/FwcOd9Fds8jFQr8kOPduDgttvt/LzErPru6ZoGCiShBZ+YrOoP4ovSkuAya//S6BDnF/LcKAcsYsjFh3+NmCJ8PVj+4OcExqZY6C8hC8zRQcyS9JT04YZPtxcFXcRZxWlgik7HwPphBQanELsZ8K63Z+n+EZpx0gMsEgi7w/W5ao8pY3GnWlcZ8wyluLLa81C4W6ufCC3ZS8aGv443Y0GNcRI0Ugq0QTlSA9eGYxtiJHytO9YOtN96pf6NZO0VmMv3y6YH4V6yDQXNWiAdkH/98wZkNQBLMTSPr9/opQdOpwUf3Ws/5zvDh9Hw/D2UVi8ZWVjQqq+ku7qYmVCN9mEcjzxlGVq4ajUJrjP0ona4vP7ERQiydQHdecH9ejrEm9HV9VvQzAzwxmQwrXTmwwXaLGBeGMhxQXyeLXatlbcIqTVV2UwjXepwYKTHvpW9IH9v7KIPf5kKYgZApjzkxhLg1FSegWPB1i5X13A35zk+fjP3vnQXg0HCFM+E+a7v6oB9Lm+QmNgNGGBKjV0NGPoT9j9pLE7axD4pmwu/7YcVbpzPMQywps/PFNJ6Pw//P5qqme155gwYBmYwI1DZsLNqrdwpd6C3OcMjb9drLoNubbbZyOu/K7KiQX5cotU4FYqyBLcbI8iTqSyy4R89pYixGYXd3XEg3I8fbtgWO1JcBCk2DxJ9e1SsWrEfarQuQT43vUdcfmDpAAv9x515ffKow07ytbWAOOZ5/BXhVs/E +api: eJzVVm1v20YM/iuEvrQF/BbXyYdgGODGWZcVy4zZwVAEhnGWaPlqSafdnZy6hv77yJNsy5aTJkExbP2QSjo+JO/hQ9IbT6NJVWLQeJcbr9vp8H8BGl/L1EqVeJfeR0xQiwhGVlhprPQNbEFew/NVYjGxDBNpGklfMKz9xTB24xl/gbHgJ7tOkbyp2Rf0LQFTrVLUVhaRrbIimgbSzDJtMCaPpgKSFCNETajD1MaMgiSLZ6hBzeEQ3/DmSsfCFg4uevQBv4o4jchlt5NTCmLNllNfZRRAm++nGWgxtycTezzUGUXSKIL1C3FdzhCTQCbhC5Hv3d0yg8ErUjWZ76M5zf7jyHNCzoWMXhXSFf+luF6eV0ooYq6hmc7WU2EMVmsktBZrgkqL8TNK7OAkiQArtsZqLkMlvnc3Glx59QxerqETvs86nRa14gnhnDDu7ozrajlh/n5vfiyRJzOp6+KE+fnOvCaGJ52LFY2Y8DuM782PBXPKuFdau39MpI+SokwfRBQhKeW/2fQFLqQ5i/pVvTSPRBj+a11YNGExvLcMv2Zw77FPZtnpdLb17HXO6qvqLhGZXSgtvxEDDW9BBSjyyX/YokKtla5LL+c0rRbPkJOhPZpV7Qoa2EVMDXayDYo774jYpeHdKgsHd95nsY1DTFU8HyOqjh1st9vpeSWi7IeHKwvIlLgS3JBYvT+RLoorhH5U/aVRE84vaKlQBqiJIWYM/RpRiXs9WP5gFwhKhyKR31wUWAgDPrWkxaAFYzrdXhRk4kcZhYGZMNIH6h/qQAdyvssBbxp7le4foRwnDRBJAG53mBZlbUVIXNx7latMaIain2lpaSjcb7wPKDTqPnFDr5N8wqwRT8xGiE42go+8tqnSsXUxYr0WFas62m+9VH5CXnuJiPm9X9bA3Yu3IbNZNEiN5N/+GgOvBqBWdMWj65f90gAjw4SOHqRd0J3hetQ9v4BUyxUxC0tct1jIH5jJo4wW1qZ8AZc4vTu2a7EdEn4dj4fQP4hcRuQi4UWviQmv6ACKBuEZ8qY/+P3mdtq/uvrj7nZ8Wb4Nb6afrj+/oaxyvvRcuYykdUtiZDGKhIZBRTowjITlGQSEpfS43kVq9SlGKnraxdvRYPgOJOkVrFIRzDIZWUdrVZukVgWxWCKdR8ud4PirgFCrLC1npEylO1CsPFuJnqB9UHrZgs8qA5/KwrsHYqURxExllsrJLDnIYAj3C9ouk7dcEXPZbgfUeBH3o2mZwmGL0msHyjdtIh9DpddtEkST8M3Solltt2ZaXvidq36qjI2FG6ul+p7Z3pv9lP7/dHqhbkuTsE00UF8RA5l2m7To4HvPHEyBBdHDXzcb1vKdjvKcP/+doebJQI8roaWYsURpMGz3mBsa1GDczPRTLOURUQ7o+kY7GCcfr8dkK2oDYukGRPnA3rdHybri+3hyFCnw37zxCOQnah2g8fPzzrw4eRSwG0SFNZM4oS3xDyElAQg= sidebar_class_name: "get api-method" info_path: network/stellar-disbursement-platform/api-reference/resources/stellar-disbursement-platform-api custom_edit_url: null diff --git a/network/stellar-disbursement-platform/api-reference/resources/retrieve-disbursement-statistics.api.mdx b/network/stellar-disbursement-platform/api-reference/resources/retrieve-disbursement-statistics.api.mdx index fa30fbc72..df24c9a26 100644 --- a/network/stellar-disbursement-platform/api-reference/resources/retrieve-disbursement-statistics.api.mdx +++ b/network/stellar-disbursement-platform/api-reference/resources/retrieve-disbursement-statistics.api.mdx @@ -5,7 +5,7 @@ description: "Fetches metrics on a specific disbursement by ```id```." sidebar_label: "Retrieve Disbursement Statistics" hide_title: true hide_table_of_contents: true -api: eJzNV21v2zYQ/iuEPiWAYztv/WAMBbK5HbIBQ1AnGIogcM7SWWItiSpJJfUM/ffdkbItR6pbZ0WxfHBk8e743N3zHOlVoNEUKjdogtEqOBsO+V+EJtSysFLlwSj4gLbUuRHGgpXGytCIudIikmZWaoMZ5jboBaHKLT+ROxRFKkNg98EnwzFWgQkTzICf7LJAiqpmnzBkx0KrArWVHkEBSw44DVVJ8bT5tkekYW4bZpL8YtRkRygzsP7Vmwt6gV8gK1IyOq16lDhEywP9zsivwDySeXyg5zl7QmkwegVUU4YhGnOg5yV5zkGmr9rSKgvpoX4XVeXS9C2EjHtoprPlFIzBZo9Aa1iSq7SYfUeLnTtRIsKGrbGa29DYP7ibjH8L2ggO51BH7NPhsE/q6CBOh/HZxrjNlg7z8635S4rsRdLmRYf55ca8RYa9weEJNcTfqPjW/CVhuowvamv3x4UMUdIu02dIUySm/D9F7/1iGn2oX6WleQpx/NNU6EXoPKfrCnePjt0xf8seIi+zGWqh5mLruxflcLhu58XwtH143OVQ2kRp+Q8VoBckVH8Pp/phRwZqrXSbeRWjtBq+g018spVNO18FDpGRvjpV4HPe1GEDI/hLWbGT8xbFeh+qVCPyS49mYOe2PqL5+QnS8odvt+7febt/75WeySjC/Cc3r7u2WzQH1ajpVifLGBzi68hfcbTEJxTjxqVGTDYXnpZY3qOlBI3I2JEuRCoXIEyBoZzLcOdqJGZL8fj4KCP66FMcCzEBvg8awR947mugWK6696sgpy+sNu6n5P0KsEkLxPWYdWoTFI9N3G4bjZ9L6caV1SX22v3YFJp2NxiWWtql2/tXBI36ighCXx94mYAlissUo2sgYxkFg+19cNBM2AxWMqqCbdQJb+271Iy9vQwU8k/k20Cd9VXNTdeedQE891ol+OPvW8EnpruRMqkJQE3FnjAyzmnpWdpEQC7eTc4u34hCyyewKBa47DsWyXyuHBpp3Sk1sZimoHepcJOC5SEorm6uCQSPRQ+gPUapHftDHE3GN8dCGmKMVSoVs1Km1iWgdAx5nbihRZHBAmk9XYj6SuPegoi1Kot6SMtCugVFoBwZ1rvnaJ+VXvTFR1WKkArAh5/IlEYBM1VaKhwxwLuMb8R9Qsfbw1FibWFGg0FEckhZJaZvfMA+wRtEitpNBcZY6eWASn9C/ie1xUmTBydFnfBx391slLEZuNlQ9/lQ0a22M+e/6M+TztKYHBBCIheBK3Xqf3w40gdmB0OT2/R9RKokUSSUD9uuVjMweKfTquLXn0vUrCN6fAItYcacIlVRFH4mFc0hNbgntaMPtXSPxT6Bd+axVlTOcqrHIFOUyO7HSfVQree4g+UXrugaWdiGS2ui74yB39/dki20VLxwKq4fOHonnJfy9hD4s+p9xeUXUp2gGfF2Y+5XvuqwmRZ14pwAjf1/AfGHGaU= +api: eJzNV21v2zYQ/iuEvjQBHNt5/WAMA9w43bJiaVA7GIogcM7SWWYjiSpJOfMM/ffdUbItR6pbZ0WxfEgk8Z67h3fPHZmlp9GkKjFovN7SO+l2+U+AxtcytVIlXs/7iDbTiRHGgpXGSt+IqdIikGaSaYMxJtZreb5KLD8RHNI0kj4wvPPZsI+lZ/wZxsBPdpEieVWTz+gzMNUqRW1lwSCFBTsc+yojf9p8GxFomNqKmSRciJrsiGUMtvh0cUYf8G+I04iMjvMWbRyCxZ64E8KlmAQyCfdEnjISMoPBK6iazPfRmD2R54ScgoxeFdIqC9G+uLM8d9ssSggx19CMJ4sxGIPVGoHWsCCotBh/R4kdnCQRYMXWWM1lqMT37oaDS6/OYH8NNfg+7nbb1B0NwmkwPlkb19XSYH66MX8pkZ1M6rpoMD9fm9fEsNM5zFFD+I2Mb8xfCqbJ+Ky0dj+cSB8lRRk/QxQhKeX/2fQFLqTRh/pVvTSNIAx/WhcWTeiQ41WGm0fH9pgfMUIkWTxBLdRUbLA7WXa7q3KedY/rh8ddApmdKS3/oQS0vBnlv6CT/7AjA7VWuq68nFlaDd+hJj7ZsqpdkQV2EVN/NXZBsed1HtY0vBtlxdaeNyxWcShTFc8vEVXHDrY6ovl5DlH2w8Ot6ndar987pScyCDD5ycVrzu2GzV45qsLKzTIHx/g6KK44WuIcxaByqRHD9YWn1izv0NIGjYgZSBcilQgQJkVfTqW/dTUSk4V4fHyUAf1qkx8LIRG+9yrOH3juayBfLrv3Sy+hF+42rqfkeCnYWY3E9YD71M5QPFZ5uzAav2TSjSurM2zV67FONEU36Gda2oWL/RZBo+6TQOj1gZeJ2ExxmkJ0BWQuPa+zuQ92qhs2naUMcm/jdcihiypVfW8uA6l8j3wbKHfdL7XpyrNKQKG9Wgr++Gsk+MR0N1IWNREopdgSRoYJLT1LOxOQiKvhyfmFSLWcg0XxhIs2N/hbMNJ/wWhmbeqVOeP3CdvUYjuk+H00uhX9rchlREEwvDg7woRvLoEoMs4le9Mf/Hl9M+5fXn64uxn1yrfb6/H7q09v2k7bMpkqx0had3YOLUYR6G2B3kZgeTQLwhI9HtYFtfpwJ5HsdnEwHNweCmmIt1UqEpNMRtalVekQkrIchhZFDE9I69GTKC9a7iuIUKssLY8OmUq3oIiUk+gqeoL2WemntvikMuFTWfhIFrHSKGCiMkvl5Cw5yOBW3M/o0H044IqYXqcTUJNG3LumbQqHbaLXCRSJkJKPodKLDgniiPBHpcVRVZ1HabnhQ1f9VBkbg5tYpfr2HQXLzST8L1OhEJ6l4d0hhiR5IpfpqPiXyLWiZ7Y4VDuO3ns0K6hVZ7Qftl0uWXx3Ospz/vwlQ83dTY9z0BImrCnqdfLCz9TbU4gM7tjawcdyoByKXWOncR+rPk+4ycvhzBKlFiyGXP6Qr04XR6tY6NPlNrUVSO2c2RpOv12NyBZqs+XJzZbygb030nk5dAoK/DtvfQXyC3WdoMn169q8WPkqYD3Dyo3zBugw+hdcakra sidebar_class_name: "get api-method" info_path: network/stellar-disbursement-platform/api-reference/resources/stellar-disbursement-platform-api custom_edit_url: null diff --git a/network/stellar-disbursement-platform/api-reference/resources/retrieve-stellar-info-file.api.mdx b/network/stellar-disbursement-platform/api-reference/resources/retrieve-stellar-info-file.api.mdx index 82d1c069b..e6abfe7e9 100644 --- a/network/stellar-disbursement-platform/api-reference/resources/retrieve-stellar-info-file.api.mdx +++ b/network/stellar-disbursement-platform/api-reference/resources/retrieve-stellar-info-file.api.mdx @@ -5,7 +5,7 @@ description: "Allows the wallet to fetch the SEP-10 server url, SEP-10 signing p sidebar_label: "Retrieve Stellar Info File" hide_title: true hide_table_of_contents: true -api: eJzNVl1v6jgQ/StWnu6V+LqUFqmrPgQSPloaaBKgLUXIJFNiEeKs7cBlEf99xwlsubq3q31YrZaXJGPPeObMmWMOhgCZ8kSCNG4PRr1W048QZCBYqhhPjFvD52tICJNkS2MWEpqEREVAdrBM6QqfLI7JEkjMaQghSbjY0DjeV4ySEQGahI58LBkBTxQkSsdX8F1VFd/E+gO+000aF+efk9HveFqGL4bZbg/Hju/dzd6Mbqtd702mnX7HaU7ve52hO2m1rYf7ofv8ye/NKBH0s8yrxv1r/abz+nLTeG57L42b9tjxeoPn5k190Lt/fvo8wJx4/a7Td7qLB/vl7tfBPvcmju1Ph+7DYmR63qjnmp6NMXyQinhWhzigdlysyW/Eg1TBZgmC1GvfrtGxN3T7r0NnMXYH6BEplcrbajXigv3Bk7LCCAmoilQQx1RUuFihz9RuLcyx31vYjjUa9h3/wpOm5dPmcsjkMhMSNtiQchpT9Y5dKy9pgJ0OyyFsL8NWaaYijO27puN1bHfh2e4kf4xqtXrj3zhBQlpvvBlvyWxmDdvjR9vxTb8/dOZzMnS7C8d81KB5hQcxWVjsbY9d13bafdvDjQEPgdxhs+2xO2xjvkzKDNHUpm6rZTWa/c7NYPrQHDUfLXvitadu0xqNp5Mr5+XK8p/sSWfQcEy/YT71rl4Hg87AvM6jLKiUoBY0CRB7ZPgdUSIDUnyfFtU+LQ5/Z1Shl1RUZTK3xGwLaNEzdZne5/mPPet/nH6R3VtiHPNfyeApCKqloh/itLqgBIMtkHOz+sk7Jx0WA+rBj7pixjHfyUJLUDFAEcXJO6ggym1Ir/K3GpEgtghDJuLSXya2SliyImm2jFlA1rDPRUmv1hsXDlqCFF2hsswwrxWTqkjUmJeMDaiI64RXoHBbSlWEH9XKDrMurxO+S6pnguZCVTIkBJlgau8FEbI6l6sWUAHCzLQvqhqCiDFoyh5gjw4J3eT6hct6ZoujSwbTtRfK+BMk91OfZBKbhNNC9Njh9LAg9yzlZePSjqkI6yW2V7++IalgW6pAg1AxdDsY4p1nw1Ssjz/3wboYSDI6DSQxR31MAvGSRQI/ZeRHH638dYgvnjX6qq8Hiv3jeBVkLFZ5ATjZNDkVLnVzN3QNuB6vSUr3OkpupWQleJYS/k4EBCxl+QLXTVQXpyeFUlbIC89IgAAIxJBskNOELnmmEDhNitzFGpFZBALmX87ShIoDsaaq/EF4Qh7IKgIMKy72VYS+jP5/L2JfEWckDJdqQxON9KnP/5z5h4+78D8agoKZ+bWLZSADsQJc06kUzJ8ZF8zXZL/kPo5LhOXqXYfDkkoYi/h41ObfUaH2aMfXLRWMLjXlZvPj+erHj4OBqelCgwAvOE22073+8SfgeDmPXdtHHv8JJSzjcA== +api: eJzNVttu4kgQ/ZWWX2ZG4pIhBKSs8mCwCSTEENtAEhKhxi5wC+P2dLdhWMS/b7VNNmQzWe3DarV+sftS1aeqTp323hAgU55IkMbl3qidnelXCDIQLFWMJ8al4fMVJIRJsqExCwlNQqIiIFuYp3SJbxbHZA4k5jSEkCRcrGkc7ypGyYgAp4T2fCgZAU8UJEr7V/BTVRVfx3oAP+k6jYvzX8Hobzwtww/DbLcHI8f3rqbPxnWrXeuOJ51ex2lObrqdgTtuta3bm4H78MnzbJQI2lnmef3mqdboPD026g9t77HeaI8cr9t/aDZq/e7Nw/3nDl6I17t2es717NZ+vPq1s8+tiWP7k4F7OxuanjfsuqZnow8fpCKe1SEOqC0XK/Ib8SBVsJ6DILWz7xdo2B24vaeBMxu5fbSIlErlZbUaccF+50lZoYcEVEUqiGMqKlws0WZit2bmyO/ObMcaDnqOf2JJ0/Jxczlkcp4JCWssSDmNqVpg1cpzGmClw3IIm1O3VZqpCH37rul4HdudebY7zl/Ds7Na/d84QUJaqz8bz8l0ag3aozvb8U2/N3BeXsjAvZ455p1OmldYEJOFxd72yHVtp92zPdwY8BDIFRbbHrmDNuJlUmaYTT113WpZ9Wav0+hPbpvD5p1lj732xG1aw9FkfO48nlv+vT3u9OuO6dfN++75U7/f6ZsXuZcZlRLUjCYB5h4ZfkWUyIAU4+Oi2qXF4QtGFVpJRVUm85mYbQBndE+dwvsc/8iz/sfwC3TPiXHIn5LBUxBUS0UvxG51QQkGGyCvxeolC046LAbUg/e6YsYx38pCS1AxQBHFyQJUEOVzSK/y9zMiQWwwDZmIS39OsWXCkiVJs3nMArKCXS5KerVWPzHQEqToEpVliriWTKoCqPFSMtagIq4BL0HhtpSqCAfVyhZRl1cJ3ybVV4LmQlUyJASZYGrnBRGyOperFlABwsy0LaoaJhF90JTdwg4NErrO9QuXdc8WR5cMpmMvlPFDSm4mPskkFgm7hei2w+5hQW5ZysPGpS1TEcZLbK920SCpYBuqQCehYmA1WlSy4C+IdHvqAHLgOJ7rPR/Ozi1J1/eHxHx38vFEgmbQqJch0UwNkSNCF4EvyBfTuus5s6NQXx5Hw57Wyy+I6qCDXvAcEVOxhvDKDutEJsjwKBMEbREeVlEW0D5g9aM3gv3axVfPGn7TlxZFVnG8oDIWqzytqDc0OZZDasqt6QpwPV6RlO60l3yWkqXgWarjExCwlOULXFNLnZyeFPpdIY88IwGWRWBlyRo7jdA5zxSWU2cpN7GGZBqBgJevr4KJOgixbiD5Tg5DHsgqJh+WXOyqSIgy2v+9tH7Lq59yqdY00Zk+su+f9+P+7Yb+j1qzYGf+M4BhYF9gBLimoRT9ODVO+lEz+LQjsYkjDFfv2u81N0ciPhz09A/UzR3O4+eGCkbnmnLTl8PrDwkO9gZC04EGAV67mmzHv423X5PDqUpc2z7y+A91qxS0 sidebar_class_name: "get api-method" info_path: network/stellar-disbursement-platform/api-reference/resources/stellar-disbursement-platform-api custom_edit_url: null diff --git a/network/stellar-disbursement-platform/api-reference/resources/send-one-time-passcode.api.mdx b/network/stellar-disbursement-platform/api-reference/resources/send-one-time-passcode.api.mdx index 982885600..0ebb29215 100644 --- a/network/stellar-disbursement-platform/api-reference/resources/send-one-time-passcode.api.mdx +++ b/network/stellar-disbursement-platform/api-reference/resources/send-one-time-passcode.api.mdx @@ -5,7 +5,7 @@ description: "This endpoint generates a 6-digit OTP and sends it via SMS to the sidebar_label: "Send One-Time Passcode" hide_title: true hide_table_of_contents: true -api: eJztVttu4zYQ/ZWBXpIAvmyD7QL1m3Mpui3aGLEXReEaC1qaSFxLJEtS9rqG/r0zpLyWYyNbtEGf6gCOLA7PzJy57hJt0AovtXqfJaNkiiqDB4X9mawQJsK5VGeY9JIMXWqlYUESmxXSAYkaLZWHHBVjoAMB7/qZzKWHh9kEBGE5knJAL9ZSwPTnKXgNvkAwhVYIqq6WaMFYvZYZZiBVOLT4R43Ow1JnW7gUT55k0gLTlVQ5CQh/ClEJTxJsgcUU5ZpRu+ct8vRucjWAMaxFKTOY3k/612/JpBUqcIWuywyWSLJpWXfMGde+0Fb+GWiCAkVGgPqpa+qAKPIid8lonjxiLp2PpCaLXmKEFRWSD3y6SxT9IAqPQOm2ZF4j9gndR3Y+aQviyKLL77Ul/0dwcYPCkm27INlcXBESGygtUnC9rbGXOKKpEslol/itYUPIVKI1aZpFFCZvboh3lki18qg8PwpjSpkGfcNPjq3anULp5SdMPSmlgFJaeYmOT0MgPsZAnCp+7uykGzbKlk0h0yJwzTm1kWXJMXJsV8MWp8JQ6MXH4PPX4WdfSLR4O57Mbn9osyEGomm6lM2PbT9Vt2j4wrGGh8ACMHlCKk7ZbiaehCQodEYrF9m6fvOG/z3DJNfZZXB1mqJzT3VZbgnqlSJUEaTI8VxWHNOxF2S/6ejtOVtvRAaPMZH+Awufs3+HxHpJjWCp69gn0Fptk6bZm/zNqckf1L6iyM1eW4ast3k1B6IVpwT3EvxMzcJ9HcF54euuXJtQBPFC/JqgQVSmxI4ZyS/aw5HPByv2eoipDvLzG13gcG2fxPxMBVW/uro2ftffncZvrGJzEC5WSTtkcpoDCmqHNkwF5cttGEqFcOrCA342nNewRT+goceHYdTs39PU6rabPWrAEznV9uD18vvfp0cY1OcAslgR55OjZZXmU6F5ATA6VK0RvqBfw40oS/R92xlpQ+0NSThMayv9dsoORgvi9OHB1tEljPwJuVX9g7n3468zZjv7MvOI6JbgHjiZKzraSF9QUOF+ev3tO9ok5Jo2EVjhdhCaF8fh8TDV7g+VcDyVDu3kZKJ0qJTqSQffpGeQZOqxLIWFO+mWtXVEBKXJpBSeDK5gPHlPeLSKuOjOmTWKNpIXIS55YQHJe43XmlKxlqUPdGibC9XS6Dg1K7FCOi9XYMSWUcJbAbnVteF1hRyTRoYDzfuR72hX6Dfargbwm64hJTotRQQqbbFtpLWLu1dYoWBeoMXFZeG9caPhMMM1lpyLbuAi4IDMG2Y6dUMKF+babocUyD7d77cStCceHO6b1uGrAdPMSViJUD9t1vy9vbSzsfy/op5dUWNNeuopQ6Kcao/Yrm0Z6iGU/Dw5U/J0k4ueFsSC2wMJ7XZL4fCDLZuGX5MCSxvjnB7Xwkqx5OqYL5r9KA2LL9Uk6b6NEerP2JTeflKc9s6mt78xpo3H+BdlF50ONnmYzkh42e6wVWiLiRUbrm36HiW/0x+7FLImzi5+v0tKofI6jp+Iy5+/ADVunPQ= +api: eJztVm1v2zYQ/isHfUkC+KULsgLzN+dlaFY0MWIHQ+EZAS1dJDYSqZGUXdfQf98dKTdyZKTDFuzTEiCRxONzd8+9biNdohFOanWdRKNoiiqBW4X9mSwQJsLaWCcY9aIEbWxkyYIkNsukBRIttVQOUlSMgRYEvO8nMpUObmcTEIRlScoCfVhJAdNPU3AaXIZQZlohqKpYooHS6JVMMAGp/KHBPyu0DpY62cCxeHQkE2cYP0mVkoBwXYhCOJJgCwzGKFeM2j5vkKeXk5MBjGElcpnA9GrSPz0jk55Qgc10lSewRJKN86plzrhymTbym6cJMhQJAerHtqkDosiJ1EajeXSHqbQukBotelEpjCiQfODTbaTohSjcA6XbknkN2B269+x81AbEnkXHv2pD/o/g6ByFIdu2XrI+OiEkNlAapOA6U2EvskRTIaLRNnKbkg0hU4nWqK4XQZi8OSfeWSLWyqFy/CjKMpex1zf8YtmqbRdKL79g7EgpBZTSykm0fOoD8RAC0VX80tlJO2yULetMxpnnmnNqLfOcY2TZrpotjkVJoRcP3ucfw8++k2jwYjyZXXxosiEEoq7blM33be+qW9R8YV/DrWcBmDwhFadsOxM7IfEKbamVDWydvnvH/15gkuvsMtgqjtHaxyrPNwT1RhEqCFKkeCgr9unYCbLfdHR2yNZzkcBdSKT/wMKX7F8isZ5TI1jqKvQJNEabqK53Jv/UNfle7SqK3Ow1Zch66zdzIFjRJbgX4VdqFvbHCNYJV7XlmoQiiFfiV3sNoihzbJkR3WgHez4/W7HTQ0y1kF/eaAP7a7sk5mcqqOrN1TXxO/2lG7+xCs1B2FAlzZBJaQ4oqCwaPxWUyzd+KGXCqiMH+LXkvIYNugENPT70o2b3naZWu93sUD2eSKm2B2+X3/8+PfygPgSQhIo4nBwNqzSfMs0LQKl91ZbCZfQ2XIs8R9c3rZE21K4kCYtxZaTbTNnBYEGYPjzYWrpEKT8it6p/MPd++33GbCffZx4R3RDcAytTRUdr6TIKKlxNT39+T5uEXNEmAk+4GbDv58LK+IVFmQsOeMPpfckyHd3+JnyYUVqN9zQ3GoGu4fuzPiomnhYdzymvBUfjy0/XNw/ji4vb+5vZqHmbXD98vPp8NPAtlbPj7nnWXj3X5/6sfG5ynTnXCrBUj9r7Jx2DRFOHeS4MXEq7rIwlLyl5J7lwRGMBZAnh0YJkg6MHljvak16FOOY1CiRvW05rKpBK5s4HSZtUqCa4lgumEE9I5/kTlGLDKP6rgNToqmS2yDFZSn+geWtzLe0K3VqbpwF81hXEFGRDeQKFNti098qGjdAvdjDP0ODimONrR8NhgivMuULswAbAAZk3THRshxRKTLXZDCm9+nS/30jQ9vrscL9sHD7xucSlUQhf1U0u/71tubVH/b84H1ycQ1066nRDopw6ArFdmdzXg29E8+hAI6Kb3Ipobc24aZHQdstFeW/yuubPpMDQHjunx5UwUiy5OuaLejfg/TpOnYJ0X4QI9WdsSm83v7odve7tboxpDyvdq7KLVl+d3E5nJLxsNuvCN+vIiDXXNv0dRX/QL7vksyZMVP6+jXKh0ioMxYDLP38BDf7OKQ== sidebar_class_name: "post api-method" info_path: network/stellar-disbursement-platform/api-reference/resources/stellar-disbursement-platform-api custom_edit_url: null diff --git a/network/stellar-disbursement-platform/api-reference/resources/sidebar.js b/network/stellar-disbursement-platform/api-reference/resources/sidebar.js index afb6893ef..61207dd6f 100644 --- a/network/stellar-disbursement-platform/api-reference/resources/sidebar.js +++ b/network/stellar-disbursement-platform/api-reference/resources/sidebar.js @@ -1 +1 @@ -module.exports = [{"type":"doc","id":"stellar-disbursement-platform/api-reference/resources/stellar-disbursement-platform-api"},{"type":"category","label":"Authentication","items":[{"type":"doc","id":"stellar-disbursement-platform/api-reference/resources/log-in","label":"Log In","className":"api-method post"},{"type":"doc","id":"stellar-disbursement-platform/api-reference/resources/refresh-token","label":"Refresh Token","className":"api-method post"},{"type":"doc","id":"stellar-disbursement-platform/api-reference/resources/authenticate-mfa","label":"Provide Multi-Factor Authentication","className":"api-method post"},{"type":"doc","id":"stellar-disbursement-platform/api-reference/resources/forgot-password","label":"Forgot Password","className":"api-method post"},{"type":"doc","id":"stellar-disbursement-platform/api-reference/resources/reset-password","label":"Reset Rassword","className":"api-method post"}]},{"type":"category","label":"Disbursements","items":[{"type":"doc","id":"stellar-disbursement-platform/api-reference/resources/list-all-disbursements","label":"List All Disbursements","className":"api-method get"},{"type":"doc","id":"stellar-disbursement-platform/api-reference/resources/create-disbursement","label":"Create Disbursement","className":"api-method post"},{"type":"doc","id":"stellar-disbursement-platform/api-reference/resources/retrieve-a-disbursement","label":"Retrieve a Disbursement","className":"api-method get"},{"type":"doc","id":"stellar-disbursement-platform/api-reference/resources/list-all-disbursement-receivers","label":"List All Disbursement Receivers","className":"api-method get"},{"type":"doc","id":"stellar-disbursement-platform/api-reference/resources/upload-disbursement-instructions","label":"Upload Disbursement Instructions","className":"api-method post"},{"type":"doc","id":"stellar-disbursement-platform/api-reference/resources/download-disbursement-instructions","label":"Download Disbursement Instructions","className":"api-method get"},{"type":"doc","id":"stellar-disbursement-platform/api-reference/resources/update-a-disbursement-status","label":"Update a Disbursement Status","className":"api-method patch"}]},{"type":"category","label":"Payments","items":[{"type":"doc","id":"stellar-disbursement-platform/api-reference/resources/list-all-payments","label":"List All Payments","className":"api-method get"},{"type":"doc","id":"stellar-disbursement-platform/api-reference/resources/retrieve-a-payment","label":"Retrieve a Payment","className":"api-method get"}]},{"type":"category","label":"Receivers","items":[{"type":"doc","id":"stellar-disbursement-platform/api-reference/resources/list-all-receivers","label":"List All Receivers","className":"api-method get"},{"type":"doc","id":"stellar-disbursement-platform/api-reference/resources/retrieve-a-receiver","label":"Retrieve a Receiver","className":"api-method get"},{"type":"doc","id":"stellar-disbursement-platform/api-reference/resources/update-a-receiver","label":"Update a Receiver","className":"api-method patch"}]},{"type":"category","label":"Statistics","items":[{"type":"doc","id":"stellar-disbursement-platform/api-reference/resources/retrieve-all-statistics","label":"Retrieve All Statistics","className":"api-method get"},{"type":"doc","id":"stellar-disbursement-platform/api-reference/resources/retrieve-disbursement-statistics","label":"Retrieve Disbursement Statistics","className":"api-method get"}]},{"type":"category","label":"Registration","items":[{"type":"doc","id":"stellar-disbursement-platform/api-reference/resources/start-wallet-registration","label":"Start Wallet Registration","className":"api-method get"},{"type":"doc","id":"stellar-disbursement-platform/api-reference/resources/send-one-time-passcode","label":"Send One-Time Passcode","className":"api-method post"},{"type":"doc","id":"stellar-disbursement-platform/api-reference/resources/verify-receiver-registration","label":"Verify Receiver Registration","className":"api-method post"},{"type":"doc","id":"stellar-disbursement-platform/api-reference/resources/retrieve-stellar-info-file","label":"Retrieve Stellar Info File","className":"api-method get"},{"type":"doc","id":"stellar-disbursement-platform/api-reference/resources/request-challenge-transaction","label":"Request Challenge Transaction","className":"api-method get"},{"type":"doc","id":"stellar-disbursement-platform/api-reference/resources/provide-signed-challenge-transaction","label":"Provide Signed Challenge Transaction","className":"api-method post"},{"type":"doc","id":"stellar-disbursement-platform/api-reference/resources/request-registration-url","label":"Request Registration URL","className":"api-method post"}]},{"type":"category","label":"Profile","items":[{"type":"doc","id":"stellar-disbursement-platform/api-reference/resources/get-profile","label":"Get Profile","className":"api-method get"},{"type":"doc","id":"stellar-disbursement-platform/api-reference/resources/update-user-profile","label":"Update User Profile","className":"api-method patch"}]},{"type":"category","label":"Organization","items":[{"type":"doc","id":"stellar-disbursement-platform/api-reference/resources/get-organization-info","label":"Get Organization Info","className":"api-method get"},{"type":"doc","id":"stellar-disbursement-platform/api-reference/resources/update-organization-profile","label":"Update Organization Profile","className":"api-method patch"},{"type":"doc","id":"stellar-disbursement-platform/api-reference/resources/get-organization-logo","label":"Retrieve Organization Logo","className":"api-method get"},{"type":"doc","id":"stellar-disbursement-platform/api-reference/resources/get-all-countries","label":"Get All Countries","className":"api-method get"},{"type":"doc","id":"stellar-disbursement-platform/api-reference/resources/get-all-assets","label":"Get All Assets","className":"api-method get"},{"type":"doc","id":"stellar-disbursement-platform/api-reference/resources/create-asset","label":"Create Asset","className":"api-method post"},{"type":"doc","id":"stellar-disbursement-platform/api-reference/resources/delete-asset","label":"Delete Asset","className":"api-method delete"},{"type":"doc","id":"stellar-disbursement-platform/api-reference/resources/get-all-wallets","label":"Get All Wallets","className":"api-method get"}]},{"type":"category","label":"Users","items":[{"type":"doc","id":"stellar-disbursement-platform/api-reference/resources/get-all-users","label":"Get All Users","className":"api-method get"},{"type":"doc","id":"stellar-disbursement-platform/api-reference/resources/create-user","label":"Create User","className":"api-method post"},{"type":"doc","id":"stellar-disbursement-platform/api-reference/resources/update-user-activation-status","label":"Update User Activation Status","className":"api-method patch"},{"type":"doc","id":"stellar-disbursement-platform/api-reference/resources/get-all-roles","label":"Get All Roles","className":"api-method get"},{"type":"doc","id":"stellar-disbursement-platform/api-reference/resources/update-user-role","label":"Update User Role","className":"api-method patch"}]}]; \ No newline at end of file +module.exports = [{"type":"doc","id":"stellar-disbursement-platform/api-reference/resources/stellar-disbursement-platform-api"},{"type":"category","label":"Authentication","items":[{"type":"doc","id":"stellar-disbursement-platform/api-reference/resources/log-in","label":"Log In","className":"api-method post"},{"type":"doc","id":"stellar-disbursement-platform/api-reference/resources/refresh-token","label":"Refresh Token","className":"api-method post"},{"type":"doc","id":"stellar-disbursement-platform/api-reference/resources/authenticate-mfa","label":"Provide Multi-Factor Authentication","className":"api-method post"},{"type":"doc","id":"stellar-disbursement-platform/api-reference/resources/forgot-password","label":"Forgot Password","className":"api-method post"},{"type":"doc","id":"stellar-disbursement-platform/api-reference/resources/reset-password","label":"Reset Rassword","className":"api-method post"}]},{"type":"category","label":"Disbursements","items":[{"type":"doc","id":"stellar-disbursement-platform/api-reference/resources/list-all-disbursements","label":"List All Disbursements","className":"api-method get"},{"type":"doc","id":"stellar-disbursement-platform/api-reference/resources/create-disbursement","label":"Create Disbursement","className":"api-method post"},{"type":"doc","id":"stellar-disbursement-platform/api-reference/resources/retrieve-a-disbursement","label":"Retrieve a Disbursement","className":"api-method get"},{"type":"doc","id":"stellar-disbursement-platform/api-reference/resources/list-all-disbursement-receivers","label":"List All Disbursement Receivers","className":"api-method get"},{"type":"doc","id":"stellar-disbursement-platform/api-reference/resources/upload-disbursement-instructions","label":"Upload Disbursement Instructions","className":"api-method post"},{"type":"doc","id":"stellar-disbursement-platform/api-reference/resources/download-disbursement-instructions","label":"Download Disbursement Instructions","className":"api-method get"},{"type":"doc","id":"stellar-disbursement-platform/api-reference/resources/update-a-disbursement-status","label":"Update a Disbursement Status","className":"api-method patch"}]},{"type":"category","label":"Payments","items":[{"type":"doc","id":"stellar-disbursement-platform/api-reference/resources/list-all-payments","label":"List All Payments","className":"api-method get"},{"type":"doc","id":"stellar-disbursement-platform/api-reference/resources/retrieve-a-payment","label":"Retrieve a Payment","className":"api-method get"}]},{"type":"category","label":"Receivers","items":[{"type":"doc","id":"stellar-disbursement-platform/api-reference/resources/list-all-receivers","label":"List All Receivers","className":"api-method get"},{"type":"doc","id":"stellar-disbursement-platform/api-reference/resources/retrieve-a-receiver","label":"Retrieve a Receiver","className":"api-method get"},{"type":"doc","id":"stellar-disbursement-platform/api-reference/resources/update-a-receiver","label":"Update a Receiver","className":"api-method patch"}]},{"type":"category","label":"Statistics","items":[{"type":"doc","id":"stellar-disbursement-platform/api-reference/resources/retrieve-all-statistics","label":"Retrieve All Statistics","className":"api-method get"},{"type":"doc","id":"stellar-disbursement-platform/api-reference/resources/retrieve-disbursement-statistics","label":"Retrieve Disbursement Statistics","className":"api-method get"}]},{"type":"category","label":"Registration","items":[{"type":"doc","id":"stellar-disbursement-platform/api-reference/resources/start-wallet-registration","label":"Start Wallet Registration","className":"api-method get"},{"type":"doc","id":"stellar-disbursement-platform/api-reference/resources/send-one-time-passcode","label":"Send One-Time Passcode","className":"api-method post"},{"type":"doc","id":"stellar-disbursement-platform/api-reference/resources/verify-receiver-registration","label":"Verify Receiver Registration","className":"api-method post"},{"type":"doc","id":"stellar-disbursement-platform/api-reference/resources/retrieve-stellar-info-file","label":"Retrieve Stellar Info File","className":"api-method get"},{"type":"doc","id":"stellar-disbursement-platform/api-reference/resources/request-challenge-transaction","label":"Request Challenge Transaction","className":"api-method get"},{"type":"doc","id":"stellar-disbursement-platform/api-reference/resources/provide-signed-challenge-transaction","label":"Provide Signed Challenge Transaction","className":"api-method post"},{"type":"doc","id":"stellar-disbursement-platform/api-reference/resources/request-registration-url","label":"Request Registration URL","className":"api-method post"}]},{"type":"category","label":"Profile","items":[{"type":"doc","id":"stellar-disbursement-platform/api-reference/resources/get-profile","label":"Get Profile","className":"api-method get"},{"type":"doc","id":"stellar-disbursement-platform/api-reference/resources/update-user-profile","label":"Update User Profile","className":"api-method patch"}]},{"type":"category","label":"Organization","items":[{"type":"doc","id":"stellar-disbursement-platform/api-reference/resources/get-organization-info","label":"Get Organization Info","className":"api-method get"},{"type":"doc","id":"stellar-disbursement-platform/api-reference/resources/update-organization-profile","label":"Update Organization Profile","className":"api-method patch"},{"type":"doc","id":"stellar-disbursement-platform/api-reference/resources/get-organization-logo","label":"Retrieve Organization Logo","className":"api-method get"},{"type":"doc","id":"stellar-disbursement-platform/api-reference/resources/get-all-countries","label":"Get All Countries","className":"api-method get"},{"type":"doc","id":"stellar-disbursement-platform/api-reference/resources/get-all-assets","label":"Get All Assets","className":"api-method get"},{"type":"doc","id":"stellar-disbursement-platform/api-reference/resources/create-asset","label":"Create Asset","className":"api-method post"},{"type":"doc","id":"stellar-disbursement-platform/api-reference/resources/delete-asset","label":"Delete Asset","className":"api-method delete"},{"type":"doc","id":"stellar-disbursement-platform/api-reference/resources/get-all-wallets","label":"Get All Wallets","className":"api-method get"}]},{"type":"category","label":"Users","items":[{"type":"doc","id":"stellar-disbursement-platform/api-reference/resources/get-all-users","label":"Get All Users","className":"api-method get"},{"type":"doc","id":"stellar-disbursement-platform/api-reference/resources/create-user","label":"Create User","className":"api-method post"},{"type":"doc","id":"stellar-disbursement-platform/api-reference/resources/update-user-activation-status","label":"Update User Activation Status","className":"api-method patch"},{"type":"doc","id":"stellar-disbursement-platform/api-reference/resources/get-all-roles","label":"Get All Roles","className":"api-method get"},{"type":"doc","id":"stellar-disbursement-platform/api-reference/resources/update-user-role","label":"Update User Role","className":"api-method patch"}]},{"type":"category","label":"Admin","items":[{"type":"doc","id":"stellar-disbursement-platform/api-reference/resources/get-all-tenants","label":"Get All Tenants","className":"api-method get"},{"type":"doc","id":"stellar-disbursement-platform/api-reference/resources/create-tenant","label":"Create Tenant","className":"api-method post"},{"type":"doc","id":"stellar-disbursement-platform/api-reference/resources/retrieve-a-tenant","label":"Retrieve a Tenant","className":"api-method get"},{"type":"doc","id":"stellar-disbursement-platform/api-reference/resources/soft-delete-a-tenant","label":"Soft delete a Tenant","className":"api-method delete"},{"type":"doc","id":"stellar-disbursement-platform/api-reference/resources/update-a-tenant","label":"Update a Tenant","className":"api-method patch"},{"type":"doc","id":"stellar-disbursement-platform/api-reference/resources/default-tenant","label":"Default Tenant","className":"api-method post"}]}]; \ No newline at end of file diff --git a/network/stellar-disbursement-platform/api-reference/resources/soft-delete-a-tenant.api.mdx b/network/stellar-disbursement-platform/api-reference/resources/soft-delete-a-tenant.api.mdx new file mode 100644 index 000000000..501a870c0 --- /dev/null +++ b/network/stellar-disbursement-platform/api-reference/resources/soft-delete-a-tenant.api.mdx @@ -0,0 +1,57 @@ +--- +id: soft-delete-a-tenant +title: "Soft delete a Tenant" +description: "Soft delete a Tenant" +sidebar_label: "Soft delete a Tenant" +hide_title: true +hide_table_of_contents: true +api: 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 +sidebar_class_name: "delete api-method" +info_path: network/stellar-disbursement-platform/api-reference/resources/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import ApiTabs from "@theme/ApiTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import Markdown from "@theme/Markdown"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; + +

              Soft delete a Tenant

              + + + + + +Soft delete a Tenant + +## Request + +

              Path Parameters

              + +Deleted Tenant details, with a non-empty `deleted_at` field + +
              Schema
              + +The tenant was already deleted before this request. + +
              Schema
              + +Bad request, when the tenant is not elligible to be deleted. For example, when the tenant is the default tenant or when it has not been patched with the deactivated status. + +
              Schema
                any
              + +Not Found + +
              Response Headers
                Schema
                  extras object
                diff --git a/network/stellar-disbursement-platform/api-reference/resources/start-wallet-registration.api.mdx b/network/stellar-disbursement-platform/api-reference/resources/start-wallet-registration.api.mdx index d1167c245..f274b1025 100644 --- a/network/stellar-disbursement-platform/api-reference/resources/start-wallet-registration.api.mdx +++ b/network/stellar-disbursement-platform/api-reference/resources/start-wallet-registration.api.mdx @@ -5,7 +5,7 @@ description: "This is the endpoint the browser reaches with the first token so t sidebar_label: "Start Wallet Registration" hide_title: true hide_table_of_contents: true -api: eJzdVttuIzcM/RVBTwngyzbY9iFvWSTYbm8w6iwWRWAU9Azt0VojzVKaeF3D/15SGseTxEmabZ9qGLA1EsnDI/Jwtto3SBCNdx9Kfa6nESiqT2AtRvU7Lk2IeVcPdImhINOk1bm+rkxQ/I0VKnRl442LaTEnvw5IihCKCoNam1iljYWhwEf8Cp0Knh9BNiAs0NyyRQFOFd7xuVo2DCl+ahamSAiUcQtPdf4fK/LtslKg1jhfWL8eMdovrSEOCOoWrCnV9GoyPHvbBTSui/WlxRBHnE6EZdDnN/pelrOBboCgxogku1vteMHpJi9sZSR39kGbI4zg/ZhtwFIxZgUtx3axS4QNKWNlxiO1ONCBmapBn2913DQSjgEZt9S73eCAgMAFKMTDn6Z8GUrvvGI2IARfGIgM6e5G+mhfhWomh0PjXcAg+2dv3sjPAxCZ+NBdB7gyBeULa2DJv8ZaNUdlPZQMysndWruRq+EiiMxXioxf47iKtZXFU4Aepv/j9a+/qBRk72nHn4F+ewzmOyhT7XBZvCa0n3/GQiwakhaKJjNRYwgc+GWMlxjBWK7WuW9zHyCRp4Q0Y/3uMdaPTkrJk/kLpQIqZOqkTre7f488h3982QPN3gjCyx5ChNj2z7m2niOJiydpycniV6gbiz0Y+jcf1b1kDyj2cZiinueHFtkzNI3t+m78OQiJ23205GtfxvKf67T97zFkHKwolReFXWIiDmLFi/E6Ke2Qeho0DqLBfCZg0ZKJm6lcYEb7DoGQLloxvmMSGvMzigZ0QnHRxd+LTdKJXCqPqvCnT9dPydRABbN0e7lgab6ann3/g2rI3LKKqBVyq0pmIssJjYlygzxC0FogdWnCvKXA0HkwTCxEUW91MfnAIFjXQwZwXEWfdXEyvZyciq4AK5dnDWmNjSkBT0twXeI8mbyqYcUDqbUrVoONeElPQS15ejTKL2T2mMakDS8jKPaiO4xrT6uR+sO3aTbxRCtV7Qm7pm0DV3A2uZyomwoJZydVjE04H49LvEUr3RFGITscMbxx6YswZoJx6WkzZuqHbD/sTgzLXsLDpkv4dCQd1PgQa0j1293zP57V24M2/A/Gdi76JHHMEBc3k9NSkrrcVTf6SFdJP6W+4tFVMZVybLudQ8CPZHc7eZxHqcx8vgaYWxmEC7ABn6HzpINfnqpXjP+jOXBD9d4zOi3SWt4AvhnP698BnoP28AXkgHEmCzICkgmc7fajKbGZrS+KApvYszoMKTG/08f3V9csK38DVCq4WA== +api: eJzdVm1vGjkQ/iuWvzSReOlFuX7gGynRNddrDh1EVRWhaNgdWBevvbW9oRziv9+MvQRC3i7tfTqEBN71zDzzeOYZr6Wt0EFQ1lzksidHAVwQn0FrDOIvnCsf0lvZkjn6zKkqrnpyXCgv6BsKFGjyyioT4mLq7NKjEw4hK9CLpQpFfDFTztMWu0AjvKVHkAwcZqhuySIDIzJraF/JL5QT9FTNVBYRCGVm1pXpfyicreeFALHE6UzbZYfQfquVo4AgbkGrXIzOh+2T0yagMk2sbzX60KF0Asy97F3Le1lOWrICByUGdPx2LQ0tKN3ohawU504+3OoRRvB+zNpjLgizgJpim9AkQoYuYSXGg6uxJT0xVYLsrWVYVRyOACkzl5tNa4fAgfGQsYcblb8MZW+/IDbAe5spCATp7kT20b4K1YQ3+8oaj57fn7x9yz8HIBLxvjkOMHkMSgdWwZx+ldZiikJbyAmU4bPVesVHQ0UQiK8YGb+HbhFKzYunAB2m/2H86Q8Rg2w9bejTkqePwTyDPNYOlcVrQtvpV8zYonLcQkElJkr0ngK/jHGAAZSmap3aOvUBOmddRJqw/vIQ65XhUrJO/Y1cAQUSdVyn683PI0/hHx52S5I3B/5lDz5AqPf3mbqcomMXT9KSksXvUFYa92DISxvEvWR3KLZxiKI9z4cWyTNUlW76rvvVM4nrbbToa1vG/J/qtP7vMSQcpCiFZYWdYyQOQkGL7jIqbdvtaVDXswbTHo9Z7VRYjfgAE9ozBIeuX7PxHZNQqY/IGtAIRb+JvxWbqBOpVB5U4e+fx0/JVEt4NTdbuSBpPh+d/PpOVE7dkoqIBVKrUmJn4FV2gKgIoZKNfvB6ynsexI6W4sN4PBT9e5GbiILM8N1pG01mWSFSxQg7E2/6g08Xlzf99+//vLoc95rV8OLm4/mXNx1WTcnDIiJSgeuKBhtqDU4MlJ/WzhMuGldDDYFniiBbgkfTxidoj2v7sy6ORoPhMasdkJ5aUrZa6RBptW4OpjkOmpdWlLCgMVnrBWnUir3EpyDmNNMqzo8moqpUfGF5MIa96AbD0rpFR3yxdZyYNGdzUVqHjZTUnlmKJoOhuC7Q4eSIT8T3ut0cb1Fzz/qOTw47BK+b28x3iXycW7fqUkG0yb7d7Gjnewm3qybh43j6lfWhhNhVTfX96xvEeqdY/4PLRCr8KLzEELUckVO7KMCp16/lI73OTRK7nQZqQVTytvWa6/7K6c2GH6cBzzcROgaYah7PM9Aen6HzqIGfH4tXXEoezYHafO/20yiklHwv+WE8r7+ZPAft8Fq0wzjhhVMMkgicbLYDM7KZrPtZhlXYs9qNTja/U+3fzsckK/8AWGTpjQ== sidebar_class_name: "get api-method" info_path: network/stellar-disbursement-platform/api-reference/resources/stellar-disbursement-platform-api custom_edit_url: null diff --git a/network/stellar-disbursement-platform/api-reference/resources/update-a-disbursement-status.api.mdx b/network/stellar-disbursement-platform/api-reference/resources/update-a-disbursement-status.api.mdx index d0b70763c..33e260054 100644 --- a/network/stellar-disbursement-platform/api-reference/resources/update-a-disbursement-status.api.mdx +++ b/network/stellar-disbursement-platform/api-reference/resources/update-a-disbursement-status.api.mdx @@ -5,7 +5,7 @@ description: "Updates the status of a disbursement according to the state machin sidebar_label: "Update a Disbursement Status" hide_title: true hide_table_of_contents: true -api: eJztV+9v2zYQ/VcIfUoAx2q7bB+MYYC7rFg2bDDqFMMQBAglniXWEsmSlFPP0P++O1Ky5djOFiAbBnT5YP26O7679/ikbBILzmjlwCWTTfLm1Ss6CHC5lcZLrZJJ8gs4xwtg77vIZJTkWnlQnmK5MZXMOcWmHx0lbBKXl1BzOvNrA1hCZx8h95horDZgvYzL1bHyINB5K1WRtO0IgX1qpAWRTG63gXd4Hz7z2lSxQA+ezle8amCvanIlXdZYBzViZc5z67FcG/5GyeWxXt9ygX1+asAR2hK4AEsrtS/WM1ir7ZGOqTFvufvrCtiIb4ZxqqkzsFTiiYG2u9ENYISG7bbhHYR+EZzS6NREpWNKe0znYs28ZhkMh/w3mPrnQfRUvz6k+oPijS+1lX9g6BfB9a84p72ej0369XDSjzKex+pLLNfz99Uhf++0zaQQoP5l8o7PdofmWTMapvW9Xh72SoN5pxv1BQl10bV7TDSXJ91AbTOfr9UXWLHjkAYTiLgWZDRGcA+Ms728eaw9euxKIdgxXwYfwxCmF5grhrk8z7UVOEIyvD4SWM3zUioYsxu8tZdQNw5/9ArYwuqa3d/fC8sXHo9UAQ/BPulSKoalwdL94KOh/v7qSjAksCgwyvA13XNjNuvO2IOsqi6VO+a0VnT0JRo1KGG0jKZdSj9m0/3KOcfYygUTJ7QC4UR8hjcOBAGMrWZrhMHmVzOG9wNYY2FFNRaNRcQ7ZLHjQtO0dBPRoxTiK4I9lKCoQyxnIb5ExsiJ54Wj744hYy65Q9Fzy2vwYf/dbhKFF0iaJNlIos9wXx5wen1FHD6eYzL8xPG2gdHhdt1uFFzaQd5Y6ddh4beAeO0UvRIv7+gxoiq1iBBywhCgTJJ0uKZLN1K0qeu119ec08Jxmwwrb3FwI3+GNSZ0DU87kw4i73uPxnTQ/U+/3RBJAneJDe6OODqfGjEnC0U0SF8SoT/M33z9DVIpV0TyEpAM2k9SLXRAIz0ZRTL3UFXc7m+oWcU9LlGz6ewaQayQowjgABFtj6dLnKGyzkmlHKWlK5Y1svKhAW0LrrrGHemu5kuUY1Mtd4rDu5wVVjeGeLeQSyPDA5S0DTroV1fgH7RdjtnvugnqJwWi9FGLPCO1Ni7sckpBrd+isOHurPTeuEmaClR8RV7jxi4WHCO8VOjcpThgKLRdpzj6C8y/6CIuhnK4MF3D52MyaqOdr3l4cXQ8P8e6NruX0f8u9t9wsbh5Pb7QUmQaNymS3NiKuIrucJvsuQPmTIKXdQaBtlKiJihus8m4gw+2alu6jd/qlpwIT1fcSp7RvkRfwnJ0jj60wBHAExI5e9+Z3zk76Y9HG+gtSZEfdS9y2uPoFtGKW/ovsTMjwhQfTPMcjB+kHHwv7bnobHrz/Y8YzQ+McBmMsDuh+kcBPXbICIJ+29GJlG/RuBja7Hfb8PjkZMLWcLvWqQX8/vgTvAGQWQ== +api: eJztV1Fv2zYQ/iuEXpoAjt12WR+MYYCTtGhWNDNqB0MRBA0tni02EsmSlDPP8H/fHUnZcuxkC5ANA7o8RBJ1d/zuvruP8jKz4IxWDlzWX2avX76kiwCXW2m81CrrZx/BOT4D9ilZZp0s18qD8mTLjSllzsm299WRwzJzeQEVpzu/MIAh9OQr5B4djdUGrJdxuypGbhk6b6WaZatVB4F9q6UFkfWv1obXuA6/88qUMUADnu7nvKxhK2p2Jt2ktg4qxMqc59ZjuFX462TH+3I94QLz/FaDI7QFcAGWdlo9W85grbZ7MqbEvOXuryNgIr5u26m6moClEI8UdLUpXQtGSNiuE95AaDbBKnUeqqh0TGmP7lwsmNdsAu0i/w2m/nkQDdWvdqm+VLz2hbbyDzT9Lri+wDpt5byv0q/alb7n8TRWn2O7hr8fdvl7p+1ECgHqXyZvf203aJ5Uo7Zbk+vxbq5UmHe6Vt9Ro05Tuvua5vhBNVBrz6f36jPsmDikwgQizgUJjRHcA+Nsy28UY3fuq1IwdswXQcfQhOkp+oq2L89zbQWWkASvsQRW8byQCrpsjEtbDlXt8J+eA5taXbGbmxth+dTjlSLgJcgnPUrFMDRYWg86GuJv764EQwJnM7QyfEFrrsuG6Y7dybJMrtwxp7Wiqy9QqEEJo2UU7UL6LhtsR8452pYuiDihFQgn4jO8diAIYEx1skAYbHQ2ZLgewBoLc4oxrS0i3iCLGc80VUvXET22Qjwi2F0BijLEcBbiIdJFTjyfOfruaDPmsmtsem55BT7M39UyU/iApElqG0n0Ge6LHU7Pz4jD+3XM2p843tbQ2R3X9aDg1g7y2kq/CBufAOK1A9RKfLym14iq0CJCyAlDgNLPeu09XW8pxarnmt5rYo5o4zgm7chrHNzID7BAh5TwIIl0aPIm9yhMO9n/8tuYSBI4JTaoO+JIOtVhTs4U0SB9QYS+Hb3+8Q1SKedE8i0gGThOJ9zJ/B6iwnuTpYrR84RsdvYOnuz9eDxkg62d044M3eDN8RGoXAvEEetNbL0YnH08v/gyOD399fJi3E9Pw/MvH95+ftENIi/VVAdE0pN8ZSMPZcnt9pgPS+4x8YqhL8KbY+dEaDtYaWgfD3GA/X5Is8Ox4XXJJrUsfSirtjOuEh2OpqHitzgkdXm7mQNc5WxmdW0oPwu5NDK8wEGzoTub3RX4O21vu+yzrsNM0lzgQOKE8AnNUO2C9pALTuAVjhtcHxAjrt/rCZzDkhTQdV0M2EV4PaFz18Piw0zbRQ8b4gj9j5LFUbtJj0xK+DCwb7TzFQ/HWeq+pwjqcnNE/q+t/w1tjQPs8ZjtIdMoHUhybUviKmrWVbalWejTDwqbZAvFrsCeILvlkgb40parFS3jLwhL+oi3c24ln9BcolpiOLpHdZxiCeCRFjn4lCT5kD2o2nsTaIRSkUqmzwuacdSweECs6LdrkkjCFF8M8hyMb7nsfMVtaftwMD59j9Z8R55vgzynG4q/F9B93Y4g6P+q84DLTyhcDMX/57V5fPOgw/oYSKlTCvhV9CeWh8GO sidebar_class_name: "patch api-method" info_path: network/stellar-disbursement-platform/api-reference/resources/stellar-disbursement-platform-api custom_edit_url: null diff --git a/network/stellar-disbursement-platform/api-reference/resources/update-a-receiver.api.mdx b/network/stellar-disbursement-platform/api-reference/resources/update-a-receiver.api.mdx index e8bf167c0..037e6009b 100644 --- a/network/stellar-disbursement-platform/api-reference/resources/update-a-receiver.api.mdx +++ b/network/stellar-disbursement-platform/api-reference/resources/update-a-receiver.api.mdx @@ -5,7 +5,7 @@ description: "This endpoint allows an organization to add and update information sidebar_label: "Update a Receiver" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "patch api-method" info_path: network/stellar-disbursement-platform/api-reference/resources/stellar-disbursement-platform-api custom_edit_url: null diff --git a/network/stellar-disbursement-platform/api-reference/resources/update-a-tenant.api.mdx b/network/stellar-disbursement-platform/api-reference/resources/update-a-tenant.api.mdx new file mode 100644 index 000000000..357ecb74c --- /dev/null +++ b/network/stellar-disbursement-platform/api-reference/resources/update-a-tenant.api.mdx @@ -0,0 +1,61 @@ +--- +id: update-a-tenant +title: "Update a Tenant" +description: "This endpoint updates the Tenant data." +sidebar_label: "Update a Tenant" +hide_title: true +hide_table_of_contents: true +api: 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 +sidebar_class_name: "patch api-method" +info_path: network/stellar-disbursement-platform/api-reference/resources/stellar-disbursement-platform-api +custom_edit_url: null +--- + +import { SepBadge } from "@site/src/components/SepBadge"; + + + +import ApiTabs from "@theme/ApiTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import Markdown from "@theme/Markdown"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; + +

                Update a Tenant

                + + + + + +This endpoint updates the Tenant data. + +## Request + +

                Path Parameters

                Body

                required
                + +List of fields to update for the tenant + +
                + +Updated Tenant details + +
                Schema
                + +Bad Request + +
                Schema
                + +Unauthorized + +
                Response Headers
                  Schema
                    extras object
                  + +Not Found + +
                  Response Headers
                    Schema
                      extras object
                    diff --git a/network/stellar-disbursement-platform/api-reference/resources/update-organization-profile.api.mdx b/network/stellar-disbursement-platform/api-reference/resources/update-organization-profile.api.mdx index 3d54edc00..2695941ab 100644 --- a/network/stellar-disbursement-platform/api-reference/resources/update-organization-profile.api.mdx +++ b/network/stellar-disbursement-platform/api-reference/resources/update-organization-profile.api.mdx @@ -5,7 +5,7 @@ description: "Updates the organization profile details. Only account owners have sidebar_label: "Update Organization Profile" hide_title: true hide_table_of_contents: true -api: eJztV9tu20YQ/ZUBX5qgsuSmlwehKOAkLXJpbaNyUBS2Ya/IkbQxucvuLqUqgv69Z3ZJm7YUB0GDPtUPNsmdy5nbmfUmc+xrazz7bLzJnh0eyp+Cfe50HbQ12Tg7eZsNstyawCbIqarrUudKTkfvvYhsMp8vuFLyFNY1Q8lO33MeoFg7W7MLOjmo2Hs1556gD06bebbdDgDlr0Y7LrLx+a3gJb7z36qqy2SggyvPS1U2fM9qZt1cGf0hgiO4numSqakLFbgg3+Q5JGdNWa7hUH4G2XeH3+yG/M6oJiys0x+AZpAtWBXsxP/2i2WCnbNuTx4k3OCU/7QFH1Ro+nKmqabsxMQjad7eJbQHIzu2ge7FfIei84NM9Sw/1Ogb/nilvqS7rn7f7tbvF+umuijY/MfF25/bOzSflaO+WhusYIiIXxfSpbGv6aTf86ep54H4QUdHWU9hwbR3SAoOSpd+SCemXJPKc9uYQHZlkDtaqCUTfFfae1EKlgoLWxryKAyPaWrDgmaay8KTcvARHauSpg3qFqhk5WHOMPmFbcqCpnhCJUibiElmn30Y0mt88mRQbcMyrcqtxZ3nEOVSNelFquPBGfJPM+silodGRActYytEmisMPU3X0cirs7NTyksNC0NkKqi5F87pJzK7THwEc89tsZa69Hqnasqga+XCCL6rA6RWfU77lHZud5v2DMjkhOxsp0wDikUSs1Q1yCTSV5s5ZOh9zfMYxb1WHGSCTAFtNtUGSRRa6HDe93tEbyYnx5QU4RnVklCVNqld2s6QKiQmHcb0357PbFnaleje8NqPia77yK+MqvianiTzT8dRxfCK5Pv+UK+DrvgDeuWqCfmVnc1QyH0WOjFKIh8xpv0VRt1ZzNdVt2FgbWotetLA3GrBUHNRt5OklXU3M4QlfcRGTUvsDyQbfTmka195mJprIEoxtjR1FRijjQw9RDv5bUKtDHUyqf2Dbds/Z72UUdNmqUMqBFdy3Hc0pAmbIp0CWJw3gr2wlmZP5bgueKbQn9cUGSVOhxbUNtRfEqi/RQIKwjxBILfCbNBIkne4SVL5b8CDC6klzjF9tbnIdlrsIhvTRXbMK0zxcXwf4H1PJyXBrw+fjQ8Pk9C+DhGp4BqW80+WO5n80zaJKBXVal1J0lYq1VLCWON45mxFm82wzzQCdrvFTGEb3cjh7z1Xv2pzs93etQG7YcK8r5gJhpg/O4UScgyfbr8/qhcyOaiknrVbEOUrGOa3X12Yx/gkLstuI3nOG6cDCPJ8kz1nUL87wpbG6+X2UvY3NrbsqlqFfCFEqOQwG/Xrl92ZmQiDJpLsG7slVFXrt7yGgpRcuKu9EXR2tBBa2hE7K/DNH2fUeMyxVEOuEqhQG/qAvJ4bHK001pgy9PPk2fc/YDfqpQwAeG0Yd7c2s0jcQQdZ8dkkcFkqRy+1nzbOcyz6KWohyaKj09cAIcOSAOwgEsZ/3MSTycvTp1JJhR6wsk11GWIA/QRGbq7UDeO8vOm6L35VNHe2qYUbMbq61vHALlu+67wbDsJ4Q5ImzpEAhxxSZbHJ1dRihTe+m3UgonPwJV8+WYRQ+/FoVPCSS1lwfuiTwSHgjQqb+xESzHPr1iOk/gD6B63EQdEL+KBuA346lD1VWx8qFW9kbZ0/46rTW9T/33oeu/WkiQq4eY+QfkwOMt+4UjKYpvT8HsvKjWiBwsj3zWaqPL9z5XYrn+HfCQPgcamclm0ZCaC7fEdywBDBXT8EGY506d17odoOOqUj/N9Wh574zt39HtecHp29eAXpaXtxq8Br+CyWo+HB3WNCqXZI5iaSTPsg6Lsjs+7BeMg+Ca38Fux7VX4EKRAo7Kdb8XTyUYVbMkvSUqZLMO8//3uV1g== +api: eJztV11v2zYU/SsXekmLOXbWdX0whgFu2qFp1ySYXQxFEji0RNusJVIjKXuu4f++c0kpkWM3RbFiT+tDKov349yvc6lNYqUrjXbSJf1N8uzkhP/LpEutKr0yOuknF++STpIa7aX2fCrKMlep4NPeJ8cim8Slc1kIfvLrUkLJTD7J1EOxtKaU1qvooJDOiZlsCTpvlZ4l220HUP6qlJVZ0r+6E7zBe/m3KMo8Gmjg8vNS5JXcsZoYOxNafQ7gCK6nKpdUlZnwMiNXpSkkp1Wer+GQ/3WS5yc/7of8QYvKz41Vn4Gmk8ylyKRl/9vvlglprbEH8sDheivc1y04L3zVltNVMZGWTTyS5u19QlswknPjaSfmexSNH2SqZfmhRtvwlyv1Pd019ftpv36/GTtRWSb1f1y8w7m9R/NNOWqr1cEyhoD4LOMuDX1NF+2ev4w9D8QPOjrIOvJzSQeHJJNeqNx16ULnaxJpairtyaw0ckdzsZQE34VyjpW8oczAloI8CiP7NDF+TlMl88yRsPARHIucJhXq5imXwsGcluTmpsozmuAJlSClAyaefel8l87wypFGtbXkaRV2ze6c9EEuVpNOYx2PR8g/TY0NWB4aYR20jCkQaSow9DRZByNvRqNLSnMFC11kyouZY85pJzK5iXwEcy9Ntua6tHqnqHKvSmF9D76LY6RWfEv75GZm9pt2BGR8Qma6V6YOhSKxWSoqZBLpK/UMMvSplLMQxU4rdhJGJoA2mSiNJDItNDh3/Q7o7fDinKIiPKNaHKpQOrZL3Rlchcik3ZD+u/OpyXOzYt2FXLs+0W0b+ViLQt7Sk2j+aT+oaLkifn841FuvCvkZvTKufDo20ykKechCI0ZR5AvGlBtj1K3BfI2bDQNrE2PQkxrmVnMJNRt0G0laGbuYIizuI6nFJMf+QLLRl126dYWDqZkCohhjTVNjLzHayNBDtMP3Q6plqJGJ7e9N3f6pVEseNaWXysdCyIKP2466NJQ6i6cAFuaNYM+vudljOW4zORXoz1sKjBKmQzFq48vvCdTdIQEFYZ4gkBpmNmhEyXvcxKn8N+DBhVQTZ5+ONtfJXotdJ326Ts7lClN8Hn538PtAJ0XBH06e9U9OotChDmEpbyvJ518tdzT50VSRKAWVYl1w0lYi1pLDWON4ak1Bm023zTQMdrvFTGEbLfjwj5ar35VebLf3bSBtN2I+VMwIg82PLqGEHMOnPeyPyjlPDiqppvUWRPkyCfPbo2v9GJ+EZdlsJCfTyioPgrzaJC8lqN8OsKXx82Z7w/sbG5t3VSl8OmciFHyY9Nr1S+7NDJlBI0m2jd0RqijVO7mGApecuau+ETR2FBNa3BF7K/DtnyOqHOaYq8FXCVSoDr1DTs00jlYKa0xoej189vML7Ea15AEAr3WZP18Kp9IHiObelxxAAM5syzJ7voNm3DuDHc+1R4KafPH8WGouQtaQMRjtaPDq/dn5eHB6evHhfNSvf12ejd+9/njUDTcKpadhnXjl+eKRDL3Mc2HplXKTyjoZWvESHcIlJOgCHo9whLaHlffQ4yaeDF9dPuX+EuhMwzte5T6ktV3WsDEKsZA4zxfNTIS3gmbWVCXHB0JRpQoHZlmzcONdS8883CUerRRlsagsFQb3CzExuFhUrmEgIKIrsLi8ecIVcf1eL5NLmfPadV0XDXYBr5eZ1PWQfDkzdt1DQxxD/7iWOM5aAR+XdcBPQ/VL43whwj2x7r5vuIC1rg//38Ueu4vFqfL4Hugh/ZhnZL6yOWcwcsfVDvfzPW2OwvD7zYan6IPNt1t+Df+WeQmPS2EV7/BAS80nQaAsjDbctUPg4YhX8YPXvG2nURrga7L0LfG9L4odBrwcjE7fQHpSXycLDDpes+VguHP/GFGKPepbBOqrHxh9c6TXLRgPOTGi5b+M/aDKLyAFArH+eiceT76ocEexUZrLdIN98A/kz8cL sidebar_class_name: "patch api-method" info_path: network/stellar-disbursement-platform/api-reference/resources/stellar-disbursement-platform-api custom_edit_url: null diff --git a/network/stellar-disbursement-platform/api-reference/resources/update-user-activation-status.api.mdx b/network/stellar-disbursement-platform/api-reference/resources/update-user-activation-status.api.mdx index 5b85853e6..5a5916871 100644 --- a/network/stellar-disbursement-platform/api-reference/resources/update-user-activation-status.api.mdx +++ b/network/stellar-disbursement-platform/api-reference/resources/update-user-activation-status.api.mdx @@ -5,7 +5,7 @@ description: "Updates the SDP user’s activation status. This endpoint is prima sidebar_label: "Update User Activation Status" hide_title: true hide_table_of_contents: true -api: eJzdV21PIzcQ/ivWfrqTsnkjSxJUVeWOq3pXqUIFVFUUodn1bGLY2FvbGy6HIvVv9O/1l3TGu0kWwtG7CvVDQUqMPa/PzDM295FFVxrt0EVH99Gw3+cviS6zqvTK6OgoemsRPMqoE2VGe9SeRaAsC5UBi/RuHMvdRy6b4wJ45VclkqZJbzDzpFhaU6L1qvaiZEvGeav0jGTwIyzKgrcG44PDFOVBPE6nw3g0PuzHkzwfxskgT/sTxP54mkfrTpQr6/y1hgU+b++DmWuWL+CLxE8MsjSloop9STqxpqgTaU7AWliRCeVx4Z7QIBXlriHzatl2nRqyAzqcW/y9UpZAPrpkeB7k1g58E9YmiLblq1YSlzXK0RhG2WGSJPEgHx/Eo2l6EMNwMIjzaZLKYTrBbNp/6K2B6wFaAZItIvX3d+Gzm5nFNhiKXeISC641R9NK2tsK150mqCQfyXwgZZxNRnk8mgwhnoxAxslokOdydIjjBPaCAo3/NqhcadCZguKaG5i2i734cigcrq/WWwhDHTfc4PUSiiosFugczDiAyqEVwULggbgDJ6pSMlmEq7KMBPOqKFZUYf7pRKP+YJ9eFxoqPzdWfQocmyNItOx+/WKEQ2uNfbKV8aO34P7ZgvPgq7acrhYpoUgmtnjs9/163WrJbRjRT8aLBznvotj4IaRalh9rtA1/vlAv6W5Tv4P9+n1vbKqkRP0fF+9pbHfRfBVGbbUmWY4hRPyeOXsR+lpccMsf71r+rAaw87ing7QTfo7i7ORUMFP++uNP12ZLjX1XnM+VE6hlaZT2gtalVQuwqlixmhTeiIVZooBgRZCQqc1gY0LczVGzqxXtZ1j64FbpJc1j1r4hwwJ0CMTYGWj1qY6ApE1FPkFLkYVLjpyU4NydsbJLSXmYhQHCWTueGDym0fk3Rq4YvReqMOd1/dSl+AUXR6sFtmaiJIPhQT+bxhKmSTxK5SBOhzCMARLZl/lhgrmMnph/deEdZpVVfhVukTcIFu0xkYH+vFpfMU2IGOylBJ/NORngw6jH/l1vV+FoZ+qMkaiTbRvc3aCl+hH5Cm1G+3FDvo0dxU1Vk2uv1z78cl43Sm5sYC1VpKlERzg103R0p/ycW+Dd2TA55AZbcrFvcdUNIHLBft6V9t1LYsrB5ybkqnx4X5x5LAqw4kS5tLKOgKEePC3AUwILcXz6nswsCco6vb18z5lTz5p4RZ3+mpkE1P6mEGmlCh/gabe/C8yCW6Tz4pb6fsVWwi6ImTVVKUwuLGaqVOGASGhrRjfeNXpiym1X/GoqkRG8xCFJZLXEo9RUnspCXbwdApdztHj1au596Y56ve1TwXVdbbBL4fWkyVyPyoczY1fcUzHpx41ELFsJx2WT8OsuM6U0zi8gEK/poq+aWS02/2/GV00uT/ddj7BS4RFc2fCorUl7GRqcsWjRljg+Jyz59P4+BYcXtliveZsYYnks0HJJKUIanpr8amq4yRODWMX/NNRgxuccQ2dz4eyPSX4U1hrHIflnZdvT5/T4/O0PJJ02s3hhJCtZuOOnH30eRb/Rb8QXWWj3cAfy/j29IvWsqq/62jAPAdgbSbdhJDULTm1zpFetMB/Pqjob/uTcnlT5hkguaOB9uxWvTz6rsB19tTRX8oqC/htY472I +api: eJzdV+tu2zYUfhVCf9oClm+x7DgYhrlJh16wLFgcDEUWBEfikc1GFjWScuoGBvYae709yc6hZFuJ064dgv1YAsgyee7nfB/pu8CgLXRu0QZHd0G/2+UPiTYxqnBK58FRcGwQHMqgFSQ6d5g7FoGiyFQCLNL5YFnuLrDJHBfAb25VIGnq+AMmjhQLows0TlVelGzIWGdUPiMZ/AiLIuOl3uhgGKM8CEfxuB8ORsNueJim/TDqpXH3ELE7GqfBuhWkylh3ncMCv2zvrZ7nLJ/BV4mfaGRpSkVl+5K0Y3RWJVLvgDGwIhPK4cI+okEqyl5D4tSy6TrWZAdyv2/w91IZKvLRJZfnXm7NwDdhbYJoWr5qJHFZVTkYwSAZRlEU9tLRQTgYxwch9Hu9MB1HsezHh5iMu/e91eW6Vy1fkm1Fqs8f/LOd6MU2GIpd4hIz7jVH00jamRLXrTqoKB3ItCdlmBwO0nBw2IfwcAAyjAa9NJWDIY4i2AsKcvy3QaUqhzxRkF3zANNythdfCpnF9dV6W0Lfxw02+H0JWelfFmgtzDiA0qIR3oLHgbgFK8pCMliELZOEBNMyy1bUYf5rBYNubx9eFzmUbq6N+uQxNkeQaNj9+skAh8Zo8+go40dnwP6zBevAlU25vFzEVEUysa3H/tyv142R3IYRnGon7uW8i2LjhyrVsPxQo2n48416Sneb/h3s9+9HbWIlJeb/cfMer+0umm+qUVOtTpZj8BG/Ycxe+LkWFzzyk93In1cFbD2caS9thZujOD85E4yUv/740zbRUtW+LaZzZQXmstAqd4LeC6MWYFS2YjUpnBYLvUQB3oogIV2ZwdqEuJ1jzq5WtJ5g4bxblS+Jj1n7AxkWkPtAtJlBrj5VEZC0Lskn5FIk/pAjJwVYe6uNbFNSDmaeQDhry4zBNI3WvdRyxdV7og5zXtePHYpfcXA0RmBrJogS6B90k3EoYRyFg1j2wrgP/RAgkl2ZDiNMZfAI/1WNt5iURrmVP0VeIhg0EwIDfb1aXzFMCBjspQCXzDkZ4M2gw/5tZ9fhYGfqnCtRJds0uDtBC/UO+QitqX1Sg29jR/FQVeDam7W3v06rQUm18ailjtSdaAmrZjlt3So35xF4dd6PhjxgS272Da7aXOOXYFXyIKK5cwUn4APnmrPMnm+vKV5Pp2dics9z7VGQGg4HIeaJlnwq+L4KnYpnk5Of3pxeT46Pf744nR7V387eXL979f5Z27eWx+iX3cC9espOc0lT7fNVzt96zh1mGRhxomxcGktZEzLOMnBU1oWgyMjMkhpcJb5XiSkj/YsmnhP+XjC+gUCpMxGXKnO+aU1QWo93uEHaz24IjSu24ldBzIwuC66ewUQVym8QNZiKZ2rvOTrC701bvNelSKjphGxJFGII3bEuHQ0L92BDTZdzNHj1nPttjzqd7QXGtm1lsE3hdaRObIdaizNtVjzpIemHtUQoGwmHRZ3wCz9bhbZuAZ4O6tn+JiZtcMz/hlQrgDk6hTtUK+Wv5qXxV+2KSi79gHMtGmRCzDOnWvLu3R3D6sJk6zUvE0IMkxW9LilFiP0FmO9yNWMwjxHW+adMVcxwyjG0NsfgPnnzVbXSmPjkvyjb5MSzyfT4NUnH9QmxINjTsoFbvpDS8yj4jf4DPl79uPuTmdfv6G6bz8rqAlIZZhKAPaK88URZv3Bqm6181QjzIYNW2fCTc3tU5TsCuSAa/n4rXu18VmFLyJU0d/KKgv4b6ufuvQ== sidebar_class_name: "patch api-method" info_path: network/stellar-disbursement-platform/api-reference/resources/stellar-disbursement-platform-api custom_edit_url: null diff --git a/network/stellar-disbursement-platform/api-reference/resources/update-user-profile.api.mdx b/network/stellar-disbursement-platform/api-reference/resources/update-user-profile.api.mdx index d2dbd5a94..46d4079f8 100644 --- a/network/stellar-disbursement-platform/api-reference/resources/update-user-profile.api.mdx +++ b/network/stellar-disbursement-platform/api-reference/resources/update-user-profile.api.mdx @@ -5,7 +5,7 @@ description: "Updates the profile details of the logged in user, including chang sidebar_label: "Update User Profile" hide_title: true hide_table_of_contents: true -api: eJzdVtuO2zYQ/RWCTwngyya9PBhFUSeboGmKxOjuoihcI6DEscSYEllevFUN/3tnKMnWrp1NCyR5yC5g0+RwLmfmHGnHHXhrag+ez3b86cUFfUnwuVM2KFPzGX/7mo94CUKCI6P9iOemDlAHMhXWapULMp2+92S/4z4voRK0Co0F9GCy95AH9GKdseCCaqNV4L0oYGDog1N1wfcYw8FfUTmQfLY8GK5wH/4WldWtgz53Wm+FjnDHK48eHMOQa6WBRStFAMl8zHO0WEetGwxEfyP+7cWT07pvahFDaZz6B7P4PAiAc8adqZ/KDE74j3vwQYQ4tKtjlYEjFw/Auz8COUiDvzGB3an5mEUfB5EaeL5/Y+j4wx36lOH6/n1z2r+XxmVKSqi/cPPOY3vM5n9hNLzWFUs5pIxfSZrSNNfshmZ90c46ZnpvkpONZ6GEAx8kBKG0Z2adtrUpCmSHqhmxZoSLXEeJ9bC8FHVBCyu8vzVOsrVxqQuIIWEHcnr3tp8wbBTMmNCarRVo6ZlwwEzKR2iWRWxjYBqED8zUwHxpopYswxU6JT+UE0kA+DDBeoIoPClBX+GqFQg8fWZkQ4B9oqaulfPhXS2qc7wZcS0eOsUISp896bH76LgM4/OX9OMNre9E5r+Kw3YXsv3+KX1OclPxYUheNR5yB4F3E4S/olMBcVvu+DPA3rg59hN/rvYr4hsyjO5ZEfIyuaJDPrWH+eo9XBGsLXJDP4cihVWvocELXebzjrypObitaDxbcp5M7S+/X9M4ncwbno6YV0WNR7cqlEzU7MXV0+++x9lWWyLDBppJApa6/9txTl58MZypsrVJQKhAEflVAK2FY5fKZ9F5RA0HfaFFwOoqNl+8Qldb5E5b+wkY18iHh108urpcPGYKqcaCMUQypUPCzrhC1B3mKAKGVWIDeK43yOmGvKRdwQpnoiVFcJArq9KBwaQSG/voNQQsdzNhf5jIcsTeYftYZZDgIjPI7OhJLdKVywVbluBg9agMwfrZdCphC5oI5ye+dTjB9KbS5H5KWlIY10yx62O8P+4sxnJQ8Nh2BT+eJGIZHyqRKN417T8I4kAtvgZtbKkW8Ok5RXCQUohLdEmIWuYuuT3qZomI0dZulwkPN07v97SN7hwJAi63wimR0dQu6Y2roydpBRILIz1vwRtfU+BR/8w6ld39qL8xx3cuGx60HerOYn79/Ge0zjptr4ykS07c4iZ9zvif+M/pWZiGOj1GaX+H/K2L2L4ttI5JB8SJKm2SKnULKq0/qptBmvflqq2GPqm2s1d+QCoz1LwfD+btyQcvHNSvtab2rTDpfwEkjg7A +api: eJzdVm1v2zYQ/isEv7QF/JJ1XT8YxTDnpWiWLTUWB0PhGQElnSXWFMmRlDPP8H/vHSXZSuymG9D1wxJApsh7fe7uoTbcgbdGe/B8tOEvT07oJwOfOmmDNJqP+Psr3uMFiAwcCW17PDU6gA4kKqxVMhUkOvzoSX7DfVpAKWgV1hbQgkk+QhrQinXGgguy9laC9yKHjqAPTuqcb9GHgz8r6SDjo9lOcI778JcoraoNtLHTeiVUBQ+s8sqDY+hyIRWwymYiQMZ8laYosaiUWqMj+uvxVyffHeZ9q0UVCuPk3xjFf4MAOGfckfwpzeCE/7IFH0SounK6KhNwZOIJeLd7IDth8GsT2IOc91G0fhCpjuXHGl3Dn6/Q13TX1u/7w/q9NS6RWQb6GxfvOLb7aP4VRl21JlmKIUZ8mVGXxr5mt9Trk7rXMdJHnRxlPAsF7OYhgyCk8sws4rYyeY7TITWjqenhIlVVhvmwtBA6p4UV3t8bl7GFcbEKiCFhB9nwobYfMCwUjJhQii0kqMwz4YCZGI9QLKmwjIEpED4wo4H5wlQqYwmu0CjZoZiIAsCHAeYTRO6JCdoM5zVB4OmpydYE2Fcq6kI6H+60KI/NTY8r8dQpepDq6EmL3Rfbpeufv6WXa1o/8Mx/EbvtxmX9+1N8DlJT8q5LXq49pA4CbzoI3yonA+I22/BTwNq4MdYTX+fbOc0bThjpWRHSIpqiQz60u/5qLdwQrDVyXTu7JIWVV7BGhSbycTO8sTi4Lak96+E86Nqff59SOx30G572mJe5xqN7GQomNLu4efnDa+xtuaJhWMJ6QKifCi/TRxEVIVhKIAaO7wnJHPiOmuzddDph4weeG48M1eD1qz7o1GR0q8Ri0jA9G5//enl9Nz47e397PR01b5PLu6uLD88GsdzUk7/tu/fim1Wf8F6YCIYM5JHfBFBKOHYufVI5j5Dg+E2UCIh5yTBsNLXCia5ROYBpilP6tInnN+eTF0wiAbBgDI2+VCFW1Lhc6KYTkJoMK8US8FwtkWnWZCXuCpY7U1mC1kEqrYwHBoOKHNF61xAw3eWAfTAVS7EjHDYVKw3SjkgM8k3lqUBR5XzCZgU4mD+nZvCj4TCDFSiiAT/wtcEBhjfMTOqHxHC5cesh9mIf9fuNRD/rJNy3TcIvYuNZ40MpIvE0RfsHNN3hsP8DY9fjFvBOHyI4OOiIS+UiPdZ8MuN2z+YFIkZbmw1N1q1T2y1tozlHNIXLlXBSJNS1M/oObEiDGAzHHT2d1eD1p+S4196kh5fBttdqjPFL0IYnZbtsOBlPz96hdNLcOCVOPm47cY+b9BzxP/Cf0w0dmzpe7rS/wfnVeVV/w9SGiQfEAVcuI1c2C0qtPdLrTpiPSbTOhp6U21GVNzjKDJn4x514ffJZhR0n19JUvjkG/QntFD/1 sidebar_class_name: "patch api-method" info_path: network/stellar-disbursement-platform/api-reference/resources/stellar-disbursement-platform-api custom_edit_url: null diff --git a/network/stellar-disbursement-platform/api-reference/resources/update-user-role.api.mdx b/network/stellar-disbursement-platform/api-reference/resources/update-user-role.api.mdx index 9e6d8d153..03e27c769 100644 --- a/network/stellar-disbursement-platform/api-reference/resources/update-user-role.api.mdx +++ b/network/stellar-disbursement-platform/api-reference/resources/update-user-role.api.mdx @@ -5,7 +5,7 @@ description: "Updates an SDP user’s role by ```user_ID```." sidebar_label: "Update User Role" hide_title: true hide_table_of_contents: true -api: eJy9Vf9u2zYQfhWCf7WAZbtuXaDBUMBtOiwrsAVNgmJwjeUknS3WksiRlFPNMLDX6Ov1SXpHybYSe+lWZEsAmxbv1/fdd6e1tOiMLh06ebKWo+GQv1J0iVXGK13KE/nrW9mTGUKKlo02PZno0mPp2RSMyVUCbDr46Nh+LV2SYQF88rVBiqDjj5h4imKsNmi9arIV6BwssGPovFXlQm4oB36CwuR4y05WDq2wOkcnbtCiqEwKHlPhqiQho3mV53XXO6TZIuTzCvLq+2LyX08+Gz45JOiqhMpn2qo/Mf2PqEJrtT1CFCP1Fty3IzgPvuralVURo+UQ9/ThTifaMuQv2otbmPdVbPMQU53Idz02/6hJD5lu27+nh/37UdtYpSmW/3PzjnO7r+ZfcdR1a8FyDaHis5RVGnQtrlju70juVOYdGQcDJ6AUF6fngufiy1+fXZgNEdfi+vqan/1+dkqnPrl7WFBdU8khnZz1qMA/KnT+lU5rLu2B6AtJVXpU/WFuOzdgLdQUQXks3FFB3+J8F1qOExg9HSYvohRejKNncfokikcwigDG6TCdPx/jnIXX5psSdSvMuUo5a9l2mFRWeUI+XctXCBbthBRIP2ebGWuT1MiZDPgkY5DAl3LANbhBE3gf5YLJaaB1Y+2BGvUWGWkJBf+etGIPFDMB3NFGzAeN/vn9JXc3FXNtw5RQk9rm9IRTi5KubpTPWAlvLkbj58JYtWLxLLHuB1lyD9/tu/3moSllAHMd8CrPgeWFxzwHK06ViyvriJzSi/McPIEoxOT8jEKtiMkG4gHmywzF/SEekegfC0X6F17rXMSVyn2gSNsFlC21ji5FAUuaiCpfCgM1RwlPQSysrozQc2ExUUaFC01FCd/JXqK/0XbZF7/pSiREsaUuiULTqwdiXXlqDUm1caExnGb0Upo9yrw37mQw2JHk+q4J2KfyBqlO3IBaiAtta5ZURP5RaxGlHcCRaQE/7vMAGe18AWEeWyV9a0905vo7VkajXk8LfECFkEqphsrmHLYZiGlQkNsJg0Ynoxr5Yr2OweGVzTcbfkzqszxtdFyBVRCzTqasnVb3PIikWMr3uqk4uuT0ve3yPNxKm97WY0Ivf+Pvte0O9fnk8vVPZB23q6/QKTtZuGEg9HkiP9C/5KUcZBT2OT9fyxzKRdW8tprAPGBwMO7LMO7tgaFtr8q6U+bdPdCg4U/GdtTlBxoeQcvk5c68uflbh91aaay5ibwEvwIPLpFA +api: eJy9Vv9uGkcQfpXV/pNE4oA4xlJQVQn/qOJadVCMVUUU2XN3A2y4u73u7uFQhNTXyOvlSTqzd8AZqNNGbkHCe7ezM9/M982sl9KgzXVm0cruUh612/wnRhsZlTulM9mV769kQ04RYjRstGrISGcOM8emkOeJioBNW58s2y+ljaaYAq/cIkfyoMNPGDnykhudo3GqjJaitTDBmqF1RmUTuaIY+BnSPMFHdrKwaITRCVrxgAZFkcfgMBa2iCIyGhdJsqif9mHWGfJ6DknxfT7505DH7df7BbrNoHBTbdQfGP9HpUJjtDlQKM7UGbDf9mAduKJulxVpiIZdPMHDDhMVDHmtnXiU8xbFOg5VquZ598TqH5H0nOHW/L3Z5+8nbUIVx5j9z+Qdru0Wzb+qUf1YlSxj8IgvY1ap17W4Zbl/ILkTzB0ZewMrIBM3533BffH1zy/W94YIF+L+/p7f3V2e06pJxx1MCNdQsksrRw0C+HuB1p3qeMHQnql8PqiKD6rf921tB4yBBXlQDlN7UNCPar5xLTsRHL1pR2+DGN52guMwfh2ER3AUAHTidjw+6eCYhVfFG1Lp5pgwSjmqqm0xKoxylPlwKU8RDJoeKZAeR6sRa5PUyJFycNGUkwTelC3GYFul462XGy5OmVrd1zbRXF0hZ5pBys+9Suy+xFwAZrQU8x7RP/86YHZjMdbGdwmRVJHTEFZNMtp6UG7KSri4OeqciNyoOYtnhosml/0UrIp2EE2dyzkBD5yeQ7bZi+1PineDQV/0HkWuIgo6hifHAWaRjnkKe+KEHosXvfNfLq/vemdn72+vB93qqX95d3Xx8UXTNwsr68NWgxfPTTSXdax9zsqxY3njMEnAiHNlw8JYyjxzop+Ao9KmgtCRqznxWya/V43BFMXTLl5SK74SirpSOK0TERYqcZ44bSaQVYRb2hQpzKhPi2QmcliwF/8WxMToIucKGoxUrvyGJlDC1aJn6B60mTXFR12IiIg3pB2RaroQIdSFI8EwD/4IDYfhlK7K0Uvm3HZbrU2RbNOWDpsErxXryLaIXpxos2ChB3Q+qCyCuJZwkFcJv/L6yrV1KfgpUen7W9OrNm2+Y5CVCnZ0rbQICPUOYShMwm7LNh16BdmNMKihp4SRN5ZLluytSVYrfk3qMzwDaDkHoyBknQxZO1U38nigPqJ4ZyXiYMDhG+uRvj8rV431iR79S5K7J23ro6bfG5y9I+uwGsgptRS9NvDAidBvV/5GX8lXhZeRv2X4/VImkE2K8jItHXODwd4QmvkhVC04tfVWtqjB3J1OZTb8y7kdPPIDNY+gEffjxrzc+dsDm2FXWjOJPJr/AkxdwnU= sidebar_class_name: "patch api-method" info_path: network/stellar-disbursement-platform/api-reference/resources/stellar-disbursement-platform-api custom_edit_url: null diff --git a/network/stellar-disbursement-platform/api-reference/resources/upload-disbursement-instructions.api.mdx b/network/stellar-disbursement-platform/api-reference/resources/upload-disbursement-instructions.api.mdx index 426bbfa2c..20a3f28cb 100644 --- a/network/stellar-disbursement-platform/api-reference/resources/upload-disbursement-instructions.api.mdx +++ b/network/stellar-disbursement-platform/api-reference/resources/upload-disbursement-instructions.api.mdx @@ -5,7 +5,7 @@ description: "Adds a file containing a list of receivers to a ```draft``` disbur sidebar_label: "Upload Disbursement Instructions" hide_title: true hide_table_of_contents: true -api: eJztV9tu4zYQ/RWCT5tCttNtug9GUSCXBkgLtME626IIDIQSxxY3FKmSVLJew//eGVJypNibNkV2UaDNQ3SbG8+ZOaTX3IGvrfHg+XTNXx9+TRcJvnCqDsoaPuWnDkQAyTNegpDgyHKT8cKaACaQvahrrQpB9pP3npzW3BclVILuwqoGDGPz91AEjFI7W4MLKqWswHuxhJ6hD06ZJd9gDvggqlrDwI6fKw2sqbXFYiTzTVGAXzRar/ouMXa3Nrq/E7p5RiD6y/jR4eEuHidCsrfwRwM+fCZMwDnr9iBCqwtO+L+OsLB2r/8TaD/Cu62BXxhETkm2ILAW1lUisK/GH1Yfeb+amI/nwvFeDv6zDUw0obROfcQG2vwtfj5P4o7PPf39zvRM/62E+iBC07czTZWD+2ecPoKnX0WXB5F6MSZfIl3H3ze7/J1blyspwXxh8vZj+1DNszDqu3VrPdpdKwFzbhvzH2rURbvcfU1z1G+aM+XzxnmoEAdmtp7P79UXyNhySMBEIi4kCU3catjA68IgBk1BNh5TDtk+ltIzkRSQCBbKIFz4RisfmF0wBwWoO2wCFiy+vrm5kU4sAl6Z7GUZs6tSeeYD1AyvDjcv5XDLywF1FdCxb8wKYfDLUhlyg5S9ajBhTqans1+ZMJKVgkpDYIwUTnYCHUrRBUhgMHymsuBu4iMF7WU0qK/wd2iU8m0xo1KVhKq21NkZWzbCCexyKnzFJGgIEQ1MgjjQIYUeA4YYLEcEbLK8CeDZfQkGDTAuGFlbhV/xvhBagxwj+kEskeTrAa+ez7HFMXMFIU7b9ZobfEB6FDWJIqJqEcod9i7OiCKqpx8PzTr8+RSph2x3OLdjMU/GeNI4sXJFFr05rxodFFYWJgT+SIognjPqxOuuwAyaU/WaM/UBtlk6MCWuqBnie1/aRlNDoU9c8sJqbe+JkNQZU3ZTl9ZApmQmKuyMkGHfqkUrVDeE/mDxGU+OtLsrI1w63T1Ad50WMN8MXxOi+MJD0TgVVpGuExAO3DHuJ/g4J1CRy9LSSNY2HuIif1M+6TeOn6yV3EzUcEC7wDNCOQHZD78FXdTqJ1ihQ9srx+1uFlfbtU1S8J3G+fG3K9Z4iEMVt0GspsUpY14tDX66V6HE1mc/zF5/+4bVTt3hGZ3dwmoccVJmkQ6AKhDLfBZAa+GG2nOpRSCQ2fHlBRZBOpIK2KmIuH46xKvZ2eUBTZPAHrGa5Y3SIS7AuqUw7cKjTlXiFvC7vmW1WEWkk3otnW3qVtVUreIHi0XFfuqyGwj31t2O2e+2iUKDcy9ZFWUst01A4DoVwIrYdQkO5q/KEGo/nUxQhkDTEPixTwHHWN5E2sJPEGBYWreaIPQj9B+1FgOlGtXtgg/GtKNR+1Qi7rAtz8/V+N5E/y/3X1ru06gG3OcnyCuOJFLaOE2sJEW45gNFQJ9pK/o9RlFPSpIRtF6vc+HhndObDb1G5XYkQXh7J5wSOc0iChIGpXsUoIXQHp5oiVdvW/IO2Ce3k73L6GTIkAa1pxyaa1SItHNt5pvuCBlrSh9OU+bRFbk/OO7bajZZ53SMP5zr0DPfOYEONPfyl9kVGuftjlZZST4UOMbNHm5JrTMudpT1Nipre0PF713tY8lNxdJ/Kn2vy3eohAx1+/utefrySYetgre40lJxR/oT0zUYOg== +api: eJztV11v2zYU/SsEX9oOst11aR+MYYCTtFhWLA0ad0MRBA0tXltsKFIjKaeu4f++e0kpkWI3W4a0GLDlIfq6X7zn8Fx6zR34yhoPno/X/NnT7+kiwedOVUFZw8f8wIEIIHnGCxASHFluMp5bE8AEshdVpVUuyH700ZPTmvu8gFLQXVhVgGHs7CPkAaNUzlbggkopS/BeLKBj6INTZsE3mAM+ibLS0LPjr5QGVlfaYjGS+TrPwc9rrVddlxi7XRvdL4Wu7xGI/jK+9/Tpdj/2hWRv4Y8afPhKPQHnrNvREVpdcML/dYS5tTv97+j2rX43NfAjg51Tks2pWXPrShHYd8NPq8+8W03Mx2fC8U4OfmwDE3UorFOfkUCbv4XP10nc4rmD3+9Mx/TfCqgPItRdO1OXM3D/DNNb7elW0ebBTj0Ykg+RrsXvh238Xlk3U1KC+cbg7e7tTTX36lHXrV3r3vZaqTGvbG3+Q0SdN8vdRZq9LmkOlZ/VzkOJfWDm2vP+XH2AjA2G1JgIxJEkoYmjhvW8jgz2oM7JxmPKPtoTKT0TSQEJYKEMtgvfaOUDs3PmIAe1RBKwYPH1xcWFdGIe8MpkJ8uQTQvlmQ9QMbw6HF7K4cibAeoqoGPXmOXC4JeFMuQGKXtZY8IZmR6c/saEkawQVBo2xkjhZCvQoRBtgNQMhs9UFixHPkLQXAa9+nK/RKOU77pnVKqSUFaWmJ2xRS2cQJZT4SsmQUOI3cAk2Ac6pNBjwBC95YiAJJvVATy7KsCgAcYFIyur8Cve50JrkEPsfhALBPmsh6vn50hxzFxCiLvtbM0NPiA8ikiiCKhKhGILvaNDgojq6cZDs7b/fIzQQ7a9Oa+3xXkyxpPGvpUrsujs87LWQWFlYUTNH0gRxH22OuG6LTA9cqoOORMPkGbpwJSwIjLE976wtSZCoU9c8txqba8IkMSMMbuoCmsgUzITJTIjZMhbNW+E6oK631t8xpMjTXdlhEunu5vWnaUFnG/6r6mj+MJDXjsVVhGufRAO3ATnCT6eU1MRy8LSlqxsPMRF/MZ81CWOH62V3IxUf4O2gU+py6mR3fDXTReVeg0rdGi4MmmmWVxtS5uk4FvE+eX3Kas9xE0VxyBW0/QpY14tDH66UqFA6rOXp8+ev2CVU0s8o7NLWA1JafeFV/mtiooQKt6QDeKZCW22ckdP9vN0esImvcxNRoZu8GJvACa38dQc0SKiP5oc/np0/GFycPDm3fF03DydHH14/fL9o2FET5l5OpaqQNzjpwG0Fq6viCdaBIKeoS+WR+qWStuqlRh4d4jHp4cnT2iPC2Su1WxWKx1iW61bCNPAEdWzFJeA3/Ulq8Qq4p80deFsXTVaqyoVP1gsKrK8zW4gXFl3OWTvbR3lD9VIsjKK68zWAeFstQkrYmcFODh/TIj48WiE4giatqYf+hRwiOWNpM39CJsPC+tWIyTEAP0HjUVPPwdVs+AnEX0idSni3G/Yd9/J09GZ/4fQtx5CabsGPH2MEFcUCoS0dppQSTp1xns6hT7jZhR1EEWVK0jc0Hq9pk37zunNhl7jPHEkjHi7FE6JGe1FlEkMSvcoi3OhPdxBicdvG/CesC8OuZ3LaMXRkDI2Zy/a16hbaZ5uzjftwTbWlD4cpMyDKbnfOO4agJusdZrgz/kqdMy3zsW9SXDy5nSKxrNmzpaobviWAse42c0tzZCMiy29v4x639xQ8TtXe3sQpGLpP5W+0+VHVEKG0+Sna/P05YsO13Ol6SstFefkn9VfSW8= sidebar_class_name: "post api-method" info_path: network/stellar-disbursement-platform/api-reference/resources/stellar-disbursement-platform-api custom_edit_url: null diff --git a/network/stellar-disbursement-platform/api-reference/resources/verify-receiver-registration.api.mdx b/network/stellar-disbursement-platform/api-reference/resources/verify-receiver-registration.api.mdx index bfe8876be..11f956bc2 100644 --- a/network/stellar-disbursement-platform/api-reference/resources/verify-receiver-registration.api.mdx +++ b/network/stellar-disbursement-platform/api-reference/resources/verify-receiver-registration.api.mdx @@ -5,7 +5,7 @@ description: "This endpoint verifies the receiver's registration by validating t sidebar_label: "Verify Receiver Registration" hide_title: true hide_table_of_contents: true -api: eJzdVttu4zYQ/RWCL0kAX7bBtg9+cy7bdS+OETu7WLiGQUlji2tJZEnKWdfwv3eGlGM5cpO2CPrQBEhEaXg4MzxzZrZcaTDCSVUMEt7jn8DIxYbdQwxyDQYfltK6YMBbPAEbG6n9qscnqbQMikQrWTi2pq0SLHMpMFMBnFl8PECwaMPWIpMJroqlt7ybjJgoEqZwYSqQOBijZYl42qi1TCBhsqiwf8fXjkUq2XRYPwCy8e2offmeObWCgtlUlVnCIsA9cVbWNvdLlyoj/wgnpCASPFUt6sAdDNSJpeW9KT+Kf9biWhiRgwNDX7e8wAUm4ggUd0vKTsBuJO3Iz4UyTBx5dP5BmVy4Hju7AmHQt6233J1dIBI5KA3gRTlTQovbOIVc8N6Wu40mR9BVzCvf7WbBGKO5wiyRRawKB4WjR6F1VuW4+9WSV9smlIq+QuzwUEw/UsThzdJXnaoC5kWZRxhb4+DnwY7ImgVrVtpwDXVC8F2LK6dfR7oroD2RObCRsPZRmWRPscQnsc4bwjxavwr+qcG6A+mQscQNdN48B54H1NfQJ/iVKNbkNpoCJoeIdtOf3M7vPsyvBveTj/h+NBji32F/Mrgb9n+ZD27mw4dfr27v+WxHVxsL7eJUzD05/oYLnm2HjBmVsx+VWmZE+uv+aHL9sY+swZ8XU4NlK6qKovLVtdttUSG3TsTY8tX9dEogfoPLPiirVWEDzS7fvaN/L/hiyzgGaxdlhmBvRO4cAcXy5JXCN5HrzO9dhUyhy+9PeXklEpRNX3v/iWfHp9+AEzKzTESqdJ65YIwyNZe/a7r8UOxFCO+jVSkXnbt7swCCF02losyiFtjXEawTrqzbVSKEEH+ZnRDz0909ucGHyrGjmA9e7M/BTNWQn++oA/tte/rScyjuNz6uukDsPqmiVq2VJ5gWLsVV91FkGbh2XVy7RyqI7QLi0ki3GdOdBa9Dk6H+VUue0PJn2OCGf9Hefvo8CUK/b23IncqDFrNyWeCnR+lSVAV2O778/gdUWrkWDtgKNh1OERK17g/N6/Zwe8fN51ACvoMclsfif/p9pd0N3W1Ia42pslgonybpvBKMHWSZMOxG2qg0FnOKY9AoEw5jz1l/NAhn2uDGifEJ2MsQ5+Ob0QXDIUugbKqMRaXMnM+sMktRVDeCE5diuVgBfs9WTIsNofi3gi2NKjV1HwxMauk/KJrsXO30Ahy21FWHfVEliwV1ChSxXBmodKS0+3ENPWJTnNRgdp46p22v201gDRlVqu3YANhB97qJim0Xkw1LZTZd5EQb97cri3ZSC7itq4AvOpRmInYuvLpUBPwnU2lt0vlfD6iBvg6FpIvpk37qKU3my8RLwpSfkITn1YFzYko6gtbbbSQsPJhst6PXeJLBwXGKj2thpIiI8lOaPqrKp/kXaxaduA4Jb9OgQwcE9Wu2i11rv6OPvVu7F21nNakb3Y0naBxVo2yuEtpjxCMVLP7t8d/wl4TAkyDoMb3f8kwUyzJIasClnz8BCmGSUw== +api: eJzdVm1v4kYQ/isrf0ki8XKNrveBbyZwDb0eoOBcdUojtLYneA/b6+6uyVHEf+/Mrgl2TJO2ivqhIIF3PTtv+8wzs/NkAYobIfNJ7A28L6DEw5bdQARiAwofVkIbJ+B1vBh0pERhVwMvSIRmkMeFFLlhGzoqQDOTAFOVgjONj0cVLNyyDU9FjKt8ZSVnwZzxPGYSF6pSEjlhlCxRX6HkRsQQM5FXun/HbcNCGW97zHcK2WI8716+Z0auIWc6kWUasxDwTJSWtcN+aRKpxB/OQgI8Rqvyoa64h4EavtLe4M5rxH/f8QqueAYGFL3deTkuMBENpXhaUHac7lbSGn4+SMV4w6Pzj1Jl3AzY2RC4Qt92VnJ/doGayEGhAC/KqBI6no4SyLg32HlmW5Aj6Crm1dvv750wRjPELJFEJHMDuaFHXhRpleP+N01e7dqqZPgNIoNGMf0IEYM3S2+LROawzMssxNhahp8HOydp5qRZqd011AHh7TueNMXrmmY5dAORAZtzrR+lig8Qi20S67ghnY31q8q/tFB3BB0ilrCBzqvnipdO62vaA3xLEGtjG0UBk0NAG/nBeDn7uBxOboJr3J9Ppvg79YPJbOr/spyMltPbz8PxjXe/p6uNeGGihC8tOP6GCxZtx4wpmbGfpFylBPorfx5cXfuIGvy8mBosW15VFJVvUbvdDhVy50SMHVvdT1Yc8FtYtkHpQubawezy3Tv6e8EXXUYRaP1QpqjsjcCdoUK+Onml8J1nRWrPrl2m0OX3p7wc8hhp09bef+JZ0/oIDBepZjyUpbHIBaWkqrn8Q9vl2/xAQngfnYq5yO7+zQJwXrSZijKLXKBf16ANN2VdriIhVPGX2XExP93dkxveVBrWiPnoxcEOZqqm+fmJumJ77ABfenbF/cbmqgvE7pNIatWFtAAruElw1X/kaQqmWyfXfoMFsV1AVCphtgu6M+e1azLUv2rJ44X4BFs88C/a28+/Bo7oD60NsVN50GFarHJ89ShMgqzAxovLHz8g04oNN8DWsO3RZQ65FtEzjxKDPaLqd7QOSaZl255k1wFOFH7DcmWR4TH48L4LeSSJ2h1IiJrP/NHnyXTpX13NbqfBoFrNJ8tP469n6BW6RYC/ObbU8RFTzZZ4LEzb147LZks6vV91lFY3aBF+rX5E/iBtqoSx/LQwkKZcsZHQYak0JgyHs3nKDd5IxjAoZ1M7N04MdcBeVnG+GM0vGI5+HMlcpiwsRWrsfUu14nmFE5wDJcv4GvB9umYF35IWu8vZSsmyoMRjYKIQ9oWkedPUrOdgsNGve+yrLFnEqX8htWZSQcVupT4MkegRu8P5Ee7PCSp60O/HsIGU+EP3tFPYQ/f6sYx0H5MNK6m2fURqF893K4luXAu4W1QBX1hYUrll3HJeVRb/ZFauzV//67HZwdcgvfUxfcLOYqVKbZlYorrzThDV8+rA6TUhdkPp3Y6K9lal+z1toyWF4+wdPm64EjwkyN/RTFTxEU3lyCToxJVLeJfGLzLgOLndxPadwwkfJ4rCvCh7XyPg+WwRoHBYDdgZcgruKv5IBYu/A+83/BIRWBC4LkH7Oy/l+ap0RO/00udPsGLDiA== sidebar_class_name: "post api-method" info_path: network/stellar-disbursement-platform/api-reference/resources/stellar-disbursement-platform-api custom_edit_url: null diff --git a/nginx/includes/redirects.conf b/nginx/includes/redirects.conf index d40db128e..8e2e3e84d 100644 --- a/nginx/includes/redirects.conf +++ b/nginx/includes/redirects.conf @@ -85,3 +85,41 @@ rewrite ^/docs/category/cross-border-payments$ "/network/anchor-platform/admin-g rewrite ^/docs/category/hosted-deposits-and-withdrawals$ "/network/anchor-platform/admin-guide/sep24" permanent; rewrite ^/docs/category/build-a-wallet$ "/docs/category/build-a-wallet-with-the-wallet-sdk" permanent; rewrite ^/dapps "/docs/learn/interactive/dapps" permanent; +# categorized Encyclopedia redirects +rewrite ^/docs/learn/smart-contract-internals/authorization$ "/docs/learn/encyclopedia/security/authorization" permanent; +rewrite ^/docs/learn/smart-contract-internals/types/built-in-types$ "/docs/learn/encyclopedia/contract-development/types/built-in-types" permanent; +rewrite ^/docs/learn/smart-contract-internals/types/custom-types$ "/docs/learn/encyclopedia/contract-development/types/custom-types" permanent; +rewrite ^/docs/learn/smart-contract-internals/types/fully-typed-contracts$ "/docs/learn/encyclopedia/contract-development/types/fully-typed-contracts" permanent; +rewrite ^/docs/learn/smart-contract-internals/contract-lifecycle$ "/docs/learn/encyclopedia/contract-development/contract-lifecycle" permanent; +rewrite ^/docs/learn/smart-contract-internals/rust-dialect$ "/docs/learn/encyclopedia/contract-development/rust-dialect" permanent; +rewrite ^/docs/learn/smart-contract-internals/debugging$ "/docs/learn/encyclopedia/errors-and-debugging/debugging" permanent; +rewrite ^/docs/learn/smart-contract-internals/debugging-errors$ "/docs/learn/encyclopedia/errors-and-debugging/debugging-errors" permanent; +rewrite ^/docs/learn/smart-contract-internals/environment-concepts$ "/docs/learn/encyclopedia/contract-development/environment-concepts" permanent; +rewrite ^/docs/learn/smart-contract-internals/errors$ "/docs/learn/encyclopedia/errors-and-debugging/errors" permanent; +rewrite ^/docs/learn/smart-contract-internals/events$ "/docs/learn/encyclopedia/contract-development/events" permanent; +rewrite ^/docs/learn/smart-contract-internals/contract-interactions/overview$ "/docs/learn/encyclopedia/contract-development/overview" permanent; +rewrite ^/docs/learn/smart-contract-internals/contract-interactions/cross-contract$ "/docs/learn/encyclopedia/contract-development/cross-contract" permanent; +rewrite ^/docs/learn/smart-contract-internals/contract-interactions/tests$ "/docs/learn/encyclopedia/contract-development/tests" permanent; +rewrite ^/docs/learn/smart-contract-internals/contract-interactions/stellar-transaction$ "/docs/learn/encyclopedia/contract-development/stellar-transaction" permanent; +rewrite ^/docs/learn/smart-contract-internals/contract-interactions/transaction-simulation$ "/docs/learn/encyclopedia/contract-development/transaction-simulation" permanent; +rewrite ^/docs/learn/smart-contract-internals/persisting-data$ "/docs/learn/encyclopedia/storage/persisting-data" permanent; +rewrite ^/docs/learn/smart-contract-internals/state-archival$ "/docs/learn/encyclopedia/storage/state-archival" permanent; +rewrite ^/docs/learn/encyclopedia/anchors$ "/docs/learn/fundamentals/anchors" permanent; +rewrite ^/docs/learn/encyclopedia/channel-accounts$ "/docs/learn/encyclopedia/transactions-specialized/channel-accounts" permanent; +rewrite ^/docs/learn/encyclopedia/claimable-balances$ "/docs/learn/encyclopedia/transactions-specialized/claimable-balances" permanent; +rewrite ^/docs/learn/encyclopedia/clawbacks$ "/docs/learn/encyclopedia/transactions-specialized/clawbacks" permanent; +rewrite ^/docs/learn/encyclopedia/federation$ "/docs/learn/encyclopedia/network-configuration/federation" permanent; +rewrite ^/docs/learn/encyclopedia/fee-bump-transactions$ "/docs/learn/encyclopedia/transactions-specialized/fee-bump-transactions" permanent; +rewrite ^/docs/learn/encyclopedia/channel-accounts$ "/docs/learn/encyclopedia/transactions-specialized/channel-accounts" permanent; +rewrite ^/docs/learn/encyclopedia/inflation$ "/docs/learn/encyclopedia/network-configuration/inflation" permanent; +rewrite ^/docs/learn/encyclopedia/ledger-headers$ "/docs/learn/encyclopedia/network-configuration/ledger-headers" permanent; +rewrite ^/docs/learn/encyclopedia/liquidity-on-stellar-sdex-liquidity-pools$ "/docs/learn/encyclopedia/sdex/liquidity-on-stellar-sdex-liquidity-pools" permanent; +rewrite ^/docs/learn/encyclopedia/lumen-supply-metrics$ "/docs/learn/fundamentals/lumens#lumen-supply-metrics" permanent; +rewrite ^/docs/learn/encyclopedia/memos$ "/docs/learn/encyclopedia/transactions-specialized/memos" permanent; +rewrite ^/docs/learn/encyclopedia/network-passphrases$ "/docs/learn/encyclopedia/network-configuration/network-passphrases" permanent; +rewrite ^/docs/learn/encyclopedia/path-payments$ "/docs/learn/encyclopedia/transactions-specialized/path-payments" permanent; +rewrite ^/docs/learn/encyclopedia/pooled-accounts-muxed-accounts-memos$ "/docs/learn/encyclopedia/transactions-specialized/pooled-accounts-muxed-accounts-memos" permanent; +rewrite ^/docs/learn/encyclopedia/securing-web-based-projects$ "/docs/learn/encyclopedia/security/securing-web-based-projects" permanent; +rewrite ^/docs/learn/encyclopedia/signatures-multisig$ "/docs/learn/encyclopedia/security/signatures-multisig" permanent; +rewrite ^/docs/learn/encyclopedia/sponsored-reserves$ "/docs/learn/encyclopedia/transactions-specialized/sponsored-reserves" permanent; +rewrite ^/docs/learn/encyclopedia/xdr$ "/docs/learn/encyclopedia/data-format/xdr" permanent; diff --git a/openapi/stellar-disbursement-platform/bundled.yml b/openapi/stellar-disbursement-platform/bundled.yml index c210f241d..12424f23e 100644 --- a/openapi/stellar-disbursement-platform/bundled.yml +++ b/openapi/stellar-disbursement-platform/bundled.yml @@ -30,6 +30,8 @@ tags: description: Organization endpoints manage the process of getting and updating organizational profile information. The organization’s profile has basic information set at the time of SDP deployment. It can be modified by the Owner. Organizations can also manage their preferences, like which assets to use, through these endpoints. - name: Users description: The users endpoints facilitate the creation of new SDP users–including setting the appropriate role, sending an email invitation, and activating a user–and managing roles. + - name: Admin + description: The Admin API oversees the management of tenants within the system, facilitating tasks such as provisioning new tenants, updating their information, and retrieving tenant data. paths: /login: post: @@ -1787,6 +1789,216 @@ paths: - application/json security: - BearerAuth: [] + /tenants: + get: + summary: Get All Tenants + responses: + '200': + description: A list of provisioned tenants with their configurations + schema: + $ref: '#/definitions/Tenants' + '401': + $ref: '#/responses/UnauthorizedResponse' + operationId: Get All Tenants + tags: + - Admin + parameters: [] + produces: + - application/json + security: + - BasicAuth: [] + post: + summary: Create Tenant + responses: + '201': + description: Provision a new tenant + schema: + $ref: '#/definitions/Tenant' + '401': + $ref: '#/responses/UnauthorizedResponse' + operationId: Create Tenant + tags: + - Admin + parameters: + - name: body + in: body + schema: + type: object + properties: + name: + type: string + description: The tenant name. It should match the pattern `^[a-z-]+$` + owner_email: + type: string + description: The owner user e-mail address + owner_first_name: + type: string + description: The owner user first name + owner_last_name: + type: string + description: The owner user last name + organization_name: + type: string + description: The organization name + base_url: + type: string + description: The SDP backend server's base URL. Id this field is not provided, the SDP will generate one based on the host `BASE_URL` configuration, and the tenant name. + sdp_ui_base_url: + type: string + description: The SDP UI/dashboard Base URL. Id this field is not provided, the SDP will generate one based on the host `SDP_UI_BASE_URL` configuration, and the tenant name. + example: + name: redcorp + owner_email: owner@redcorp.org + owner_first_name: Owner + owner_last_name: Last + organization_name: Red Corp + base_url: https://redcorp-backend.sdp.org + sdp_ui_base_url: https://redcorp.sdp.org + required: + - name + - owner_email + - owner_first_name + - owner_last_name + - organization_name + produces: + - application/json + security: + - BasicAuth: [] + /tenants/{arg}: + get: + summary: Retrieve a Tenant + responses: + '200': + description: Tenant details + schema: + $ref: '#/definitions/Tenant' + '401': + $ref: '#/responses/UnauthorizedResponse' + '404': + $ref: '#/responses/NotFoundResponse' + operationId: Retrieve a Tenant + tags: + - Admin + parameters: + - name: arg + in: path + description: ID or Name of the `Tenant`. + required: true + type: string + produces: + - application/json + security: + - BasicAuth: [] + /tenants/{id}: + delete: + summary: Soft delete a Tenant + responses: + '200': + description: Deleted Tenant details, with a non-empty `deleted_at` field + schema: + $ref: '#/definitions/Tenant' + '304': + description: The tenant was already deleted before this request. + schema: + $ref: '#/definitions/Tenant' + '400': + description: Bad request, when the tenant is not elligible to be deleted. For example, when the tenant is the default tenant or when it has not been patched with the deactivated status. + schema: + $ref: '#/responses/BadRequestResponse' + '404': + $ref: '#/responses/NotFoundResponse' + operationId: Soft delete a Tenant + tags: + - Admin + parameters: + - name: id + in: path + description: ID of the `Tenant`. + required: true + type: string + produces: + - application/json + security: + - BasicAuth: [] + patch: + responses: + '200': + description: Updated Tenant details + schema: + $ref: '#/definitions/Tenant' + '400': + $ref: '#/responses/BadRequestResponse' + '401': + $ref: '#/responses/UnauthorizedResponse' + '404': + $ref: '#/responses/NotFoundResponse' + summary: Update a Tenant + operationId: Update a Tenant + description: This endpoint updates the Tenant data. + tags: + - Admin + parameters: + - name: id + in: path + description: ID of the `Tenant`. + required: true + type: string + - name: body + in: body + description: List of fields to update for the tenant + required: true + schema: + type: object + properties: + base_url: + type: string + description: The SDP backend server's base URL. + sdp_ui_base_url: + type: string + description: The SDP UI/dashboard Base URL. + status: + type: string + enum: + - TENANT_CREATED + - TENANT_PROVISIONED + - TENANT_ACTIVATED + - TENANT_DEACTIVATED + produces: + - application/json + security: + - BasicAuth: [] + /tenants/default-tenant: + post: + summary: Default Tenant + responses: + '201': + description: Set the given tenant as default when Single Tenant Mode is enabled. Once set, the default tenant can be overwritten but never unset. + schema: + $ref: '#/definitions/Tenant' + '401': + $ref: '#/responses/UnauthorizedResponse' + '403': + $ref: '#/responses/ForbiddenResponse' + operationId: Default Tenant + tags: + - Admin + parameters: + - name: body + in: body + schema: + type: object + properties: + id: + type: string + description: The tenant id. + example: + id: 1736bed3-7b92-4760-8ff2-51fb08ee079f + required: + - id + produces: + - application/json + security: + - BasicAuth: [] definitions: Amount: type: object @@ -2590,6 +2802,84 @@ definitions: national_id: '123456789' email: john@example.com external_id: external123 + Tenant: + type: object + properties: + id: + type: string + example: 1736bed3-7b92-4760-8ff2-51fb08ee079f + name: + type: string + example: bluecorp + description: The tenant name. It should match the pattern `^[a-z-]+$`. + base_url: + type: string + example: https://bluecorp-backend.sdp.org + description: The SDP backend server's base URL. + sdp_ui_base_url: + type: string + example: https://bluecorp.sdp.org + description: The SDP UI/dashboard Base URL. + status: + type: string + enum: + - TENANT_CREATED + - TENANT_PROVISIONED + - TENANT_ACTIVATED + - TENANT_DEACTIVATED + distribution_account_address: + type: string + example: GCXAJ3XJ3VK3JFH3QMDFOSKM2NMMZBSO3VIT6EUPQWSDW2J74M23RRSL + description: The Stellar account address used for distributing funds. + distribution_account_type: + type: string + enum: + - ENV_STELLAR + - DB_VAULT_STELLAR + description: The Stellar account type used for distributing funds. + distribution_account_status: + type: string + enum: + - ACTIVE + - PENDING_USER_ACTIVATION + description: The status of the distribution account used for distributing funds. + is_default: + type: boolean + default: false + description: Boolean flag that shows whether the tenant is the default or not. + created_at: + type: string + format: date-time + example: '2024-03-27T17:21:51.000Z' + updated_at: + type: string + format: date-time + example: '2024-03-27T17:21:51.000Z' + deleted_at: + type: string + format: date-time + description: The timestamp when the tenant was (soft) deleted. + example: '2024-03-27T17:21:51.000Z' + required: + - id + - name + - status + - created_at + - updated_at + example: + id: 840dca45-d1df-44cd-83c1-65c04235c25f + name: redcorp + base_url: https://redcorp-backend.sdp.org + sdp_ui_base_url: https://redcorp.sdp.org + status: TENANT_PROVISIONED + distribution_account: GCQVDMPOEN3HHJJ64V42KUTONOXN7C6V2PSVPALEVJ7PIYOB6M3DJV7N + is_default: true + created_at: '2024-03-27T17:21:51.000Z' + updated_at: '2024-03-27T17:21:51.000Z' + Tenants: + type: array + items: + $ref: '#/definitions/Tenant' responses: UnauthorizedResponse: description: Unauthorized @@ -2665,3 +2955,7 @@ securityDefinitions: name: Authorization in: header description: JWT used for authentication, signed with an ES256 private key. + BasicAuth: + type: http + scheme: basic + description: Basic HTTP Authentication with a base64-encoded string of 'ADMIN_ACCOUNT:ADMIN_API_KEY'. diff --git a/openapi/stellar-disbursement-platform/main.yml b/openapi/stellar-disbursement-platform/main.yml index 76373cb25..7a16f5d08 100644 --- a/openapi/stellar-disbursement-platform/main.yml +++ b/openapi/stellar-disbursement-platform/main.yml @@ -1831,6 +1831,214 @@ paths: - application/json security: - BearerAuth: [] + + /tenants: + get: + summary: Get All Tenants + responses: + "200": + description: "A list of provisioned tenants with their configurations" + schema: + $ref: "#/definitions/Tenants" + "401": + $ref: "#/responses/UnauthorizedResponse" + operationId: Get All Tenants + tags: + - Admin + parameters: [] + produces: + - application/json + security: + - BasicAuth: [] + post: + summary: Create Tenant + responses: + "201": + description: "Provision a new tenant" + schema: + $ref: "#/definitions/Tenant" + "401": + $ref: "#/responses/UnauthorizedResponse" + operationId: Create Tenant + tags: + - Admin + parameters: + - name: body + in: body + schema: + type: object + properties: + name: + type: string + description: The tenant name. It should match the pattern `^[a-z-]+$` + owner_email: + type: string + description: The owner user e-mail address + owner_first_name: + type: string + description: The owner user first name + owner_last_name: + type: string + description: The owner user last name + organization_name: + type: string + description: The organization name + base_url: + type: string + description: The SDP backend server's base URL. If this field is not provided, the SDP will generate one based on the host `BASE_URL` configuration, and the tenant name. + sdp_ui_base_url: + type: string + description: The SDP UI/dashboard Base URL. If this field is not provided, the SDP will generate one based on the host `SDP_UI_BASE_URL` configuration, and the tenant name. + example: + name: "redcorp" + owner_email: "owner@redcorp.org" + owner_first_name: "Owner" + owner_last_name: "Last" + organization_name: "Red Corp" + base_url: "https://redcorp-backend.sdp.org" + sdp_ui_base_url: "https://redcorp.sdp.org" + required: + - name + - owner_email + - owner_first_name + - owner_last_name + - organization_name + produces: + - application/json + security: + - BasicAuth: [] + /tenants/{arg}: + get: + summary: Retrieve a Tenant + responses: + "200": + description: "Tenant details" + schema: + $ref: "#/definitions/Tenant" + "401": + $ref: "#/responses/UnauthorizedResponse" + "404": + $ref: "#/responses/NotFoundResponse" + operationId: Retrieve a Tenant + tags: + - Admin + parameters: + - name: arg + in: path + description: ID or Name of the `Tenant`. + required: true + type: string + produces: + - application/json + security: + - BasicAuth: [] + /tenants/{id}: + delete: + summary: Soft delete a Tenant + responses: + "200": + description: "Deleted Tenant details, with a non-empty `deleted_at` field" + schema: + $ref: "#/definitions/Tenant" + "304": + description: "The tenant was already deleted before this request." + schema: + $ref: "#/definitions/Tenant" + "400": + description: "Bad request, when the tenant is not elligible to be deleted. For example, when the tenant is the default tenant or when it has not been patched with the deactivated status." + schema: + $ref: "#/responses/BadRequestResponse" + "404": + $ref: "#/responses/NotFoundResponse" + operationId: Soft delete a Tenant + tags: + - Admin + parameters: + - name: id + in: path + description: ID of the `Tenant`. + required: true + type: string + produces: + - application/json + security: + - BasicAuth: [] + patch: + responses: + "200": + description: "Updated Tenant details" + schema: + $ref: "#/definitions/Tenant" + "400": + $ref: "#/responses/BadRequestResponse" + "401": + $ref: "#/responses/UnauthorizedResponse" + "404": + $ref: "#/responses/NotFoundResponse" + summary: Update a Tenant + operationId: Update a Tenant + description: This endpoint updates the Tenant data. + tags: + - Admin + parameters: + - name: id + in: path + description: ID of the `Tenant`. + required: true + type: string + - name: body + in: body + description: List of fields to update for the tenant + required: true + schema: + type: object + properties: + base_url: + type: string + description: The SDP backend server's base URL. + sdp_ui_base_url: + type: string + description: The SDP UI/dashboard Base URL. + status: + type: string + enum: [ TENANT_CREATED, TENANT_PROVISIONED, TENANT_ACTIVATED, TENANT_DEACTIVATED ] + produces: + - application/json + security: + - BasicAuth: [] + /tenants/default-tenant: + post: + summary: Default Tenant + responses: + "201": + description: "Set the given tenant as default when Single Tenant Mode is enabled. Once set, the default tenant can be overwritten but never unset." + schema: + $ref: "#/definitions/Tenant" + "401": + $ref: "#/responses/UnauthorizedResponse" + "403": + $ref: "#/responses/ForbiddenResponse" + operationId: Default Tenant + tags: + - Admin + parameters: + - name: body + in: body + schema: + type: object + properties: + id: + type: string + description: The tenant id. + example: + id: "1736bed3-7b92-4760-8ff2-51fb08ee079f" + required: + - id + produces: + - application/json + security: + - BasicAuth: [] + definitions: Amount: type: "object" @@ -2661,6 +2869,78 @@ definitions: national_id: "123456789" email: "john@example.com" external_id: "external123" + + Tenant: + type: object + properties: + id: + type: string + example: "1736bed3-7b92-4760-8ff2-51fb08ee079f" + name: + type: string + example: bluecorp + description: The tenant name. It should match the pattern `^[a-z-]+$`. + base_url: + type: string + example: "https://bluecorp-backend.sdp.org" + description: The SDP backend server's base URL. + sdp_ui_base_url: + type: string + example: "https://bluecorp.sdp.org" + description: The SDP UI/dashboard Base URL. + status: + type: string + enum: [ TENANT_CREATED, TENANT_PROVISIONED, TENANT_ACTIVATED, TENANT_DEACTIVATED ] + distribution_account_address: + type: string + example: "GCXAJ3XJ3VK3JFH3QMDFOSKM2NMMZBSO3VIT6EUPQWSDW2J74M23RRSL" + description: The Stellar account address used for distributing funds. + distribution_account_type: + type: string + enum: [ "ENV_STELLAR", "DB_VAULT_STELLAR" ] + description: The Stellar account type used for distributing funds. + distribution_account_status: + type: string + enum: [ "ACTIVE", "PENDING_USER_ACTIVATION" ] + description: The status of the distribution account used for distributing funds. + is_default: + type: boolean + default: false + description: Boolean flag that shows whether the tenant is the default or not. + created_at: + type: string + format: date-time + example: "2024-03-27T17:21:51.000Z" + updated_at: + type: string + format: date-time + example: "2024-03-27T17:21:51.000Z" + deleted_at: + type: string + format: date-time + description: The timestamp when the tenant was (soft) deleted. + example: "2024-03-27T17:21:51.000Z" + required: + - id + - name + - status + - created_at + - updated_at + example: + id: "840dca45-d1df-44cd-83c1-65c04235c25f" + name: "redcorp" + base_url: "https://redcorp-backend.sdp.org" + sdp_ui_base_url: "https://redcorp.sdp.org" + status: "TENANT_PROVISIONED" + distribution_account: "GCQVDMPOEN3HHJJ64V42KUTONOXN7C6V2PSVPALEVJ7PIYOB6M3DJV7N" + is_default: true + created_at: "2024-03-27T17:21:51.000Z" + updated_at: "2024-03-27T17:21:51.000Z" + Tenants: + type: array + items: + $ref: "#/definitions/Tenant" + responses: UnauthorizedResponse: description: Unauthorized @@ -2736,6 +3016,10 @@ securityDefinitions: name: "Authorization" in: "header" description: "JWT used for authentication, signed with an ES256 private key." + BasicAuth: + type: "http" + scheme: "basic" + description: "Basic HTTP Authentication with a base64-encoded string of 'ADMIN_ACCOUNT:ADMIN_API_KEY'." tags: - name: Authentication description: 'Authentication endpoints control the login, token refresh, and password management processes for SDP users.' @@ -2774,3 +3058,7 @@ tags: - name: Users description: >- The users endpoints facilitate the creation of new SDP users–including setting the appropriate role, sending an email invitation, and activating a user–and managing roles. + + - name: Admin + description: >- + The Admin API oversees the management of tenants within the system, facilitating tasks such as provisioning new tenants, updating their information, and retrieving tenant data. \ No newline at end of file diff --git a/openrpc/src/contentDescriptors/Pagination.json b/openrpc/src/contentDescriptors/Pagination.json index 94b1872a8..9f86c57b1 100644 --- a/openrpc/src/contentDescriptors/Pagination.json +++ b/openrpc/src/contentDescriptors/Pagination.json @@ -1,11 +1,20 @@ { - "Pagination": { + "EventsPagination": { "name": "pagination", "summary": "pagination options", "description": "Pagination in soroban-rpc is similar to pagination in Horizon. See [Pagination](https://developers.stellar.org/network/soroban-rpc/pagination).", "required": false, "schema": { - "$ref": "#/components/schemas/Pagination" + "$ref": "#/components/schemas/EventsPagination" + } + }, + "TransactionsPagination": { + "name": "pagination", + "summary": "pagination options", + "description": "Pagination in RPC is similar to pagination in Horizon. See [Pagination](https://developers.stellar.org/network/soroban-rpc/pagination).", + "required": false, + "schema": { + "$ref": "#/components/schemas/TransactionsPagination" } } } diff --git a/openrpc/src/contentDescriptors/StartLedger.json b/openrpc/src/contentDescriptors/StartLedger.json index 9da7c4b87..d0901f4d3 100644 --- a/openrpc/src/contentDescriptors/StartLedger.json +++ b/openrpc/src/contentDescriptors/StartLedger.json @@ -2,7 +2,7 @@ "StartLedger": { "name": "startLedger", "summary": "ledger to begin searching from", - "description": "Ledger sequence number to fetch events after (inclusive). This method will return an error if `startLedger` is less than the oldest ledger stored in this node, or greater than the latest ledger seen by this node. If a cursor is included in the request, `startLedger` must be omitted.", + "description": "Ledger sequence number to start fetching responses from (inclusive). This method will return an error if `startLedger` is less than the oldest ledger stored in this node, or greater than the latest ledger seen by this node. If a cursor is included in the request, `startLedger` must be omitted.", "required": true, "schema": { "$ref": "#/components/schemas/LedgerSequence" diff --git a/openrpc/src/examplePairingObjects/GetTransactionsPairs.json b/openrpc/src/examplePairingObjects/GetTransactionsPairs.json new file mode 100644 index 000000000..1cf8cbb11 --- /dev/null +++ b/openrpc/src/examplePairingObjects/GetTransactionsPairs.json @@ -0,0 +1,23 @@ +{ + "SuccessfulGetTransactionsRequest": { + "name": "Successful getTransactions Request", + "description": "Query a list of transactions starting from the given startLedger.", + "params": [ + { "$ref": "#/components/examples/GetTransactionsStartLedger" }, + { "$ref": "#/components/examples/GetTransactionsPagination" } + ], + "result": { + "$ref": "#/components/examples/GetTransactionsResult" + } + }, + "SuccessfulGetTransactionsRequestUsingCursor": { + "name": "Successful getTransactions Request Using Cursor", + "description": "Query a list of transactions starting from the given cursor.", + "params": [ + { "$ref": "#/components/examples/GetTransactionsPaginationWithCursor" } + ], + "result": { + "$ref": "#/components/examples/GetTransactionsResultUsingCursor" + } + } +} diff --git a/openrpc/src/examples/Transactions.json b/openrpc/src/examples/Transactions.json index 6e3721bd8..7e558c4a9 100644 --- a/openrpc/src/examples/Transactions.json +++ b/openrpc/src/examples/Transactions.json @@ -107,5 +107,167 @@ "latestLedger": 2553978, "latestLedgerCloseTime": "1700159337" } + }, + "GetTransactionsStartLedger": { + "name": "startLedger", + "value": 1888539 + }, + "GetTransactionsPagination": { + "name": "pagination", + "value": { + "limit": 5 + } + }, + "GetTransactionsPaginationWithCursor": { + "name": "pagination", + "value": { + "cursor": "8111217537191937", + "limit": 5 + } + }, + "GetTransactionsResult": { + "name": "getTransactionsResult", + "value": { + "transactions": [ + { + "status": "FAILED", + "applicationOrder": 1, + "feeBump": false, + "envelopeXdr": "AAAAAgAAAACDz21Q3CTITlGqRus3/96/05EDivbtfJncNQKt64BTbAAAASwAAKkyAAXlMwAAAAEAAAAAAAAAAAAAAABmWeASAAAAAQAAABR3YWxsZXQ6MTcxMjkwNjMzNjUxMAAAAAEAAAABAAAAAIPPbVDcJMhOUapG6zf/3r/TkQOK9u18mdw1Aq3rgFNsAAAAAQAAAABwOSvou8mtwTtCkysVioO35TSgyRir2+WGqO8FShG/GAAAAAFVQUgAAAAAAO371tlrHUfK+AvmQvHje1jSUrvJb3y3wrJ7EplQeqTkAAAAAAX14QAAAAAAAAAAAeuAU2wAAABAn+6A+xXvMasptAm9BEJwf5Y9CLLQtV44TsNqS8ocPmn4n8Rtyb09SBiFoMv8isYgeQU5nAHsIwBNbEKCerusAQ==", + "resultXdr": "AAAAAAAAAGT/////AAAAAQAAAAAAAAAB////+gAAAAA=", + "resultMetaXdr": "AAAAAwAAAAAAAAACAAAAAwAc0RsAAAAAAAAAAIPPbVDcJMhOUapG6zf/3r/TkQOK9u18mdw1Aq3rgFNsAAAAF0YpYBQAAKkyAAXlMgAAAAsAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAMAAAAAABzRGgAAAABmWd/VAAAAAAAAAAEAHNEbAAAAAAAAAACDz21Q3CTITlGqRus3/96/05EDivbtfJncNQKt64BTbAAAABdGKWAUAACpMgAF5TMAAAALAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAADAAAAAAAc0RsAAAAAZlnf2gAAAAAAAAAAAAAAAAAAAAA=", + "ledger": 1888539, + "createdAt": 1717166042 + }, + { + "status": "SUCCESS", + "applicationOrder": 2, + "feeBump": false, + "envelopeXdr": "AAAAAgAAAAC4EZup+ewCs/doS3hKbeAa4EviBHqAFYM09oHuLtqrGAAPQkAAGgQZAAAANgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAABB90WssODNIgi6BHveqzxTRmIpvAFRyVNM+Hm2GVuCcAAAAAAAAAAAq6aHAHZ2sd9aPbRsskrlXMLWIwqs4Sv2Bk+VwuIR+9wAAABdIdugAAAAAAAAAAAIu2qsYAAAAQERzKOqYYiPXNwsiL8ADAG/f45RBssmf3umGzw4qKkLGlObuPdX0buWmTGrhI13SG38F2V8Mp9DI+eDkcCjMSAOGVuCcAAAAQHnm0o/r+Gsl+6oqBgSbqoSY37gflvQB3zZRghuir0N75UVerd0Q50yG5Zfu08i2crhx6uk+5HYTl8/Sa7uZ+Qc=", + "resultXdr": "AAAAAAAAAGQAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAA=", + "resultMetaXdr": "AAAAAwAAAAAAAAACAAAAAwAc0RsAAAAAAAAAALgRm6n57AKz92hLeEpt4BrgS+IEeoAVgzT2ge4u2qsYAAAAADwzS2gAGgQZAAAANQAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAMAAAAAABzPVAAAAABmWdZ2AAAAAAAAAAEAHNEbAAAAAAAAAAC4EZup+ewCs/doS3hKbeAa4EviBHqAFYM09oHuLtqrGAAAAAA8M0toABoEGQAAADYAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAADAAAAAAAc0RsAAAAAZlnf2gAAAAAAAAABAAAAAwAAAAMAHNEaAAAAAAAAAAAQfdFrLDgzSIIugR73qs8U0ZiKbwBUclTTPh5thlbgnABZJUSd0V2hAAAAawAAAlEAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAADAAAAAAAaBGEAAAAAZkspCwAAAAAAAAABABzRGwAAAAAAAAAAEH3Rayw4M0iCLoEe96rPFNGYim8AVHJU0z4ebYZW4JwAWSUtVVp1oQAAAGsAAAJRAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAwAAAAAAGgRhAAAAAGZLKQsAAAAAAAAAAAAc0RsAAAAAAAAAACrpocAdnax31o9tGyySuVcwtYjCqzhK/YGT5XC4hH73AAAAF0h26AAAHNEbAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=", + "ledger": 1888539, + "createdAt": 1717166042 + }, + { + "status": "SUCCESS", + "applicationOrder": 3, + "feeBump": false, + "envelopeXdr": "AAAAAgAAAACwtG/IRC5DZE1UdekijEsoQEPM/uOwZ3iY/Y8UZ3b9xAAPQkAAGgRHAAAANgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAABB90WssODNIgi6BHveqzxTRmIpvAFRyVNM+Hm2GVuCcAAAAAAAAAADgdupKeB04lazKXCOb+E1JfxaM3tI4Xsb/qDa1MWOvXgAAABdIdugAAAAAAAAAAAJndv3EAAAAQKcTimw6KKcM0AeCMxXJcEK/hS9ROoj/qpMFppGNAr4W3ifSOSTGAFbA+cIVHmaV4p7xGcR+9JnUN1YjamvJZwSGVuCcAAAAQK9Cp775JbnYA793SXkkWWbmvnEFTiDPiFyTHxTphCwBDB1zqkXqGG6Q5O3dAyqkNJvj1XNRDsmY4pKV41qijQU=", + "resultXdr": "AAAAAAAAAGQAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAA=", + "resultMetaXdr": "AAAAAwAAAAAAAAACAAAAAwAc0RsAAAAAAAAAALC0b8hELkNkTVR16SKMSyhAQ8z+47BneJj9jxRndv3EAAAAADwzS2gAGgRHAAAANQAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAMAAAAAABzPVAAAAABmWdZ2AAAAAAAAAAEAHNEbAAAAAAAAAACwtG/IRC5DZE1UdekijEsoQEPM/uOwZ3iY/Y8UZ3b9xAAAAAA8M0toABoERwAAADYAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAADAAAAAAAc0RsAAAAAZlnf2gAAAAAAAAABAAAAAwAAAAMAHNEbAAAAAAAAAAAQfdFrLDgzSIIugR73qs8U0ZiKbwBUclTTPh5thlbgnABZJS1VWnWhAAAAawAAAlEAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAADAAAAAAAaBGEAAAAAZkspCwAAAAAAAAABABzRGwAAAAAAAAAAEH3Rayw4M0iCLoEe96rPFNGYim8AVHJU0z4ebYZW4JwAWSUWDOONoQAAAGsAAAJRAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAwAAAAAAGgRhAAAAAGZLKQsAAAAAAAAAAAAc0RsAAAAAAAAAAOB26kp4HTiVrMpcI5v4TUl/Foze0jhexv+oNrUxY69eAAAAF0h26AAAHNEbAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=", + "ledger": 1888539, + "createdAt": 1717166042 + }, + { + "status": "SUCCESS", + "applicationOrder": 4, + "feeBump": false, + "envelopeXdr": "AAAAAgAAAACxMt2gKYOehEoVbmh9vfvZ4mVzXFSNTbAU5S4a8zorrAA4wrwAHLqRAAAADAAAAAAAAAAAAAAAAQAAAAAAAAAYAAAAAQAAAAAAAAAAAAAAALEy3aApg56EShVuaH29+9niZXNcVI1NsBTlLhrzOiusz3K+BVgRzXig/Bhz1TL5Qy+Ibv6cDvCfdaAtBMMFPcYAAAAAHXUVmJM11pdJSKKV52UJrVYlvxaPLmmg17nMe0HGy0MAAAABAAAAAAAAAAEAAAAAAAAAAAAAAACxMt2gKYOehEoVbmh9vfvZ4mVzXFSNTbAU5S4a8zorrM9yvgVYEc14oPwYc9Uy+UMviG7+nA7wn3WgLQTDBT3GAAAAAB11FZiTNdaXSUiiledlCa1WJb8Wjy5poNe5zHtBxstDAAAAAAAAAAEAAAAAAAAAAQAAAAcddRWYkzXWl0lIopXnZQmtViW/Fo8uaaDXucx7QcbLQwAAAAEAAAAGAAAAAbolCtTsMrJvK0M2SaskFsaMajj3iAZbXxELZHwDyE5dAAAAFAAAAAEABf2jAAAd1AAAAGgAAAAAADjCWAAAAAHzOiusAAAAQM+qaiMKxMoCVNjdRIh3X9CSxkjAm0BpXYDB9Fd+DS0guYKiY3TMaVe243UB008iBn5ynQv724rReXlg7iFqXQA=", + "resultXdr": "AAAAAAAw3cUAAAAAAAAAAQAAAAAAAAAYAAAAAKg/pGuhtOG27rIpG8xhUIp46CStGWOcsGlNsTQv44UOAAAAAA==", + "resultMetaXdr": "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", + "diagnosticEventsXdr": [ + "AAAAAAAAAAAAAAAAAAAAAgAAAAAAAAACAAAADwAAAAxjb3JlX21ldHJpY3MAAAAPAAAACnJlYWRfZW50cnkAAAAAAAUAAAAAAAAAAg==", + "AAAAAAAAAAAAAAAAAAAAAgAAAAAAAAACAAAADwAAAAxjb3JlX21ldHJpY3MAAAAPAAAAC3dyaXRlX2VudHJ5AAAAAAUAAAAAAAAAAQ==", + "AAAAAAAAAAAAAAAAAAAAAgAAAAAAAAACAAAADwAAAAxjb3JlX21ldHJpY3MAAAAPAAAAEGxlZGdlcl9yZWFkX2J5dGUAAAAFAAAAAAAAHdQ=", + "AAAAAAAAAAAAAAAAAAAAAgAAAAAAAAACAAAADwAAAAxjb3JlX21ldHJpY3MAAAAPAAAAEWxlZGdlcl93cml0ZV9ieXRlAAAAAAAABQAAAAAAAABo", + "AAAAAAAAAAAAAAAAAAAAAgAAAAAAAAACAAAADwAAAAxjb3JlX21ldHJpY3MAAAAPAAAADXJlYWRfa2V5X2J5dGUAAAAAAAAFAAAAAAAAAFQ=", + "AAAAAAAAAAAAAAAAAAAAAgAAAAAAAAACAAAADwAAAAxjb3JlX21ldHJpY3MAAAAPAAAADndyaXRlX2tleV9ieXRlAAAAAAAFAAAAAAAAAAA=", + "AAAAAAAAAAAAAAAAAAAAAgAAAAAAAAACAAAADwAAAAxjb3JlX21ldHJpY3MAAAAPAAAADnJlYWRfZGF0YV9ieXRlAAAAAAAFAAAAAAAAAAA=", + "AAAAAAAAAAAAAAAAAAAAAgAAAAAAAAACAAAADwAAAAxjb3JlX21ldHJpY3MAAAAPAAAAD3dyaXRlX2RhdGFfYnl0ZQAAAAAFAAAAAAAAAGg=", + "AAAAAAAAAAAAAAAAAAAAAgAAAAAAAAACAAAADwAAAAxjb3JlX21ldHJpY3MAAAAPAAAADnJlYWRfY29kZV9ieXRlAAAAAAAFAAAAAAAAHdQ=", + "AAAAAAAAAAAAAAAAAAAAAgAAAAAAAAACAAAADwAAAAxjb3JlX21ldHJpY3MAAAAPAAAAD3dyaXRlX2NvZGVfYnl0ZQAAAAAFAAAAAAAAAAA=", + "AAAAAAAAAAAAAAAAAAAAAgAAAAAAAAACAAAADwAAAAxjb3JlX21ldHJpY3MAAAAPAAAACmVtaXRfZXZlbnQAAAAAAAUAAAAAAAAAAA==", + "AAAAAAAAAAAAAAAAAAAAAgAAAAAAAAACAAAADwAAAAxjb3JlX21ldHJpY3MAAAAPAAAAD2VtaXRfZXZlbnRfYnl0ZQAAAAAFAAAAAAAAAAA=", + "AAAAAAAAAAAAAAAAAAAAAgAAAAAAAAACAAAADwAAAAxjb3JlX21ldHJpY3MAAAAPAAAACGNwdV9pbnNuAAAABQAAAAAABTO4", + "AAAAAAAAAAAAAAAAAAAAAgAAAAAAAAACAAAADwAAAAxjb3JlX21ldHJpY3MAAAAPAAAACG1lbV9ieXRlAAAABQAAAAAAAPkD", + "AAAAAAAAAAAAAAAAAAAAAgAAAAAAAAACAAAADwAAAAxjb3JlX21ldHJpY3MAAAAPAAAAEWludm9rZV90aW1lX25zZWNzAAAAAAAABQAAAAAAAmiz", + "AAAAAAAAAAAAAAAAAAAAAgAAAAAAAAACAAAADwAAAAxjb3JlX21ldHJpY3MAAAAPAAAAD21heF9yd19rZXlfYnl0ZQAAAAAFAAAAAAAAADA=", + "AAAAAAAAAAAAAAAAAAAAAgAAAAAAAAACAAAADwAAAAxjb3JlX21ldHJpY3MAAAAPAAAAEG1heF9yd19kYXRhX2J5dGUAAAAFAAAAAAAAAGg=", + "AAAAAAAAAAAAAAAAAAAAAgAAAAAAAAACAAAADwAAAAxjb3JlX21ldHJpY3MAAAAPAAAAEG1heF9yd19jb2RlX2J5dGUAAAAFAAAAAAAAHdQ=", + "AAAAAAAAAAAAAAAAAAAAAgAAAAAAAAACAAAADwAAAAxjb3JlX21ldHJpY3MAAAAPAAAAE21heF9lbWl0X2V2ZW50X2J5dGUAAAAABQAAAAAAAAAA" + ], + "ledger": 1888539, + "createdAt": 1717166042 + }, + { + "status": "FAILED", + "applicationOrder": 1, + "feeBump": false, + "envelopeXdr": "AAAAAgAAAAAxLMEcxmfUgNzL687Js4sX/jmFQDqTo1Lj4KDoC1PeSQAehIAAAAIJAAtMUQAAAAEAAAAAAAAAAAAAAABmWeAVAAAAAQAAAAlwc3BiOjMyMTcAAAAAAAACAAAAAQAAAACKlutUN5GT3UOoE2BUkNtJEwoipGOinBFsQtXgpIZMxQAAAAEAAAAA433o+yremWU3t88cKpfpHR+JMFR44JHzmBGni6hqCEYAAAACQVRVQUgAAAAAAAAAAAAAAGfK1mN4mg51jbX6by6TWghGynQ463doEDgzriqZo9bzAAAAAAaOd4AAAAABAAAAAIqW61Q3kZPdQ6gTYFSQ20kTCiKkY6KcEWxC1eCkhkzFAAAAAQAAAADjfej7Kt6ZZTe3zxwql+kdH4kwVHjgkfOYEaeLqGoIRgAAAAJBVFVTRAAAAAAAAAAAAAAAZ8rWY3iaDnWNtfpvLpNaCEbKdDjrd2gQODOuKpmj1vMAAAAAADh1IAAAAAAAAAACC1PeSQAAAEBoad/kqj/4Sqq5tC6HyeMm5LJKM1VqKRGZc3e4uvA3ITThwn2nNMRJRegdQrLrPBTSgw51nY8npilXVIds7I0OpIZMxQAAAEDTZNaLjIDMWPDdCxa1ZB28vUxTcS/0xykOFTI/JAz096vX6Y7wI0QvnbPM7KCoL0cJAciD+pJxNqXQ2Aff1hoO", + "resultXdr": "AAAAAAAAAMj/////AAAAAgAAAAAAAAAB////+wAAAAAAAAAB////+wAAAAA=", + "resultMetaXdr": "AAAAAwAAAAAAAAACAAAAAwAc0RwAAAAAAAAAADEswRzGZ9SA3Mvrzsmzixf+OYVAOpOjUuPgoOgLU95JAAAAFxzxIbUAAAIJAAtMUAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAMAAAAAABzRGgAAAABmWd/VAAAAAAAAAAEAHNEcAAAAAAAAAAAxLMEcxmfUgNzL687Js4sX/jmFQDqTo1Lj4KDoC1PeSQAAABcc8SG1AAACCQALTFEAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAADAAAAAAAc0RwAAAAAZlnf3wAAAAAAAAAAAAAAAAAAAAA=", + "ledger": 1888540, + "createdAt": 1717166047 + } + ], + "latestLedger": 1888542, + "latestLedgerCloseTimestamp": 1717166057, + "oldestLedger": 1871263, + "oldestLedgerCloseTimestamp": 1717075350, + "cursor": "8111217537191937" + } + }, + "GetTransactionsResultUsingCursor": { + "name": "getTransactionsResultUsingCursor", + "value": { + "transactions": [ + { + "status": "FAILED", + "applicationOrder": 2, + "feeBump": false, + "envelopeXdr": "AAAAAgAAAAA1F1Ya+0O+eQhWGWasX1tP8XnT8KbByGO5FML7jU5klgAPQkAAAAIHAAtMUgAAAAEAAAAAAAAAAAAAAABmWeAVAAAAAQAAAAlwc3BiOjI0NzgAAAAAAAABAAAAAQAAAACKlutUN5GT3UOoE2BUkNtJEwoipGOinBFsQtXgpIZMxQAAAAEAAAAA433o+yremWU3t88cKpfpHR+JMFR44JHzmBGni6hqCEYAAAACQVRVU0QAAAAAAAAAAAAAAGfK1mN4mg51jbX6by6TWghGynQ463doEDgzriqZo9bzAAAAAAA4dSAAAAAAAAAAAo1OZJYAAABAGmNtNM2SUUwAVxM4BPDRDsBn8JmaXrCCJDQDhZXR6/DYVl8W3+3SBaJWu08vhmyfBXjMD8wSsLYmdOxLCNtHDqSGTMUAAABA67v7gqxeeRrD9W3hOtI3vRKjKquwH8FOCZKbZw1r53Bz9Z7NLJjzd6gdMdhynpvhUQAJEW72AvPh974kcsirAw==", + "resultXdr": "AAAAAAAAAGT/////AAAAAQAAAAAAAAAB////+wAAAAA=", + "resultMetaXdr": "AAAAAwAAAAAAAAACAAAAAwAc0RwAAAAAAAAAADUXVhr7Q755CFYZZqxfW0/xedPwpsHIY7kUwvuNTmSWAAAAFxttkpQAAAIHAAtMUQAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAMAAAAAABzRGAAAAABmWd/KAAAAAAAAAAEAHNEcAAAAAAAAAAA1F1Ya+0O+eQhWGWasX1tP8XnT8KbByGO5FML7jU5klgAAABcbbZKUAAACBwALTFIAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAADAAAAAAAc0RwAAAAAZlnf3wAAAAAAAAAAAAAAAAAAAAA=", + "ledger": 1888540, + "createdAt": 1717166047 + }, + { + "status": "FAILED", + "applicationOrder": 3, + "feeBump": false, + "envelopeXdr": "AAAAAgAAAABraisBXNgRPYfB16c3fe+AGAH6D/XrJTZJy4wMfKBEYAAPQkAAAAIIAAtMWAAAAAEAAAAAAAAAAAAAAABmWeAVAAAAAQAAAAlwc3BiOjMyNTMAAAAAAAABAAAAAQAAAACKlutUN5GT3UOoE2BUkNtJEwoipGOinBFsQtXgpIZMxQAAAAEAAAAA433o+yremWU3t88cKpfpHR+JMFR44JHzmBGni6hqCEYAAAACQVRVQUgAAAAAAAAAAAAAAGfK1mN4mg51jbX6by6TWghGynQ463doEDgzriqZo9bzAAAAAAaOd4AAAAAAAAAAAnygRGAAAABAD2ZR7njvllOU8OANJ8o97GVVZryBdGiH4bgxI31fy9lDoMJ/Cbb5uqdXhKZBxt4x8m7I/CN8l78R5ISpx+ROB6SGTMUAAABA4MKWFy8Yw+Gv2fz20SuNfP4KZYrk4ZjkdEvy/V5E8EohQzGAGkOnJkfZaE7v9NdiYmDOk9+P87Zis1Le53u4AA==", + "resultXdr": "AAAAAAAAAGT/////AAAAAQAAAAAAAAAB////+wAAAAA=", + "resultMetaXdr": "AAAAAwAAAAAAAAACAAAAAwAc0RwAAAAAAAAAAGtqKwFc2BE9h8HXpzd974AYAfoP9eslNknLjAx8oERgAAAAF0oxregAAAIIAAtMVwAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAMAAAAAABzRGgAAAABmWd/VAAAAAAAAAAEAHNEcAAAAAAAAAABraisBXNgRPYfB16c3fe+AGAH6D/XrJTZJy4wMfKBEYAAAABdKMa3oAAACCAALTFgAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAADAAAAAAAc0RwAAAAAZlnf3wAAAAAAAAAAAAAAAAAAAAA=", + "ledger": 1888540, + "createdAt": 1717166047 + }, + { + "status": "FAILED", + "applicationOrder": 4, + "feeBump": false, + "envelopeXdr": "AAAAAgAAAABAUGAIpsecGkB2gKbSoMtmvyABzEnvehE7ecIjDkqSlwAPQkAAAAIKAAtMXAAAAAEAAAAAAAAAAAAAAABmWeAVAAAAAQAAAAlwc3BiOjMxODgAAAAAAAABAAAAAQAAAACKlutUN5GT3UOoE2BUkNtJEwoipGOinBFsQtXgpIZMxQAAAAEAAAAA433o+yremWU3t88cKpfpHR+JMFR44JHzmBGni6hqCEYAAAACQVRVQUgAAAAAAAAAAAAAAGfK1mN4mg51jbX6by6TWghGynQ463doEDgzriqZo9bzAAAAAAaOd4AAAAAAAAAAAg5KkpcAAABATP8Gn/ug7YEe8Tvwfn5qNya4YQ6TXDw4ASd4hFF+YaEsaEy1tro4vDIebvskpV/HZln6JQjbUbkFLjapmcaAA6SGTMUAAABAvTGDUswyuHGwis/K7Il3IPX82iPGMGa53Y6XfaauFyYLcBi+l8YY8L+B8aK4U3cdHcpz0pgLtmugV0A832dtBw==", + "resultXdr": "AAAAAAAAAGT/////AAAAAQAAAAAAAAAB////+wAAAAA=", + "resultMetaXdr": "AAAAAwAAAAAAAAACAAAAAwAc0RwAAAAAAAAAAEBQYAimx5waQHaAptKgy2a/IAHMSe96ETt5wiMOSpKXAAAAFxz1lWwAAAIKAAtMWwAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAMAAAAAABzRGgAAAABmWd/VAAAAAAAAAAEAHNEcAAAAAAAAAABAUGAIpsecGkB2gKbSoMtmvyABzEnvehE7ecIjDkqSlwAAABcc9ZVsAAACCgALTFwAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAADAAAAAAAc0RwAAAAAZlnf3wAAAAAAAAAAAAAAAAAAAAA=", + "ledger": 1888540, + "createdAt": 1717166047 + }, + { + "status": "FAILED", + "applicationOrder": 5, + "feeBump": false, + "envelopeXdr": "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", + "resultXdr": "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", + "resultMetaXdr": "AAAAAwAAAAAAAAACAAAAAwAc0RwAAAAAAAAAACcSf4WUeTTES6n49wz8vRz06eC5ZH6/5V/Tx0ZuTSsAAAAACnNaaxgAABkRAADFFAAAAJoAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAEAAAACc4IfxwAAAAJUC+QIAAAAAgAAAAAAAAAAAAAAAAAAAAMAAAAAABzRGgAAAABmWd/VAAAAAAAAAAEAHNEcAAAAAAAAAAAnEn+FlHk0xEup+PcM/L0c9OnguWR+v+Vf08dGbk0rAAAAAApzWmsYAAAZEQAAxRUAAACaAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAABAAAAAnOCH8cAAAACVAvkCAAAAAIAAAAAAAAAAAAAAAAAAAADAAAAAAAc0RwAAAAAZlnf3wAAAAAAAAAAAAAAAAAAAAA=", + "ledger": 1888540, + "createdAt": 1717166047 + }, + { + "status": "SUCCESS", + "applicationOrder": 6, + "feeBump": false, + "envelopeXdr": "AAAAAgAAAAAoJHqla+YxLudsGN2hmc1W0Rxq1Hfc38KkN/8LQAXnIwAPQkAAGgRHAAAANgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAABB90WssODNIgi6BHveqzxTRmIpvAFRyVNM+Hm2GVuCcAAAAAAAAAACM5fzUGB+0D62dgLSTKDN5FRVH2qgNcAD02tSh4IC+JAAAABdIdugAAAAAAAAAAAJABecjAAAAQOw9IBLycv0RKvgXY6I+WMgprKEdCxJnVHgLZfozPuLrgC8TE8Av1KgpQomWZvB4+yrYDaBXrOG2be4YWj+5ZA2GVuCcAAAAQNZtcdwq8IO1qR/Rlm1+kaRKnvJPiqzCjD1dPQicadjYwcxlFFRH80MyfA7Ic0YKMVG7mt0KCd1WVzk7/3Shbg4=", + "resultXdr": "AAAAAAAAAGQAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAA=", + "resultMetaXdr": "AAAAAwAAAAAAAAACAAAAAwAc0RwAAAAAAAAAACgkeqVr5jEu52wY3aGZzVbRHGrUd9zfwqQ3/wtABecjAAAAADwzS2gAGgRHAAAANQAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAMAAAAAABzPVQAAAABmWdZ7AAAAAAAAAAEAHNEcAAAAAAAAAAAoJHqla+YxLudsGN2hmc1W0Rxq1Hfc38KkN/8LQAXnIwAAAAA8M0toABoERwAAADYAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAADAAAAAAAc0RwAAAAAZlnf3wAAAAAAAAABAAAAAwAAAAMAHNEbAAAAAAAAAAAQfdFrLDgzSIIugR73qs8U0ZiKbwBUclTTPh5thlbgnABZJRYM442hAAAAawAAAlEAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAADAAAAAAAaBGEAAAAAZkspCwAAAAAAAAABABzRHAAAAAAAAAAAEH3Rayw4M0iCLoEe96rPFNGYim8AVHJU0z4ebYZW4JwAWST+xGyloQAAAGsAAAJRAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAwAAAAAAGgRhAAAAAGZLKQsAAAAAAAAAAAAc0RwAAAAAAAAAAIzl/NQYH7QPrZ2AtJMoM3kVFUfaqA1wAPTa1KHggL4kAAAAF0h26AAAHNEcAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=", + "ledger": 1888540, + "createdAt": 1717166047 + } + ], + "latestLedger": 1888632, + "latestLedgerCloseTimestamp": 1717166524, + "oldestLedger": 1871353, + "oldestLedgerCloseTimestamp": 1717075828, + "cursor": "8111217537212417" + } } } diff --git a/openrpc/src/methods/getEvents.json b/openrpc/src/methods/getEvents.json index d61677bc9..cedbe6c0f 100644 --- a/openrpc/src/methods/getEvents.json +++ b/openrpc/src/methods/getEvents.json @@ -14,7 +14,7 @@ "$ref": "#/components/contentDescriptors/EventFilters" }, { - "$ref": "#/components/contentDescriptors/Pagination" + "$ref": "#/components/contentDescriptors/EventsPagination" } ], "result": { diff --git a/openrpc/src/methods/getFeeStats.json b/openrpc/src/methods/getFeeStats.json new file mode 100644 index 000000000..fd322c105 --- /dev/null +++ b/openrpc/src/methods/getFeeStats.json @@ -0,0 +1,79 @@ +{ + "name": "getFeeStats", + "summary": "returns statistics about charged inclusion fees", + "description": "Statistics for charged inclusion fees. The inclusion fee statistics are calculated from the inclusion fees that were paid for the transactions to be included onto the ledger. For Soroban transactions and Stellar transactions, they each have their own inclusion fees and own surge pricing. Inclusion fees are used to prevent spam and prioritize transactions during network traffic surge.", + "externalDocs": { + "url": "https://developers.stellar.org/network/soroban-rpc/api-reference/methods/getFeeStats" + }, + "paramStructure": "by-name", + "params": [], + "result": { + "name": "getFeeStatsResult", + "schema": { + "type": "object", + "properties": { + "sorobanInclusionFee": { + "description": "Inclusion fee distribution statistics for Soroban transactions", + "$ref": "#/components/schemas/FeeDistribution" + }, + "inclusionFee": { + "description": "Fee distribution statistics for Stellar (i.e. non-Soroban) transactions. Statistics are normalized per operation.", + "$ref": "#/components/schemas/FeeDistribution" + }, + "latestLedger": { + "$ref": "#/components/schemas/LatestLedger" + } + } + } + }, + "examples": [ + { + "name": "Statistics about charged transaction fees.", + "description": "Example request to the `getFeeStats` method", + "params": [], + "result": { + "name": "getFeeStatsResult", + "value": { + "sorobanInclusionFee": { + "max": "210", + "min": "100", + "mode": "100", + "p10": "100", + "p20": "100", + "p30": "100", + "p40": "100", + "p50": "100", + "p60": "100", + "p70": "100", + "p80": "100", + "p90": "120", + "p95": "190", + "p99": "200", + "transactionCount": "10", + "ledgerCount": 50 + }, + "inclusionFee": { + "max": "100", + "min": "100", + "mode": "100", + "p10": "100", + "p20": "100", + "p30": "100", + "p40": "100", + "p50": "100", + "p60": "100", + "p70": "100", + "p80": "100", + "p90": "100", + "p95": "100", + "p99": "100", + "transactionCount": "7", + "ledgerCount": 10 + }, + "latestLedger": 4519945 + } + + } + } + ] +} diff --git a/openrpc/src/methods/getTransactions.json b/openrpc/src/methods/getTransactions.json new file mode 100644 index 000000000..5a1c73d8f --- /dev/null +++ b/openrpc/src/methods/getTransactions.json @@ -0,0 +1,47 @@ +{ + "name": "getTransactions", + "summary": "returns a list of transactions with their details", + "description": "The `getTransactions` method return a detailed list of transactions starting from the user specified starting point that you can paginate as long as the pages fall within the history retention of their corresponding RPC provider.", + "externalDocs": { + "url": "https://developers.stellar.org/network/soroban-rpc/api-reference/methods/getTransactions" + }, + "paramStructure": "by-name", + "params": [ + { + "$ref": "#/components/contentDescriptors/StartLedger" + }, + { + "$ref": "#/components/contentDescriptors/TransactionsPagination" + } + ], + "result": { + "name": "getTransactionsResult", + "schema": { + "type": "object", + "properties": { + "transactions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Transactions" + } + }, + "latestLedger": { + "$ref": "#/components/schemas/LatestLedger" + }, + "latestLedgerCloseTime": { + "$ref": "#/components/schemas/LatestLedgerCloseTime" + }, + "oldestLedger": { + "$ref": "#/components/schemas/OldestLedger" + }, + "oldestLedgerCloseTime": { + "$ref": "#/components/schemas/OldestLedgerCloseTime" + } + } + } + }, + "examples": [ + { "$ref": "#/components/examplePairingObjects/SuccessfulGetTransactionsRequest" }, + { "$ref": "#/components/examplePairingObjects/SuccessfulGetTransactionsRequestUsingCursor" } + ] +} diff --git a/openrpc/src/methods/getVersionInfo.json b/openrpc/src/methods/getVersionInfo.json new file mode 100644 index 000000000..95f0f5c6b --- /dev/null +++ b/openrpc/src/methods/getVersionInfo.json @@ -0,0 +1,63 @@ +{ + "name": "getVersionInfo", + "summary": "returns version information of RPC and Captive Core", + "description": "Version information about the RPC and Captive core. RPC manages its own, pared-down version of Stellar Core optimized for its own subset of needs. we'll refer to this as a \"Captive Core\" instance.", + "externalDocs": { + "url": "https://developers.stellar.org/network/soroban-rpc/api-reference/methods/getVersionInfo" + }, + "paramStructure": "by-name", + "params": [], + "result": { + "name": "getVersionInfoResult", + "schema": { + "type": "object", + "properties": { + + "version": { + "type": "string", + "description": "The version of the RPC server.", + "example": "21.1.0" + }, + "commit_hash": { + "type": "string", + "description": "The commit hash of the RPC server.", + "example": "fcd2f0523f04279bae4502f3e3fa00ca627e6f6a" + }, + "build_time_stamp": { + "type": "string", + "description": "The build timestamp of the RPC server.", + "example": "2024-05-10T11:18:38" + }, + "captive_core_version": { + "type": "string", + "description": "The version of the Captive Core.", + "example": "stellar-core 21.0.0.rc2 (c6f474133738ae5f6d11b07963ca841909210273)" + }, + "protocol_version": { + "type": "integer", + "description": "The protocol version.", + "example": 21 + } + + }, + "required": ["version", "commit_hash", "build_time_stamp", "captive_core_version", "protocol_version"] + } + }, + "examples": [ + { + "name": "Version information of RPC", + "description": "Example request to the `getVersionInfo` method", + "params": [], + "result": { + "name": "getVersionInfoResult", + "value": { + "version": "21.1.0", + "commit_hash": "fcd2f0523f04279bae4502f3e3fa00ca627e6f6a", + "build_time_stamp": "2024-05-10T11:18:38", + "captive_core_version": "stellar-core 21.0.0.rc2 (c6f474133738ae5f6d11b07963ca841909210273)", + "protocol_version": 21 + } + } + } + ] +} diff --git a/openrpc/src/schemas/Cursor.json b/openrpc/src/schemas/Cursor.json new file mode 100644 index 000000000..1be2d4dcb --- /dev/null +++ b/openrpc/src/schemas/Cursor.json @@ -0,0 +1,7 @@ +{ + "Cursor": { + "title": "cursor", + "type": "string", + "description": "A unique identifier (specifically, a [TOID](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0035.md#specification)) that points to a specific location in a collection of responses and is pulled from the `paging_token` value of a record. When a cursor is provided, RPC will _not_ include the element whose ID matches the cursor in the response: only elements which appear _after_ the cursor will be included." + } +} diff --git a/openrpc/src/schemas/FeeDistribution.json b/openrpc/src/schemas/FeeDistribution.json new file mode 100644 index 000000000..7c7fffdfe --- /dev/null +++ b/openrpc/src/schemas/FeeDistribution.json @@ -0,0 +1,67 @@ +{ + "FeeDistribution": { + "type": "object", + "properties": { + "max": { + "description": "Maximum fee", + "type": "string" + }, + "min": { + "description": "Minimum fee", + "type": "string" + }, + "mode": { + "description": "Fee value which occurs the most often", + "type": "string" + }, + "p10": { + "description": "10th nearest-rank fee percentile", + "type": "string" + }, + "p20": { + "description": "20th nearest-rank fee percentile", + "type": "string" + }, + "p30": { + "description": "30th nearest-rank fee percentile", + "type": "string" + }, + "p40": { + "description": "40th nearest-rank fee percentile", + "type": "string" + }, + "p50": { + "description": "50th nearest-rank fee percentile", + "type": "string" + }, + "p60": { + "description": "60th nearest-rank fee percentile", + "type": "string" + }, + "p70": { + "description": "70th nearest-rank fee percentile", + "type": "string" + }, + "p80": { + "description": "80th nearest-rank fee percentile", + "type": "string" + }, + "p90": { + "description": "90th nearest-rank fee percentile.", + "type": "string" + }, + "p99": { + "description": "99th nearest-rank fee percentile", + "type": "string" + }, + "transactionCount": { + "description": "How many transactions are part of the distribution", + "type": "number" + }, + "ledgerCount": { + "description": "How many consecutive ledgers form the distribution", + "type": "number" + } + } + } +} diff --git a/openrpc/src/schemas/Pagination.json b/openrpc/src/schemas/Pagination.json index 42732a542..a74f6ebdc 100644 --- a/openrpc/src/schemas/Pagination.json +++ b/openrpc/src/schemas/Pagination.json @@ -1,14 +1,26 @@ { - "Pagination": { + "EventsPagination": { "type": "object", "properties": { "cursor": { - "type": "string", - "description": "A string ID that points to a specific location in a collection of responses and is pulled from the `paging_token` value of a record. When a cursor is provided Soroban-RPC will _not_ include the element whose id matches the cursor in the response. Only elements which appear _after_ the cursor are included." + "$ref": "#/components/schemas/Cursor" }, "limit": { "type": "number", - "description": "The maximum number of records returned. The limit for [getEvents](https://developers.stellar.org/network/soroban-rpc/getEvents) can range from 1 to 10000 - an upper limit that is hardcoded in Soroban-RPC for performance reasons. If this argument isn't designated, it defaults to 100." + "description": "The maximum number of records returned. The limit for getEvents can range from 1 to 10000 - an upper limit that is hardcoded in Soroban-RPC for performance reasons. If this argument isn't designated, it defaults to 100." + } + }, + "required": [] + }, + "TransactionsPagination": { + "type": "object", + "properties": { + "cursor": { + "$ref": "#/components/schemas/Cursor" + }, + "limit": { + "type": "number", + "description": "The maximum number of records returned. For getTransactions, this ranges from 1 to 200 and defaults to 50." } }, "required": [] diff --git a/openrpc/src/schemas/Transactions.json b/openrpc/src/schemas/Transactions.json new file mode 100644 index 000000000..7bc669ef6 --- /dev/null +++ b/openrpc/src/schemas/Transactions.json @@ -0,0 +1,48 @@ +{ + "Transactions": { + "type": "object", + "properties": { + "status": { + "type": "string", + "description": "Indicates whether the transaction was successful or not." + }, + "applicationOrder": { + "type": "number", + "description": "The 1-based index of the transaction among all transactions included in the ledger." + }, + "feeBump": { + "type": "boolean", + "description": "Indicates whether the transaction was fee bumped." + }, + "envelopeXdr": { + "type": "string", + "description": "A base64 encoded string of the raw TransactionEnvelope XDR struct for this transaction." + }, + "resultXdr": { + "type": "string", + "description": "A base64 encoded string of the raw TransactionResult XDR struct for this transaction." + }, + "resultMetaXdr": { + "type": "string", + "description": "A base64 encoded string of the raw TransactionMeta XDR struct for this transaction." + }, + "diagnosticEventsXdr": { + "type": "array", + "description": "(optional) A base64 encoded slice of xdr.DiagnosticEvent. This is only present if the `ENABLE_SOROBAN_DIAGNOSTIC_EVENTS` has been enabled in the stellar-core config.", + "items": { + "type": "string" + } + }, + "ledger": { + "title": "ledger", + "description": "The sequence number of the ledger which included the transaction.", + "$ref": "#/components/schemas/LedgerSequence" + }, + "ledgerCloseTime": { + "title": "createdAt", + "description": "The unix timestamp of when the transaction was included in the ledger.", + "$ref": "#/components/schemas/LedgerCloseTime" + } + } + } +} diff --git a/sidebarsNetwork.js b/sidebarsNetwork.js index e8191b160..4a1b48872 100644 --- a/sidebarsNetwork.js +++ b/sidebarsNetwork.js @@ -2,6 +2,19 @@ /** @type {import('@docusaurus/plugin-content-docs').SidebarsConfig} */ const sidebars = { + overview: [ + 'README', + 'requirements', + { type: 'html', value: 'Data Availability', defaultStyle: true, className: 'networkMenuHtmlItem'}, + { type: 'ref', id: 'soroban-rpc/README', label: 'Soroban RPC'}, + { type: 'ref', id: 'hubble/README', label: 'Hubble'}, + { type: 'ref', id: 'horizon/README', label: 'Horizon'}, + { type: 'html', value: 'Platforms', defaultStyle: true, className: 'networkMenuHtmlItem'}, + { type: 'ref', id: 'anchor-platform/README', label: 'Anchor Platform'}, + { type: 'ref', id: 'stellar-disbursement-platform/README', label: 'Stellar Disbursement Platform'}, + { type: 'html', value: 'Network Infrastructure', defaultStyle: true, className: 'networkMenuHtmlItem'}, + { type: 'ref', id: 'core-node/README', label: 'Core Validator Node'}, + ], horizon: [ { type: 'category', @@ -24,17 +37,6 @@ const sidebars = { type: "autogenerated", dirName: "hubble", }, - { - type: 'category', - label: 'Reference', - items: [ - { - type: 'link', - label: 'Data Lineage', - href: 'http://www.stellar-dbt-docs.com/#!/overview', - }, - ], - }, ], collapsible: false, }, diff --git a/src/components/RedirectPage.js b/src/components/RedirectPage.js new file mode 100644 index 000000000..3672c5cf2 --- /dev/null +++ b/src/components/RedirectPage.js @@ -0,0 +1,16 @@ +import React, { useEffect } from 'react'; +import PropTypes from 'prop-types'; + +function RedirectPage({ to }) { + useEffect(() => { + window.location.href = to; + }, [to]); + + return null; +} + +RedirectPage.propTypes = { + to: PropTypes.string.isRequired, +}; + +export default RedirectPage; \ No newline at end of file diff --git a/src/css/custom.scss b/src/css/custom.scss index a9c9e3d8a..54624bcf4 100644 --- a/src/css/custom.scss +++ b/src/css/custom.scss @@ -164,6 +164,13 @@ div[class^="announcementBar_"] { color: var(--ifm-color-primary); } +/* Sidebar HTML item customizations */ + +.networkMenuHtmlItem small { + text-transform: uppercase; + color: #999; +} + /* Customizations to metamask openrpc package styles */ select[data-testid="example-pairing-select"] { diff --git a/src/pages/docs/learn/interactive/dapps/challenges/challenge-1-payment.mdx b/src/pages/docs/learn/interactive/dapps/challenges/challenge-1-payment.mdx index 6f6d5c1a3..8e9f4e8c0 100644 --- a/src/pages/docs/learn/interactive/dapps/challenges/challenge-1-payment.mdx +++ b/src/pages/docs/learn/interactive/dapps/challenges/challenge-1-payment.mdx @@ -35,7 +35,7 @@ This challenge will guide you through the process of setting up, customizing, an Before you begin, ensure you have the following installed on your system. You'll also want to be sure you have the most updated versions of Rust and Soroban installed. -- `soroban-cli`: [Install soroban-cli](/docs/smart-contracts/getting-started/setup#install-the-soroban-cli) +- `stellar-cli`: [Install stellar-cli](/docs/smart-contracts/getting-started/setup#install-the-stellar-cli) - `Node` (>=16.14.0 < 17.0.0): [Download Node](https://nodejs.org/en/download/) - `Yarn` (v1.22.5 or newer): [Install Yarn](https://yarnpkg.com/getting-started/install) - `Freighter Wallet`: [Freighter Wallet](https://freighter.app/) diff --git a/src/pages/docs/learn/interactive/dapps/challenges/challenge-3-oracle.mdx b/src/pages/docs/learn/interactive/dapps/challenges/challenge-3-oracle.mdx index 51f864c6c..4d90d8527 100644 --- a/src/pages/docs/learn/interactive/dapps/challenges/challenge-3-oracle.mdx +++ b/src/pages/docs/learn/interactive/dapps/challenges/challenge-3-oracle.mdx @@ -32,7 +32,7 @@ Start by installing the required dependencies. Required: -- `soroban-cli` 20.0.0-rc.4.1: [Install Soroban CLI](/docs/smart-contracts/getting-started/setup#install-the-soroban-cli) +- `stellar-cli` 20.0.0-rc.4.1: [Install Stellar CLI](/docs/smart-contracts/getting-started/setup#install-the-stellar-cli) - `Node` >=v18: [Download Node](https://nodejs.org/en/download/) - `Freighter Wallet`: [Freighter Wallet](https://freighter.app/) diff --git a/src/theme/ApiItem/index.js b/src/theme/ApiItem/index.js index 634f7aeaa..562f26e1b 100644 --- a/src/theme/ApiItem/index.js +++ b/src/theme/ApiItem/index.js @@ -8,6 +8,7 @@ export default function ApiItemWrapper(props) { || props.location?.pathname?.startsWith('/network/hubble') || props.location?.pathname?.startsWith('/network/soroban-rpc') || props.location?.pathname?.startsWith('/network/core-node') + || props.location?.pathname === '/network/requirements' || props.location?.pathname === '/network/horizon/horizon-providers' ) { return ( diff --git a/src/theme/DocSidebar/index.js b/src/theme/DocSidebar/index.js index 81ca44ccb..68ad9d0b7 100644 --- a/src/theme/DocSidebar/index.js +++ b/src/theme/DocSidebar/index.js @@ -8,7 +8,10 @@ export default function DocSidebarWrapper(props) { if (props.path.startsWith('/network')) { newProps = { ...props, - sidebar: props.sidebar[0].items + // sidebar: props.sidebar[0].items + } + if (props.sidebar[0].items) { + newProps.sidebar = props.sidebar[0].items } } // For all other sidebars, pass the default props diff --git a/static/assets/SDP/SDP14.png b/static/assets/SDP/SDP14.png index ed273a6ab..657ebf8cf 100644 Binary files a/static/assets/SDP/SDP14.png and b/static/assets/SDP/SDP14.png differ diff --git a/static/assets/SDP/SDP2.png b/static/assets/SDP/SDP2.png index 64a3ae2c8..2fc1fa20c 100644 Binary files a/static/assets/SDP/SDP2.png and b/static/assets/SDP/SDP2.png differ diff --git a/static/assets/SDP/SDP26.png b/static/assets/SDP/SDP26.png new file mode 100644 index 000000000..ba88e766b Binary files /dev/null and b/static/assets/SDP/SDP26.png differ diff --git a/static/assets/SDP/SDP27.png b/static/assets/SDP/SDP27.png new file mode 100644 index 000000000..86e764c16 Binary files /dev/null and b/static/assets/SDP/SDP27.png differ diff --git a/static/assets/SDP/SDP28.png b/static/assets/SDP/SDP28.png new file mode 100644 index 000000000..75bec53b9 Binary files /dev/null and b/static/assets/SDP/SDP28.png differ diff --git a/static/assets/SDP/SDP29.png b/static/assets/SDP/SDP29.png new file mode 100644 index 000000000..6e4eee8b8 Binary files /dev/null and b/static/assets/SDP/SDP29.png differ diff --git a/static/assets/horizon-scaling/Topology-1VM.png b/static/assets/horizon-scaling/Topology-1VM.png deleted file mode 100644 index 5db2b661b..000000000 Binary files a/static/assets/horizon-scaling/Topology-1VM.png and /dev/null differ diff --git a/static/assets/horizon-scaling/Topology-2VMs.png b/static/assets/horizon-scaling/Topology-2VMs.png deleted file mode 100644 index 74a20a656..000000000 Binary files a/static/assets/horizon-scaling/Topology-2VMs.png and /dev/null differ diff --git a/static/assets/horizon-scaling/Topology-3VMs.png b/static/assets/horizon-scaling/Topology-3VMs.png deleted file mode 100644 index 0eaa0c2b4..000000000 Binary files a/static/assets/horizon-scaling/Topology-3VMs.png and /dev/null differ diff --git a/static/assets/horizon-scaling/Topology-Enterprise-HotBackup.png b/static/assets/horizon-scaling/Topology-Enterprise-HotBackup.png deleted file mode 100644 index 2e147404a..000000000 Binary files a/static/assets/horizon-scaling/Topology-Enterprise-HotBackup.png and /dev/null differ diff --git a/static/assets/horizon-scaling/Topology-Enterprise.png b/static/assets/horizon-scaling/Topology-Enterprise.png deleted file mode 100644 index c302894fe..000000000 Binary files a/static/assets/horizon-scaling/Topology-Enterprise.png and /dev/null differ diff --git a/static/assets/horizon-scaling/Topology-ingestion-isolation.png b/static/assets/horizon-scaling/Topology-ingestion-isolation.png new file mode 100755 index 000000000..bf502328c Binary files /dev/null and b/static/assets/horizon-scaling/Topology-ingestion-isolation.png differ diff --git a/static/assets/horizon-scaling/Topology-multiple.png b/static/assets/horizon-scaling/Topology-multiple.png new file mode 100755 index 000000000..5ce874212 Binary files /dev/null and b/static/assets/horizon-scaling/Topology-multiple.png differ diff --git a/static/assets/horizon-scaling/Topology-single.png b/static/assets/horizon-scaling/Topology-single.png new file mode 100755 index 000000000..88da75bb7 Binary files /dev/null and b/static/assets/horizon-scaling/Topology-single.png differ diff --git a/static/assets/horizon-scaling/Topology-txsub.png b/static/assets/horizon-scaling/Topology-txsub.png new file mode 100755 index 000000000..87dacf1a9 Binary files /dev/null and b/static/assets/horizon-scaling/Topology-txsub.png differ diff --git a/static/img/hubble/airflow_dag_toggle.png b/static/img/hubble/airflow_dag_toggle.png new file mode 100644 index 000000000..5632dce35 Binary files /dev/null and b/static/img/hubble/airflow_dag_toggle.png differ diff --git a/static/img/hubble/data_model_diagram.png b/static/img/hubble/data_model_diagram.png new file mode 100644 index 000000000..180d6315b Binary files /dev/null and b/static/img/hubble/data_model_diagram.png differ diff --git a/static/img/hubble/dbt_enriched_base_tables.png b/static/img/hubble/dbt_enriched_base_tables.png new file mode 100644 index 000000000..d1c3b8551 Binary files /dev/null and b/static/img/hubble/dbt_enriched_base_tables.png differ diff --git a/static/img/hubble/history_table_export.png b/static/img/hubble/history_table_export.png new file mode 100644 index 000000000..e02ce0ca6 Binary files /dev/null and b/static/img/hubble/history_table_export.png differ diff --git a/static/img/hubble/state_table_export.png b/static/img/hubble/state_table_export.png new file mode 100644 index 000000000..55683987f Binary files /dev/null and b/static/img/hubble/state_table_export.png differ diff --git a/static/img/hubble/stellar_dbt_architecture.png b/static/img/hubble/stellar_dbt_architecture.png new file mode 100644 index 000000000..ba0f0b8c4 Binary files /dev/null and b/static/img/hubble/stellar_dbt_architecture.png differ diff --git a/static/img/hubble/stellar_etl_airflow_architecture.png b/static/img/hubble/stellar_etl_airflow_architecture.png new file mode 100644 index 000000000..892c0fae3 Binary files /dev/null and b/static/img/hubble/stellar_etl_airflow_architecture.png differ diff --git a/static/img/hubble/stellar_etl_architecture.png b/static/img/hubble/stellar_etl_architecture.png new file mode 100644 index 000000000..75e8493a3 Binary files /dev/null and b/static/img/hubble/stellar_etl_architecture.png differ diff --git a/static/img/hubble/stellar_overall_architecture.png b/static/img/hubble/stellar_overall_architecture.png new file mode 100644 index 000000000..77ed1470e Binary files /dev/null and b/static/img/hubble/stellar_overall_architecture.png differ diff --git a/static/openrpc.json b/static/openrpc.json index 3ae501e2b..84bb8b0a8 100644 --- a/static/openrpc.json +++ b/static/openrpc.json @@ -42,7 +42,7 @@ { "name": "startLedger", "summary": "ledger to begin searching from", - "description": "Ledger sequence number to fetch events after (inclusive). This method will return an error if `startLedger` is less than the oldest ledger stored in this node, or greater than the latest ledger seen by this node. If a cursor is included in the request, `startLedger` must be omitted.", + "description": "Ledger sequence number to start fetching responses from (inclusive). This method will return an error if `startLedger` is less than the oldest ledger stored in this node, or greater than the latest ledger seen by this node. If a cursor is included in the request, `startLedger` must be omitted.", "required": true, "schema": { "title": "ledgerSequence", @@ -108,12 +108,13 @@ "required": [], "properties": { "cursor": { + "title": "cursor", "type": "string", - "description": "A string ID that points to a specific location in a collection of responses and is pulled from the `paging_token` value of a record. When a cursor is provided Soroban-RPC will _not_ include the element whose id matches the cursor in the response. Only elements which appear _after_ the cursor are included." + "description": "A unique identifier (specifically, a [TOID](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0035.md#specification)) that points to a specific location in a collection of responses and is pulled from the `paging_token` value of a record. When a cursor is provided, RPC will _not_ include the element whose ID matches the cursor in the response: only elements which appear _after_ the cursor will be included." }, "limit": { "type": "number", - "description": "The maximum number of records returned. The limit for [getEvents](https://developers.stellar.org/network/soroban-rpc/getEvents) can range from 1 to 10000 - an upper limit that is hardcoded in Soroban-RPC for performance reasons. If this argument isn't designated, it defaults to 100." + "description": "The maximum number of records returned. The limit for getEvents can range from 1 to 10000 - an upper limit that is hardcoded in Soroban-RPC for performance reasons. If this argument isn't designated, it defaults to 100." } } } @@ -334,6 +335,210 @@ } ] }, + { + "name": "getFeeStats", + "summary": "returns statistics about charged inclusion fees", + "description": "Statistics for charged inclusion fees. The inclusion fee statistics are calculated from the inclusion fees that were paid for the transactions to be included onto the ledger. For Soroban transactions and Stellar transactions, they each have their own inclusion fees and own surge pricing. Inclusion fees are used to prevent spam and prioritize transactions during network traffic surge.", + "externalDocs": { + "url": "https://developers.stellar.org/network/soroban-rpc/api-reference/methods/getFeeStats" + }, + "paramStructure": "by-name", + "params": [], + "result": { + "name": "getFeeStatsResult", + "schema": { + "type": "object", + "properties": { + "sorobanInclusionFee": { + "type": "object", + "description": "Inclusion fee distribution statistics for Soroban transactions", + "properties": { + "max": { + "description": "Maximum fee", + "type": "string" + }, + "min": { + "description": "Minimum fee", + "type": "string" + }, + "mode": { + "description": "Fee value which occurs the most often", + "type": "string" + }, + "p10": { + "description": "10th nearest-rank fee percentile", + "type": "string" + }, + "p20": { + "description": "20th nearest-rank fee percentile", + "type": "string" + }, + "p30": { + "description": "30th nearest-rank fee percentile", + "type": "string" + }, + "p40": { + "description": "40th nearest-rank fee percentile", + "type": "string" + }, + "p50": { + "description": "50th nearest-rank fee percentile", + "type": "string" + }, + "p60": { + "description": "60th nearest-rank fee percentile", + "type": "string" + }, + "p70": { + "description": "70th nearest-rank fee percentile", + "type": "string" + }, + "p80": { + "description": "80th nearest-rank fee percentile", + "type": "string" + }, + "p90": { + "description": "90th nearest-rank fee percentile.", + "type": "string" + }, + "p99": { + "description": "99th nearest-rank fee percentile", + "type": "string" + }, + "transactionCount": { + "description": "How many transactions are part of the distribution", + "type": "number" + }, + "ledgerCount": { + "description": "How many consecutive ledgers form the distribution", + "type": "number" + } + } + }, + "inclusionFee": { + "type": "object", + "description": "Fee distribution statistics for Stellar (i.e. non-Soroban) transactions. Statistics are normalized per operation.", + "properties": { + "max": { + "description": "Maximum fee", + "type": "string" + }, + "min": { + "description": "Minimum fee", + "type": "string" + }, + "mode": { + "description": "Fee value which occurs the most often", + "type": "string" + }, + "p10": { + "description": "10th nearest-rank fee percentile", + "type": "string" + }, + "p20": { + "description": "20th nearest-rank fee percentile", + "type": "string" + }, + "p30": { + "description": "30th nearest-rank fee percentile", + "type": "string" + }, + "p40": { + "description": "40th nearest-rank fee percentile", + "type": "string" + }, + "p50": { + "description": "50th nearest-rank fee percentile", + "type": "string" + }, + "p60": { + "description": "60th nearest-rank fee percentile", + "type": "string" + }, + "p70": { + "description": "70th nearest-rank fee percentile", + "type": "string" + }, + "p80": { + "description": "80th nearest-rank fee percentile", + "type": "string" + }, + "p90": { + "description": "90th nearest-rank fee percentile.", + "type": "string" + }, + "p99": { + "description": "99th nearest-rank fee percentile", + "type": "string" + }, + "transactionCount": { + "description": "How many transactions are part of the distribution", + "type": "number" + }, + "ledgerCount": { + "description": "How many consecutive ledgers form the distribution", + "type": "number" + } + } + }, + "latestLedger": { + "title": "latestLedger", + "description": "The sequence number of the latest ledger known to Soroban RPC at the time it handled the request.", + "type": "number" + } + } + } + }, + "examples": [ + { + "name": "Statistics about charged transaction fees.", + "description": "Example request to the `getFeeStats` method", + "params": [], + "result": { + "name": "getFeeStatsResult", + "value": { + "sorobanInclusionFee": { + "max": "210", + "min": "100", + "mode": "100", + "p10": "100", + "p20": "100", + "p30": "100", + "p40": "100", + "p50": "100", + "p60": "100", + "p70": "100", + "p80": "100", + "p90": "120", + "p95": "190", + "p99": "200", + "transactionCount": "10", + "ledgerCount": 50 + }, + "inclusionFee": { + "max": "100", + "min": "100", + "mode": "100", + "p10": "100", + "p20": "100", + "p30": "100", + "p40": "100", + "p50": "100", + "p60": "100", + "p70": "100", + "p80": "100", + "p90": "100", + "p95": "100", + "p99": "100", + "transactionCount": "7", + "ledgerCount": 10 + }, + "latestLedger": 4519945 + } + } + } + ] + }, { "name": "getHealth", "summary": "returns node health", @@ -657,6 +862,71 @@ } ] }, + + { + "name": "getVersionInfo", + "summary": "returns version information of RPC and Captive Core", + "description": "Version information about the RPC and Captive core. RPC manages its own, pared-down version of Stellar Core optimized for its own subset of needs. we'll refer to this as a \"Captive Core\" instance.", + "externalDocs": { + "url": "https://developers.stellar.org/network/soroban-rpc/api-reference/methods/getVersionInfo" + }, + "paramStructure": "by-name", + "params": [], + "result": { + "name": "getVersionInfoResult", + "schema": { + "type": "object", + "properties": { + + "version": { + "type": "string", + "description": "The version of the RPC server.", + "example": "21.1.0" + }, + "commit_hash": { + "type": "string", + "description": "The commit hash of the RPC server.", + "example": "fcd2f0523f04279bae4502f3e3fa00ca627e6f6a" + }, + "build_time_stamp": { + "type": "string", + "description": "The build timestamp of the RPC server.", + "example": "2024-05-10T11:18:38" + }, + "captive_core_version": { + "type": "string", + "description": "The version of the Captive Core.", + "example": "stellar-core 21.0.0.rc2 (c6f474133738ae5f6d11b07963ca841909210273)" + }, + "protocol_version": { + "type": "integer", + "description": "The protocol version.", + "example": 21 + } + + }, + "required": ["version", "commit_hash", "build_time_stamp", "captive_core_version", "protocol_version"] + } + }, + "examples": [ + { + "name": "Version information of RPC", + "description": "Example request to the `getVersionInfo` method", + "params": [], + "result": { + "name": "getVersionInfoResult", + "value": { + "version": "21.1.0", + "commit_hash": "fcd2f0523f04279bae4502f3e3fa00ca627e6f6a", + "build_time_stamp": "2024-05-10T11:18:38", + "captive_core_version": "stellar-core 21.0.0.rc2 (c6f474133738ae5f6d11b07963ca841909210273)", + "protocol_version": 21 + } + } + } + ] + }, + { "name": "getTransaction", "summary": "returns transaction details", @@ -836,6 +1106,302 @@ } ] }, + { + "name": "getTransactions", + "summary": "returns a list of transactions with their details", + "description": "The `getTransactions` method return a detailed list of transactions starting from the user specified starting point that you can paginate as long as the pages fall within the history retention of their corresponding RPC provider.", + "externalDocs": { + "url": "https://developers.stellar.org/network/soroban-rpc/api-reference/methods/getTransactions" + }, + "paramStructure": "by-name", + "params": [ + { + "name": "startLedger", + "summary": "ledger to begin searching from", + "description": "Ledger sequence number to start fetching responses from (inclusive). This method will return an error if `startLedger` is less than the oldest ledger stored in this node, or greater than the latest ledger seen by this node. If a cursor is included in the request, `startLedger` must be omitted.", + "required": true, + "schema": { + "title": "ledgerSequence", + "description": "Sequence number of the ledger.", + "type": "number" + } + }, + { + "name": "pagination", + "summary": "pagination options", + "description": "Pagination in RPC is similar to pagination in Horizon. See [Pagination](https://developers.stellar.org/network/soroban-rpc/pagination).", + "required": false, + "schema": { + "type": "object", + "required": [], + "properties": { + "cursor": { + "title": "cursor", + "type": "string", + "description": "A unique identifier (specifically, a [TOID](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0035.md#specification)) that points to a specific location in a collection of responses and is pulled from the `paging_token` value of a record. When a cursor is provided, RPC will _not_ include the element whose ID matches the cursor in the response: only elements which appear _after_ the cursor will be included." + }, + "limit": { + "type": "number", + "description": "The maximum number of records returned. For getTransactions, this ranges from 1 to 200 and defaults to 50." + } + } + } + } + ], + "result": { + "name": "getTransactionsResult", + "schema": { + "type": "object", + "properties": { + "transactions": { + "type": "array", + "items": { + "type": "object", + "properties": { + "status": { + "type": "string", + "description": "Indicates whether the transaction was successful or not." + }, + "applicationOrder": { + "type": "number", + "description": "The 1-based index of the transaction among all transactions included in the ledger." + }, + "feeBump": { + "type": "boolean", + "description": "Indicates whether the transaction was fee bumped." + }, + "envelopeXdr": { + "type": "string", + "description": "A base64 encoded string of the raw TransactionEnvelope XDR struct for this transaction." + }, + "resultXdr": { + "type": "string", + "description": "A base64 encoded string of the raw TransactionResult XDR struct for this transaction." + }, + "resultMetaXdr": { + "type": "string", + "description": "A base64 encoded string of the raw TransactionMeta XDR struct for this transaction." + }, + "diagnosticEventsXdr": { + "type": "array", + "description": "(optional) A base64 encoded slice of xdr.DiagnosticEvent. This is only present if the `ENABLE_SOROBAN_DIAGNOSTIC_EVENTS` has been enabled in the stellar-core config.", + "items": { + "type": "string" + } + }, + "ledger": { + "title": "ledger", + "description": "The sequence number of the ledger which included the transaction.", + "type": "number" + }, + "ledgerCloseTime": { + "title": "createdAt", + "description": "The unix timestamp of when the transaction was included in the ledger.", + "type": "string" + } + } + } + }, + "latestLedger": { + "title": "latestLedger", + "description": "The sequence number of the latest ledger known to Soroban RPC at the time it handled the request.", + "type": "number" + }, + "latestLedgerCloseTime": { + "title": "latestLedgerCloseTime", + "description": "The unix timestamp of the close time of the latest ledger known to Soroban RPC at the time it handled the request.", + "type": "string" + }, + "oldestLedger": { + "title": "oldestLedger", + "description": "The sequence number of the oldest ledger ingested by Soroban RPC at the time it handled the request.", + "type": "number" + }, + "oldestLedgerCloseTime": { + "title": "oldestLedgerCloseTime", + "description": "The unix timestamp of the close time of the oldest ledger ingested by Soroban RPC at the time it handled the request.", + "type": "string" + } + } + } + }, + "examples": [ + { + "name": "Successful getTransactions Request", + "description": "Query a list of transactions starting from the given startLedger.", + "params": [ + { + "name": "startLedger", + "value": 1888539 + }, + { + "name": "pagination", + "value": { + "limit": 5 + } + } + ], + "result": { + "name": "getTransactionsResult", + "value": { + "transactions": [ + { + "status": "FAILED", + "applicationOrder": 1, + "feeBump": false, + "envelopeXdr": "AAAAAgAAAACDz21Q3CTITlGqRus3/96/05EDivbtfJncNQKt64BTbAAAASwAAKkyAAXlMwAAAAEAAAAAAAAAAAAAAABmWeASAAAAAQAAABR3YWxsZXQ6MTcxMjkwNjMzNjUxMAAAAAEAAAABAAAAAIPPbVDcJMhOUapG6zf/3r/TkQOK9u18mdw1Aq3rgFNsAAAAAQAAAABwOSvou8mtwTtCkysVioO35TSgyRir2+WGqO8FShG/GAAAAAFVQUgAAAAAAO371tlrHUfK+AvmQvHje1jSUrvJb3y3wrJ7EplQeqTkAAAAAAX14QAAAAAAAAAAAeuAU2wAAABAn+6A+xXvMasptAm9BEJwf5Y9CLLQtV44TsNqS8ocPmn4n8Rtyb09SBiFoMv8isYgeQU5nAHsIwBNbEKCerusAQ==", + "resultXdr": "AAAAAAAAAGT/////AAAAAQAAAAAAAAAB////+gAAAAA=", + "resultMetaXdr": "AAAAAwAAAAAAAAACAAAAAwAc0RsAAAAAAAAAAIPPbVDcJMhOUapG6zf/3r/TkQOK9u18mdw1Aq3rgFNsAAAAF0YpYBQAAKkyAAXlMgAAAAsAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAMAAAAAABzRGgAAAABmWd/VAAAAAAAAAAEAHNEbAAAAAAAAAACDz21Q3CTITlGqRus3/96/05EDivbtfJncNQKt64BTbAAAABdGKWAUAACpMgAF5TMAAAALAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAADAAAAAAAc0RsAAAAAZlnf2gAAAAAAAAAAAAAAAAAAAAA=", + "ledger": 1888539, + "createdAt": 1717166042 + }, + { + "status": "SUCCESS", + "applicationOrder": 2, + "feeBump": false, + "envelopeXdr": "AAAAAgAAAAC4EZup+ewCs/doS3hKbeAa4EviBHqAFYM09oHuLtqrGAAPQkAAGgQZAAAANgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAABB90WssODNIgi6BHveqzxTRmIpvAFRyVNM+Hm2GVuCcAAAAAAAAAAAq6aHAHZ2sd9aPbRsskrlXMLWIwqs4Sv2Bk+VwuIR+9wAAABdIdugAAAAAAAAAAAIu2qsYAAAAQERzKOqYYiPXNwsiL8ADAG/f45RBssmf3umGzw4qKkLGlObuPdX0buWmTGrhI13SG38F2V8Mp9DI+eDkcCjMSAOGVuCcAAAAQHnm0o/r+Gsl+6oqBgSbqoSY37gflvQB3zZRghuir0N75UVerd0Q50yG5Zfu08i2crhx6uk+5HYTl8/Sa7uZ+Qc=", + "resultXdr": "AAAAAAAAAGQAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAA=", + "resultMetaXdr": "AAAAAwAAAAAAAAACAAAAAwAc0RsAAAAAAAAAALgRm6n57AKz92hLeEpt4BrgS+IEeoAVgzT2ge4u2qsYAAAAADwzS2gAGgQZAAAANQAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAMAAAAAABzPVAAAAABmWdZ2AAAAAAAAAAEAHNEbAAAAAAAAAAC4EZup+ewCs/doS3hKbeAa4EviBHqAFYM09oHuLtqrGAAAAAA8M0toABoEGQAAADYAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAADAAAAAAAc0RsAAAAAZlnf2gAAAAAAAAABAAAAAwAAAAMAHNEaAAAAAAAAAAAQfdFrLDgzSIIugR73qs8U0ZiKbwBUclTTPh5thlbgnABZJUSd0V2hAAAAawAAAlEAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAADAAAAAAAaBGEAAAAAZkspCwAAAAAAAAABABzRGwAAAAAAAAAAEH3Rayw4M0iCLoEe96rPFNGYim8AVHJU0z4ebYZW4JwAWSUtVVp1oQAAAGsAAAJRAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAwAAAAAAGgRhAAAAAGZLKQsAAAAAAAAAAAAc0RsAAAAAAAAAACrpocAdnax31o9tGyySuVcwtYjCqzhK/YGT5XC4hH73AAAAF0h26AAAHNEbAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=", + "ledger": 1888539, + "createdAt": 1717166042 + }, + { + "status": "SUCCESS", + "applicationOrder": 3, + "feeBump": false, + "envelopeXdr": "AAAAAgAAAACwtG/IRC5DZE1UdekijEsoQEPM/uOwZ3iY/Y8UZ3b9xAAPQkAAGgRHAAAANgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAABB90WssODNIgi6BHveqzxTRmIpvAFRyVNM+Hm2GVuCcAAAAAAAAAADgdupKeB04lazKXCOb+E1JfxaM3tI4Xsb/qDa1MWOvXgAAABdIdugAAAAAAAAAAAJndv3EAAAAQKcTimw6KKcM0AeCMxXJcEK/hS9ROoj/qpMFppGNAr4W3ifSOSTGAFbA+cIVHmaV4p7xGcR+9JnUN1YjamvJZwSGVuCcAAAAQK9Cp775JbnYA793SXkkWWbmvnEFTiDPiFyTHxTphCwBDB1zqkXqGG6Q5O3dAyqkNJvj1XNRDsmY4pKV41qijQU=", + "resultXdr": "AAAAAAAAAGQAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAA=", + "resultMetaXdr": "AAAAAwAAAAAAAAACAAAAAwAc0RsAAAAAAAAAALC0b8hELkNkTVR16SKMSyhAQ8z+47BneJj9jxRndv3EAAAAADwzS2gAGgRHAAAANQAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAMAAAAAABzPVAAAAABmWdZ2AAAAAAAAAAEAHNEbAAAAAAAAAACwtG/IRC5DZE1UdekijEsoQEPM/uOwZ3iY/Y8UZ3b9xAAAAAA8M0toABoERwAAADYAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAADAAAAAAAc0RsAAAAAZlnf2gAAAAAAAAABAAAAAwAAAAMAHNEbAAAAAAAAAAAQfdFrLDgzSIIugR73qs8U0ZiKbwBUclTTPh5thlbgnABZJS1VWnWhAAAAawAAAlEAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAADAAAAAAAaBGEAAAAAZkspCwAAAAAAAAABABzRGwAAAAAAAAAAEH3Rayw4M0iCLoEe96rPFNGYim8AVHJU0z4ebYZW4JwAWSUWDOONoQAAAGsAAAJRAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAwAAAAAAGgRhAAAAAGZLKQsAAAAAAAAAAAAc0RsAAAAAAAAAAOB26kp4HTiVrMpcI5v4TUl/Foze0jhexv+oNrUxY69eAAAAF0h26AAAHNEbAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=", + "ledger": 1888539, + "createdAt": 1717166042 + }, + { + "status": "SUCCESS", + "applicationOrder": 4, + "feeBump": false, + "envelopeXdr": "AAAAAgAAAACxMt2gKYOehEoVbmh9vfvZ4mVzXFSNTbAU5S4a8zorrAA4wrwAHLqRAAAADAAAAAAAAAAAAAAAAQAAAAAAAAAYAAAAAQAAAAAAAAAAAAAAALEy3aApg56EShVuaH29+9niZXNcVI1NsBTlLhrzOiusz3K+BVgRzXig/Bhz1TL5Qy+Ibv6cDvCfdaAtBMMFPcYAAAAAHXUVmJM11pdJSKKV52UJrVYlvxaPLmmg17nMe0HGy0MAAAABAAAAAAAAAAEAAAAAAAAAAAAAAACxMt2gKYOehEoVbmh9vfvZ4mVzXFSNTbAU5S4a8zorrM9yvgVYEc14oPwYc9Uy+UMviG7+nA7wn3WgLQTDBT3GAAAAAB11FZiTNdaXSUiiledlCa1WJb8Wjy5poNe5zHtBxstDAAAAAAAAAAEAAAAAAAAAAQAAAAcddRWYkzXWl0lIopXnZQmtViW/Fo8uaaDXucx7QcbLQwAAAAEAAAAGAAAAAbolCtTsMrJvK0M2SaskFsaMajj3iAZbXxELZHwDyE5dAAAAFAAAAAEABf2jAAAd1AAAAGgAAAAAADjCWAAAAAHzOiusAAAAQM+qaiMKxMoCVNjdRIh3X9CSxkjAm0BpXYDB9Fd+DS0guYKiY3TMaVe243UB008iBn5ynQv724rReXlg7iFqXQA=", + "resultXdr": "AAAAAAAw3cUAAAAAAAAAAQAAAAAAAAAYAAAAAKg/pGuhtOG27rIpG8xhUIp46CStGWOcsGlNsTQv44UOAAAAAA==", + "resultMetaXdr": "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", + "diagnosticEventsXdr": [ + "AAAAAAAAAAAAAAAAAAAAAgAAAAAAAAACAAAADwAAAAxjb3JlX21ldHJpY3MAAAAPAAAACnJlYWRfZW50cnkAAAAAAAUAAAAAAAAAAg==", + "AAAAAAAAAAAAAAAAAAAAAgAAAAAAAAACAAAADwAAAAxjb3JlX21ldHJpY3MAAAAPAAAAC3dyaXRlX2VudHJ5AAAAAAUAAAAAAAAAAQ==", + "AAAAAAAAAAAAAAAAAAAAAgAAAAAAAAACAAAADwAAAAxjb3JlX21ldHJpY3MAAAAPAAAAEGxlZGdlcl9yZWFkX2J5dGUAAAAFAAAAAAAAHdQ=", + "AAAAAAAAAAAAAAAAAAAAAgAAAAAAAAACAAAADwAAAAxjb3JlX21ldHJpY3MAAAAPAAAAEWxlZGdlcl93cml0ZV9ieXRlAAAAAAAABQAAAAAAAABo", + "AAAAAAAAAAAAAAAAAAAAAgAAAAAAAAACAAAADwAAAAxjb3JlX21ldHJpY3MAAAAPAAAADXJlYWRfa2V5X2J5dGUAAAAAAAAFAAAAAAAAAFQ=", + "AAAAAAAAAAAAAAAAAAAAAgAAAAAAAAACAAAADwAAAAxjb3JlX21ldHJpY3MAAAAPAAAADndyaXRlX2tleV9ieXRlAAAAAAAFAAAAAAAAAAA=", + "AAAAAAAAAAAAAAAAAAAAAgAAAAAAAAACAAAADwAAAAxjb3JlX21ldHJpY3MAAAAPAAAADnJlYWRfZGF0YV9ieXRlAAAAAAAFAAAAAAAAAAA=", + "AAAAAAAAAAAAAAAAAAAAAgAAAAAAAAACAAAADwAAAAxjb3JlX21ldHJpY3MAAAAPAAAAD3dyaXRlX2RhdGFfYnl0ZQAAAAAFAAAAAAAAAGg=", + "AAAAAAAAAAAAAAAAAAAAAgAAAAAAAAACAAAADwAAAAxjb3JlX21ldHJpY3MAAAAPAAAADnJlYWRfY29kZV9ieXRlAAAAAAAFAAAAAAAAHdQ=", + "AAAAAAAAAAAAAAAAAAAAAgAAAAAAAAACAAAADwAAAAxjb3JlX21ldHJpY3MAAAAPAAAAD3dyaXRlX2NvZGVfYnl0ZQAAAAAFAAAAAAAAAAA=", + "AAAAAAAAAAAAAAAAAAAAAgAAAAAAAAACAAAADwAAAAxjb3JlX21ldHJpY3MAAAAPAAAACmVtaXRfZXZlbnQAAAAAAAUAAAAAAAAAAA==", + "AAAAAAAAAAAAAAAAAAAAAgAAAAAAAAACAAAADwAAAAxjb3JlX21ldHJpY3MAAAAPAAAAD2VtaXRfZXZlbnRfYnl0ZQAAAAAFAAAAAAAAAAA=", + "AAAAAAAAAAAAAAAAAAAAAgAAAAAAAAACAAAADwAAAAxjb3JlX21ldHJpY3MAAAAPAAAACGNwdV9pbnNuAAAABQAAAAAABTO4", + "AAAAAAAAAAAAAAAAAAAAAgAAAAAAAAACAAAADwAAAAxjb3JlX21ldHJpY3MAAAAPAAAACG1lbV9ieXRlAAAABQAAAAAAAPkD", + "AAAAAAAAAAAAAAAAAAAAAgAAAAAAAAACAAAADwAAAAxjb3JlX21ldHJpY3MAAAAPAAAAEWludm9rZV90aW1lX25zZWNzAAAAAAAABQAAAAAAAmiz", + "AAAAAAAAAAAAAAAAAAAAAgAAAAAAAAACAAAADwAAAAxjb3JlX21ldHJpY3MAAAAPAAAAD21heF9yd19rZXlfYnl0ZQAAAAAFAAAAAAAAADA=", + "AAAAAAAAAAAAAAAAAAAAAgAAAAAAAAACAAAADwAAAAxjb3JlX21ldHJpY3MAAAAPAAAAEG1heF9yd19kYXRhX2J5dGUAAAAFAAAAAAAAAGg=", + "AAAAAAAAAAAAAAAAAAAAAgAAAAAAAAACAAAADwAAAAxjb3JlX21ldHJpY3MAAAAPAAAAEG1heF9yd19jb2RlX2J5dGUAAAAFAAAAAAAAHdQ=", + "AAAAAAAAAAAAAAAAAAAAAgAAAAAAAAACAAAADwAAAAxjb3JlX21ldHJpY3MAAAAPAAAAE21heF9lbWl0X2V2ZW50X2J5dGUAAAAABQAAAAAAAAAA" + ], + "ledger": 1888539, + "createdAt": 1717166042 + }, + { + "status": "FAILED", + "applicationOrder": 1, + "feeBump": false, + "envelopeXdr": "AAAAAgAAAAAxLMEcxmfUgNzL687Js4sX/jmFQDqTo1Lj4KDoC1PeSQAehIAAAAIJAAtMUQAAAAEAAAAAAAAAAAAAAABmWeAVAAAAAQAAAAlwc3BiOjMyMTcAAAAAAAACAAAAAQAAAACKlutUN5GT3UOoE2BUkNtJEwoipGOinBFsQtXgpIZMxQAAAAEAAAAA433o+yremWU3t88cKpfpHR+JMFR44JHzmBGni6hqCEYAAAACQVRVQUgAAAAAAAAAAAAAAGfK1mN4mg51jbX6by6TWghGynQ463doEDgzriqZo9bzAAAAAAaOd4AAAAABAAAAAIqW61Q3kZPdQ6gTYFSQ20kTCiKkY6KcEWxC1eCkhkzFAAAAAQAAAADjfej7Kt6ZZTe3zxwql+kdH4kwVHjgkfOYEaeLqGoIRgAAAAJBVFVTRAAAAAAAAAAAAAAAZ8rWY3iaDnWNtfpvLpNaCEbKdDjrd2gQODOuKpmj1vMAAAAAADh1IAAAAAAAAAACC1PeSQAAAEBoad/kqj/4Sqq5tC6HyeMm5LJKM1VqKRGZc3e4uvA3ITThwn2nNMRJRegdQrLrPBTSgw51nY8npilXVIds7I0OpIZMxQAAAEDTZNaLjIDMWPDdCxa1ZB28vUxTcS/0xykOFTI/JAz096vX6Y7wI0QvnbPM7KCoL0cJAciD+pJxNqXQ2Aff1hoO", + "resultXdr": "AAAAAAAAAMj/////AAAAAgAAAAAAAAAB////+wAAAAAAAAAB////+wAAAAA=", + "resultMetaXdr": "AAAAAwAAAAAAAAACAAAAAwAc0RwAAAAAAAAAADEswRzGZ9SA3Mvrzsmzixf+OYVAOpOjUuPgoOgLU95JAAAAFxzxIbUAAAIJAAtMUAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAMAAAAAABzRGgAAAABmWd/VAAAAAAAAAAEAHNEcAAAAAAAAAAAxLMEcxmfUgNzL687Js4sX/jmFQDqTo1Lj4KDoC1PeSQAAABcc8SG1AAACCQALTFEAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAADAAAAAAAc0RwAAAAAZlnf3wAAAAAAAAAAAAAAAAAAAAA=", + "ledger": 1888540, + "createdAt": 1717166047 + } + ], + "latestLedger": 1888542, + "latestLedgerCloseTimestamp": 1717166057, + "oldestLedger": 1871263, + "oldestLedgerCloseTimestamp": 1717075350, + "cursor": "8111217537191937" + } + } + }, + { + "name": "Successful getTransactions Request Using Cursor", + "description": "Query a list of transactions starting from the given cursor.", + "params": [ + { + "name": "pagination", + "value": { + "cursor": "8111217537191937", + "limit": 5 + } + } + ], + "result": { + "name": "getTransactionsResultUsingCursor", + "value": { + "transactions": [ + { + "status": "FAILED", + "applicationOrder": 2, + "feeBump": false, + "envelopeXdr": "AAAAAgAAAAA1F1Ya+0O+eQhWGWasX1tP8XnT8KbByGO5FML7jU5klgAPQkAAAAIHAAtMUgAAAAEAAAAAAAAAAAAAAABmWeAVAAAAAQAAAAlwc3BiOjI0NzgAAAAAAAABAAAAAQAAAACKlutUN5GT3UOoE2BUkNtJEwoipGOinBFsQtXgpIZMxQAAAAEAAAAA433o+yremWU3t88cKpfpHR+JMFR44JHzmBGni6hqCEYAAAACQVRVU0QAAAAAAAAAAAAAAGfK1mN4mg51jbX6by6TWghGynQ463doEDgzriqZo9bzAAAAAAA4dSAAAAAAAAAAAo1OZJYAAABAGmNtNM2SUUwAVxM4BPDRDsBn8JmaXrCCJDQDhZXR6/DYVl8W3+3SBaJWu08vhmyfBXjMD8wSsLYmdOxLCNtHDqSGTMUAAABA67v7gqxeeRrD9W3hOtI3vRKjKquwH8FOCZKbZw1r53Bz9Z7NLJjzd6gdMdhynpvhUQAJEW72AvPh974kcsirAw==", + "resultXdr": "AAAAAAAAAGT/////AAAAAQAAAAAAAAAB////+wAAAAA=", + "resultMetaXdr": "AAAAAwAAAAAAAAACAAAAAwAc0RwAAAAAAAAAADUXVhr7Q755CFYZZqxfW0/xedPwpsHIY7kUwvuNTmSWAAAAFxttkpQAAAIHAAtMUQAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAMAAAAAABzRGAAAAABmWd/KAAAAAAAAAAEAHNEcAAAAAAAAAAA1F1Ya+0O+eQhWGWasX1tP8XnT8KbByGO5FML7jU5klgAAABcbbZKUAAACBwALTFIAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAADAAAAAAAc0RwAAAAAZlnf3wAAAAAAAAAAAAAAAAAAAAA=", + "ledger": 1888540, + "createdAt": 1717166047 + }, + { + "status": "FAILED", + "applicationOrder": 3, + "feeBump": false, + "envelopeXdr": "AAAAAgAAAABraisBXNgRPYfB16c3fe+AGAH6D/XrJTZJy4wMfKBEYAAPQkAAAAIIAAtMWAAAAAEAAAAAAAAAAAAAAABmWeAVAAAAAQAAAAlwc3BiOjMyNTMAAAAAAAABAAAAAQAAAACKlutUN5GT3UOoE2BUkNtJEwoipGOinBFsQtXgpIZMxQAAAAEAAAAA433o+yremWU3t88cKpfpHR+JMFR44JHzmBGni6hqCEYAAAACQVRVQUgAAAAAAAAAAAAAAGfK1mN4mg51jbX6by6TWghGynQ463doEDgzriqZo9bzAAAAAAaOd4AAAAAAAAAAAnygRGAAAABAD2ZR7njvllOU8OANJ8o97GVVZryBdGiH4bgxI31fy9lDoMJ/Cbb5uqdXhKZBxt4x8m7I/CN8l78R5ISpx+ROB6SGTMUAAABA4MKWFy8Yw+Gv2fz20SuNfP4KZYrk4ZjkdEvy/V5E8EohQzGAGkOnJkfZaE7v9NdiYmDOk9+P87Zis1Le53u4AA==", + "resultXdr": "AAAAAAAAAGT/////AAAAAQAAAAAAAAAB////+wAAAAA=", + "resultMetaXdr": "AAAAAwAAAAAAAAACAAAAAwAc0RwAAAAAAAAAAGtqKwFc2BE9h8HXpzd974AYAfoP9eslNknLjAx8oERgAAAAF0oxregAAAIIAAtMVwAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAMAAAAAABzRGgAAAABmWd/VAAAAAAAAAAEAHNEcAAAAAAAAAABraisBXNgRPYfB16c3fe+AGAH6D/XrJTZJy4wMfKBEYAAAABdKMa3oAAACCAALTFgAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAADAAAAAAAc0RwAAAAAZlnf3wAAAAAAAAAAAAAAAAAAAAA=", + "ledger": 1888540, + "createdAt": 1717166047 + }, + { + "status": "FAILED", + "applicationOrder": 4, + "feeBump": false, + "envelopeXdr": "AAAAAgAAAABAUGAIpsecGkB2gKbSoMtmvyABzEnvehE7ecIjDkqSlwAPQkAAAAIKAAtMXAAAAAEAAAAAAAAAAAAAAABmWeAVAAAAAQAAAAlwc3BiOjMxODgAAAAAAAABAAAAAQAAAACKlutUN5GT3UOoE2BUkNtJEwoipGOinBFsQtXgpIZMxQAAAAEAAAAA433o+yremWU3t88cKpfpHR+JMFR44JHzmBGni6hqCEYAAAACQVRVQUgAAAAAAAAAAAAAAGfK1mN4mg51jbX6by6TWghGynQ463doEDgzriqZo9bzAAAAAAaOd4AAAAAAAAAAAg5KkpcAAABATP8Gn/ug7YEe8Tvwfn5qNya4YQ6TXDw4ASd4hFF+YaEsaEy1tro4vDIebvskpV/HZln6JQjbUbkFLjapmcaAA6SGTMUAAABAvTGDUswyuHGwis/K7Il3IPX82iPGMGa53Y6XfaauFyYLcBi+l8YY8L+B8aK4U3cdHcpz0pgLtmugV0A832dtBw==", + "resultXdr": "AAAAAAAAAGT/////AAAAAQAAAAAAAAAB////+wAAAAA=", + "resultMetaXdr": "AAAAAwAAAAAAAAACAAAAAwAc0RwAAAAAAAAAAEBQYAimx5waQHaAptKgy2a/IAHMSe96ETt5wiMOSpKXAAAAFxz1lWwAAAIKAAtMWwAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAMAAAAAABzRGgAAAABmWd/VAAAAAAAAAAEAHNEcAAAAAAAAAABAUGAIpsecGkB2gKbSoMtmvyABzEnvehE7ecIjDkqSlwAAABcc9ZVsAAACCgALTFwAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAADAAAAAAAc0RwAAAAAZlnf3wAAAAAAAAAAAAAAAAAAAAA=", + "ledger": 1888540, + "createdAt": 1717166047 + }, + { + "status": "FAILED", + "applicationOrder": 5, + "feeBump": false, + "envelopeXdr": "AAAAAgAAAAAnEn+FlHk0xEup+PcM/L0c9OnguWR+v+Vf08dGbk0rAAAAGiwAABkRAADFFQAAAAEAAAAAAAAAAAAAAABmWeCOAAAAAAAAAEMAAAAAAAAADAAAAAFVU0RDAAAAAJJxEaNbGzeFrRRip1TELMrH73j2LYuC0nhaVnd3FjpHAAAAAUxUTgAAAAAAknERo1sbN4WtFGKnVMQsysfvePYti4LSeFpWd3cWOkcAAAAAIDAiBwCa3ZMAmJaAAAAAAAAA55YAAAAAAAAADAAAAAFVU0RDAAAAAJJxEaNbGzeFrRRip1TELMrH73j2LYuC0nhaVnd3FjpHAAAAAUxUTgAAAAAAknERo1sbN4WtFGKnVMQsysfvePYti4LSeFpWd3cWOkcAAAAAIEF/ggAAnpEAAJxAAAAAAAAA55gAAAAAAAAADAAAAAFVU0RDAAAAAJJxEaNbGzeFrRRip1TELMrH73j2LYuC0nhaVnd3FjpHAAAAAUxUTgAAAAAAknERo1sbN4WtFGKnVMQsysfvePYti4LSeFpWd3cWOkcAAAAAIFLu5wBNatEATEtAAAAAAAAA55oAAAAAAAAADAAAAAFVU0RDAAAAAJJxEaNbGzeFrRRip1TELMrH73j2LYuC0nhaVnd3FjpHAAAAAUxUTgAAAAAAknERo1sbN4WtFGKnVMQsysfvePYti4LSeFpWd3cWOkcAAAAAIGRwVgCa0akAmJaAAAAAAAAA55wAAAAAAAAADAAAAAFVU0RDAAAAAJJxEaNbGzeFrRRip1TELMrH73j2LYuC0nhaVnd3FjpHAAAAAUxUTgAAAAAAknERo1sbN4WtFGKnVMQsysfvePYti4LSeFpWd3cWOkcAAAAAIHYD6ACazbEAmJaAAAAAAAAA554AAAAAAAAADAAAAAFVU0RDAAAAAJJxEaNbGzeFrRRip1TELMrH73j2LYuC0nhaVnd3FjpHAAAAAUxUTgAAAAAAknERo1sbN4WtFGKnVMQsysfvePYti4LSeFpWd3cWOkcAAAAAIIepugATWTcAExLQAAAAAAAA56AAAAAAAAAADAAAAAFVU0RDAAAAAJJxEaNbGzeFrRRip1TELMrH73j2LYuC0nhaVnd3FjpHAAAAAUxUTgAAAAAAknERo1sbN4WtFGKnVMQsysfvePYti4LSeFpWd3cWOkcAAAAAIJlh6QACaxcAAmJaAAAAAAAA56IAAAAAAAAADAAAAAFVU0RDAAAAAJJxEaNbGzeFrRRip1TELMrH73j2LYuC0nhaVnd3FjpHAAAAAUxUTgAAAAAAknERo1sbN4WtFGKnVMQsysfvePYti4LSeFpWd3cWOkcAAAAAIKsskACawccAmJaAAAAAAAAA56QAAAAAAAAADAAAAAFVU0RDAAAAAJJxEaNbGzeFrRRip1TELMrH73j2LYuC0nhaVnd3FjpHAAAAAUxUTgAAAAAAknERo1sbN4WtFGKnVMQsysfvePYti4LSeFpWd3cWOkcAAAAAIL0JzgAe8sMAHoSAAAAAAAAA56YAAAAAAAAADAAAAAFVU0RDAAAAAJJxEaNbGzeFrRRip1TELMrH73j2LYuC0nhaVnd3FjpHAAAAAUxUTgAAAAAAknERo1sbN4WtFGKnVMQsysfvePYti4LSeFpWd3cWOkcAAAAAIM75vwCaudcAmJaAAAAAAAAA56gAAAAAAAAADAAAAAFVU0RDAAAAAJJxEaNbGzeFrRRip1TELMrH73j2LYuC0nhaVnd3FjpHAAAAAUxUTgAAAAAAknERo1sbN4WtFGKnVMQsysfvePYti4LSeFpWd3cWOkcAAAAAIOD8gABNWu8ATEtAAAAAAAAA56oAAAAAAAAADAAAAAFVU0RDAAAAAJJxEaNbGzeFrRRip1TELMrH73j2LYuC0nhaVnd3FjpHAAAAAUxUTgAAAAAAknERo1sbN4WtFGKnVMQsysfvePYti4LSeFpWd3cWOkcAAAAAIPMSMQBNWPMATEtAAAAAAAAA56wAAAAAAAAADAAAAAFVU0RDAAAAAJJxEaNbGzeFrRRip1TELMrH73j2LYuC0nhaVnd3FjpHAAAAAUxUTgAAAAAAknERo1sbN4WtFGKnVMQsysfvePYti4LSeFpWd3cWOkcAAAAAIQU67ACare0AmJaAAAAAAAAA564AAAAAAAAADAAAAAFVU0RDAAAAAJJxEaNbGzeFrRRip1TELMrH73j2LYuC0nhaVnd3FjpHAAAAAUxUTgAAAAAAknERo1sbN4WtFGKnVMQsysfvePYti4LSeFpWd3cWOkcAAAAAIRd20gCaqfUAmJaAAAAAAAAA57AAAAAAAAAADAAAAAFVU0RDAAAAAJJxEaNbGzeFrRRip1TELMrH73j2LYuC0nhaVnd3FjpHAAAAAUxUTgAAAAAAknERo1sbN4WtFGKnVMQsysfvePYti4LSeFpWd3cWOkcAAAAAISnGAAAmqX8AJiWgAAAAAAAA57IAAAAAAAAADAAAAAFVU0RDAAAAAJJxEaNbGzeFrRRip1TELMrH73j2LYuC0nhaVnd3FjpHAAAAAUxUTgAAAAAAknERo1sbN4WtFGKnVMQsysfvePYti4LSeFpWd3cWOkcAAAAAITwolQAHu00AB6EgAAAAAAAA57QAAAAAAAAADAAAAAFVU0RDAAAAAJJxEaNbGzeFrRRip1TELMrH73j2LYuC0nhaVnd3FjpHAAAAAUxUTgAAAAAAknERo1sbN4WtFGKnVMQsysfvePYti4LSeFpWd3cWOkcAAAAAIU6esQCangsAmJaAAAAAAAAA57YAAAAAAAAADAAAAAFVU0RDAAAAAJJxEaNbGzeFrRRip1TELMrH73j2LYuC0nhaVnd3FjpHAAAAAUxUTgAAAAAAknERo1sbN4WtFGKnVMQsysfvePYti4LSeFpWd3cWOkcAAAAAIWEocQCamhMAmJaAAAAAAAAA57gAAAAAAAAADAAAAAFVU0RDAAAAAJJxEaNbGzeFrRRip1TELMrH73j2LYuC0nhaVnd3FjpHAAAAAUxUTgAAAAAAknERo1sbN4WtFGKnVMQsysfvePYti4LSeFpWd3cWOkcAAAAAIXPF9ACalhsAmJaAAAAAAAAA57oAAAAAAAAADAAAAAFVU0RDAAAAAJJxEaNbGzeFrRRip1TELMrH73j2LYuC0nhaVnd3FjpHAAAAAUxUTgAAAAAAknERo1sbN4WtFGKnVMQsysfvePYti4LSeFpWd3cWOkcAAAAAIYZ3XABNSREATEtAAAAAAAAA57wAAAAAAAAADAAAAAFVU0RDAAAAAJJxEaNbGzeFrRRip1TELMrH73j2LYuC0nhaVnd3FjpHAAAAAUxUTgAAAAAAknERo1sbN4WtFGKnVMQsysfvePYti4LSeFpWd3cWOkcAAAAAIZk8yQBNRxUATEtAAAAAAAAA574AAAAAAAAADAAAAAFVU0RDAAAAAJJxEaNbGzeFrRRip1TELMrH73j2LYuC0nhaVnd3FjpHAAAAAUxUTgAAAAAAknERo1sbN4WtFGKnVMQsysfvePYti4LSeFpWd3cWOkcAAAAAIawWWACaijEAmJaAAAAAAAAA58AAAAAAAAAADAAAAAFVU0RDAAAAAJJxEaNbGzeFrRRip1TELMrH73j2LYuC0nhaVnd3FjpHAAAAAUxUTgAAAAAAknERo1sbN4WtFGKnVMQsysfvePYti4LSeFpWd3cWOkcAAAAAIb8ELAAe56UAHoSAAAAAAAAA58IAAAAAAAAADAAAAAFVU0RDAAAAAJJxEaNbGzeFrRRip1TELMrH73j2LYuC0nhaVnd3FjpHAAAAAUxUTgAAAAAAknERo1sbN4WtFGKnVMQsysfvePYti4LSeFpWd3cWOkcAAAAAIdIGZQACagkAAmJaAAAAAAAA58QAAAAAAAAADAAAAAFVU0RDAAAAAJJxEaNbGzeFrRRip1TELMrH73j2LYuC0nhaVnd3FjpHAAAAAUxUTgAAAAAAknERo1sbN4WtFGKnVMQsysfvePYti4LSeFpWd3cWOkcAAAAAIeUdJQATT8kAExLQAAAAAAAA58YAAAAAAAAAAwAAAAFMVE4AAAAAAJJxEaNbGzeFrRRip1TELMrH73j2LYuC0nhaVnd3FjpHAAAAAVVTREMAAAAAknERo1sbN4WtFGKnVMQsysfvePYti4LSeFpWd3cWOkcAAAAAA1pkeAAB8Q8AAehIAAAAAAAA5zIAAAAAAAAAAwAAAAFMVE4AAAAAAJJxEaNbGzeFrRRip1TELMrH73j2LYuC0nhaVnd3FjpHAAAAAVVTREMAAAAAknERo1sbN4WtFGKnVMQsysfvePYti4LSeFpWd3cWOkcAAAAAA1p6egCbWKkAmJaAAAAAAAAA5zQAAAAAAAAAAwAAAAFMVE4AAAAAAJJxEaNbGzeFrRRip1TELMrH73j2LYuC0nhaVnd3FjpHAAAAAVVTREMAAAAAknERo1sbN4WtFGKnVMQsysfvePYti4LSeFpWd3cWOkcAAAAAA1qQfgCbXKEAmJaAAAAAAAAA5zYAAAAAAAAAAwAAAAFMVE4AAAAAAJJxEaNbGzeFrRRip1TELMrH73j2LYuC0nhaVnd3FjpHAAAAAVVTREMAAAAAknERo1sbN4WtFGKnVMQsysfvePYti4LSeFpWd3cWOkcAAAAAA1qmgwAPiakAD0JAAAAAAAAA5zgAAAAAAAAAAwAAAAFMVE4AAAAAAJJxEaNbGzeFrRRip1TELMrH73j2LYuC0nhaVnd3FjpHAAAAAVVTREMAAAAAknERo1sbN4WtFGKnVMQsysfvePYti4LSeFpWd3cWOkcAAAAAA1q8iQBNskkATEtAAAAAAAAA5zoAAAAAAAAAAwAAAAFMVE4AAAAAAJJxEaNbGzeFrRRip1TELMrH73j2LYuC0nhaVnd3FjpHAAAAAVVTREMAAAAAknERo1sbN4WtFGKnVMQsysfvePYti4LSeFpWd3cWOkcAAAAAA1rSkABNtEUATEtAAAAAAAAA5zwAAAAAAAAADAAAAAFVU0RDAAAAAJJxEaNbGzeFrRRip1TELMrH73j2LYuC0nhaVnd3FjpHAAAAAUxUTgAAAAAAknERo1sbN4WtFGKnVMQsysfvePYti4LSeFpWd3cWOkcAAAAAA1tW/wCaijEAmJaAAAAAAAAA510AAAAAAAAADAAAAAFVU0RDAAAAAJJxEaNbGzeFrRRip1TELMrH73j2LYuC0nhaVnd3FjpHAAAAAUxUTgAAAAAAknERo1sbN4WtFGKnVMQsysfvePYti4LSeFpWd3cWOkcAAAAAA1ttFwAe56UAHoSAAAAAAAAA518AAAAAAAAADAAAAAFVU0RDAAAAAJJxEaNbGzeFrRRip1TELMrH73j2LYuC0nhaVnd3FjpHAAAAAUxUTgAAAAAAknERo1sbN4WtFGKnVMQsysfvePYti4LSeFpWd3cWOkcAAAAAA1uDKgACagkAAmJaAAAAAAAA52EAAAAAAAAADAAAAAFVU0RDAAAAAJJxEaNbGzeFrRRip1TELMrH73j2LYuC0nhaVnd3FjpHAAAAAUxUTgAAAAAAknERo1sbN4WtFGKnVMQsysfvePYti4LSeFpWd3cWOkcAAAAAA1uZRAATT8kAExLQAAAAAAAA52MAAAAAAAAADAAAAAFVU0RDAAAAAJJxEaNbGzeFrRRip1TELMrH73j2LYuC0nhaVnd3FjpHAAAAAUxUTgAAAAAAknERo1sbN4WtFGKnVMQsysfvePYti4LSeFpWd3cWOkcAAAAAF33AGACa3ZMAmJaAAAAAAAAA55cAAAAAAAAADAAAAAFVU0RDAAAAAJJxEaNbGzeFrRRip1TELMrH73j2LYuC0nhaVnd3FjpHAAAAAUxUTgAAAAAAknERo1sbN4WtFGKnVMQsysfvePYti4LSeFpWd3cWOkcAAAAAF35aVQAAnpEAAJxAAAAAAAAA55kAAAAAAAAADAAAAAFVU0RDAAAAAJJxEaNbGzeFrRRip1TELMrH73j2LYuC0nhaVnd3FjpHAAAAAUxUTgAAAAAAknERo1sbN4WtFGKnVMQsysfvePYti4LSeFpWd3cWOkcAAAAAF370mABNatEATEtAAAAAAAAA55sAAAAAAAAADAAAAAFVU0RDAAAAAJJxEaNbGzeFrRRip1TELMrH73j2LYuC0nhaVnd3FjpHAAAAAUxUTgAAAAAAknERo1sbN4WtFGKnVMQsysfvePYti4LSeFpWd3cWOkcAAAAAF3+O5QCa0akAmJaAAAAAAAAA550AAAAAAAAADAAAAAFVU0RDAAAAAJJxEaNbGzeFrRRip1TELMrH73j2LYuC0nhaVnd3FjpHAAAAAUxUTgAAAAAAknERo1sbN4WtFGKnVMQsysfvePYti4LSeFpWd3cWOkcAAAAAF4ApAgCazbEAmJaAAAAAAAAA558AAAAAAAAADAAAAAFVU0RDAAAAAJJxEaNbGzeFrRRip1TELMrH73j2LYuC0nhaVnd3FjpHAAAAAUxUTgAAAAAAknERo1sbN4WtFGKnVMQsysfvePYti4LSeFpWd3cWOkcAAAAAF4DDXgATWTcAExLQAAAAAAAA56EAAAAAAAAADAAAAAFVU0RDAAAAAJJxEaNbGzeFrRRip1TELMrH73j2LYuC0nhaVnd3FjpHAAAAAUxUTgAAAAAAknERo1sbN4WtFGKnVMQsysfvePYti4LSeFpWd3cWOkcAAAAAF4FdwgACaxcAAmJaAAAAAAAA56MAAAAAAAAADAAAAAFVU0RDAAAAAJJxEaNbGzeFrRRip1TELMrH73j2LYuC0nhaVnd3FjpHAAAAAUxUTgAAAAAAknERo1sbN4WtFGKnVMQsysfvePYti4LSeFpWd3cWOkcAAAAAF4H4LgCawccAmJaAAAAAAAAA56UAAAAAAAAADAAAAAFVU0RDAAAAAJJxEaNbGzeFrRRip1TELMrH73j2LYuC0nhaVnd3FjpHAAAAAUxUTgAAAAAAknERo1sbN4WtFGKnVMQsysfvePYti4LSeFpWd3cWOkcAAAAAF4KSogAe8sMAHoSAAAAAAAAA56cAAAAAAAAADAAAAAFVU0RDAAAAAJJxEaNbGzeFrRRip1TELMrH73j2LYuC0nhaVnd3FjpHAAAAAUxUTgAAAAAAknERo1sbN4WtFGKnVMQsysfvePYti4LSeFpWd3cWOkcAAAAAF4Ms5wCaudcAmJaAAAAAAAAA56kAAAAAAAAADAAAAAFVU0RDAAAAAJJxEaNbGzeFrRRip1TELMrH73j2LYuC0nhaVnd3FjpHAAAAAUxUTgAAAAAAknERo1sbN4WtFGKnVMQsysfvePYti4LSeFpWd3cWOkcAAAAAF4PHagBNWu8ATEtAAAAAAAAA56sAAAAAAAAADAAAAAFVU0RDAAAAAJJxEaNbGzeFrRRip1TELMrH73j2LYuC0nhaVnd3FjpHAAAAAUxUTgAAAAAAknERo1sbN4WtFGKnVMQsysfvePYti4LSeFpWd3cWOkcAAAAAF4Rh9gBNWPMATEtAAAAAAAAA560AAAAAAAAADAAAAAFVU0RDAAAAAJJxEaNbGzeFrRRip1TELMrH73j2LYuC0nhaVnd3FjpHAAAAAUxUTgAAAAAAknERo1sbN4WtFGKnVMQsysfvePYti4LSeFpWd3cWOkcAAAAAF4T8iQCare0AmJaAAAAAAAAA568AAAAAAAAADAAAAAFVU0RDAAAAAJJxEaNbGzeFrRRip1TELMrH73j2LYuC0nhaVnd3FjpHAAAAAUxUTgAAAAAAknERo1sbN4WtFGKnVMQsysfvePYti4LSeFpWd3cWOkcAAAAAF4WXJgCaqfUAmJaAAAAAAAAA57EAAAAAAAAADAAAAAFVU0RDAAAAAJJxEaNbGzeFrRRip1TELMrH73j2LYuC0nhaVnd3FjpHAAAAAUxUTgAAAAAAknERo1sbN4WtFGKnVMQsysfvePYti4LSeFpWd3cWOkcAAAAAF4YxyAAmqX8AJiWgAAAAAAAA57MAAAAAAAAADAAAAAFVU0RDAAAAAJJxEaNbGzeFrRRip1TELMrH73j2LYuC0nhaVnd3FjpHAAAAAUxUTgAAAAAAknERo1sbN4WtFGKnVMQsysfvePYti4LSeFpWd3cWOkcAAAAAF4bMPAAHu00AB6EgAAAAAAAA57UAAAAAAAAADAAAAAFVU0RDAAAAAJJxEaNbGzeFrRRip1TELMrH73j2LYuC0nhaVnd3FjpHAAAAAUxUTgAAAAAAknERo1sbN4WtFGKnVMQsysfvePYti4LSeFpWd3cWOkcAAAAAF4dm7wCangsAmJaAAAAAAAAA57cAAAAAAAAADAAAAAFVU0RDAAAAAJJxEaNbGzeFrRRip1TELMrH73j2LYuC0nhaVnd3FjpHAAAAAUxUTgAAAAAAknERo1sbN4WtFGKnVMQsysfvePYti4LSeFpWd3cWOkcAAAAAF4gBqwCamhMAmJaAAAAAAAAA57kAAAAAAAAADAAAAAFVU0RDAAAAAJJxEaNbGzeFrRRip1TELMrH73j2LYuC0nhaVnd3FjpHAAAAAUxUTgAAAAAAknERo1sbN4WtFGKnVMQsysfvePYti4LSeFpWd3cWOkcAAAAAF4icbgCalhsAmJaAAAAAAAAA57sAAAAAAAAADAAAAAFVU0RDAAAAAJJxEaNbGzeFrRRip1TELMrH73j2LYuC0nhaVnd3FjpHAAAAAUxUTgAAAAAAknERo1sbN4WtFGKnVMQsysfvePYti4LSeFpWd3cWOkcAAAAAF4k3OgBNSREATEtAAAAAAAAA570AAAAAAAAADAAAAAFVU0RDAAAAAJJxEaNbGzeFrRRip1TELMrH73j2LYuC0nhaVnd3FjpHAAAAAUxUTgAAAAAAknERo1sbN4WtFGKnVMQsysfvePYti4LSeFpWd3cWOkcAAAAAF4nSDQBNRxUATEtAAAAAAAAA578AAAAAAAAADAAAAAFVU0RDAAAAAJJxEaNbGzeFrRRip1TELMrH73j2LYuC0nhaVnd3FjpHAAAAAUxUTgAAAAAAknERo1sbN4WtFGKnVMQsysfvePYti4LSeFpWd3cWOkcAAAAAF4psrwCaijEAmJaAAAAAAAAA58EAAAAAAAAADAAAAAFVU0RDAAAAAJJxEaNbGzeFrRRip1TELMrH73j2LYuC0nhaVnd3FjpHAAAAAUxUTgAAAAAAknERo1sbN4WtFGKnVMQsysfvePYti4LSeFpWd3cWOkcAAAAAF4sHkwAe56UAHoSAAAAAAAAA58MAAAAAAAAADAAAAAFVU0RDAAAAAJJxEaNbGzeFrRRip1TELMrH73j2LYuC0nhaVnd3FjpHAAAAAUxUTgAAAAAAknERo1sbN4WtFGKnVMQsysfvePYti4LSeFpWd3cWOkcAAAAAF4uifgACagkAAmJaAAAAAAAA58UAAAAAAAAADAAAAAFVU0RDAAAAAJJxEaNbGzeFrRRip1TELMrH73j2LYuC0nhaVnd3FjpHAAAAAUxUTgAAAAAAknERo1sbN4WtFGKnVMQsysfvePYti4LSeFpWd3cWOkcAAAAAF4w9cQATT8kAExLQAAAAAAAA58cAAAAAAAAAAwAAAAFDQURMAAAAAJJxEaNbGzeFrRRip1TELMrH73j2LYuC0nhaVnd3FjpHAAAAAAAAAAADejwIAISq1wATEtAAAAAAAADnZAAAAAAAAAADAAAAAUNBREwAAAAAknERo1sbN4WtFGKnVMQsysfvePYti4LSeFpWd3cWOkcAAAAAAAAAAAN8BW8AAqidAABhqAAAAAAAAOdmAAAAAAAAAAMAAAABQ0FETAAAAACScRGjWxs3ha0UYqdUxCzKx+949i2LgtJ4WlZ3dxY6RwAAAAAAAAAAA33QrAQpk+cAmJaAAAAAAAAA52gAAAAAAAAAAwAAAAFDQURMAAAAAJJxEaNbGzeFrRRip1TELMrH73j2LYuC0nhaVnd3FjpHAAAAAAAAAAADf53EBCuyfwCYloAAAAAAAADnagAAAAAAAAADAAAAAUNBREwAAAAAknERo1sbN4WtFGKnVMQsysfvePYti4LSeFpWd3cWOkcAAAAAAAAAAAOBbLgAavtPAA9CQAAAAAAAAOdsAAAAAAAAAAMAAAABQ0FETAAAAACScRGjWxs3ha0UYqdUxCzKx+949i2LgtJ4WlZ3dxY6RwAAAAAAAAAAA4M9jAQv760AmJaAAAAAAAAA524AAAAAAAAADAAAAAAAAAABQ0FETAAAAACScRGjWxs3ha0UYqdUxCzKx+949i2LgtJ4WlZ3dxY6RwAAAAADnJS5A+9KowCYloAAAAAAAADnlQAAAAAAAAABbk0rAAAAAEBOgdBqqAfC+H8fzZED2+nLOsTULMvGRSndseUHXeZphIvX1BUHJAtDlb6j8jTdAfASFNJhYG6IS2FtdAejH7IJ", + "resultXdr": "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", + "resultMetaXdr": "AAAAAwAAAAAAAAACAAAAAwAc0RwAAAAAAAAAACcSf4WUeTTES6n49wz8vRz06eC5ZH6/5V/Tx0ZuTSsAAAAACnNaaxgAABkRAADFFAAAAJoAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAEAAAACc4IfxwAAAAJUC+QIAAAAAgAAAAAAAAAAAAAAAAAAAAMAAAAAABzRGgAAAABmWd/VAAAAAAAAAAEAHNEcAAAAAAAAAAAnEn+FlHk0xEup+PcM/L0c9OnguWR+v+Vf08dGbk0rAAAAAApzWmsYAAAZEQAAxRUAAACaAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAABAAAAAnOCH8cAAAACVAvkCAAAAAIAAAAAAAAAAAAAAAAAAAADAAAAAAAc0RwAAAAAZlnf3wAAAAAAAAAAAAAAAAAAAAA=", + "ledger": 1888540, + "createdAt": 1717166047 + }, + { + "status": "SUCCESS", + "applicationOrder": 6, + "feeBump": false, + "envelopeXdr": "AAAAAgAAAAAoJHqla+YxLudsGN2hmc1W0Rxq1Hfc38KkN/8LQAXnIwAPQkAAGgRHAAAANgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAABB90WssODNIgi6BHveqzxTRmIpvAFRyVNM+Hm2GVuCcAAAAAAAAAACM5fzUGB+0D62dgLSTKDN5FRVH2qgNcAD02tSh4IC+JAAAABdIdugAAAAAAAAAAAJABecjAAAAQOw9IBLycv0RKvgXY6I+WMgprKEdCxJnVHgLZfozPuLrgC8TE8Av1KgpQomWZvB4+yrYDaBXrOG2be4YWj+5ZA2GVuCcAAAAQNZtcdwq8IO1qR/Rlm1+kaRKnvJPiqzCjD1dPQicadjYwcxlFFRH80MyfA7Ic0YKMVG7mt0KCd1WVzk7/3Shbg4=", + "resultXdr": "AAAAAAAAAGQAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAA=", + "resultMetaXdr": "AAAAAwAAAAAAAAACAAAAAwAc0RwAAAAAAAAAACgkeqVr5jEu52wY3aGZzVbRHGrUd9zfwqQ3/wtABecjAAAAADwzS2gAGgRHAAAANQAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAMAAAAAABzPVQAAAABmWdZ7AAAAAAAAAAEAHNEcAAAAAAAAAAAoJHqla+YxLudsGN2hmc1W0Rxq1Hfc38KkN/8LQAXnIwAAAAA8M0toABoERwAAADYAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAADAAAAAAAc0RwAAAAAZlnf3wAAAAAAAAABAAAAAwAAAAMAHNEbAAAAAAAAAAAQfdFrLDgzSIIugR73qs8U0ZiKbwBUclTTPh5thlbgnABZJRYM442hAAAAawAAAlEAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAADAAAAAAAaBGEAAAAAZkspCwAAAAAAAAABABzRHAAAAAAAAAAAEH3Rayw4M0iCLoEe96rPFNGYim8AVHJU0z4ebYZW4JwAWST+xGyloQAAAGsAAAJRAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAwAAAAAAGgRhAAAAAGZLKQsAAAAAAAAAAAAc0RwAAAAAAAAAAIzl/NQYH7QPrZ2AtJMoM3kVFUfaqA1wAPTa1KHggL4kAAAAF0h26AAAHNEcAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=", + "ledger": 1888540, + "createdAt": 1717166047 + } + ], + "latestLedger": 1888632, + "latestLedgerCloseTimestamp": 1717166524, + "oldestLedger": 1871353, + "oldestLedgerCloseTimestamp": 1717075828, + "cursor": "8111217537212417" + } + } + } + ] + }, { "name": "sendTransaction", "summary": "submits a transaction",