From 1ceb9e9f9a4cbcb46c27057c0039eb813617a9dd Mon Sep 17 00:00:00 2001 From: Elliot Voris Date: Tue, 24 Jan 2023 06:39:26 -0600 Subject: [PATCH 001/133] API documentation for Soroban-RPC (#253) * Adding the `/api` route to the config, and basic intro content For the moment, I'm essentially copying from the Google Doc. Signed-off-by: Elliot Voris * Adding content for the `getAccount` method Stubbing in basic file structure for all other methods. Signed-off-by: Elliot Voris * Expanding the methods in the sidebar by default Signed-off-by: Elliot Voris * Adding content for `getHealth` method Signed-off-by: Elliot Voris * Adding content for the `getHealth` method Signed-off-by: Elliot Voris * Adding content for the `getLatestLedger` method Signed-off-by: Elliot Voris * Adding content for the `getLedgerEntry` method Signed-off-by: Elliot Voris * Adding content for the `getContractData` method Signed-off-by: Elliot Voris * Adding content for the `getEvents` method Signed-off-by: Elliot Voris * Un-commenting a TODO item Signed-off-by: Elliot Voris * Adding content for the `getNetwork` method Signed-off-by: Elliot Voris * Adding content for the `getTransactionStatus` method Signed-off-by: Elliot Voris * Adding content for the `requestAirdrop` method Signed-off-by: Elliot Voris * Adding content for the `sendTransaction` method Signed-off-by: Elliot Voris * Adding content for `simulateTransaction` method Signed-off-by: Elliot Voris * Changing the appearance of a WIP note Signed-off-by: Elliot Voris * Breaking each of the intro sections into their own pages Signed-off-by: Elliot Voris * Hand-writing (most) of the sidebar It's easier to accomplish what I'm after this way. Or, at least, I figured out how to accomplish it this way first. Signed-off-by: Elliot Voris * Adding a "description" field to the intro category Signed-off-by: Elliot Voris * Fixing a link reference to `pagination` Signed-off-by: Elliot Voris * Capitalizing `Stellar` more consistently Signed-off-by: Elliot Voris * Update api/methods/getEvents.mdx Soroban-RPC supports querying up to 24 hours of recent ledgers. Co-authored-by: Paul Bellamy * Update api/methods/getTransactionStatus.mdx Co-authored-by: Paul Bellamy * `sendTransaction` *does* support all Stellar transactions. Signed-off-by: Elliot Voris * Removing the question about auto-calculating footprints Signed-off-by: Elliot Voris * All questions have been answered. Sweet!! Signed-off-by: Elliot Voris * Update api/pagination.mdx Co-authored-by: Paul Bellamy * Removing the "Outstanding Questions" page from the sidebar Signed-off-by: Elliot Voris * denoting `getNetwork` as a work-in-progress Signed-off-by: Elliot Voris * Moving the (WIP) methods to their own sidebar section Signed-off-by: Elliot Voris * Adding example request/response to the `getAccount` method Signed-off-by: Elliot Voris * Adding example request/response for the `getHealth` method Signed-off-by: Elliot Voris * Adding example request/response for the `sendTransaction` method Signed-off-by: Elliot Voris * Adding example request/response for the `getTransactionStatus` method Signed-off-by: Elliot Voris * Adding example request/response for the `getContractData` method Signed-off-by: Elliot Voris * Adding example request/response for the `getLedgerEntry` method Signed-off-by: Elliot Voris * Changing the `balance` field into a "TODO" Signed-off-by: Elliot Voris * Adding example request/response for the `getEvents` method Signed-off-by: Elliot Voris * Adding a note about the events that are returned Signed-off-by: Elliot Voris * Adding example request/response for the `simulateTransaction` method. Signed-off-by: Elliot Voris * Adding a pending example to the `getTransactionStatus` method Signed-off-by: Elliot Voris * Adding a more useful success example to `getTransactionStatus` Signed-off-by: Elliot Voris * Using a soroban transaction in the `sendTransaction` method Don't forget the footprint, friends! Signed-off-by: Elliot Voris * Removing the `getContractData` method This method is being deprecated. See stellar/soroban-tools#316 for more details. Please use the `getLedgerEntry` method instead. Signed-off-by: Elliot Voris Signed-off-by: Elliot Voris Co-authored-by: Paul Bellamy --- api/anti-goals.mdx | 14 +++ api/goals.mdx | 17 ++++ api/json-rpc.mdx | 16 ++++ api/methods/getAccount.mdx | 47 ++++++++++ api/methods/getEvents.mdx | 134 +++++++++++++++++++++++++++ api/methods/getHealth.mdx | 38 ++++++++ api/methods/getLatestLedger.mdx | 20 ++++ api/methods/getLedgerEntry.mdx | 103 ++++++++++++++++++++ api/methods/getNetwork.mdx | 19 ++++ api/methods/getTransactionStatus.mdx | 107 +++++++++++++++++++++ api/methods/requestAirdrop.mdx | 26 ++++++ api/methods/sendTransaction.mdx | 63 +++++++++++++ api/methods/simulateTransaction.mdx | 62 +++++++++++++ api/pagination.mdx | 26 ++++++ 14 files changed, 692 insertions(+) create mode 100644 api/anti-goals.mdx create mode 100644 api/goals.mdx create mode 100644 api/json-rpc.mdx create mode 100644 api/methods/getAccount.mdx create mode 100644 api/methods/getEvents.mdx create mode 100644 api/methods/getHealth.mdx create mode 100644 api/methods/getLatestLedger.mdx create mode 100644 api/methods/getLedgerEntry.mdx create mode 100644 api/methods/getNetwork.mdx create mode 100644 api/methods/getTransactionStatus.mdx create mode 100644 api/methods/requestAirdrop.mdx create mode 100644 api/methods/sendTransaction.mdx create mode 100644 api/methods/simulateTransaction.mdx create mode 100644 api/pagination.mdx diff --git a/api/anti-goals.mdx b/api/anti-goals.mdx new file mode 100644 index 000000000..d60010cd3 --- /dev/null +++ b/api/anti-goals.mdx @@ -0,0 +1,14 @@ +--- +sidebar_position: 1 +title: Anti-Goals +--- + +- Soroban-RPC is not a Horizon replacement. Horizon is better suited for historical reporting and analytics queries. Horizon is more concerned with Stellar Vanilla data. +- Soroban-RPC should not depend on Horizon. Horizon is expensive and difficult to run, so if Soroban-RPC depended on Horizon, it would inherit that. +- Soroban-RPC should also provide an API basis for infrastructure providers to implement, but not necessarily be an off-the-shelf solution for them. +- Soroban-RPC is not a reporting/analytics tool and does not provide thorough historical data querying. It does not provide any data aggregation, compilations, or multi-server coordination requests. +- Soroban-RPC does not target ultra-low latency. The latency should be low enough to build and submit successful soroban transactions, but supporting high-frequency traders is not the goal. + +:::note todo +TODO: Decide on direct exposure support (i.e. should we support exposing soroban-rpc directly to the internet?). People will do it regardless, so it might be best to... +::: diff --git a/api/goals.mdx b/api/goals.mdx new file mode 100644 index 000000000..95f02bab7 --- /dev/null +++ b/api/goals.mdx @@ -0,0 +1,17 @@ +--- +sidebar_position: 0 +title: Goals +--- + +Soroban-RPC can be simply described as a "live network gateway for Soroban." It provides information that the network currently has in its view (i.e. current state). It also has the ability to send a transaction to the network, and query the network for the status of previously sent transactions. It is meant to be simple, minimal, scalable, and familiar to blockchain developers from other ecosystems. + +Soroban-RPC should provide all the basic data that a dapp developer would need, provided they are: + +- Only interested in current state data, or are willing to ingest events into their own infrastructure to support reporting/analytics queries. + - Caveat: Soroban-RPC should provide enough data-retention to support reliable ingestion of events. +- Only interested in building and submitting Soroban transactions (not Stellar Vanilla). + +Soroban-RPC should support the developer from local testing (via the quickstart image), all the way through to production deployments. + +- This implies it should be easy to deploy, and easy to maintain; with low cost, and little "admin" needed. +- The developer should be able to simply run the quickstart docker image, and quickly be ready to serve requests without needing to set up or maintain dependent infrastructure. \ No newline at end of file diff --git a/api/json-rpc.mdx b/api/json-rpc.mdx new file mode 100644 index 000000000..e1e52184b --- /dev/null +++ b/api/json-rpc.mdx @@ -0,0 +1,16 @@ +--- +sidebar_position: 2 +title: JSON-RPC +--- + +Soroban-RPC will accept HTTP POST requests using the [JSON-RPC 2.0] specification. Errors are returned via the [jsonrpc error object] wherever possible (and makes sense). + +For production and other publicly-accessible instances, the JSON-RPC endpoint should be served over SSL on port 443, where possible, for security and ease of use. Though, soroban-rpc does not terminate ssl by itself, so will need a load-balancer or other service to terminate SSL for it. + +To interact with soroban-rpc from inside a JavaScript application, use the [js-soroban-client] library, which gives a convenient interface for the RPC methods. + +When XDR is passed as a parameter or returned, it is always a string encoded using standard base64. + +[JSON-RPC 2.0]: +[jsonrpc error object]: +[js-soroban-client]: diff --git a/api/methods/getAccount.mdx b/api/methods/getAccount.mdx new file mode 100644 index 000000000..2bf848312 --- /dev/null +++ b/api/methods/getAccount.mdx @@ -0,0 +1,47 @@ +--- +sidebar_position: 1 +--- + +Fetch a minimal set of current info about a Stellar account. + +Needed to get the current sequence number, and balance for the account so you can build a successful transaction. + +## Parameters + +- `
` - Address of the account to lookup + +## Returns + +- `` + - `id`: `
` + - `sequence`: `` - Current sequence number of the account + - TODO: Balances for the account (same format as in horizon) should be displayed + - TODO: signers/flags/thresholds/etc? + +## Examples + +### Request + +```json +{ + "jsonrpc": "2.0", + "id": 8675309, + "method": "getAccount", + "params": { + "address": "GAO2X2IGYZQEN7RJCA25MB2DM7AQA354AL77DJ2WL46Z6V5XRWVWV44Z" + } +} +``` + +### Response + +```json +{ + "jsonrpc": "2.0", + "id": 8675309, + "result": { + "id": "GAO2X2IGYZQEN7RJCA25MB2DM7AQA354AL77DJ2WL46Z6V5XRWVWV44Z", + "sequence": "703867830403072" + } +} +``` diff --git a/api/methods/getEvents.mdx b/api/methods/getEvents.mdx new file mode 100644 index 000000000..3b09c6d41 --- /dev/null +++ b/api/methods/getEvents.mdx @@ -0,0 +1,134 @@ +--- +sidebar_position: 6 +--- + +Clients can request a filtered list of events emitted by a given ledger range. Soroban-RPC will support querying within a maximum 24 hours of recent ledgers. + +Note, this could be used by the client to only prompt a refresh when there is a new ledger with relevant events. It should also be used by backend Dapp components to "ingest" events into their own database for querying and serving. + +If making multiple requests, clients should deduplicate any events received, based on the event's unique id field. This prevents double-processing in the case of duplicate events being received. + +By default soroban-rpc retains the most recent 24 hours of events. + +## Parameters + +- `startLedger`: `` - Stringified ledger sequence number to fetch events after (inclusive). +- `endLedger`: `` - Stringified ledger sequence number to fetch events before (inclusive). endLedger must be less than or equal to startLedger + 4320 (about 6 hours of ledgers). +- `filters`: `` - List of filters for the returned events. Events matching any of the filters are included. To match a filter, an event must match both a contractId and a topic. Maximum 5 filters are allowed per request. + - `type`: `<"system"|"contract">` - (optional) Filter to only system or only contract type events. If omitted, return all. + - `contractIds`: `` - (optional) List of contract ids to query for events. If omitted, return events for all contracts. Maximum 5 contract IDs are allowed per request. + - `topics`: `` - (optional) List of topic filters. If omitted, query for all events. If multiple filters are specified, events will be included if they match any of the filters. Maximum 5 filters are allowed per request. + - A `TopicFilter` is `SegmentMatcher[]` + - The list can be 1-4 `SegmentMatcher`s long. + - A `SegmentMatcher` is one of the following: + - For an exact segment match, a string containing base64-encoded ScVal + - For a wildcard single-segment match, the string "*", matches exactly one segment. + - Examples of matching token transfer events. Events are emitted here: [rs-soroban-env/event.rs at 924d86cacd58b8a162344bfe0ab37d9668f5d629]. I've decoded the base64-encoded ScVals for easier reading (both the symbols and addresses). In real usage, the `ScSymbol("transfer").toXdr().toString("base64")`, and `ScBinary(pubkeyBytes).toXdr().toString("base64")`, would be base64 encoded strings for exact matches. For example: + - `[ScSymbol("transfer"), "*", "*"]` + - Matches any token transfer events + - `[ScSymbol("transfer"), "*", "GABC...123"]` + - Matches any token transfer events to recipient: GABC...123 + - `[ScSymbol("transfer"), "GDEF...456", "GABC...123"]` + - Matches only token transfers from GDEF...456 to GABC...123. +- `pagination`: `` - See "[Pagination](../pagination)" + +## Returns + +- `` + - `events`: `` + - `ledger`: `` - String-ified sequence number of the ledger. + - `ledgerClosedAt`: `` - ISO8601 timestamp of the ledger closing time. + - `contractId`: `` - ID of the emitting contract. + - `id`: `` - Unique identifier for this event. + - The event's unique id field is based on a [`toid` from Horizon] as used in Horizon's /effects endpoint. + - https://github.com/stellar/go/blob/master/services/horizon/internal/db2/history/effect.go#L58 + - Specifically, it is a string containing: + - bigint(32 bit ledger sequence + 20 bit txn number + 12 bit operation) + `` + number for the event within the operation. + - For example: + - 1234-1 + - `pagingToken`: `` - Duplicate of `id` field, but in the standard place for pagination tokens. + - `topic`: `` - List containing the topic this event was emitted with. + - `value`: `` - List containing the topic this event was emitted with. + - `xdr`: `` - The emitted body value of the event (serialized in a base64 string). + +## Examples + +The following examples query the asset contract for the `native` token, searching for any transfers that take place (up to 100 results). + +:::note +The examples below only returns two transfer events that took place to/from the same account. In the real-world, you would expect far more results. +::: + +### Request + +```json +{ + "jsonrpc": "2.0", + "id": 8675309, + "method": "getEvents", + "params": { + "startLedger": "227000", + "endLedger": "230200", + "filters": [ + { + "type": "contract", + "contractIds": [ + "d93f5c7bb0ebc4a9c8f727c5cebc4e41194d38257e1d0d910356b43bfc528813" + ], + "topics": [ + ["AAAABQAAAAh0cmFuc2Zlcg==", "*", "*"] + ] + } + ], + "pagination": { + "limit": 100 + } + } +} +``` + +### Response + +```json +{ + "jsonrpc": "2.0", + "id": 8675309, + "result": [ + { + "type": "contract", + "ledger": "230010", + "ledgerClosedAt": "2023-01-23T18:54:41Z", + "contractId": "d93f5c7bb0ebc4a9c8f727c5cebc4e41194d38257e1d0d910356b43bfc528813", + "id": "0000987885427757056-0000000001", + "pagingToken": "0000987885427757056-0000000001", + "topic": [ + "AAAABQAAAAh0cmFuc2Zlcg==", + "AAAABAAAAAEAAAAAAAAAAgAAAAUAAAAHQWNjb3VudAAAAAAEAAAAAQAAAAgAAAAAHavpBsZgRv4pEDXWB0NnwQBvvAL/8adWXz2fV7eNq2o=", + "AAAABAAAAAEAAAAAAAAAAgAAAAUAAAAHQWNjb3VudAAAAAAEAAAAAQAAAAgAAAAAHavpBsZgRv4pEDXWB0NnwQBvvAL/8adWXz2fV7eNq2o=" + ], + "value": { + "xdr": "AAAABAAAAAEAAAAFAAAAAAABhqAAAAAAAAAAAA==" + } + }, + { + "type": "contract", + "ledger": "230170", + "ledgerClosedAt": "2023-01-23T19:08:37Z", + "contractId": "d93f5c7bb0ebc4a9c8f727c5cebc4e41194d38257e1d0d910356b43bfc528813", + "id": "0000988572622524416-0000000001", + "pagingToken": "0000988572622524416-0000000001", + "topic": [ + "AAAABQAAAAh0cmFuc2Zlcg==", + "AAAABAAAAAEAAAAAAAAAAgAAAAUAAAAHQWNjb3VudAAAAAAEAAAAAQAAAAgAAAAAHavpBsZgRv4pEDXWB0NnwQBvvAL/8adWXz2fV7eNq2o=", + "AAAABAAAAAEAAAAAAAAAAgAAAAUAAAAHQWNjb3VudAAAAAAEAAAAAQAAAAgAAAAAHavpBsZgRv4pEDXWB0NnwQBvvAL/8adWXz2fV7eNq2o=" + ], + "value": { + "xdr": "AAAABAAAAAEAAAAFAAAAAAAHoSAAAAAAAAAAAA==" + } + } + ] +} +``` + +[rs-soroban-env/event.rs at 924d86cacd58b8a162344bfe0ab37d9668f5d629]: +[`toid` from Horizon]: diff --git a/api/methods/getHealth.mdx b/api/methods/getHealth.mdx new file mode 100644 index 000000000..06a958d2c --- /dev/null +++ b/api/methods/getHealth.mdx @@ -0,0 +1,38 @@ +--- +sidebar_position: 2 +--- + +General node health check. + +## Parameters + +- None + +## Returns + +- `` + - `status`: "healthy" + +## Examples + +### Request + +```json +{ + "jsonrpc": "2.0", + "id": 8675309, + "method": "getHealth" +} +``` + +### Response + +```json +{ + "jsonrpc": "2.0", + "id": 8675309, + "result": { + "status": "healthy" + } +} +``` diff --git a/api/methods/getLatestLedger.mdx b/api/methods/getLatestLedger.mdx new file mode 100644 index 000000000..636f391e5 --- /dev/null +++ b/api/methods/getLatestLedger.mdx @@ -0,0 +1,20 @@ +--- +sidebar_position: 3 +--- + +:::note +The `getLatestLedger` method is still a work-in-progress. +::: + +For finding out the current latest known ledger of this node. This is a subset of the ledger info from Horizon. + +## Parameters + +- None + +## Returns + +- `` + - `id`: `` - hash of the latest ledger + - `protocolVersion`: `` + - `sequence`: `` diff --git a/api/methods/getLedgerEntry.mdx b/api/methods/getLedgerEntry.mdx new file mode 100644 index 000000000..f625ab921 --- /dev/null +++ b/api/methods/getLedgerEntry.mdx @@ -0,0 +1,103 @@ +--- +sidebar_position: 4 +--- + +For reading the current value of ledger entries directly. Allows you to directly inspect the _current state_ of a contract, a contract's code, or any other ledger entry. This is a backup way to access your contract data which may not be available via events or `simulateTransaction`. + +To fetch contract wasm byte-code, use the ContractCode ledger entry key. + +## Parameters + +- `key`: `` - The key of the ledger entry you wish to retrieve (serialized in a base64 string) + +## Return + +- `` + - `xdr`: `` - The current value of the given ledger entry (serialized in a base64 string) + - `lastModifiedLedgerSeq`: `` - The ledger number of the last time this entry was updated (optional) + - `latestLedger`: `` - The current latest ledger observed by the node when this response was generated. + +## Examples + +### Request + +```json +{ + "jsonrpc": "2.0", + "id": 8675309, + "method": "getLedgerEntry", + "params": { + "key": "AAAABhv6ziOnWcVRdGMZjtFKSWnLSndMp9JPVLLXxQqAvKqJAAAABQAAAAdDT1VOVEVSAA==" + } +} +``` + +### Response + +```json +{ + "jsonrpc": "2.0", + "id": 8675309, + "result": { + "xdr": "AAAABhv6ziOnWcVRdGMZjtFKSWnLSndMp9JPVLLXxQqAvKqJAAAABQAAAAdDT1VOVEVSAAAAAAEAAAAD", + "lastModifiedLedgerSeq": "164986", + "latestLedger": "179436" + } +} +``` + +### Generating `key` Parameters + +The example above is querying a deployment of the [`increment` example contract] to find out what value is stored in the `COUNTER` ledger entry. This value can be derived using the following code snippets. You should be able to extrapolate from the provided examples how to get `key` parameters for other types and values. + +#### Python + +:::note +If you are using the Python `stellar_sdk` to generate these keys, you will need to install the latest version of the `soroban` branch of the SDK. This can be done like so: + +```bash +pip install git+https://github.com/StellarCN/py-stellar-base.git@soroban +``` +::: + +```python +import stellar_sdk.xdr as xdr, stellar_sdk.soroban_types as soroban_types + +def get_ledger_key_symbol(contract_id, symbol_text): + ledger_key = xdr.ledger_key.LedgerKey( + type=xdr.ledger_entry_type.LedgerEntryType.CONTRACT_DATA, + contract_data=xdr.ledger_key_contract_data.LedgerKeyContractData( + contract_id=xdr.hash.Hash(bytes.fromhex(contract_id)), + key=soroban_types.Symbol(symbol_text)._to_xdr_sc_val() + ) + ) + return ledger_key.to_xdr() + +print(get_ledger_key_symbol( + "1bface23a759c5517463198ed14a4969cb4a774ca7d24f54b2d7c50a80bcaa89", + "COUNTER" +)) +``` + +#### JavaScript + +```js +const SorobanClient = require('soroban-client') +const xdr = SorobanClient.xdr + +const getLedgerKeySymbol = (contractId, symbolText) => { + const ledgerKey = xdr.LedgerKey.contractData( + new xdr.LedgerKeyContractData({ + contractId: Buffer.from(contractId, 'hex'), + key: xdr.ScVal.scvSymbol(symbolText) + }) + ) + return ledgerKey.toXDR('base64') +} +console.log(getLedgerKeySymbol( + '1bface23a759c5517463198ed14a4969cb4a774ca7d24f54b2d7c50a80bcaa89', + 'COUNTER' +)) +``` + +[`increment` example contract]: \ No newline at end of file diff --git a/api/methods/getNetwork.mdx b/api/methods/getNetwork.mdx new file mode 100644 index 000000000..5e9972433 --- /dev/null +++ b/api/methods/getNetwork.mdx @@ -0,0 +1,19 @@ +--- +sidebar_position: 7 +--- + +:::note +The `getNetwork` method is still a work-in-progress. +::: + +General info about the currently configured network. + +## Parameters + +- None + +## Returns + +- `` + - `passphrase`: `` - Network passphrase configured + - `protocolVersion`: `` - Protocol version of the latest ledger diff --git a/api/methods/getTransactionStatus.mdx b/api/methods/getTransactionStatus.mdx new file mode 100644 index 000000000..bef1e68a2 --- /dev/null +++ b/api/methods/getTransactionStatus.mdx @@ -0,0 +1,107 @@ +--- +sidebar_position: 8 +--- + +:::note +The `getTransactionStatus` method is still a work-in-progress. +::: + +Clients will poll this to tell when the transaction has been completed. + +- TODO: Figure out result/error and how that fits into the jsonrpc response object +- TODO: Figure out return values for non-contract-invocation transactions + +## Parameters + +- `` - transaction hash to query + +## Returns + +- `` + - `id`: `` - hash of the transaction as a hex-encoded string + - `status`: `` - the current status of the transaction by hash, one of: + - pending + - success + - error + - `results`: `` - (optional) Will be present on completed successful transactions. + - xdr: ` - xdr-encoded return value of the contract call + - TODO: Anything else we should include? Gas spent? + - `envelopeXdr`: `` - (optional) A base64 encoded string of the raw TransactionEnvelope XDR struct for this transaction. + - `resultXdr`: `` - (optional) A base64 encoded string of the raw TransactionResult XDR struct for this transaction. + - `resultMetaXdr`: `` - (optional) A base64 encoded string of the raw TransactionResultMeta XDR struct for this transaction. + - `error`: `` - (optional) Will be present on failed transactions. + - `code`: `` - Short unique string representing the type of error + - `message`: `` - Human friendly summary of the error + - `data`: `` - (optional) More data related to the error if available + +## Examples + +### Request + +```json +{ + "jsonrpc": "2.0", + "id": 8675309, + "method": "getTransactionStatus", + "params": { + "hash": "97eb77da26e21d6a032fc0c311831d94a702ba336037da7c8a5ec51b3e39c485" + } +} +``` + +### Response + +#### Pending + +```json +{ + "jsonrpc": "2.0", + "id": 8675309, + "result": { + "id": "d70916f8b8aa55c13d5974a38e32a3efe440ef6870c0f0a07075d1c128d23698", + "status": "pending" + } +} +``` + +#### Success + +```json +{ + "jsonrpc": "2.0", + "id": 8675309, + "result": { + "id": "d70916f8b8aa55c13d5974a38e32a3efe440ef6870c0f0a07075d1c128d23698", + "status": "success", + "results": [ + { + "xdr": "AAAAAQAAAAY=" + } + ] + } +} +``` + +#### Error + +```json +{ + "jsonrpc": "2.0", + "id": 8675309, + "result": { + "id": "48dd243d4683745b7efa9f4fe6182f944b03cfd169135657e39c974e9b1fc50d", + "status": "error", + "error": { + "code": "tx_submission_failed", + "message": "Transaction submission failed", + "data": { + "envelope_xdr": "AAAAAgAAAAAdq+kGxmBG/ikQNdYHQ2fBAG+8Av/xp1ZfPZ9Xt42ragAAAGQAAoAp/////gAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAACgAAAAVoZWxsbwAAAAAAAAEAAAAHc29yb2JhbgAAAAAAAAAAAbeNq2oAAABAc6zcO/sTKyF26B1iJygLVrhhcVfK05rNW9gyeNwqSVeMFkHXpZ6D/6mqSB0KtvacxK4/VoiwWPrBQGPelnktBQ==", + "result_codes": { + "transaction": "tx_bad_seq" + }, + "result_xdr": "AAAAAAAAAAD////7AAAAAA==" + } + } + } +} +``` \ No newline at end of file diff --git a/api/methods/requestAirdrop.mdx b/api/methods/requestAirdrop.mdx new file mode 100644 index 000000000..a9c718c63 --- /dev/null +++ b/api/methods/requestAirdrop.mdx @@ -0,0 +1,26 @@ +--- +sidebar_position: 9 +--- + +:::note +The `requestAirdrop` method is still a work-in-progress. +::: + +Used outside pubnet to request some lumens from friendbot for a particular account. + +:::note +Maybe we could replace this with a 'friendbotUrl' field in `getNetwork` method? +::: + +## Parameters + +- `` - Account pubkey to fund + +## Returns + +- `` + - `transactionId`: `` - Transaction id of the transfer. + +## Errors + +- If this is pubnet (or friendbot is otherwise unavailable). diff --git a/api/methods/sendTransaction.mdx b/api/methods/sendTransaction.mdx new file mode 100644 index 000000000..cf968e4a8 --- /dev/null +++ b/api/methods/sendTransaction.mdx @@ -0,0 +1,63 @@ +--- +sidebar_position: 10 +--- + +Submit a real transaction to the Stellar network. This is the only way to make changes "on-chain". + +Unlike Horizon, this does not wait for transaction completion. It simply validates and enqueues the transaction. Clients should call getTransactionStatus to learn about transaction success/failure. + +This supports all transactions, not only smart contract-related transactions. + +- TODO: Decide on submit-vs-send for naming +- TODO: Add a return value that would represent the minimal amount of time the client would need to wait before calling getTransactionStatus + +## Parameters + +- `` - The signed transaction to broadcast (serialized in base64) + +## Returns + +- `` + - `id`: `` The transaction hash (in an hex-encoded string), and the initial transaction status, ("pending" or something), unless we can reject it immediately. + - `status`: `` - the current status of the transaction by hash, one of: + - `pending` + - `success` + - `error` + - `error`: `` - (optional) If the transaction was rejected immediately, this will be an error object. See [`getTransactionStatus`](getTransactionStatus) for format. + +## Possible Errors + +- TODO: Fewer than existing txsub as not waiting for completion + +## Examples + +### Request + +The following example request uses a transaction to invoke the `increment` method of the [`increment` example contract]. + +```json +{ + "jsonrpc": "2.0", + "id": 8675309, + "method": "sendTransaction", + "params": { + "transaction": "AAAAAgAAAAAdq+kGxmBG/ikQNdYHQ2fBAG+8Av/xp1ZfPZ9Xt42ragAAJxAAAoAqAAAAEAAAAAEAAAAAAAAAAAAAAABjzuUjAAAAAAAAAAEAAAAAAAAAGAAAAAAAAAACAAAABAAAAAEAAAAGAAAAIBv6ziOnWcVRdGMZjtFKSWnLSndMp9JPVLLXxQqAvKqJAAAABQAAAAlpbmNyZW1lbnQAAAAAAAACAAAABhv6ziOnWcVRdGMZjtFKSWnLSndMp9JPVLLXxQqAvKqJAAAAAwAAAAMAAAAH1CpZRz0BSN27PmqtsmBhv+AAJJwHgmrvJNPrHRAl9l8AAAABAAAABhv6ziOnWcVRdGMZjtFKSWnLSndMp9JPVLLXxQqAvKqJAAAABQAAAAdDT1VOVEVSAAAAAAAAAAABt42ragAAAECMEuou2IDSTtqTu62ZOBkJZJc3aYL10ZlsRg9CMXXYwk1Lv6c23Iy3HawBPKOE2DQKhbi49cdPkMI5n/QtnkgE" + } +} +``` + +### Response + +```json +{ + "jsonrpc": "2.0", + "id": 8675309, + "result": { + "id": "d70916f8b8aa55c13d5974a38e32a3efe440ef6870c0f0a07075d1c128d23698", + "status": "pending", + "error": null + } +} +``` + +[`increment` example contract]: \ No newline at end of file diff --git a/api/methods/simulateTransaction.mdx b/api/methods/simulateTransaction.mdx new file mode 100644 index 000000000..38d73f4c7 --- /dev/null +++ b/api/methods/simulateTransaction.mdx @@ -0,0 +1,62 @@ +--- +sidebar_position: 11 +--- + +Submit a trial contract invocation to get back return values, expected ledger footprint, and expected costs. + +## Parameters + +- `` - The transaction to be simulated (serialized in base64) + +## Returns + +- `` + - `cost`: `` - Information about the fees expected, instructions used, etc. + - `cpuInsns`: `` - Stringified-number of the total cpu instructions consumed by this transaction + - `memBytes`: `` - Stringified-number of the total memory bytes allocated by this transaction + - `footprint`: `` -Array of ledger keys expected to be written by this transaction. (serialized in base64) + - `results`: `` - If error is present then results will not be in the response + - `xdr`: `` - (optional) Only present on success. xdr-encoded return value of the contract call + - `latestLedger`: `` - Stringified-number of the current latest ledger observed by the node when this response was generated. + - `error`: `` - (optional) only present if the transaction failed. This field will include more details from `stellar-core` about why the invoke host function call failed. + +## Examples + +The example transaction below invokes the `increment` function from the [`increment` example contract]. + +### Request + +```json +{ + "jsonrpc": "2.0", + "id": 8675309, + "method": "simulateTransaction", + "params": { + "transaction": "AAAAAgAAAAAdq+kGxmBG/ikQNdYHQ2fBAG+8Av/xp1ZfPZ9Xt42ragAAJxAAAAAAAAAAAgAAAAEAAAAAAAAAAAAAAABjzuFcAAAAAAAAAAEAAAAAAAAAGAAAAAAAAAACAAAABAAAAAEAAAAGAAAAIBv6ziOnWcVRdGMZjtFKSWnLSndMp9JPVLLXxQqAvKqJAAAABQAAAAlpbmNyZW1lbnQAAAAAAAAAAAAAAAAAAAAAAAAA" + } +} +``` + +### Response + +```json +{ + "jsonrpc": "2.0", + "id": 8675309, + "result": { + "results": [ + { + "xdr": "AAAAAQAAAAY=" + } + ], + "footprint": "AAAAAgAAAAYb+s4jp1nFUXRjGY7RSklpy0p3TKfST1Sy18UKgLyqiQAAAAMAAAADAAAAB9QqWUc9AUjduz5qrbJgYb/gACScB4Jq7yTT6x0QJfZfAAAAAQAAAAYb+s4jp1nFUXRjGY7RSklpy0p3TKfST1Sy18UKgLyqiQAAAAUAAAAHQ09VTlRFUgA=", + "cost": { + "cpuInsns": "163642", + "memBytes": "1506" + }, + "latestLedger": "230473" + } +} +``` + +[`increment` example contract]: \ No newline at end of file diff --git a/api/pagination.mdx b/api/pagination.mdx new file mode 100644 index 000000000..c6b3026fb --- /dev/null +++ b/api/pagination.mdx @@ -0,0 +1,26 @@ +--- +sidebar_position: 3 +title: Pagination +--- + +Pagination in soroban-rpc is similar to pagination in Horizon. + +For methods which support it, the pagination arguments are passed as a final object argument with two values: + +- `cursor`: string - (optional) 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. +- `limit`: number - (optional) The maximum number of records returned. The limit can range from 1 to 200 - an upper limit that is hardcoded in Soroban-RPC for performance reasons. If this argument isn't designated, it defaults to 10. + +For example, calling a method with pagination parameter set: + +```json +{ + "jsonrpc": "2.0", + "Id": "1", + "method": "exampleMethod", + "params": [ + "other", + "arguments", + { "cursor": "1234-1", "limit": 100 } + ] +} +``` From 7c6aa8081b4b450bfc35cf5d5e23599e728a595c Mon Sep 17 00:00:00 2001 From: Paul Bellamy Date: Wed, 25 Jan 2023 13:15:51 +0000 Subject: [PATCH 002/133] Clarify encoding of hash in the api docs (#282) --- api/methods/getLatestLedger.mdx | 2 +- api/methods/getTransactionStatus.mdx | 4 ++-- api/methods/requestAirdrop.mdx | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/api/methods/getLatestLedger.mdx b/api/methods/getLatestLedger.mdx index 636f391e5..9c9806522 100644 --- a/api/methods/getLatestLedger.mdx +++ b/api/methods/getLatestLedger.mdx @@ -15,6 +15,6 @@ For finding out the current latest known ledger of this node. This is a subset o ## Returns - `` - - `id`: `` - hash of the latest ledger + - `id`: `` - hash of the latest ledger as a hex-encoded string - `protocolVersion`: `` - `sequence`: `` diff --git a/api/methods/getTransactionStatus.mdx b/api/methods/getTransactionStatus.mdx index bef1e68a2..7e0e7950c 100644 --- a/api/methods/getTransactionStatus.mdx +++ b/api/methods/getTransactionStatus.mdx @@ -13,7 +13,7 @@ Clients will poll this to tell when the transaction has been completed. ## Parameters -- `` - transaction hash to query +- `` - transaction hash to query, as a hex-encoded string ## Returns @@ -104,4 +104,4 @@ Clients will poll this to tell when the transaction has been completed. } } } -``` \ No newline at end of file +``` diff --git a/api/methods/requestAirdrop.mdx b/api/methods/requestAirdrop.mdx index a9c718c63..b833f2788 100644 --- a/api/methods/requestAirdrop.mdx +++ b/api/methods/requestAirdrop.mdx @@ -19,7 +19,7 @@ Maybe we could replace this with a 'friendbotUrl' field in `getNetwork` method? ## Returns - `` - - `transactionId`: `` - Transaction id of the transfer. + - `transactionId`: `` - Transaction id of the transfer as a hex-encoded string. ## Errors From d4b9664caac1c6cdf449a8165acc3ab71505beac Mon Sep 17 00:00:00 2001 From: Elliot Voris Date: Wed, 25 Jan 2023 11:43:50 -0600 Subject: [PATCH 003/133] Providing an example for retrieving contract code using `getLedgerEntry` (#281) * Providing a (long-winded?) example for retrieving contract code Is this too detailed? Is this even needed? Signed-off-by: Elliot Voris * Adding a link to lab to help with decoding XDR Signed-off-by: Elliot Voris * Fine-tuning the explanation of the `ContractCode` LedgerEntry Shuffling some things around a bit, and giving a better overview of the contract deployment process for Soroban. Co-authored-by: Paul Bellamy Signed-off-by: Elliot Voris Signed-off-by: Elliot Voris Co-authored-by: Paul Bellamy --- api/methods/getLedgerEntry.mdx | 115 ++++++++++++++++++++++++++++++++- 1 file changed, 114 insertions(+), 1 deletion(-) diff --git a/api/methods/getLedgerEntry.mdx b/api/methods/getLedgerEntry.mdx index f625ab921..37c741ccc 100644 --- a/api/methods/getLedgerEntry.mdx +++ b/api/methods/getLedgerEntry.mdx @@ -100,4 +100,117 @@ console.log(getLedgerKeySymbol( )) ``` -[`increment` example contract]: \ No newline at end of file +### Requesting a Contract's WASM Code + +This can be a bit tricky to wrap your head around, but the conventions do make sense once you let it sink in. + +In the previous examples, the `COUNTER` _key_ was used as a `LedgerKey` while the incremented _value_ was stored in a **`LedgerEntry`**. "Ledger Entry" is the relevant term to keep in mind during this discussion. That `LedgerEntry` was stored on the Stellar ledger, and was associated with a corresponding `LedgerKey`. `LedgerKey: LedgerEntry` works the same way you would think of almost any `key: value` storage system. + +#### How Soroban Contract Deployment Works + +When you deploy a contract, first the code is "installed" (i.e. it is uploaded onto the blockchain). This creates a `LedgerEntry` containing the WASM byte-code, which is uniquely identified by its hash (that is, the hash of the uploaded code itself). Then, when the contract is "deployed," we create a `LedgerEntry` with a reference to that code's hash. So fetching the contract code is a two-step process: + +1. First, we look up the contract itself, to see which code hash it is referencing. +2. Then, we can look up the raw WASM byte-code using that hash. + +#### Request the `LedgerKey` for the Contract Code + +```python +def get_ledger_key_contract_code(contract_id): + ledger_key = xdr.ledger_key.LedgerKey( + type=xdr.ledger_entry_type.LedgerEntryType.CONTRACT_DATA, + contract_data=xdr.ledger_key_contract_data.LedgerKeyContractData( + contract_id=xdr.hash.Hash(bytes.fromhex(contract_id)), + key=xdr.sc_val.SCVal( + type=xdr.sc_val_type.SCValType.SCV_STATIC, + ic=xdr.sc_static.SCStatic.SCS_LEDGER_KEY_CONTRACT_CODE + ) + ) + ) + return ledger_key.to_xdr() +print(get_ledger_key_contract_code( + "1bface23a759c5517463198ed14a4969cb4a774ca7d24f54b2d7c50a80bcaa89" +)) +# OUTPUT: AAAABhv6ziOnWcVRdGMZjtFKSWnLSndMp9JPVLLXxQqAvKqJAAAAAwAAAAM= +``` + +We then take our output from this function, and use it as the `key` parameter in our call to the `getLedgerEntry` method. + +```json +{ + "jsonrpc": "2.0", + "id": 8675309, + "method": "getLedgerEntry", + "params": { + "key": "AAAABhv6ziOnWcVRdGMZjtFKSWnLSndMp9JPVLLXxQqAvKqJAAAAAwAAAAM=" + } +} +``` + +And the response we get contains the `LedgerEntryData` that can be used to find the `hash` we must use to request the WASM byte-code. This hash is the `LedgerKey` that's been associated with the deployed contract code. + +```json +{ + "jsonrpc": "2.0", + "id": 8675309, + "result": { + "xdr": "AAAABhv6ziOnWcVRdGMZjtFKSWnLSndMp9JPVLLXxQqAvKqJAAAAAwAAAAMAAAAEAAAAAQAAAAcAAAAA1CpZRz0BSN27PmqtsmBhv+AAJJwHgmrvJNPrHRAl9l8=", + "lastModifiedLedgerSeq": "164303", + "latestLedger": "246819" + } +} +``` + +#### Request the `ContractCode` Using the Retrieved `LedgerKey` + +Now take the `xdr` field from the previous response's `result` object, and create a `LedgerKey` from the hash contained inside. + +```python +def get_ledger_key_wasm_id(contract_code_ledger_entry_data): + # First, we dig the wasm_id hash out of the xdr we received from RPC + contract_code_wasm_hash = xdr.ledger_entry_data.LedgerEntryData.from_xdr( + contract_code_ledger_entry_data + ).contract_data.val.obj.contract_code.wasm_id.hash + # Now, we can create the `LedgerKey` as we've done in previous examples + ledger_key = xdr.ledger_key.LedgerKey( + type=xdr.ledger_entry_type.LedgerEntryType.CONTRACT_CODE, + contract_code=xdr.ledger_key_contract_code.LedgerKeyContractCode( + hash=xdr.hash.Hash(contract_code_wasm_hash) + ) + ) + return ledger_key.to_xdr() +print(get_ledger_key_wasm_id( + "AAAABhv6ziOnWcVRdGMZjtFKSWnLSndMp9JPVLLXxQqAvKqJAAAAAwAAAAMAAAAEAAAAAQAAAAcAAAAA1CpZRz0BSN27PmqtsmBhv+AAJJwHgmrvJNPrHRAl9l8=" +)) +# OUTPUT: AAAAB9QqWUc9AUjduz5qrbJgYb/gACScB4Jq7yTT6x0QJfZf +``` + +Now, finally we have a `LedgerKey` that correspond to the WASM byte-code that has been deployed under the `ContractId` we started out with so very long ago. This `LedgerKey` can be used in a final request to the Soroban-RPC endpoint. + +```json +{ + "jsonrpc": "2.0", + "id": 8675309, + "method": "getLedgerEntry", + "params": { + "key": "AAAAB9QqWUc9AUjduz5qrbJgYb/gACScB4Jq7yTT6x0QJfZf" + } +} +``` + +And the response we get contains (even more) `LedgerEntryData` that we can decode and parse to get the actual, deployed, real-life contract byte-code. We'll leave that exercise up to you. You can check out what is contained using the ["View XDR" page of the Stellar Laboratory]. + +```json +{ + "jsonrpc": "2.0", + "id": 8675309, + "result": { + "xdr": "AAAABwAAAADUKllHPQFI3bs+aq2yYGG/4AAknAeCau8k0+sdECX2XwAAAakAYXNtAQAAAAEXBWABfgF+YAJ+fgF+YAABfmABfwBgAAACEwMBbAEwAAABbAExAAABbAFfAAEDBgUCAwQEBAUDAQAQBhkDfwFBgIDAAAt/AEGAgMAAC38AQYCAwAALBzUFBm1lbW9yeQIACWluY3JlbWVudAADAV8ABwpfX2RhdGFfZW5kAwELX19oZWFwX2Jhc2UDAgrAAQWhAQMBfwF+AX8jgICAgABBEGsiACSAgICAAAJAAkBC2YP9sqDNAxCAgICAAEIVUg0AAkBC2YP9sqDNAxCBgICAACIBQg+DQgFSDQAgAUIEiKchAgwCCyAAQQhqEISAgIAAAAtBACECCwJAIAJBAWoiAg0AEIWAgIAAAAtC2YP9sqDNAyACrUIEhkIBhCIBEIKAgIAAGiAAQRBqJICAgIAAIAELCQAQhoCAgAAACwkAEIaAgIAAAAsEAAAACwIACwAeEWNvbnRyYWN0ZW52bWV0YXYwAAAAAAAAAAAAAAAbAC8OY29udHJhY3RzcGVjdjAAAAAAAAAACWluY3JlbWVudAAAAAAAAAAAAAABAAAAAQAAAA==", + "lastModifiedLedgerSeq": "164302", + "latestLedger": "246883" + } +} +``` + +[`increment` example contract]: +["View XDR" page of the Stellar Laboratory]: \ No newline at end of file From 835a5392a5027efc7a4991550f2b3c2ddcf42f37 Mon Sep 17 00:00:00 2001 From: Tyler van der Hoeven Date: Fri, 3 Feb 2023 14:47:55 -0500 Subject: [PATCH 004/133] update all admonitions such that prettier doesn't yell --- api/anti-goals.mdx | 2 ++ api/methods/getEvents.mdx | 2 ++ api/methods/getLatestLedger.mdx | 2 ++ api/methods/getLedgerEntry.mdx | 2 ++ api/methods/getNetwork.mdx | 2 ++ api/methods/getTransactionStatus.mdx | 2 ++ api/methods/requestAirdrop.mdx | 4 ++++ 7 files changed, 16 insertions(+) diff --git a/api/anti-goals.mdx b/api/anti-goals.mdx index d60010cd3..6238e30b6 100644 --- a/api/anti-goals.mdx +++ b/api/anti-goals.mdx @@ -10,5 +10,7 @@ title: Anti-Goals - Soroban-RPC does not target ultra-low latency. The latency should be low enough to build and submit successful soroban transactions, but supporting high-frequency traders is not the goal. :::note todo + TODO: Decide on direct exposure support (i.e. should we support exposing soroban-rpc directly to the internet?). People will do it regardless, so it might be best to... + ::: diff --git a/api/methods/getEvents.mdx b/api/methods/getEvents.mdx index 3b09c6d41..545133e28 100644 --- a/api/methods/getEvents.mdx +++ b/api/methods/getEvents.mdx @@ -56,7 +56,9 @@ By default soroban-rpc retains the most recent 24 hours of events. The following examples query the asset contract for the `native` token, searching for any transfers that take place (up to 100 results). :::note + The examples below only returns two transfer events that took place to/from the same account. In the real-world, you would expect far more results. + ::: ### Request diff --git a/api/methods/getLatestLedger.mdx b/api/methods/getLatestLedger.mdx index 9c9806522..c68662fcb 100644 --- a/api/methods/getLatestLedger.mdx +++ b/api/methods/getLatestLedger.mdx @@ -3,7 +3,9 @@ sidebar_position: 3 --- :::note + The `getLatestLedger` method is still a work-in-progress. + ::: For finding out the current latest known ledger of this node. This is a subset of the ledger info from Horizon. diff --git a/api/methods/getLedgerEntry.mdx b/api/methods/getLedgerEntry.mdx index 37c741ccc..182aca7ec 100644 --- a/api/methods/getLedgerEntry.mdx +++ b/api/methods/getLedgerEntry.mdx @@ -53,11 +53,13 @@ The example above is querying a deployment of the [`increment` example contract] #### Python :::note + If you are using the Python `stellar_sdk` to generate these keys, you will need to install the latest version of the `soroban` branch of the SDK. This can be done like so: ```bash pip install git+https://github.com/StellarCN/py-stellar-base.git@soroban ``` + ::: ```python diff --git a/api/methods/getNetwork.mdx b/api/methods/getNetwork.mdx index 5e9972433..2470aaf5c 100644 --- a/api/methods/getNetwork.mdx +++ b/api/methods/getNetwork.mdx @@ -3,7 +3,9 @@ sidebar_position: 7 --- :::note + The `getNetwork` method is still a work-in-progress. + ::: General info about the currently configured network. diff --git a/api/methods/getTransactionStatus.mdx b/api/methods/getTransactionStatus.mdx index 7e0e7950c..9950225a3 100644 --- a/api/methods/getTransactionStatus.mdx +++ b/api/methods/getTransactionStatus.mdx @@ -3,7 +3,9 @@ sidebar_position: 8 --- :::note + The `getTransactionStatus` method is still a work-in-progress. + ::: Clients will poll this to tell when the transaction has been completed. diff --git a/api/methods/requestAirdrop.mdx b/api/methods/requestAirdrop.mdx index b833f2788..4c0a2973d 100644 --- a/api/methods/requestAirdrop.mdx +++ b/api/methods/requestAirdrop.mdx @@ -3,13 +3,17 @@ sidebar_position: 9 --- :::note + The `requestAirdrop` method is still a work-in-progress. + ::: Used outside pubnet to request some lumens from friendbot for a particular account. :::note + Maybe we could replace this with a 'friendbotUrl' field in `getNetwork` method? + ::: ## Parameters From 00f65df1f2b469595dae22f7946b23121ad7d3eb Mon Sep 17 00:00:00 2001 From: Tyler van der Hoeven Date: Tue, 7 Feb 2023 16:32:46 -0500 Subject: [PATCH 005/133] Reorg (#290) * Change SDK section to Reference section * Adding JS SDK to list of SDKs * Adding Overcat's Python SDK to list of SDKs * Moving Networks -> Futurenet to Reference section * Moving Releases to Reference section * Delete Networks from main nav Networks now lives under Reference section * Deleting as Releases now live in Reference section * Changing sidebar position Temporary, this will eventually move to How-To Guides * Update byo.mdx * Edited Quick Start to 1. Hello World Includes Tutorials -> Create a Project / Write a Contract / Test / Build / Run on Sandbox / Optimizing Builds * Move Storing Data from Examples to Getting Started * Move Deploy to Local Network to Getting Started Moved this section from Tutorials to Getting Started * Move Freighter wallet tutorial to Getting Started * Update and rename 6.-connect-Freighter-wallet.mdx to 4. Connect Freighter Wallet * Move Deploy to Futurenet to Getting Started * Rename 4. Connect Freighter Wallet to 4. Connect Freighter Wallet.mdx * Moved to Getting Started * Moved to Getting Started Removing this section * Moved to Getting Started Removing this as it has been moved to Getting Started * Moved to Getting Started -> Hello World * Moved to Getting Started -> Hello World * Moved to Getting Started -> Hello World * Moved to Getting Started -> Hello World * Moved to Getting Started -> Hello World * Moved to Getting Started -> Hello World * Moved to Getting Started Removing due to this section being moved * Update Examples to How-To Guides * Move BYO SDK to How-To Guides * Moved to How-To Guides * Moved invoking contracts with transactions to How-To Guides * Removing because it's moved to How-To Guides * Moved Token Interface to Token How-To Guide * Remove Token Interface Token Interface has been moved to How-To Guides -> Token * Move Stellar Asset Contract to How-To Guides * Delete docs/built-in-contracts directory Moved to How-To Guides * Move Stellar FAQs to Learn * Delete faq.mdx Moved to Learn * Update authorization.mdx Alphabetize sidebar * Update contract-lifecycle.mdx Alphabetizing sidebar * Update custom-types.mdx Alphabetizing sidebar * Update rust-dialect.mdx Alphabetizing sidebar * Update debugging.mdx Alphabetizing sidebar * Update environment-concepts.mdx Alphabetizing sidebar * Update errors.mdx Alphabetizing sidebar * Update events.mdx Alphabetizing sidebar * Update gas-and-metering.mdx Alphabetizing sidebar * Update interacting-with-contracts.mdx Alphabetizing sidebar * Update persisting-data.mdx Alphabetizing sidebar * Update high-level-overview.mdx Update spelling * formatting * formatting * formatting * formatting * Update faq.mdx * fixed broken links * fix broken links * fix broken links * moar link fixes * fixed some broken links * added sorobanathon homepage * add google tag manager * Content edits made * back to original * Content Edit * button location * Content & Eligibility guidelines added * Update sorobanathon.js * update all admonitions such that prettier doesn't yell * Lots of formatting * --prose-wrap preserve * Update releases.mdx * update prettier * fixed the callouts * formatting * fix module import * Update sorobanathon.js * Fixed Reorg PR Fixed links, moved sections, deleted double sections * Update index.js * Updating Sorobanathon Info * Fixed links Many links. * Formatting * Change SDK section to Reference section * Adding JS SDK to list of SDKs * Adding Overcat's Python SDK to list of SDKs * Moving Networks -> Futurenet to Reference section * Moving Releases to Reference section * Delete Networks from main nav Networks now lives under Reference section * Deleting as Releases now live in Reference section * Changing sidebar position Temporary, this will eventually move to How-To Guides * Update byo.mdx * formatting * fix broken links * Edited Quick Start to 1. Hello World Includes Tutorials -> Create a Project / Write a Contract / Test / Build / Run on Sandbox / Optimizing Builds * Move Storing Data from Examples to Getting Started * Move Deploy to Local Network to Getting Started Moved this section from Tutorials to Getting Started * Move Freighter wallet tutorial to Getting Started * Update and rename 6.-connect-Freighter-wallet.mdx to 4. Connect Freighter Wallet * Move Deploy to Futurenet to Getting Started * Rename 4. Connect Freighter Wallet to 4. Connect Freighter Wallet.mdx * Moved to Getting Started Removing this as it has been moved to Getting Started * Moved to Getting Started -> Hello World * Moved to Getting Started -> Hello World * formatting * fix broken links * moar link fixes * Update Examples to How-To Guides * Move BYO SDK to How-To Guides * Moved invoking contracts with transactions to How-To Guides * Moved Token Interface to Token How-To Guide * Remove Token Interface Token Interface has been moved to How-To Guides -> Token * Move Stellar Asset Contract to How-To Guides * Delete docs/built-in-contracts directory Moved to How-To Guides * formatting * fixed broken links * Move Stellar FAQs to Learn * Update authorization.mdx Alphabetize sidebar * Update contract-lifecycle.mdx Alphabetizing sidebar * Update custom-types.mdx Alphabetizing sidebar * Update rust-dialect.mdx Alphabetizing sidebar * Update debugging.mdx Alphabetizing sidebar * Update environment-concepts.mdx Alphabetizing sidebar * Update errors.mdx Alphabetizing sidebar * Update events.mdx Alphabetizing sidebar * Update gas-and-metering.mdx Alphabetizing sidebar * Update interacting-with-contracts.mdx Alphabetizing sidebar * Update persisting-data.mdx Alphabetizing sidebar * Update high-level-overview.mdx Update spelling * formatting * Update faq.mdx * fixed some broken links * Update releases.mdx * update prettier * fixed the callouts * formatting * fix module import * Fixed Reorg PR Fixed links, moved sections, deleted double sections * Fixed links Many links. * Formatting * Merge cleanup * More cleanup * Formatting * some small design tweaks * copy tweaks --------- Co-authored-by: Bri <92327786+briwylde08@users.noreply.github.com> Co-authored-by: Anuxhya <36203801+achallagundla@users.noreply.github.com> --- api/methods/getLedgerEntry.mdx | 2 +- api/methods/sendTransaction.mdx | 2 +- api/methods/simulateTransaction.mdx | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/api/methods/getLedgerEntry.mdx b/api/methods/getLedgerEntry.mdx index 182aca7ec..0c1b7319a 100644 --- a/api/methods/getLedgerEntry.mdx +++ b/api/methods/getLedgerEntry.mdx @@ -214,5 +214,5 @@ And the response we get contains (even more) `LedgerEntryData` that we can decod } ``` -[`increment` example contract]: +[`increment` example contract]: /docs/getting-started/storing-data ["View XDR" page of the Stellar Laboratory]: \ No newline at end of file diff --git a/api/methods/sendTransaction.mdx b/api/methods/sendTransaction.mdx index cf968e4a8..07625a982 100644 --- a/api/methods/sendTransaction.mdx +++ b/api/methods/sendTransaction.mdx @@ -60,4 +60,4 @@ The following example request uses a transaction to invoke the `increment` metho } ``` -[`increment` example contract]: \ No newline at end of file +[`increment` example contract]: /docs/getting-started/storing-data \ No newline at end of file diff --git a/api/methods/simulateTransaction.mdx b/api/methods/simulateTransaction.mdx index 38d73f4c7..a82f691e0 100644 --- a/api/methods/simulateTransaction.mdx +++ b/api/methods/simulateTransaction.mdx @@ -59,4 +59,4 @@ The example transaction below invokes the `increment` function from the [`increm } ``` -[`increment` example contract]: \ No newline at end of file +[`increment` example contract]: /docs/getting-started/storing-data \ No newline at end of file From 74503c6cca7f848fee3f264dda1fdbc36dabfb10 Mon Sep 17 00:00:00 2001 From: tamirms Date: Sat, 11 Feb 2023 09:30:15 +0000 Subject: [PATCH 006/133] Update documentation to reflect recent getEvents changes (#293) In stellar/soroban-tools#385 we modified the getEvents endpoint to remove the endLedger param and changed the behavior of pagination --- api/methods/getEvents.mdx | 74 ++++++++++++++++++++------------------- api/pagination.mdx | 4 +-- 2 files changed, 40 insertions(+), 38 deletions(-) diff --git a/api/methods/getEvents.mdx b/api/methods/getEvents.mdx index 545133e28..0a2708af5 100644 --- a/api/methods/getEvents.mdx +++ b/api/methods/getEvents.mdx @@ -12,8 +12,7 @@ By default soroban-rpc retains the most recent 24 hours of events. ## Parameters -- `startLedger`: `` - Stringified ledger sequence number to fetch events after (inclusive). -- `endLedger`: `` - Stringified ledger sequence number to fetch events before (inclusive). endLedger must be less than or equal to startLedger + 4320 (about 6 hours of ledgers). +- `startLedger`: `` - Stringified 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](../pagination) is included in the request, `startLedger` must be omitted. - `filters`: `` - List of filters for the returned events. Events matching any of the filters are included. To match a filter, an event must match both a contractId and a topic. Maximum 5 filters are allowed per request. - `type`: `<"system"|"contract">` - (optional) Filter to only system or only contract type events. If omitted, return all. - `contractIds`: `` - (optional) List of contract ids to query for events. If omitted, return events for all contracts. Maximum 5 contract IDs are allowed per request. @@ -35,6 +34,7 @@ By default soroban-rpc retains the most recent 24 hours of events. ## Returns - `` + - `latestLedger`: `` - Stringified-number of the current latest ledger observed by the node when this response was generated. - `events`: `` - `ledger`: `` - String-ified sequence number of the ledger. - `ledgerClosedAt`: `` - ISO8601 timestamp of the ledger closing time. @@ -70,7 +70,6 @@ The examples below only returns two transfer events that took place to/from the "method": "getEvents", "params": { "startLedger": "227000", - "endLedger": "230200", "filters": [ { "type": "contract", @@ -95,40 +94,43 @@ The examples below only returns two transfer events that took place to/from the { "jsonrpc": "2.0", "id": 8675309, - "result": [ - { - "type": "contract", - "ledger": "230010", - "ledgerClosedAt": "2023-01-23T18:54:41Z", - "contractId": "d93f5c7bb0ebc4a9c8f727c5cebc4e41194d38257e1d0d910356b43bfc528813", - "id": "0000987885427757056-0000000001", - "pagingToken": "0000987885427757056-0000000001", - "topic": [ - "AAAABQAAAAh0cmFuc2Zlcg==", - "AAAABAAAAAEAAAAAAAAAAgAAAAUAAAAHQWNjb3VudAAAAAAEAAAAAQAAAAgAAAAAHavpBsZgRv4pEDXWB0NnwQBvvAL/8adWXz2fV7eNq2o=", - "AAAABAAAAAEAAAAAAAAAAgAAAAUAAAAHQWNjb3VudAAAAAAEAAAAAQAAAAgAAAAAHavpBsZgRv4pEDXWB0NnwQBvvAL/8adWXz2fV7eNq2o=" - ], - "value": { - "xdr": "AAAABAAAAAEAAAAFAAAAAAABhqAAAAAAAAAAAA==" - } - }, - { - "type": "contract", - "ledger": "230170", - "ledgerClosedAt": "2023-01-23T19:08:37Z", - "contractId": "d93f5c7bb0ebc4a9c8f727c5cebc4e41194d38257e1d0d910356b43bfc528813", - "id": "0000988572622524416-0000000001", - "pagingToken": "0000988572622524416-0000000001", - "topic": [ - "AAAABQAAAAh0cmFuc2Zlcg==", - "AAAABAAAAAEAAAAAAAAAAgAAAAUAAAAHQWNjb3VudAAAAAAEAAAAAQAAAAgAAAAAHavpBsZgRv4pEDXWB0NnwQBvvAL/8adWXz2fV7eNq2o=", - "AAAABAAAAAEAAAAAAAAAAgAAAAUAAAAHQWNjb3VudAAAAAAEAAAAAQAAAAgAAAAAHavpBsZgRv4pEDXWB0NnwQBvvAL/8adWXz2fV7eNq2o=" - ], - "value": { - "xdr": "AAAABAAAAAEAAAAFAAAAAAAHoSAAAAAAAAAAAA==" + "result": { + "latestLedger": "230473", + "events": [ + { + "type": "contract", + "ledger": "230010", + "ledgerClosedAt": "2023-01-23T18:54:41Z", + "contractId": "d93f5c7bb0ebc4a9c8f727c5cebc4e41194d38257e1d0d910356b43bfc528813", + "id": "0000987885427757056-0000000001", + "pagingToken": "0000987885427757056-0000000001", + "topic": [ + "AAAABQAAAAh0cmFuc2Zlcg==", + "AAAABAAAAAEAAAAAAAAAAgAAAAUAAAAHQWNjb3VudAAAAAAEAAAAAQAAAAgAAAAAHavpBsZgRv4pEDXWB0NnwQBvvAL/8adWXz2fV7eNq2o=", + "AAAABAAAAAEAAAAAAAAAAgAAAAUAAAAHQWNjb3VudAAAAAAEAAAAAQAAAAgAAAAAHavpBsZgRv4pEDXWB0NnwQBvvAL/8adWXz2fV7eNq2o=" + ], + "value": { + "xdr": "AAAABAAAAAEAAAAFAAAAAAABhqAAAAAAAAAAAA==" + } + }, + { + "type": "contract", + "ledger": "230170", + "ledgerClosedAt": "2023-01-23T19:08:37Z", + "contractId": "d93f5c7bb0ebc4a9c8f727c5cebc4e41194d38257e1d0d910356b43bfc528813", + "id": "0000988572622524416-0000000001", + "pagingToken": "0000988572622524416-0000000001", + "topic": [ + "AAAABQAAAAh0cmFuc2Zlcg==", + "AAAABAAAAAEAAAAAAAAAAgAAAAUAAAAHQWNjb3VudAAAAAAEAAAAAQAAAAgAAAAAHavpBsZgRv4pEDXWB0NnwQBvvAL/8adWXz2fV7eNq2o=", + "AAAABAAAAAEAAAAAAAAAAgAAAAUAAAAHQWNjb3VudAAAAAAEAAAAAQAAAAgAAAAAHavpBsZgRv4pEDXWB0NnwQBvvAL/8adWXz2fV7eNq2o=" + ], + "value": { + "xdr": "AAAABAAAAAEAAAAFAAAAAAAHoSAAAAAAAAAAAA==" + } } - } - ] + ] + } } ``` diff --git a/api/pagination.mdx b/api/pagination.mdx index c6b3026fb..062dbab6d 100644 --- a/api/pagination.mdx +++ b/api/pagination.mdx @@ -7,8 +7,8 @@ Pagination in soroban-rpc is similar to pagination in Horizon. For methods which support it, the pagination arguments are passed as a final object argument with two values: -- `cursor`: string - (optional) 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. -- `limit`: number - (optional) The maximum number of records returned. The limit can range from 1 to 200 - an upper limit that is hardcoded in Soroban-RPC for performance reasons. If this argument isn't designated, it defaults to 10. +- `cursor`: string - (optional) 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. +- `limit`: number - (optional) The maximum number of records returned. The limit for [getEvents](methods/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. For example, calling a method with pagination parameter set: From c3360df88b765c614e9a33d79ccac70d28c36fd1 Mon Sep 17 00:00:00 2001 From: Dmytro Kozhevin Date: Wed, 15 Feb 2023 16:50:00 -0500 Subject: [PATCH 007/133] Merge dev docs to main (#316) * proposed auth-next support for simulateTransaction method * Add note about multiple results * auth is an array * Updated example docs for Auth Next. (#306) * Updated example docs for Auth Next. * Update token documentation for Auth Next (#307) * Update token doc to use auth next. * Add AUTH_REQUIRED section * Mention set_auth and link to classic docs * feat: update for upcoming CLI version * feat: CLI reference page * Update optimize contracts section (#310) * Update hello-world.mdx * Update hello-world.mdx * don't need to manually install wasm-opt via binaryen * remove the -Z flags * More Auth Next docs updates (#311) * Remove rust-auth.mdx * Update authorization docs and `Address` type info. * Added auth info to transactions doc. * Added a document about migrating to auth next. * Add some high-level docs for Auth Next preflight (#312) * Add some preflight information for Auth Next * Update docs/reference/command-line.mdx * Update docs/reference/releases.mdx * Update docs/reference/releases.mdx * Update simulateTransaction.mdx * Update examples to point to 0.6.0 * Update releases page to current state * Add change log for cli and rpc * Added a note on the breaking auth changes to the release notes. (#315) --------- Co-authored-by: Paul Bellamy Co-authored-by: Siddharth Suresh Co-authored-by: Chad Ostrowski <221614+chadoh@users.noreply.github.com> Co-authored-by: Willem Wyndham Co-authored-by: Tyler van der Hoeven Co-authored-by: Paul Bellamy --- api/methods/simulateTransaction.mdx | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/api/methods/simulateTransaction.mdx b/api/methods/simulateTransaction.mdx index a82f691e0..23476fd87 100644 --- a/api/methods/simulateTransaction.mdx +++ b/api/methods/simulateTransaction.mdx @@ -14,9 +14,10 @@ Submit a trial contract invocation to get back return values, expected ledger fo - `cost`: `` - Information about the fees expected, instructions used, etc. - `cpuInsns`: `` - Stringified-number of the total cpu instructions consumed by this transaction - `memBytes`: `` - Stringified-number of the total memory bytes allocated by this transaction - - `footprint`: `` -Array of ledger keys expected to be written by this transaction. (serialized in base64) - - `results`: `` - If error is present then results will not be in the response - - `xdr`: `` - (optional) Only present on success. xdr-encoded return value of the contract call + - `results`: `` - If error is present then results will not be in the response. There will be one results object for each operation in the transaction. + - `xdr`: `` - (optional) Only present on success. xdr-encoded return value of the contract call operation. + - `footprint`: `` - The contract data ledger keys which were accessed when simulating this operation. (serialized in a base64 string) + - `auth`: `` - Per-address authorizations recorded when simulating this operation. (an array of serialized base64 strings) - `latestLedger`: `` - Stringified-number of the current latest ledger observed by the node when this response was generated. - `error`: `` - (optional) only present if the transaction failed. This field will include more details from `stellar-core` about why the invoke host function call failed. @@ -46,10 +47,11 @@ The example transaction below invokes the `increment` function from the [`increm "result": { "results": [ { - "xdr": "AAAAAQAAAAY=" + "xdr": "AAAAAQAAAAY=", + "footprint": "AAAAAgAAAAYb+s4jp1nFUXRjGY7RSklpy0p3TKfST1Sy18UKgLyqiQAAAAMAAAADAAAAB9QqWUc9AUjduz5qrbJgYb/gACScB4Jq7yTT6x0QJfZfAAAAAQAAAAYb+s4jp1nFUXRjGY7RSklpy0p3TKfST1Sy18UKgLyqiQAAAAUAAAAHQ09VTlRFUgA=", + "auth": "... TODO: Generate a plausible xdr.ContractAuth ..." } ], - "footprint": "AAAAAgAAAAYb+s4jp1nFUXRjGY7RSklpy0p3TKfST1Sy18UKgLyqiQAAAAMAAAADAAAAB9QqWUc9AUjduz5qrbJgYb/gACScB4Jq7yTT6x0QJfZfAAAAAQAAAAYb+s4jp1nFUXRjGY7RSklpy0p3TKfST1Sy18UKgLyqiQAAAAUAAAAHQ09VTlRFUgA=", "cost": { "cpuInsns": "163642", "memBytes": "1506" @@ -59,4 +61,4 @@ The example transaction below invokes the `increment` function from the [`increm } ``` -[`increment` example contract]: /docs/getting-started/storing-data \ No newline at end of file +[`increment` example contract]: /docs/getting-started/storing-data From d1c3a551ab92a7697d77b07a5e234fb68aac9faa Mon Sep 17 00:00:00 2001 From: tamirms Date: Thu, 2 Mar 2023 20:11:49 +0000 Subject: [PATCH 008/133] Update documentation for getTransaction() and sendTransaction() (#336) --- api/methods/getTransaction.mdx | 108 ++++++++++++++++++++++++++ api/methods/getTransactionStatus.mdx | 109 --------------------------- api/methods/sendTransaction.mdx | 31 ++++---- 3 files changed, 122 insertions(+), 126 deletions(-) create mode 100644 api/methods/getTransaction.mdx delete mode 100644 api/methods/getTransactionStatus.mdx diff --git a/api/methods/getTransaction.mdx b/api/methods/getTransaction.mdx new file mode 100644 index 000000000..28faec07f --- /dev/null +++ b/api/methods/getTransaction.mdx @@ -0,0 +1,108 @@ +--- +sidebar_position: 8 +--- + +Clients will poll this to tell when the transaction has been completed. + + +## Parameters + +- `` - transaction hash to query, as a hex-encoded string + +## Returns + +- `` + - `status`: `` - the current status of the transaction by hash, one of: + - `SUCCESS` + - `NOT_FOUND` + - `FAILED` + - `latestLedger`: `` - The latest ledger known to Soroban-RPC at the time it handled the `getTransaction()` request. + - `latestLedgerCloseTime`: `` - The unix timestamp of the close time of the latest ledger known to Soroban-RPC at the time it handled the `getTransaction()` request. + - `oldestLedger`: `` - The oldest ledger ingested by Soroban-RPC at the time it handled the `getTransaction()` request. + - `oldestLedgerCloseTime`: `` - The unix timestamp of the close time of the oldest ledger ingested by Soroban-RPC at the time it handled the `getTransaction()` request. + - `ledger`: `` - (optional) The sequence of the ledger which included the transaction. This field is only present if `status` is `SUCCESS` or `FAILED`. + - `createdAt`: `` - (optional) The unix timestamp of when the transaction was included in the ledger. This field is only present if `status` is `SUCCESS` or `FAILED`. + - `applicationOrder`: `` - (optional) The index of the transaction among all transactions included in the ledger. This field is only present if `status` is `SUCCESS` or `FAILED`. + - `feeBump`: `` - (optional) Indicates whether the transaction was fee bumped. This field is only present if `status` is `SUCCESS` or `FAILED`. + - `envelopeXdr`: `` - (optional) A base64 encoded string of the raw TransactionEnvelope XDR struct for this transaction. + - `resultXdr`: `` - (optional) A base64 encoded string of the raw TransactionResult XDR struct for this transaction. This field is only present if `status` is `SUCCESS` or `FAILED`. + - `resultMetaXdr`: `` - (optional) A base64 encoded string of the raw TransactionResultMeta XDR struct for this transaction. + +## Examples + +### Request + +```json +{ + "jsonrpc": "2.0", + "id": 8675309, + "method": "getTransactionStatus", + "params": { + "hash": "97eb77da26e21d6a032fc0c311831d94a702ba336037da7c8a5ec51b3e39c485" + } +} +``` + +### Response + +#### Not Found + +```json +{ + "jsonrpc": "2.0", + "id": 8675309, + "result": { + "status": "NOT_FOUND", + "latestLedger": "45075181", + "latestLedgerCloseTime": "1677115742", + "oldestLedger": "45070000", + "latestLedgerCloseTime": "1677000000" + } +} +``` + +#### Success + +```json +{ + "jsonrpc": "2.0", + "id": 8675309, + "result": { + "status": "SUCCESS", + "latestLedger": "45075181", + "latestLedgerCloseTime": "1677115742", + "oldestLedger": "45070000", + "latestLedgerCloseTime": "1677000000", + "ledger": "45070700", + "createdAt": "1677009000", + "applicationOrder": 1, + "feeBump": false, + "envelope_xdr": "AAAAAgAAAAC+B6dP3Y3Dk7cO+EXButf4j/a6NgZ8jhUdGd8Y4DLK1QAAJxMB1QqkAGOQiwAAAAEAAAAAAAAAAAAAAABkAG82AAAAAAAAAAEAAAAAAAAAAwAAAAAAAAABRVRYAAAAAACIVkm2vMC7wfGBUXcyyT5KMkEhZr0TEHmgyspvSQ+skwAAAAAFSbLgKG8eYQCUWuIAAAAAR3McdwAAAAAAAAAB4DLK1QAAAEDJvETQ3zLdr1RXE4KEQ+tlmWPh6zpFu/KrAQOrYrYSxpbhB5DPZRJnn+ROtU8TnZhZ6xQ136VrqNQm/+LUOD8D", + "resultXdr": "AAAAAAAAAGQAAAAAAAAAAQAAAAAAAAAMAAAAAAAAAAAAAAABAAAAAK36IZP1oM+KV7lU1u8H7BgGjwK6d6hPmU+zpA6rySi3AAAAAEbEAZ4AAAAAAAAAAVJCUk4AAAAArSYZWZeBIAHn1+M0WPwhehxZNiBgvJOx7IVykVOo39UAAAAAFZRBZACYloAAAAANAAAAAAAAAAAAAAAA", + "result_meta_xdr": "AAAAAgAAAAIAAAADArFrdQAAAAAAAAAAvgenT92Nw5O3DvhFwbrX+I/2ujYGfI4VHRnfGOAyytUAAAAADH94VAHVCqQAY5CKAAAACAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAQAAAAEzXjfgAAAAAAVJxmgAAAACAAAAAAAAAAAAAAAAAAAAAwAAAAACsWtzAAAAAGQAbxMAAAAAAAAAAQKxa3UAAAAAAAAAAL4Hp0/djcOTtw74RcG61/iP9ro2BnyOFR0Z3xjgMsrVAAAAAAx/eFQB1QqkAGOQiwAAAAgAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAEAAAABM1434AAAAAAFScZoAAAAAgAAAAAAAAAAAAAAAAAAAAMAAAAAArFrdQAAAABkAG8eAAAAAAAAAAEAAAAGAAAAAwKxa3MAAAACAAAAAL4Hp0/djcOTtw74RcG61/iP9ro2BnyOFR0Z3xjgMsrVAAAAAEdzHHcAAAAAAAAAAUVUWAAAAAAAiFZJtrzAu8HxgVF3Msk+SjJBIWa9ExB5oMrKb0kPrJMAAAAABUnGaHLv1t0BpbXWAAAAAAAAAAAAAAAAAAAAAQKxa3UAAAACAAAAAL4Hp0/djcOTtw74RcG61/iP9ro2BnyOFR0Z3xjgMsrVAAAAAEdzHHcAAAAAAAAAAUVUWAAAAAAAiFZJtrzAu8HxgVF3Msk+SjJBIWa9ExB5oMrKb0kPrJMAAAAABUmy4ChvHmEAlFriAAAAAAAAAAAAAAAAAAAAAwKxa3UAAAAAAAAAAL4Hp0/djcOTtw74RcG61/iP9ro2BnyOFR0Z3xjgMsrVAAAAAAx/eFQB1QqkAGOQiwAAAAgAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAEAAAABM1434AAAAAAFScZoAAAAAgAAAAAAAAAAAAAAAAAAAAMAAAAAArFrdQAAAABkAG8eAAAAAAAAAAECsWt1AAAAAAAAAAC+B6dP3Y3Dk7cO+EXButf4j/a6NgZ8jhUdGd8Y4DLK1QAAAAAMf3hUAdUKpABjkIsAAAAIAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAABAAAAATNeN+AAAAAABUmy4AAAAAIAAAAAAAAAAAAAAAAAAAADAAAAAAKxa3UAAAAAZABvHgAAAAAAAAADArFrcwAAAAEAAAAAvgenT92Nw5O3DvhFwbrX+I/2ujYGfI4VHRnfGOAyytUAAAABRVRYAAAAAACIVkm2vMC7wfGBUXcyyT5KMkEhZr0TEHmgyspvSQ+skwAAAE+W7pTjf/////////8AAAABAAAAAQAAAAFw+HPyAAAARkSap3YAAAAAAAAAAAAAAAECsWt1AAAAAQAAAAC+B6dP3Y3Dk7cO+EXButf4j/a6NgZ8jhUdGd8Y4DLK1QAAAAFFVFgAAAAAAIhWSba8wLvB8YFRdzLJPkoyQSFmvRMQeaDKym9JD6yTAAAAT5bulON//////////wAAAAEAAAABAAAAAXDzHW4AAABGRJqndgAAAAAAAAAAAAAAAA==" + } +} +``` + +#### Failed + +```json +{ + "jsonrpc": "2.0", + "id": 8675309, + "result": { + "status": "FAILED", + "latestLedger": "45075181", + "latestLedgerCloseTime": "1677115742", + "oldestLedger": "45070000", + "latestLedgerCloseTime": "1677000000", + "ledger": "45070700", + "createdAt": "1677009000", + "applicationOrder": 1, + "feeBump": false, + "envelope_xdr": "AAAAAgAAAAC+B6dP3Y3Dk7cO+EXButf4j/a6NgZ8jhUdGd8Y4DLK1QAAJxMB1QqkAGOQiwAAAAEAAAAAAAAAAAAAAABkAG82AAAAAAAAAAEAAAAAAAAAAwAAAAAAAAABRVRYAAAAAACIVkm2vMC7wfGBUXcyyT5KMkEhZr0TEHmgyspvSQ+skwAAAAAFSbLgKG8eYQCUWuIAAAAAR3McdwAAAAAAAAAB4DLK1QAAAEDJvETQ3zLdr1RXE4KEQ+tlmWPh6zpFu/KrAQOrYrYSxpbhB5DPZRJnn+ROtU8TnZhZ6xQ136VrqNQm/+LUOD8D", + "resultXdr": "AAAAAAAAAGT////7AAAAAA==", + "result_meta_xdr": "AAAAAgAAAAIAAAADArFrdQAAAAAAAAAAvgenT92Nw5O3DvhFwbrX+I/2ujYGfI4VHRnfGOAyytUAAAAADH94VAHVCqQAY5CKAAAACAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAQAAAAEzXjfgAAAAAAVJxmgAAAACAAAAAAAAAAAAAAAAAAAAAwAAAAACsWtzAAAAAGQAbxMAAAAAAAAAAQKxa3UAAAAAAAAAAL4Hp0/djcOTtw74RcG61/iP9ro2BnyOFR0Z3xjgMsrVAAAAAAx/eFQB1QqkAGOQiwAAAAgAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAEAAAABM1434AAAAAAFScZoAAAAAgAAAAAAAAAAAAAAAAAAAAMAAAAAArFrdQAAAABkAG8eAAAAAAAAAAEAAAAGAAAAAwKxa3MAAAACAAAAAL4Hp0/djcOTtw74RcG61/iP9ro2BnyOFR0Z3xjgMsrVAAAAAEdzHHcAAAAAAAAAAUVUWAAAAAAAiFZJtrzAu8HxgVF3Msk+SjJBIWa9ExB5oMrKb0kPrJMAAAAABUnGaHLv1t0BpbXWAAAAAAAAAAAAAAAAAAAAAQKxa3UAAAACAAAAAL4Hp0/djcOTtw74RcG61/iP9ro2BnyOFR0Z3xjgMsrVAAAAAEdzHHcAAAAAAAAAAUVUWAAAAAAAiFZJtrzAu8HxgVF3Msk+SjJBIWa9ExB5oMrKb0kPrJMAAAAABUmy4ChvHmEAlFriAAAAAAAAAAAAAAAAAAAAAwKxa3UAAAAAAAAAAL4Hp0/djcOTtw74RcG61/iP9ro2BnyOFR0Z3xjgMsrVAAAAAAx/eFQB1QqkAGOQiwAAAAgAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAEAAAABM1434AAAAAAFScZoAAAAAgAAAAAAAAAAAAAAAAAAAAMAAAAAArFrdQAAAABkAG8eAAAAAAAAAAECsWt1AAAAAAAAAAC+B6dP3Y3Dk7cO+EXButf4j/a6NgZ8jhUdGd8Y4DLK1QAAAAAMf3hUAdUKpABjkIsAAAAIAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAABAAAAATNeN+AAAAAABUmy4AAAAAIAAAAAAAAAAAAAAAAAAAADAAAAAAKxa3UAAAAAZABvHgAAAAAAAAADArFrcwAAAAEAAAAAvgenT92Nw5O3DvhFwbrX+I/2ujYGfI4VHRnfGOAyytUAAAABRVRYAAAAAACIVkm2vMC7wfGBUXcyyT5KMkEhZr0TEHmgyspvSQ+skwAAAE+W7pTjf/////////8AAAABAAAAAQAAAAFw+HPyAAAARkSap3YAAAAAAAAAAAAAAAECsWt1AAAAAQAAAAC+B6dP3Y3Dk7cO+EXButf4j/a6NgZ8jhUdGd8Y4DLK1QAAAAFFVFgAAAAAAIhWSba8wLvB8YFRdzLJPkoyQSFmvRMQeaDKym9JD6yTAAAAT5bulON//////////wAAAAEAAAABAAAAAXDzHW4AAABGRJqndgAAAAAAAAAAAAAAAA==" + } +} +``` diff --git a/api/methods/getTransactionStatus.mdx b/api/methods/getTransactionStatus.mdx deleted file mode 100644 index 9950225a3..000000000 --- a/api/methods/getTransactionStatus.mdx +++ /dev/null @@ -1,109 +0,0 @@ ---- -sidebar_position: 8 ---- - -:::note - -The `getTransactionStatus` method is still a work-in-progress. - -::: - -Clients will poll this to tell when the transaction has been completed. - -- TODO: Figure out result/error and how that fits into the jsonrpc response object -- TODO: Figure out return values for non-contract-invocation transactions - -## Parameters - -- `` - transaction hash to query, as a hex-encoded string - -## Returns - -- `` - - `id`: `` - hash of the transaction as a hex-encoded string - - `status`: `` - the current status of the transaction by hash, one of: - - pending - - success - - error - - `results`: `` - (optional) Will be present on completed successful transactions. - - xdr: ` - xdr-encoded return value of the contract call - - TODO: Anything else we should include? Gas spent? - - `envelopeXdr`: `` - (optional) A base64 encoded string of the raw TransactionEnvelope XDR struct for this transaction. - - `resultXdr`: `` - (optional) A base64 encoded string of the raw TransactionResult XDR struct for this transaction. - - `resultMetaXdr`: `` - (optional) A base64 encoded string of the raw TransactionResultMeta XDR struct for this transaction. - - `error`: `` - (optional) Will be present on failed transactions. - - `code`: `` - Short unique string representing the type of error - - `message`: `` - Human friendly summary of the error - - `data`: `` - (optional) More data related to the error if available - -## Examples - -### Request - -```json -{ - "jsonrpc": "2.0", - "id": 8675309, - "method": "getTransactionStatus", - "params": { - "hash": "97eb77da26e21d6a032fc0c311831d94a702ba336037da7c8a5ec51b3e39c485" - } -} -``` - -### Response - -#### Pending - -```json -{ - "jsonrpc": "2.0", - "id": 8675309, - "result": { - "id": "d70916f8b8aa55c13d5974a38e32a3efe440ef6870c0f0a07075d1c128d23698", - "status": "pending" - } -} -``` - -#### Success - -```json -{ - "jsonrpc": "2.0", - "id": 8675309, - "result": { - "id": "d70916f8b8aa55c13d5974a38e32a3efe440ef6870c0f0a07075d1c128d23698", - "status": "success", - "results": [ - { - "xdr": "AAAAAQAAAAY=" - } - ] - } -} -``` - -#### Error - -```json -{ - "jsonrpc": "2.0", - "id": 8675309, - "result": { - "id": "48dd243d4683745b7efa9f4fe6182f944b03cfd169135657e39c974e9b1fc50d", - "status": "error", - "error": { - "code": "tx_submission_failed", - "message": "Transaction submission failed", - "data": { - "envelope_xdr": "AAAAAgAAAAAdq+kGxmBG/ikQNdYHQ2fBAG+8Av/xp1ZfPZ9Xt42ragAAAGQAAoAp/////gAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAACgAAAAVoZWxsbwAAAAAAAAEAAAAHc29yb2JhbgAAAAAAAAAAAbeNq2oAAABAc6zcO/sTKyF26B1iJygLVrhhcVfK05rNW9gyeNwqSVeMFkHXpZ6D/6mqSB0KtvacxK4/VoiwWPrBQGPelnktBQ==", - "result_codes": { - "transaction": "tx_bad_seq" - }, - "result_xdr": "AAAAAAAAAAD////7AAAAAA==" - } - } - } -} -``` diff --git a/api/methods/sendTransaction.mdx b/api/methods/sendTransaction.mdx index 07625a982..73b803a90 100644 --- a/api/methods/sendTransaction.mdx +++ b/api/methods/sendTransaction.mdx @@ -4,13 +4,10 @@ sidebar_position: 10 Submit a real transaction to the Stellar network. This is the only way to make changes "on-chain". -Unlike Horizon, this does not wait for transaction completion. It simply validates and enqueues the transaction. Clients should call getTransactionStatus to learn about transaction success/failure. +Unlike Horizon, this does not wait for transaction completion. It simply validates and enqueues the transaction. Clients should call getTransaction to learn about transaction success/failure. This supports all transactions, not only smart contract-related transactions. -- TODO: Decide on submit-vs-send for naming -- TODO: Add a return value that would represent the minimal amount of time the client would need to wait before calling getTransactionStatus - ## Parameters - `` - The signed transaction to broadcast (serialized in base64) @@ -18,16 +15,15 @@ This supports all transactions, not only smart contract-related transactions. ## Returns - `` - - `id`: `` The transaction hash (in an hex-encoded string), and the initial transaction status, ("pending" or something), unless we can reject it immediately. - - `status`: `` - the current status of the transaction by hash, one of: - - `pending` - - `success` - - `error` - - `error`: `` - (optional) If the transaction was rejected immediately, this will be an error object. See [`getTransactionStatus`](getTransactionStatus) for format. - -## Possible Errors - -- TODO: Fewer than existing txsub as not waiting for completion + - `hash`: `` The transaction hash (in an hex-encoded string). + - `status`: `` - The current status of the transaction by hash, one of: + - `PENDING` - The transaction has been accepted by stellar-core. + - `DUPLICATE` - The transaction has already been submitted to stellar-core. + - `TRY_AGAIN_LATER` - The transaction was not included in the previous 4 ledgers and is banned from the next few ledgers. + - `ERROR` - An error occurred from submitting the transaction to stellar-core. + - `latestLedger`: `` - The latest ledger known to Soroban-RPC at the time it handled the `sendTransaction()` request. + - `latestLedgerCloseTime`: `` - The unix timestamp of the close time of the latest ledger known to Soroban-RPC at the time it handled the `sendTransaction()` request. + - `errorResultXdr`: `` - (optional) If the transaction status is `ERROR`, this will be a base64 encoded string of the raw TransactionResult XDR struct containing details on why stellar-core rejected the transaction. ## Examples @@ -53,9 +49,10 @@ The following example request uses a transaction to invoke the `increment` metho "jsonrpc": "2.0", "id": 8675309, "result": { - "id": "d70916f8b8aa55c13d5974a38e32a3efe440ef6870c0f0a07075d1c128d23698", - "status": "pending", - "error": null + "hash": "d70916f8b8aa55c13d5974a38e32a3efe440ef6870c0f0a07075d1c128d23698", + "status": "PENDING", + "latestLedger": "45075181", + "latestLedgerCloseTime": "1677115742" } } ``` From 3db384da4c53e911c634ca0558ee33266efe2d89 Mon Sep 17 00:00:00 2001 From: Brian Anderson Date: Thu, 23 Mar 2023 11:18:16 -0500 Subject: [PATCH 009/133] Clean up page descriptions in category indexes (#348) * Add descriptions to docs that appear in generated category indexes. * Add category indexes and descriptions for SDKs and interfaces * Clean up descriptions of API documents. * compile -> create * remove apostrophe * added oxford comma * capitalization * added oxford comma --------- Co-authored-by: Bri <92327786+briwylde08@users.noreply.github.com> --- api/anti-goals.mdx | 1 + api/goals.mdx | 1 + api/json-rpc.mdx | 1 + api/methods/getEvents.mdx | 4 +++- api/methods/getLedgerEntry.mdx | 4 +++- api/pagination.mdx | 1 + 6 files changed, 10 insertions(+), 2 deletions(-) diff --git a/api/anti-goals.mdx b/api/anti-goals.mdx index 6238e30b6..53c23ccbb 100644 --- a/api/anti-goals.mdx +++ b/api/anti-goals.mdx @@ -1,6 +1,7 @@ --- sidebar_position: 1 title: Anti-Goals +description: What Soroban-RPC is not. --- - Soroban-RPC is not a Horizon replacement. Horizon is better suited for historical reporting and analytics queries. Horizon is more concerned with Stellar Vanilla data. diff --git a/api/goals.mdx b/api/goals.mdx index 95f02bab7..096b6ea48 100644 --- a/api/goals.mdx +++ b/api/goals.mdx @@ -1,6 +1,7 @@ --- sidebar_position: 0 title: Goals +description: Features Soroban-RPC should provide. --- Soroban-RPC can be simply described as a "live network gateway for Soroban." It provides information that the network currently has in its view (i.e. current state). It also has the ability to send a transaction to the network, and query the network for the status of previously sent transactions. It is meant to be simple, minimal, scalable, and familiar to blockchain developers from other ecosystems. diff --git a/api/json-rpc.mdx b/api/json-rpc.mdx index e1e52184b..043ccc396 100644 --- a/api/json-rpc.mdx +++ b/api/json-rpc.mdx @@ -1,6 +1,7 @@ --- sidebar_position: 2 title: JSON-RPC +description: Design goals for Soroban-RPC's JSON-RPC spec. --- Soroban-RPC will accept HTTP POST requests using the [JSON-RPC 2.0] specification. Errors are returned via the [jsonrpc error object] wherever possible (and makes sense). diff --git a/api/methods/getEvents.mdx b/api/methods/getEvents.mdx index 0a2708af5..a641bb5a3 100644 --- a/api/methods/getEvents.mdx +++ b/api/methods/getEvents.mdx @@ -2,7 +2,9 @@ sidebar_position: 6 --- -Clients can request a filtered list of events emitted by a given ledger range. Soroban-RPC will support querying within a maximum 24 hours of recent ledgers. +Clients can request a filtered list of events emitted by a given ledger range. + +Soroban-RPC will support querying within a maximum 24 hours of recent ledgers. Note, this could be used by the client to only prompt a refresh when there is a new ledger with relevant events. It should also be used by backend Dapp components to "ingest" events into their own database for querying and serving. diff --git a/api/methods/getLedgerEntry.mdx b/api/methods/getLedgerEntry.mdx index 0c1b7319a..3355c3793 100644 --- a/api/methods/getLedgerEntry.mdx +++ b/api/methods/getLedgerEntry.mdx @@ -2,7 +2,9 @@ sidebar_position: 4 --- -For reading the current value of ledger entries directly. Allows you to directly inspect the _current state_ of a contract, a contract's code, or any other ledger entry. This is a backup way to access your contract data which may not be available via events or `simulateTransaction`. +For reading the current value of ledger entries directly. + +Allows you to directly inspect the _current state_ of a contract, a contract's code, or any other ledger entry. This is a backup way to access your contract data which may not be available via events or `simulateTransaction`. To fetch contract wasm byte-code, use the ContractCode ledger entry key. diff --git a/api/pagination.mdx b/api/pagination.mdx index 062dbab6d..69023bb2a 100644 --- a/api/pagination.mdx +++ b/api/pagination.mdx @@ -1,6 +1,7 @@ --- sidebar_position: 3 title: Pagination +description: Pagination in Soroban-RPC is similar to in Horizon. --- Pagination in soroban-rpc is similar to pagination in Horizon. From 824e36468d22e5b5ddf6ceb7b4052fa173283ad1 Mon Sep 17 00:00:00 2001 From: Alfonso Acosta Date: Fri, 24 Mar 2023 11:39:26 +0100 Subject: [PATCH 010/133] Add new diagnostic filter type to getEvents method (#349) --------- Co-authored-by: tamirms --- api/methods/getEvents.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/methods/getEvents.mdx b/api/methods/getEvents.mdx index a641bb5a3..adb4f263d 100644 --- a/api/methods/getEvents.mdx +++ b/api/methods/getEvents.mdx @@ -16,7 +16,7 @@ By default soroban-rpc retains the most recent 24 hours of events. - `startLedger`: `` - Stringified 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](../pagination) is included in the request, `startLedger` must be omitted. - `filters`: `` - List of filters for the returned events. Events matching any of the filters are included. To match a filter, an event must match both a contractId and a topic. Maximum 5 filters are allowed per request. - - `type`: `<"system"|"contract">` - (optional) Filter to only system or only contract type events. If omitted, return all. + - `type`: `<"system"|"contract"|"diagnostic">` - (optional) Filter to only system, diagnostic, or only contract type events. If omitted, return all. - `contractIds`: `` - (optional) List of contract ids to query for events. If omitted, return events for all contracts. Maximum 5 contract IDs are allowed per request. - `topics`: `` - (optional) List of topic filters. If omitted, query for all events. If multiple filters are specified, events will be included if they match any of the filters. Maximum 5 filters are allowed per request. - A `TopicFilter` is `SegmentMatcher[]` From eb14f9a9ba32f1ba148e369cdc8ca8817792150d Mon Sep 17 00:00:00 2001 From: tamirms Date: Tue, 28 Mar 2023 10:07:54 +0100 Subject: [PATCH 011/133] Update getEvents documentation to include event type csv (#353) --- api/methods/getEvents.mdx | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/api/methods/getEvents.mdx b/api/methods/getEvents.mdx index adb4f263d..63945ac99 100644 --- a/api/methods/getEvents.mdx +++ b/api/methods/getEvents.mdx @@ -16,7 +16,7 @@ By default soroban-rpc retains the most recent 24 hours of events. - `startLedger`: `` - Stringified 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](../pagination) is included in the request, `startLedger` must be omitted. - `filters`: `` - List of filters for the returned events. Events matching any of the filters are included. To match a filter, an event must match both a contractId and a topic. Maximum 5 filters are allowed per request. - - `type`: `<"system"|"contract"|"diagnostic">` - (optional) Filter to only system, diagnostic, or only contract type events. If omitted, return all. + - `type`: `` - (optional) A comma separated list of event types (`system`, `contract`, or `diagnostic`) used to filter events. If omitted, all event types are included. - `contractIds`: `` - (optional) List of contract ids to query for events. If omitted, return events for all contracts. Maximum 5 contract IDs are allowed per request. - `topics`: `` - (optional) List of topic filters. If omitted, query for all events. If multiple filters are specified, events will be included if they match any of the filters. Maximum 5 filters are allowed per request. - A `TopicFilter` is `SegmentMatcher[]` @@ -49,6 +49,7 @@ By default soroban-rpc retains the most recent 24 hours of events. - For example: - 1234-1 - `pagingToken`: `` - Duplicate of `id` field, but in the standard place for pagination tokens. + - `inSuccessfulContractCall`: `` - If true the event was emitted during a successful contract call. - `topic`: `` - List containing the topic this event was emitted with. - `value`: `` - List containing the topic this event was emitted with. - `xdr`: `` - The emitted body value of the event (serialized in a base64 string). @@ -106,6 +107,7 @@ The examples below only returns two transfer events that took place to/from the "contractId": "d93f5c7bb0ebc4a9c8f727c5cebc4e41194d38257e1d0d910356b43bfc528813", "id": "0000987885427757056-0000000001", "pagingToken": "0000987885427757056-0000000001", + "inSuccessfulContractCall": true, "topic": [ "AAAABQAAAAh0cmFuc2Zlcg==", "AAAABAAAAAEAAAAAAAAAAgAAAAUAAAAHQWNjb3VudAAAAAAEAAAAAQAAAAgAAAAAHavpBsZgRv4pEDXWB0NnwQBvvAL/8adWXz2fV7eNq2o=", @@ -122,6 +124,7 @@ The examples below only returns two transfer events that took place to/from the "contractId": "d93f5c7bb0ebc4a9c8f727c5cebc4e41194d38257e1d0d910356b43bfc528813", "id": "0000988572622524416-0000000001", "pagingToken": "0000988572622524416-0000000001", + "inSuccessfulContractCall": true, "topic": [ "AAAABQAAAAh0cmFuc2Zlcg==", "AAAABAAAAAEAAAAAAAAAAgAAAAUAAAAHQWNjb3VudAAAAAAEAAAAAQAAAAgAAAAAHavpBsZgRv4pEDXWB0NnwQBvvAL/8adWXz2fV7eNq2o=", From 1e941b2b0cca6d44b37edf27beb652ddaa4ef736 Mon Sep 17 00:00:00 2001 From: Alfonso Acosta Date: Wed, 29 Mar 2023 22:27:39 +0200 Subject: [PATCH 012/133] Add `events` response field to simulateTransaction method (#354) --- api/methods/simulateTransaction.mdx | 1 + 1 file changed, 1 insertion(+) diff --git a/api/methods/simulateTransaction.mdx b/api/methods/simulateTransaction.mdx index 23476fd87..99bd43e7d 100644 --- a/api/methods/simulateTransaction.mdx +++ b/api/methods/simulateTransaction.mdx @@ -18,6 +18,7 @@ Submit a trial contract invocation to get back return values, expected ledger fo - `xdr`: `` - (optional) Only present on success. xdr-encoded return value of the contract call operation. - `footprint`: `` - The contract data ledger keys which were accessed when simulating this operation. (serialized in a base64 string) - `auth`: `` - Per-address authorizations recorded when simulating this operation. (an array of serialized base64 strings) + - `events`: `` - Events emitted during the contract invocation. (an array of serialized base64 strings) - `latestLedger`: `` - Stringified-number of the current latest ledger observed by the node when this response was generated. - `error`: `` - (optional) only present if the transaction failed. This field will include more details from `stellar-core` about why the invoke host function call failed. From b6bb6d9deba1682c768c01f2f1a7b9891babce63 Mon Sep 17 00:00:00 2001 From: Paul Bellamy Date: Thu, 16 Feb 2023 18:04:14 +0000 Subject: [PATCH 013/133] Merge pull request #319 from paulbellamy/dev Soroban-RPC updates for the release --- api/methods/getAccount.mdx | 6 ++ api/methods/getEvents.mdx | 2 +- api/methods/getHealth.mdx | 2 +- api/methods/getLatestLedger.mdx | 2 +- api/methods/getLedgerEntry.mdx | 76 ++++++++++++++++++- api/methods/getNetwork.mdx | 9 +-- api/methods/getTransactionStatus.mdx | 109 +++++++++++++++++++++++++++ api/methods/requestAirdrop.mdx | 30 -------- api/methods/sendTransaction.mdx | 4 +- api/methods/simulateTransaction.mdx | 2 +- 10 files changed, 198 insertions(+), 44 deletions(-) create mode 100644 api/methods/getTransactionStatus.mdx delete mode 100644 api/methods/requestAirdrop.mdx diff --git a/api/methods/getAccount.mdx b/api/methods/getAccount.mdx index 2bf848312..280ebc52b 100644 --- a/api/methods/getAccount.mdx +++ b/api/methods/getAccount.mdx @@ -2,6 +2,12 @@ sidebar_position: 1 --- +:::note + +Deprecated! Use `getLedgerEntry` instead. This method will be removed in the next release. + +::: + Fetch a minimal set of current info about a Stellar account. Needed to get the current sequence number, and balance for the account so you can build a successful transaction. diff --git a/api/methods/getEvents.mdx b/api/methods/getEvents.mdx index 63945ac99..fa359558f 100644 --- a/api/methods/getEvents.mdx +++ b/api/methods/getEvents.mdx @@ -1,5 +1,5 @@ --- -sidebar_position: 6 +sidebar_position: 2 --- Clients can request a filtered list of events emitted by a given ledger range. diff --git a/api/methods/getHealth.mdx b/api/methods/getHealth.mdx index 06a958d2c..c3961f84c 100644 --- a/api/methods/getHealth.mdx +++ b/api/methods/getHealth.mdx @@ -1,5 +1,5 @@ --- -sidebar_position: 2 +sidebar_position: 3 --- General node health check. diff --git a/api/methods/getLatestLedger.mdx b/api/methods/getLatestLedger.mdx index c68662fcb..64ff7e241 100644 --- a/api/methods/getLatestLedger.mdx +++ b/api/methods/getLatestLedger.mdx @@ -1,5 +1,5 @@ --- -sidebar_position: 3 +sidebar_position: 1 --- :::note diff --git a/api/methods/getLedgerEntry.mdx b/api/methods/getLedgerEntry.mdx index 3355c3793..6b1c39046 100644 --- a/api/methods/getLedgerEntry.mdx +++ b/api/methods/getLedgerEntry.mdx @@ -104,6 +104,80 @@ console.log(getLedgerKeySymbol( )) ``` +### Requesting an Account + +:::note + +This functionality is included in the js [soroban-client](https://www.npmjs.com/package/soroban-client) package as `Server.getAccount(address)`. + +::: + +Accounts are stored as ledger entries, so we can use this method to look up an account along with it's current sequence number. + +```js +const SorobanClient = require('soroban-client') +const xdr = SorobanClient.xdr + +const getLedgerKeyAccount = (address) => { + // We can use the `StrKey` library here to decode the address into the public + // key. + const publicKey = SorobanClient.StrKey.decodeEd25519PublicKey(address); + + const ledgerKey = xdr.LedgerKey.account( + new xdr.LedgerKeyAccount({ + accountId: xdr.PublicKey.publicKeyTypeEd25519( + publicKey + ), + }) + ) + return ledgerKey.toXDR('base64') +} + +console.log(getLedgerKeyAccount( + 'GCU5YE6IVBOEZ5LUU5N2NB55VPB5YZNFERT65SSTVXTNMS7IEQWXKBM2' +)) + +# OUTPUT: AAAAAAAAAACp3BPIqFxM9XSnW6aHvavD3GWlJGfuylOt5tZL6CQtdQ== +``` + + +We then take our output from this function, and use it as the `key` parameter in our call to the `getLedgerEntry` method. + +```json +{ + "jsonrpc": "2.0", + "id": 8675309, + "method": "getLedgerEntry", + "params": { + "key": "AAAAAAAAAACp3BPIqFxM9XSnW6aHvavD3GWlJGfuylOt5tZL6CQtdQ==" + } +} +``` + +And the response we get contains the `LedgerEntryData` with the current information about this account. + +```json +{ + "jsonrpc": "2.0", + "id": 8675309, + "result": { + "xdr": "AAAAAAAAAACp3BPIqFxM9XSnW6aHvavD3GWlJGfuylOt5tZL6CQtdQAAABdIdugAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAA" + "lastModifiedLedgerSeq": "164303", + "latestLedger": "246819" + } +} +``` + +We can then parse this result as an `xdr.LedgerEntryData` type. + +```js +const parsed = xdr.LedgerEntryData.fromXDR( + 'AAAAAAAAAACp3BPIqFxM9XSnW6aHvavD3GWlJGfuylOt5tZL6CQtdQAAABdIdugAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAA', + 'base64' +) +console.log(parsed); +``` + ### Requesting a Contract's WASM Code This can be a bit tricky to wrap your head around, but the conventions do make sense once you let it sink in. @@ -217,4 +291,4 @@ And the response we get contains (even more) `LedgerEntryData` that we can decod ``` [`increment` example contract]: /docs/getting-started/storing-data -["View XDR" page of the Stellar Laboratory]: \ No newline at end of file +["View XDR" page of the Stellar Laboratory]: diff --git a/api/methods/getNetwork.mdx b/api/methods/getNetwork.mdx index 2470aaf5c..dc4730499 100644 --- a/api/methods/getNetwork.mdx +++ b/api/methods/getNetwork.mdx @@ -1,13 +1,7 @@ --- -sidebar_position: 7 +sidebar_position: 5 --- -:::note - -The `getNetwork` method is still a work-in-progress. - -::: - General info about the currently configured network. ## Parameters @@ -17,5 +11,6 @@ General info about the currently configured network. ## Returns - `` + - `friendbotUrl`: `` (optional) - The URL of this network's "friendbot" faucet - `passphrase`: `` - Network passphrase configured - `protocolVersion`: `` - Protocol version of the latest ledger diff --git a/api/methods/getTransactionStatus.mdx b/api/methods/getTransactionStatus.mdx new file mode 100644 index 000000000..b0822cee7 --- /dev/null +++ b/api/methods/getTransactionStatus.mdx @@ -0,0 +1,109 @@ +--- +sidebar_position: 6 +--- + +:::note + +The `getTransactionStatus` method is still a work-in-progress. + +::: + +Clients will poll this to tell when the transaction has been completed. + +- TODO: Figure out result/error and how that fits into the jsonrpc response object +- TODO: Figure out return values for non-contract-invocation transactions + +## Parameters + +- `` - transaction hash to query, as a hex-encoded string + +## Returns + +- `` + - `id`: `` - hash of the transaction as a hex-encoded string + - `status`: `` - the current status of the transaction by hash, one of: + - pending + - success + - error + - `results`: `` - (optional) Will be present on completed successful transactions. + - xdr: ` - xdr-encoded return value of the contract call + - TODO: Anything else we should include? Gas spent? + - `envelopeXdr`: `` - (optional) A base64 encoded string of the raw TransactionEnvelope XDR struct for this transaction. + - `resultXdr`: `` - (optional) A base64 encoded string of the raw TransactionResult XDR struct for this transaction. + - `resultMetaXdr`: `` - (optional) A base64 encoded string of the raw TransactionResultMeta XDR struct for this transaction. + - `error`: `` - (optional) Will be present on failed transactions. + - `code`: `` - Short unique string representing the type of error + - `message`: `` - Human friendly summary of the error + - `data`: `` - (optional) More data related to the error if available + +## Examples + +### Request + +```json +{ + "jsonrpc": "2.0", + "id": 8675309, + "method": "getTransactionStatus", + "params": { + "hash": "97eb77da26e21d6a032fc0c311831d94a702ba336037da7c8a5ec51b3e39c485" + } +} +``` + +### Response + +#### Pending + +```json +{ + "jsonrpc": "2.0", + "id": 8675309, + "result": { + "id": "d70916f8b8aa55c13d5974a38e32a3efe440ef6870c0f0a07075d1c128d23698", + "status": "pending" + } +} +``` + +#### Success + +```json +{ + "jsonrpc": "2.0", + "id": 8675309, + "result": { + "id": "d70916f8b8aa55c13d5974a38e32a3efe440ef6870c0f0a07075d1c128d23698", + "status": "success", + "results": [ + { + "xdr": "AAAAAQAAAAY=" + } + ] + } +} +``` + +#### Error + +```json +{ + "jsonrpc": "2.0", + "id": 8675309, + "result": { + "id": "48dd243d4683745b7efa9f4fe6182f944b03cfd169135657e39c974e9b1fc50d", + "status": "error", + "error": { + "code": "tx_submission_failed", + "message": "Transaction submission failed", + "data": { + "envelope_xdr": "AAAAAgAAAAAdq+kGxmBG/ikQNdYHQ2fBAG+8Av/xp1ZfPZ9Xt42ragAAAGQAAoAp/////gAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAACgAAAAVoZWxsbwAAAAAAAAEAAAAHc29yb2JhbgAAAAAAAAAAAbeNq2oAAABAc6zcO/sTKyF26B1iJygLVrhhcVfK05rNW9gyeNwqSVeMFkHXpZ6D/6mqSB0KtvacxK4/VoiwWPrBQGPelnktBQ==", + "result_codes": { + "transaction": "tx_bad_seq" + }, + "result_xdr": "AAAAAAAAAAD////7AAAAAA==" + } + } + } +} +``` diff --git a/api/methods/requestAirdrop.mdx b/api/methods/requestAirdrop.mdx deleted file mode 100644 index 4c0a2973d..000000000 --- a/api/methods/requestAirdrop.mdx +++ /dev/null @@ -1,30 +0,0 @@ ---- -sidebar_position: 9 ---- - -:::note - -The `requestAirdrop` method is still a work-in-progress. - -::: - -Used outside pubnet to request some lumens from friendbot for a particular account. - -:::note - -Maybe we could replace this with a 'friendbotUrl' field in `getNetwork` method? - -::: - -## Parameters - -- `` - Account pubkey to fund - -## Returns - -- `` - - `transactionId`: `` - Transaction id of the transfer as a hex-encoded string. - -## Errors - -- If this is pubnet (or friendbot is otherwise unavailable). diff --git a/api/methods/sendTransaction.mdx b/api/methods/sendTransaction.mdx index 73b803a90..e30bd89c0 100644 --- a/api/methods/sendTransaction.mdx +++ b/api/methods/sendTransaction.mdx @@ -1,5 +1,5 @@ --- -sidebar_position: 10 +sidebar_position: 7 --- Submit a real transaction to the Stellar network. This is the only way to make changes "on-chain". @@ -57,4 +57,4 @@ The following example request uses a transaction to invoke the `increment` metho } ``` -[`increment` example contract]: /docs/getting-started/storing-data \ No newline at end of file +[`increment` example contract]: /docs/getting-started/storing-data diff --git a/api/methods/simulateTransaction.mdx b/api/methods/simulateTransaction.mdx index 99bd43e7d..ad2db84c0 100644 --- a/api/methods/simulateTransaction.mdx +++ b/api/methods/simulateTransaction.mdx @@ -1,5 +1,5 @@ --- -sidebar_position: 11 +sidebar_position: 8 --- Submit a trial contract invocation to get back return values, expected ledger footprint, and expected costs. From db27eadb47b73fb94f992b6c3704775f457f638f Mon Sep 17 00:00:00 2001 From: Siddharth Suresh Date: Wed, 5 Apr 2023 12:25:45 -0700 Subject: [PATCH 014/133] Remove out of date file --- api/methods/getTransactionStatus.mdx | 109 --------------------------- 1 file changed, 109 deletions(-) delete mode 100644 api/methods/getTransactionStatus.mdx diff --git a/api/methods/getTransactionStatus.mdx b/api/methods/getTransactionStatus.mdx deleted file mode 100644 index b0822cee7..000000000 --- a/api/methods/getTransactionStatus.mdx +++ /dev/null @@ -1,109 +0,0 @@ ---- -sidebar_position: 6 ---- - -:::note - -The `getTransactionStatus` method is still a work-in-progress. - -::: - -Clients will poll this to tell when the transaction has been completed. - -- TODO: Figure out result/error and how that fits into the jsonrpc response object -- TODO: Figure out return values for non-contract-invocation transactions - -## Parameters - -- `` - transaction hash to query, as a hex-encoded string - -## Returns - -- `` - - `id`: `` - hash of the transaction as a hex-encoded string - - `status`: `` - the current status of the transaction by hash, one of: - - pending - - success - - error - - `results`: `` - (optional) Will be present on completed successful transactions. - - xdr: ` - xdr-encoded return value of the contract call - - TODO: Anything else we should include? Gas spent? - - `envelopeXdr`: `` - (optional) A base64 encoded string of the raw TransactionEnvelope XDR struct for this transaction. - - `resultXdr`: `` - (optional) A base64 encoded string of the raw TransactionResult XDR struct for this transaction. - - `resultMetaXdr`: `` - (optional) A base64 encoded string of the raw TransactionResultMeta XDR struct for this transaction. - - `error`: `` - (optional) Will be present on failed transactions. - - `code`: `` - Short unique string representing the type of error - - `message`: `` - Human friendly summary of the error - - `data`: `` - (optional) More data related to the error if available - -## Examples - -### Request - -```json -{ - "jsonrpc": "2.0", - "id": 8675309, - "method": "getTransactionStatus", - "params": { - "hash": "97eb77da26e21d6a032fc0c311831d94a702ba336037da7c8a5ec51b3e39c485" - } -} -``` - -### Response - -#### Pending - -```json -{ - "jsonrpc": "2.0", - "id": 8675309, - "result": { - "id": "d70916f8b8aa55c13d5974a38e32a3efe440ef6870c0f0a07075d1c128d23698", - "status": "pending" - } -} -``` - -#### Success - -```json -{ - "jsonrpc": "2.0", - "id": 8675309, - "result": { - "id": "d70916f8b8aa55c13d5974a38e32a3efe440ef6870c0f0a07075d1c128d23698", - "status": "success", - "results": [ - { - "xdr": "AAAAAQAAAAY=" - } - ] - } -} -``` - -#### Error - -```json -{ - "jsonrpc": "2.0", - "id": 8675309, - "result": { - "id": "48dd243d4683745b7efa9f4fe6182f944b03cfd169135657e39c974e9b1fc50d", - "status": "error", - "error": { - "code": "tx_submission_failed", - "message": "Transaction submission failed", - "data": { - "envelope_xdr": "AAAAAgAAAAAdq+kGxmBG/ikQNdYHQ2fBAG+8Av/xp1ZfPZ9Xt42ragAAAGQAAoAp/////gAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAACgAAAAVoZWxsbwAAAAAAAAEAAAAHc29yb2JhbgAAAAAAAAAAAbeNq2oAAABAc6zcO/sTKyF26B1iJygLVrhhcVfK05rNW9gyeNwqSVeMFkHXpZ6D/6mqSB0KtvacxK4/VoiwWPrBQGPelnktBQ==", - "result_codes": { - "transaction": "tx_bad_seq" - }, - "result_xdr": "AAAAAAAAAAD////7AAAAAA==" - } - } - } -} -``` From 3246d90ef5118cab4cdef4896f525977b87b3fe6 Mon Sep 17 00:00:00 2001 From: Paul Bellamy Date: Thu, 6 Apr 2023 14:29:01 +0100 Subject: [PATCH 015/133] Remove the deprecated (and now removed) getAccount soroban-rpc method --- api/methods/getAccount.mdx | 53 -------------------------------------- 1 file changed, 53 deletions(-) delete mode 100644 api/methods/getAccount.mdx diff --git a/api/methods/getAccount.mdx b/api/methods/getAccount.mdx deleted file mode 100644 index 280ebc52b..000000000 --- a/api/methods/getAccount.mdx +++ /dev/null @@ -1,53 +0,0 @@ ---- -sidebar_position: 1 ---- - -:::note - -Deprecated! Use `getLedgerEntry` instead. This method will be removed in the next release. - -::: - -Fetch a minimal set of current info about a Stellar account. - -Needed to get the current sequence number, and balance for the account so you can build a successful transaction. - -## Parameters - -- `
` - Address of the account to lookup - -## Returns - -- `` - - `id`: `
` - - `sequence`: `` - Current sequence number of the account - - TODO: Balances for the account (same format as in horizon) should be displayed - - TODO: signers/flags/thresholds/etc? - -## Examples - -### Request - -```json -{ - "jsonrpc": "2.0", - "id": 8675309, - "method": "getAccount", - "params": { - "address": "GAO2X2IGYZQEN7RJCA25MB2DM7AQA354AL77DJ2WL46Z6V5XRWVWV44Z" - } -} -``` - -### Response - -```json -{ - "jsonrpc": "2.0", - "id": 8675309, - "result": { - "id": "GAO2X2IGYZQEN7RJCA25MB2DM7AQA354AL77DJ2WL46Z6V5XRWVWV44Z", - "sequence": "703867830403072" - } -} -``` From e93aec05f6edef11935c475c4380244321a7a290 Mon Sep 17 00:00:00 2001 From: "Tyler.S" Date: Thu, 6 Apr 2023 15:22:31 -0700 Subject: [PATCH 016/133] Updated docs for getLatestLedger --- api/methods/getLatestLedger.mdx | 36 +++++++++++++++++++++++++-------- 1 file changed, 28 insertions(+), 8 deletions(-) diff --git a/api/methods/getLatestLedger.mdx b/api/methods/getLatestLedger.mdx index 64ff7e241..03200b184 100644 --- a/api/methods/getLatestLedger.mdx +++ b/api/methods/getLatestLedger.mdx @@ -2,12 +2,6 @@ sidebar_position: 1 --- -:::note - -The `getLatestLedger` method is still a work-in-progress. - -::: - For finding out the current latest known ledger of this node. This is a subset of the ledger info from Horizon. ## Parameters @@ -18,5 +12,31 @@ For finding out the current latest known ledger of this node. This is a subset o - `` - `id`: `` - hash of the latest ledger as a hex-encoded string - - `protocolVersion`: `` - - `sequence`: `` + - `protocolVersion`: `` - Stellar Core protocol version associated with the ledger + - `sequence`: `` - sequence number of the latest ledger. + +## Examples + +### Request + +```json +{ + "jsonrpc": "2.0", + "id": 8675309, + "method": "getLatestLedger" +} +``` + +### Response + +```json +{ + "jsonrpc": "2.0", + "id": 8675309, + "result": { + "id": "2a00000000000000000000000000000000000000000000000000000000000000", + "protocolVersion": 20, + "Sequence": 666 + } +} +``` From 265d55a15dc10defc6816bec7dbc0462dd05c85f Mon Sep 17 00:00:00 2001 From: "Tyler.S" Date: Thu, 6 Apr 2023 15:23:01 -0700 Subject: [PATCH 017/133] Update return obj descriptions --- api/methods/getLatestLedger.mdx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/api/methods/getLatestLedger.mdx b/api/methods/getLatestLedger.mdx index 03200b184..e82b66201 100644 --- a/api/methods/getLatestLedger.mdx +++ b/api/methods/getLatestLedger.mdx @@ -12,8 +12,8 @@ For finding out the current latest known ledger of this node. This is a subset o - `` - `id`: `` - hash of the latest ledger as a hex-encoded string - - `protocolVersion`: `` - Stellar Core protocol version associated with the ledger - - `sequence`: `` - sequence number of the latest ledger. + - `protocolVersion`: `` - Stellar Core protocol version associated with the latest ledger + - `sequence`: `` - sequence number of the latest ledger ## Examples @@ -36,7 +36,7 @@ For finding out the current latest known ledger of this node. This is a subset o "result": { "id": "2a00000000000000000000000000000000000000000000000000000000000000", "protocolVersion": 20, - "Sequence": 666 + "sequence": 666 } } ``` From 016e383ca501128476e2815a1320f17f5bec81d1 Mon Sep 17 00:00:00 2001 From: Alfonso Acosta Date: Mon, 22 May 2023 15:25:51 -0400 Subject: [PATCH 018/133] API: Update simulateTransaction RPC method to include fee support (#439) * API: Update simulateTransaction RPC method to include fee support * stop using the increment example * Update api/methods/simulateTransaction.mdx Co-authored-by: Paul Bellamy * Address review feedback --------- Co-authored-by: Paul Bellamy --- api/methods/simulateTransaction.mdx | 53 +++++++++++++++++------------ 1 file changed, 31 insertions(+), 22 deletions(-) diff --git a/api/methods/simulateTransaction.mdx b/api/methods/simulateTransaction.mdx index ad2db84c0..06d893837 100644 --- a/api/methods/simulateTransaction.mdx +++ b/api/methods/simulateTransaction.mdx @@ -2,8 +2,7 @@ sidebar_position: 8 --- -Submit a trial contract invocation to get back return values, expected ledger footprint, and expected costs. - +Submit a trial contract invocation to simulate how it would be executed by the network. This endpoint calculates the effective transaction data, required authorizations, and minimal resource fee. It provides a way to test and analyze the potential outcomes of a transaction without actually submitting it to the network. ## Parameters - `` - The transaction to be simulated (serialized in base64) @@ -11,30 +10,29 @@ Submit a trial contract invocation to get back return values, expected ledger fo ## Returns - `` - - `cost`: `` - Information about the fees expected, instructions used, etc. + - `minResourceFee`: `` - Stringified-number of the recommended minimum resource fee to add when submitting the transaction. This fee is to be added on top of the [Stellar network fee](https://developers.stellar.org/docs/encyclopedia/fees-surge-pricing-fee-strategies#network-fees-on-stellar). + - `cost`: `` - Information about instructions used, etc. - `cpuInsns`: `` - Stringified-number of the total cpu instructions consumed by this transaction - `memBytes`: `` - Stringified-number of the total memory bytes allocated by this transaction - - `results`: `` - If error is present then results will not be in the response. There will be one results object for each operation in the transaction. - - `xdr`: `` - (optional) Only present on success. xdr-encoded return value of the contract call operation. - - `footprint`: `` - The contract data ledger keys which were accessed when simulating this operation. (serialized in a base64 string) - - `auth`: `` - Per-address authorizations recorded when simulating this operation. (an array of serialized base64 strings) - - `events`: `` - Events emitted during the contract invocation. (an array of serialized base64 strings) + - `results`: `` - If `error` is present then results will not be in the response. There will be one result object for each Host Function invocation, in the same order the Host Function was supplied. + - `xdr`: `` - (optional) Only present on success. xdr-encoded return value of the Host Function call. + - `auth`: `` - Per-address authorizations recorded when simulating this Host Function call. (an array of serialized base64 strings) + - `transactionData`: `` - The recommended Soroban Transaction Data to use when submitting the simulated transaction. This data contains the refundable fee and resource usage information such as the ledger footprint and IO access data (serialized in a base64 string). + - `events`: `` - Array of the events emitted during the contract invocation(s). The events are ordered by their emission _time_. (an array of serialized base64 strings) - `latestLedger`: `` - Stringified-number of the current latest ledger observed by the node when this response was generated. - `error`: `` - (optional) only present if the transaction failed. This field will include more details from `stellar-core` about why the invoke host function call failed. ## Examples -The example transaction below invokes the `increment` function from the [`increment` example contract]. - ### Request ```json { "jsonrpc": "2.0", - "id": 8675309, + "id": 1102, "method": "simulateTransaction", "params": { - "transaction": "AAAAAgAAAAAdq+kGxmBG/ikQNdYHQ2fBAG+8Av/xp1ZfPZ9Xt42ragAAJxAAAAAAAAAAAgAAAAEAAAAAAAAAAAAAAABjzuFcAAAAAAAAAAEAAAAAAAAAGAAAAAAAAAACAAAABAAAAAEAAAAGAAAAIBv6ziOnWcVRdGMZjtFKSWnLSndMp9JPVLLXxQqAvKqJAAAABQAAAAlpbmNyZW1lbnQAAAAAAAAAAAAAAAAAAAAAAAAA" + "transaction": "AAAAAgAAAABzdv3ojkzWHMD7KUoXhrPx0GH18vHKV0ZfqpMiEblG1gAAAGQAAAAAAAAABAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAHN2/eiOTNYcwPspSheGs/HQYfXy8cpXRl+qkyIRuUbWAAAAGAAAAAIAAAAAAAAABAAAAA0AAAAg4avr0cYyEk0etiaStUgJ889XGSqUqZEZcCyR+ma87LIAAAAPAAAABGF1dGgAAAATAAAAAAAAAABi/B0L0JGythwN1lY0aypo19NHxvLCyO5tBEcCVvwF9wAAAA8AAAAFd29ybGQAAAAAAAAAAAAAAAAAAAQAAAANAAAAIOGr69HGMhJNHrYmkrVICfPPVxkqlKmRGXAskfpmvOyyAAAADwAAAARhdXRoAAAAEwAAAAAAAAAAYvwdC9CRsrYcDdZWNGsqaNfTR8bywsjubQRHAlb8BfcAAAAPAAAABXdvcmxkAAAAAAAAAAAAAAAAAAAA" } } ``` @@ -44,22 +42,33 @@ The example transaction below invokes the `increment` function from the [`increm ```json { "jsonrpc": "2.0", - "id": 8675309, + "id": 1102, "result": { + "transactionData": "AAAAAwAAAAAAAAAAYvwdC9CRsrYcDdZWNGsqaNfTR8bywsjubQRHAlb8BfcAAAAG4avr0cYyEk0etiaStUgJ889XGSqUqZEZcCyR+ma87LIAAAAUAAAAB8zDhJ3ZTMHmdBjlVh/7d1HDdo+QI1ZXGmeRzBwVAoVXAAAAAQAAAAbhq+vRxjISTR62JpK1SAnzz1cZKpSpkRlwLJH6ZrzssgAAABUAAAAAAAAAAGL8HQvQkbK2HA3WVjRrKmjX00fG8sLI7m0ERwJW/AX3ACb/vgAAFcQAAAC0AAABrAAAAAAAAABUAAAAAA==", + "events": [ + "AAAAAQAAAAAAAAAB4avr0cYyEk0etiaStUgJ889XGSqUqZEZcCyR+ma87LIAAAABAAAAAAAAAAEAAAAOAAAABGF1dGgAAAAPAAAABXdvcmxkAAAA", + "AAAAAQAAAAAAAAAB4avr0cYyEk0etiaStUgJ889XGSqUqZEZcCyR+ma87LIAAAABAAAAAAAAAAEAAAAOAAAABGF1dGgAAAAPAAAABXdvcmxkAAAA" + ], + "minResourceFee": "79488", "results": [ { - "xdr": "AAAAAQAAAAY=", - "footprint": "AAAAAgAAAAYb+s4jp1nFUXRjGY7RSklpy0p3TKfST1Sy18UKgLyqiQAAAAMAAAADAAAAB9QqWUc9AUjduz5qrbJgYb/gACScB4Jq7yTT6x0QJfZfAAAAAQAAAAYb+s4jp1nFUXRjGY7RSklpy0p3TKfST1Sy18UKgLyqiQAAAAUAAAAHQ09VTlRFUgA=", - "auth": "... TODO: Generate a plausible xdr.ContractAuth ..." + "auth": [ + "AAAAAQAAAAAAAAAAYvwdC9CRsrYcDdZWNGsqaNfTR8bywsjubQRHAlb8BfcAAAAAAAAAAOGr69HGMhJNHrYmkrVICfPPVxkqlKmRGXAskfpmvOyyAAAABGF1dGgAAAACAAAAEwAAAAAAAAAAYvwdC9CRsrYcDdZWNGsqaNfTR8bywsjubQRHAlb8BfcAAAAPAAAABXdvcmxkAAAAAAAAAAAAAAA=" + ], + "xdr": "AAAAEwAAAAAAAAAAYvwdC9CRsrYcDdZWNGsqaNfTR8bywsjubQRHAlb8Bfc=" + }, + { + "auth": [ + "AAAAAQAAAAAAAAAAYvwdC9CRsrYcDdZWNGsqaNfTR8bywsjubQRHAlb8BfcAAAAAAAAAAeGr69HGMhJNHrYmkrVICfPPVxkqlKmRGXAskfpmvOyyAAAABGF1dGgAAAACAAAAEwAAAAAAAAAAYvwdC9CRsrYcDdZWNGsqaNfTR8bywsjubQRHAlb8BfcAAAAPAAAABXdvcmxkAAAAAAAAAAAAAAA=" + ], + "xdr": "AAAAEwAAAAAAAAAAYvwdC9CRsrYcDdZWNGsqaNfTR8bywsjubQRHAlb8Bfc=" } ], "cost": { - "cpuInsns": "163642", - "memBytes": "1506" + "cpuInsns": "2222468", + "memBytes": "2204681" }, - "latestLedger": "230473" + "latestLedger": "23456" } } -``` - -[`increment` example contract]: /docs/getting-started/storing-data +``` \ No newline at end of file From 39ee3ad89c5f5616f58b1068664267af5e5cfde9 Mon Sep 17 00:00:00 2001 From: Alfonso Acosta Date: Wed, 24 May 2023 17:47:19 +0200 Subject: [PATCH 019/133] Update API method documentation (#445) * Update XDR in JSON examples * replace `getLedgerEntry` by `getLedgerEntries` --- ...etLedgerEntry.mdx => getLedgerEntries.mdx} | 52 +++++++++++++------ api/methods/getTransaction.mdx | 10 ++-- api/methods/sendTransaction.mdx | 7 +-- 3 files changed, 44 insertions(+), 25 deletions(-) rename api/methods/{getLedgerEntry.mdx => getLedgerEntries.mdx} (78%) diff --git a/api/methods/getLedgerEntry.mdx b/api/methods/getLedgerEntries.mdx similarity index 78% rename from api/methods/getLedgerEntry.mdx rename to api/methods/getLedgerEntries.mdx index 6b1c39046..f7039f232 100644 --- a/api/methods/getLedgerEntry.mdx +++ b/api/methods/getLedgerEntries.mdx @@ -15,8 +15,10 @@ To fetch contract wasm byte-code, use the ContractCode ledger entry key. ## Return - `` - - `xdr`: `` - The current value of the given ledger entry (serialized in a base64 string) - - `lastModifiedLedgerSeq`: `` - The ledger number of the last time this entry was updated (optional) + - `entries`: Array containing the specified ledger entries which were found + - `key`: `` - The key of the ledger entry (serialized in a base64 string) + - `xdr`: `` - The current value of the given ledger entry (serialized in a base64 string) + - `lastModifiedLedgerSeq`: `` - The ledger number of the last time this entry was updated (optional) - `latestLedger`: `` - The current latest ledger observed by the node when this response was generated. ## Examples @@ -29,7 +31,7 @@ To fetch contract wasm byte-code, use the ContractCode ledger entry key. "id": 8675309, "method": "getLedgerEntry", "params": { - "key": "AAAABhv6ziOnWcVRdGMZjtFKSWnLSndMp9JPVLLXxQqAvKqJAAAABQAAAAdDT1VOVEVSAA==" + "keys": ["AAAAB+qfy4GuVKKfazvyk4R9P9fpo2n9HICsr+xqvVcTF+DC","AAAABuGr69HGMhJNHrYmkrVICfPPVxkqlKmRGXAskfpmvOyyAAAAFA=="] } } ``` @@ -41,8 +43,13 @@ To fetch contract wasm byte-code, use the ContractCode ledger entry key. "jsonrpc": "2.0", "id": 8675309, "result": { - "xdr": "AAAABhv6ziOnWcVRdGMZjtFKSWnLSndMp9JPVLLXxQqAvKqJAAAABQAAAAdDT1VOVEVSAAAAAAEAAAAD", - "lastModifiedLedgerSeq": "164986", + "entries":[ + { + "key": "AAAAB+qfy4GuVKKfazvyk4R9P9fpo2n9HICsr+xqvVcTF+DC", + "xdr": "AAAABwAAAADqn8uBrlSin2s78pOEfT/X6aNp/RyArK/sar1XExfgwgAAAAphIGNvbnRyYWN0AAA=", + "lastModifiedLedgerSeq": "13" + } + ], "latestLedger": "179436" } } @@ -147,9 +154,9 @@ We then take our output from this function, and use it as the `key` parameter in { "jsonrpc": "2.0", "id": 8675309, - "method": "getLedgerEntry", + "method": "getLedgerEntries", "params": { - "key": "AAAAAAAAAACp3BPIqFxM9XSnW6aHvavD3GWlJGfuylOt5tZL6CQtdQ==" + "keys": ["AAAAAAAAAACp3BPIqFxM9XSnW6aHvavD3GWlJGfuylOt5tZL6CQtdQ=="] } } ``` @@ -161,8 +168,13 @@ And the response we get contains the `LedgerEntryData` with the current informat "jsonrpc": "2.0", "id": 8675309, "result": { - "xdr": "AAAAAAAAAACp3BPIqFxM9XSnW6aHvavD3GWlJGfuylOt5tZL6CQtdQAAABdIdugAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAA" - "lastModifiedLedgerSeq": "164303", + "entries":[ + { + "key": "AAAAAAAAAACp3BPIqFxM9XSnW6aHvavD3GWlJGfuylOt5tZL6CQtdQ==", + "xdr": "AAAAAAAAAACp3BPIqFxM9XSnW6aHvavD3GWlJGfuylOt5tZL6CQtdQAAABdIdugAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAA", + "lastModifiedLedgerSeq": "164303" + } + ], "latestLedger": "246819" } } @@ -220,7 +232,7 @@ We then take our output from this function, and use it as the `key` parameter in "id": 8675309, "method": "getLedgerEntry", "params": { - "key": "AAAABhv6ziOnWcVRdGMZjtFKSWnLSndMp9JPVLLXxQqAvKqJAAAAAwAAAAM=" + "keys": ["AAAABhv6ziOnWcVRdGMZjtFKSWnLSndMp9JPVLLXxQqAvKqJAAAAAwAAAAM="], } } ``` @@ -232,8 +244,13 @@ And the response we get contains the `LedgerEntryData` that can be used to find "jsonrpc": "2.0", "id": 8675309, "result": { - "xdr": "AAAABhv6ziOnWcVRdGMZjtFKSWnLSndMp9JPVLLXxQqAvKqJAAAAAwAAAAMAAAAEAAAAAQAAAAcAAAAA1CpZRz0BSN27PmqtsmBhv+AAJJwHgmrvJNPrHRAl9l8=", - "lastModifiedLedgerSeq": "164303", + "entries":[ + { + "key": "AAAABhv6ziOnWcVRdGMZjtFKSWnLSndMp9JPVLLXxQqAvKqJAAAAAwAAAAM=", + "xdr": "AAAABhv6ziOnWcVRdGMZjtFKSWnLSndMp9JPVLLXxQqAvKqJAAAAAwAAAAMAAAAEAAAAAQAAAAcAAAAA1CpZRz0BSN27PmqtsmBhv+AAJJwHgmrvJNPrHRAl9l8=", + "lastModifiedLedgerSeq": "164303" + } + ], "latestLedger": "246819" } } @@ -271,7 +288,7 @@ Now, finally we have a `LedgerKey` that correspond to the WASM byte-code that ha "id": 8675309, "method": "getLedgerEntry", "params": { - "key": "AAAAB9QqWUc9AUjduz5qrbJgYb/gACScB4Jq7yTT6x0QJfZf" + "keys": ["AAAAB9QqWUc9AUjduz5qrbJgYb/gACScB4Jq7yTT6x0QJfZf"] } } ``` @@ -283,8 +300,13 @@ And the response we get contains (even more) `LedgerEntryData` that we can decod "jsonrpc": "2.0", "id": 8675309, "result": { - "xdr": "AAAABwAAAADUKllHPQFI3bs+aq2yYGG/4AAknAeCau8k0+sdECX2XwAAAakAYXNtAQAAAAEXBWABfgF+YAJ+fgF+YAABfmABfwBgAAACEwMBbAEwAAABbAExAAABbAFfAAEDBgUCAwQEBAUDAQAQBhkDfwFBgIDAAAt/AEGAgMAAC38AQYCAwAALBzUFBm1lbW9yeQIACWluY3JlbWVudAADAV8ABwpfX2RhdGFfZW5kAwELX19oZWFwX2Jhc2UDAgrAAQWhAQMBfwF+AX8jgICAgABBEGsiACSAgICAAAJAAkBC2YP9sqDNAxCAgICAAEIVUg0AAkBC2YP9sqDNAxCBgICAACIBQg+DQgFSDQAgAUIEiKchAgwCCyAAQQhqEISAgIAAAAtBACECCwJAIAJBAWoiAg0AEIWAgIAAAAtC2YP9sqDNAyACrUIEhkIBhCIBEIKAgIAAGiAAQRBqJICAgIAAIAELCQAQhoCAgAAACwkAEIaAgIAAAAsEAAAACwIACwAeEWNvbnRyYWN0ZW52bWV0YXYwAAAAAAAAAAAAAAAbAC8OY29udHJhY3RzcGVjdjAAAAAAAAAACWluY3JlbWVudAAAAAAAAAAAAAABAAAAAQAAAA==", - "lastModifiedLedgerSeq": "164302", + "entries":[ + { + "key": "AAAAB9QqWUc9AUjduz5qrbJgYb/gACScB4Jq7yTT6x0QJfZf", + "xdr": "AAAABwAAAADUKllHPQFI3bs+aq2yYGG/4AAknAeCau8k0+sdECX2XwAAAakAYXNtAQAAAAEXBWABfgF+YAJ+fgF+YAABfmABfwBgAAACEwMBbAEwAAABbAExAAABbAFfAAEDBgUCAwQEBAUDAQAQBhkDfwFBgIDAAAt/AEGAgMAAC38AQYCAwAALBzUFBm1lbW9yeQIACWluY3JlbWVudAADAV8ABwpfX2RhdGFfZW5kAwELX19oZWFwX2Jhc2UDAgrAAQWhAQMBfwF+AX8jgICAgABBEGsiACSAgICAAAJAAkBC2YP9sqDNAxCAgICAAEIVUg0AAkBC2YP9sqDNAxCBgICAACIBQg+DQgFSDQAgAUIEiKchAgwCCyAAQQhqEISAgIAAAAtBACECCwJAIAJBAWoiAg0AEIWAgIAAAAtC2YP9sqDNAyACrUIEhkIBhCIBEIKAgIAAGiAAQRBqJICAgIAAIAELCQAQhoCAgAAACwkAEIaAgIAAAAsEAAAACwIACwAeEWNvbnRyYWN0ZW52bWV0YXYwAAAAAAAAAAAAAAAbAC8OY29udHJhY3RzcGVjdjAAAAAAAAAACWluY3JlbWVudAAAAAAAAAAAAAABAAAAAQAAAA==", + "lastModifiedLedgerSeq": "164302" + } + ], "latestLedger": "246883" } } diff --git a/api/methods/getTransaction.mdx b/api/methods/getTransaction.mdx index 28faec07f..f21b160bf 100644 --- a/api/methods/getTransaction.mdx +++ b/api/methods/getTransaction.mdx @@ -38,7 +38,7 @@ Clients will poll this to tell when the transaction has been completed. "id": 8675309, "method": "getTransactionStatus", "params": { - "hash": "97eb77da26e21d6a032fc0c311831d94a702ba336037da7c8a5ec51b3e39c485" + "hash": "a01441a4d0b80769d2c2d97dcd28d13e9036065da14ea83731424d77efc50894" } } ``` @@ -77,9 +77,9 @@ Clients will poll this to tell when the transaction has been completed. "createdAt": "1677009000", "applicationOrder": 1, "feeBump": false, - "envelope_xdr": "AAAAAgAAAAC+B6dP3Y3Dk7cO+EXButf4j/a6NgZ8jhUdGd8Y4DLK1QAAJxMB1QqkAGOQiwAAAAEAAAAAAAAAAAAAAABkAG82AAAAAAAAAAEAAAAAAAAAAwAAAAAAAAABRVRYAAAAAACIVkm2vMC7wfGBUXcyyT5KMkEhZr0TEHmgyspvSQ+skwAAAAAFSbLgKG8eYQCUWuIAAAAAR3McdwAAAAAAAAAB4DLK1QAAAEDJvETQ3zLdr1RXE4KEQ+tlmWPh6zpFu/KrAQOrYrYSxpbhB5DPZRJnn+ROtU8TnZhZ6xQ136VrqNQm/+LUOD8D", - "resultXdr": "AAAAAAAAAGQAAAAAAAAAAQAAAAAAAAAMAAAAAAAAAAAAAAABAAAAAK36IZP1oM+KV7lU1u8H7BgGjwK6d6hPmU+zpA6rySi3AAAAAEbEAZ4AAAAAAAAAAVJCUk4AAAAArSYZWZeBIAHn1+M0WPwhehxZNiBgvJOx7IVykVOo39UAAAAAFZRBZACYloAAAAANAAAAAAAAAAAAAAAA", - "result_meta_xdr": "AAAAAgAAAAIAAAADArFrdQAAAAAAAAAAvgenT92Nw5O3DvhFwbrX+I/2ujYGfI4VHRnfGOAyytUAAAAADH94VAHVCqQAY5CKAAAACAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAQAAAAEzXjfgAAAAAAVJxmgAAAACAAAAAAAAAAAAAAAAAAAAAwAAAAACsWtzAAAAAGQAbxMAAAAAAAAAAQKxa3UAAAAAAAAAAL4Hp0/djcOTtw74RcG61/iP9ro2BnyOFR0Z3xjgMsrVAAAAAAx/eFQB1QqkAGOQiwAAAAgAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAEAAAABM1434AAAAAAFScZoAAAAAgAAAAAAAAAAAAAAAAAAAAMAAAAAArFrdQAAAABkAG8eAAAAAAAAAAEAAAAGAAAAAwKxa3MAAAACAAAAAL4Hp0/djcOTtw74RcG61/iP9ro2BnyOFR0Z3xjgMsrVAAAAAEdzHHcAAAAAAAAAAUVUWAAAAAAAiFZJtrzAu8HxgVF3Msk+SjJBIWa9ExB5oMrKb0kPrJMAAAAABUnGaHLv1t0BpbXWAAAAAAAAAAAAAAAAAAAAAQKxa3UAAAACAAAAAL4Hp0/djcOTtw74RcG61/iP9ro2BnyOFR0Z3xjgMsrVAAAAAEdzHHcAAAAAAAAAAUVUWAAAAAAAiFZJtrzAu8HxgVF3Msk+SjJBIWa9ExB5oMrKb0kPrJMAAAAABUmy4ChvHmEAlFriAAAAAAAAAAAAAAAAAAAAAwKxa3UAAAAAAAAAAL4Hp0/djcOTtw74RcG61/iP9ro2BnyOFR0Z3xjgMsrVAAAAAAx/eFQB1QqkAGOQiwAAAAgAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAEAAAABM1434AAAAAAFScZoAAAAAgAAAAAAAAAAAAAAAAAAAAMAAAAAArFrdQAAAABkAG8eAAAAAAAAAAECsWt1AAAAAAAAAAC+B6dP3Y3Dk7cO+EXButf4j/a6NgZ8jhUdGd8Y4DLK1QAAAAAMf3hUAdUKpABjkIsAAAAIAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAABAAAAATNeN+AAAAAABUmy4AAAAAIAAAAAAAAAAAAAAAAAAAADAAAAAAKxa3UAAAAAZABvHgAAAAAAAAADArFrcwAAAAEAAAAAvgenT92Nw5O3DvhFwbrX+I/2ujYGfI4VHRnfGOAyytUAAAABRVRYAAAAAACIVkm2vMC7wfGBUXcyyT5KMkEhZr0TEHmgyspvSQ+skwAAAE+W7pTjf/////////8AAAABAAAAAQAAAAFw+HPyAAAARkSap3YAAAAAAAAAAAAAAAECsWt1AAAAAQAAAAC+B6dP3Y3Dk7cO+EXButf4j/a6NgZ8jhUdGd8Y4DLK1QAAAAFFVFgAAAAAAIhWSba8wLvB8YFRdzLJPkoyQSFmvRMQeaDKym9JD6yTAAAAT5bulON//////////wAAAAEAAAABAAAAAXDzHW4AAABGRJqndgAAAAAAAAAAAAAAAA==" + "envelope_xdr": "AAAAAgAAAABzdv3ojkzWHMD7KUoXhrPx0GH18vHKV0ZfqpMiEblG1gAAp18AAAAAAAAAAgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAHN2/eiOTNYcwPspSheGs/HQYfXy8cpXRl+qkyIRuUbWAAAAGAAAAAEAAAABAAAAAPVf8W9m9DNgJmuV22+P7AHXYDEFQwauSks4BZj2z9EUAAAAAO3beL34UBBpCfUUPCfcnqX8YQKn41UhnKu6BInkVe9lAAAAAAAAAAEAAAABAAAAB+3beL34UBBpCfUUPCfcnqX8YQKn41UhnKu6BInkVe9lAAAAAQAAAAbhq+vRxjISTR62JpK1SAnzz1cZKpSpkRlwLJH6ZrzssgAAABQAAUKLAAAUkAAAAIAAAACoAAAAAAAAACEAAAAAAAAAARG5RtYAAABA+Vy3k86bNEP7rP8hb3cY1QWYhRa3CnF7jqHUj22Rd++2a0YwCKrMbofTUOb21GP6aFZwfKVvaokS22u1to5xDw==", + "resultXdr": "AAAAAAAApS4AAAAAAAAAAQAAAAAAAAAYAAAAAAAAAAEAAAANAAAAIOGr69HGMhJNHrYmkrVICfPPVxkqlKmRGXAskfpmvOyyAAAAAA==", + "result_meta_xdr": "AAAAAwAAAAIAAAADAAAAFgAAAAAAAAAAc3b96I5M1hzA+ylKF4az8dBh9fLxyldGX6qTIhG5RtYN4Lazp2JdKwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAANAAAAAGRuCr8AAAAAAAAAAQAAABYAAAAAAAAAAHN2/eiOTNYcwPspSheGs/HQYfXy8cpXRl+qkyIRuUbWDeC2s6diXSsAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAFgAAAABkbgrIAAAAAAAAAAEAAAABAAAAAAAAABYAAAAG4avr0cYyEk0etiaStUgJ889XGSqUqZEZcCyR+ma87LIAAAAUAAAAEgAAAADt23i9+FAQaQn1FDwn3J6l/GECp+NVIZyrugSJ5FXvZQAAAAAAAAAAAAAAAQAAAAAAAAAAAAClLgAAAAAAAAABAAAAAAAAABgAAAAAAAAAAQAAAA0AAAAg4avr0cYyEk0etiaStUgJ889XGSqUqZEZcCyR+ma87LIAAAAA1pFOFvAXyYyG3zRHjl+0ABs5xH4/40CX9PPHFC+QN5jLvEh1Deu4U1CTs96viKx/TP+HQlV2pY3iusdUrNtGFrr72ylPbuM+gn7/FJKmJcDFiKveRR/kP8mOYOcy9S4RAAAAAA==" } } ``` @@ -100,7 +100,7 @@ Clients will poll this to tell when the transaction has been completed. "createdAt": "1677009000", "applicationOrder": 1, "feeBump": false, - "envelope_xdr": "AAAAAgAAAAC+B6dP3Y3Dk7cO+EXButf4j/a6NgZ8jhUdGd8Y4DLK1QAAJxMB1QqkAGOQiwAAAAEAAAAAAAAAAAAAAABkAG82AAAAAAAAAAEAAAAAAAAAAwAAAAAAAAABRVRYAAAAAACIVkm2vMC7wfGBUXcyyT5KMkEhZr0TEHmgyspvSQ+skwAAAAAFSbLgKG8eYQCUWuIAAAAAR3McdwAAAAAAAAAB4DLK1QAAAEDJvETQ3zLdr1RXE4KEQ+tlmWPh6zpFu/KrAQOrYrYSxpbhB5DPZRJnn+ROtU8TnZhZ6xQ136VrqNQm/+LUOD8D", + "envelope_xdr": "AAAAAgAAAABzdv3ojkzWHMD7KUoXhrPx0GH18vHKV0ZfqpMiEblG1gAAp18AAAAAAAAAAgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAHN2/eiOTNYcwPspSheGs/HQYfXy8cpXRl+qkyIRuUbWAAAAGAAAAAEAAAABAAAAAPVf8W9m9DNgJmuV22+P7AHXYDEFQwauSks4BZj2z9EUAAAAAO3beL34UBBpCfUUPCfcnqX8YQKn41UhnKu6BInkVe9lAAAAAAAAAAEAAAABAAAAB+3beL34UBBpCfUUPCfcnqX8YQKn41UhnKu6BInkVe9lAAAAAQAAAAbhq+vRxjISTR62JpK1SAnzz1cZKpSpkRlwLJH6ZrzssgAAABQAAUKLAAAUkAAAAIAAAACoAAAAAAAAACEAAAAAAAAAARG5RtYAAABA+Vy3k86bNEP7rP8hb3cY1QWYhRa3CnF7jqHUj22Rd++2a0YwCKrMbofTUOb21GP6aFZwfKVvaokS22u1to5xDw==", "resultXdr": "AAAAAAAAAGT////7AAAAAA==", "result_meta_xdr": "AAAAAgAAAAIAAAADArFrdQAAAAAAAAAAvgenT92Nw5O3DvhFwbrX+I/2ujYGfI4VHRnfGOAyytUAAAAADH94VAHVCqQAY5CKAAAACAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAQAAAAEzXjfgAAAAAAVJxmgAAAACAAAAAAAAAAAAAAAAAAAAAwAAAAACsWtzAAAAAGQAbxMAAAAAAAAAAQKxa3UAAAAAAAAAAL4Hp0/djcOTtw74RcG61/iP9ro2BnyOFR0Z3xjgMsrVAAAAAAx/eFQB1QqkAGOQiwAAAAgAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAEAAAABM1434AAAAAAFScZoAAAAAgAAAAAAAAAAAAAAAAAAAAMAAAAAArFrdQAAAABkAG8eAAAAAAAAAAEAAAAGAAAAAwKxa3MAAAACAAAAAL4Hp0/djcOTtw74RcG61/iP9ro2BnyOFR0Z3xjgMsrVAAAAAEdzHHcAAAAAAAAAAUVUWAAAAAAAiFZJtrzAu8HxgVF3Msk+SjJBIWa9ExB5oMrKb0kPrJMAAAAABUnGaHLv1t0BpbXWAAAAAAAAAAAAAAAAAAAAAQKxa3UAAAACAAAAAL4Hp0/djcOTtw74RcG61/iP9ro2BnyOFR0Z3xjgMsrVAAAAAEdzHHcAAAAAAAAAAUVUWAAAAAAAiFZJtrzAu8HxgVF3Msk+SjJBIWa9ExB5oMrKb0kPrJMAAAAABUmy4ChvHmEAlFriAAAAAAAAAAAAAAAAAAAAAwKxa3UAAAAAAAAAAL4Hp0/djcOTtw74RcG61/iP9ro2BnyOFR0Z3xjgMsrVAAAAAAx/eFQB1QqkAGOQiwAAAAgAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAEAAAABM1434AAAAAAFScZoAAAAAgAAAAAAAAAAAAAAAAAAAAMAAAAAArFrdQAAAABkAG8eAAAAAAAAAAECsWt1AAAAAAAAAAC+B6dP3Y3Dk7cO+EXButf4j/a6NgZ8jhUdGd8Y4DLK1QAAAAAMf3hUAdUKpABjkIsAAAAIAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAABAAAAATNeN+AAAAAABUmy4AAAAAIAAAAAAAAAAAAAAAAAAAADAAAAAAKxa3UAAAAAZABvHgAAAAAAAAADArFrcwAAAAEAAAAAvgenT92Nw5O3DvhFwbrX+I/2ujYGfI4VHRnfGOAyytUAAAABRVRYAAAAAACIVkm2vMC7wfGBUXcyyT5KMkEhZr0TEHmgyspvSQ+skwAAAE+W7pTjf/////////8AAAABAAAAAQAAAAFw+HPyAAAARkSap3YAAAAAAAAAAAAAAAECsWt1AAAAAQAAAAC+B6dP3Y3Dk7cO+EXButf4j/a6NgZ8jhUdGd8Y4DLK1QAAAAFFVFgAAAAAAIhWSba8wLvB8YFRdzLJPkoyQSFmvRMQeaDKym9JD6yTAAAAT5bulON//////////wAAAAEAAAABAAAAAXDzHW4AAABGRJqndgAAAAAAAAAAAAAAAA==" } diff --git a/api/methods/sendTransaction.mdx b/api/methods/sendTransaction.mdx index e30bd89c0..928db48d7 100644 --- a/api/methods/sendTransaction.mdx +++ b/api/methods/sendTransaction.mdx @@ -29,15 +29,13 @@ This supports all transactions, not only smart contract-related transactions. ### Request -The following example request uses a transaction to invoke the `increment` method of the [`increment` example contract]. - ```json { "jsonrpc": "2.0", "id": 8675309, "method": "sendTransaction", "params": { - "transaction": "AAAAAgAAAAAdq+kGxmBG/ikQNdYHQ2fBAG+8Av/xp1ZfPZ9Xt42ragAAJxAAAoAqAAAAEAAAAAEAAAAAAAAAAAAAAABjzuUjAAAAAAAAAAEAAAAAAAAAGAAAAAAAAAACAAAABAAAAAEAAAAGAAAAIBv6ziOnWcVRdGMZjtFKSWnLSndMp9JPVLLXxQqAvKqJAAAABQAAAAlpbmNyZW1lbnQAAAAAAAACAAAABhv6ziOnWcVRdGMZjtFKSWnLSndMp9JPVLLXxQqAvKqJAAAAAwAAAAMAAAAH1CpZRz0BSN27PmqtsmBhv+AAJJwHgmrvJNPrHRAl9l8AAAABAAAABhv6ziOnWcVRdGMZjtFKSWnLSndMp9JPVLLXxQqAvKqJAAAABQAAAAdDT1VOVEVSAAAAAAAAAAABt42ragAAAECMEuou2IDSTtqTu62ZOBkJZJc3aYL10ZlsRg9CMXXYwk1Lv6c23Iy3HawBPKOE2DQKhbi49cdPkMI5n/QtnkgE" + "transaction": "AAAAAgAAAABzdv3ojkzWHMD7KUoXhrPx0GH18vHKV0ZfqpMiEblG1gAAp18AAAAAAAAAAgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAHN2/eiOTNYcwPspSheGs/HQYfXy8cpXRl+qkyIRuUbWAAAAGAAAAAEAAAABAAAAAPVf8W9m9DNgJmuV22+P7AHXYDEFQwauSks4BZj2z9EUAAAAAO3beL34UBBpCfUUPCfcnqX8YQKn41UhnKu6BInkVe9lAAAAAAAAAAEAAAABAAAAB+3beL34UBBpCfUUPCfcnqX8YQKn41UhnKu6BInkVe9lAAAAAQAAAAbhq+vRxjISTR62JpK1SAnzz1cZKpSpkRlwLJH6ZrzssgAAABQAAUKLAAAUkAAAAIAAAACoAAAAAAAAACEAAAAAAAAAARG5RtYAAABA+Vy3k86bNEP7rP8hb3cY1QWYhRa3CnF7jqHUj22Rd++2a0YwCKrMbofTUOb21GP6aFZwfKVvaokS22u1to5xDw==" } } ``` @@ -49,7 +47,7 @@ The following example request uses a transaction to invoke the `increment` metho "jsonrpc": "2.0", "id": 8675309, "result": { - "hash": "d70916f8b8aa55c13d5974a38e32a3efe440ef6870c0f0a07075d1c128d23698", + "hash": "a01441a4d0b80769d2c2d97dcd28d13e9036065da14ea83731424d77efc50894", "status": "PENDING", "latestLedger": "45075181", "latestLedgerCloseTime": "1677115742" @@ -57,4 +55,3 @@ The following example request uses a transaction to invoke the `increment` metho } ``` -[`increment` example contract]: /docs/getting-started/storing-data From e671a56bd2bd4d5a2774e7b38e0341dc57b06036 Mon Sep 17 00:00:00 2001 From: Alfonso Acosta Date: Wed, 24 May 2023 17:47:19 +0200 Subject: [PATCH 020/133] Update API method documentation (#445) * Update XDR in JSON examples * replace `getLedgerEntry` by `getLedgerEntries` --- api/methods/getLedgerEntries.mdx | 316 +++++++++++++++++++++++++++++++ 1 file changed, 316 insertions(+) create mode 100644 api/methods/getLedgerEntries.mdx diff --git a/api/methods/getLedgerEntries.mdx b/api/methods/getLedgerEntries.mdx new file mode 100644 index 000000000..f7039f232 --- /dev/null +++ b/api/methods/getLedgerEntries.mdx @@ -0,0 +1,316 @@ +--- +sidebar_position: 4 +--- + +For reading the current value of ledger entries directly. + +Allows you to directly inspect the _current state_ of a contract, a contract's code, or any other ledger entry. This is a backup way to access your contract data which may not be available via events or `simulateTransaction`. + +To fetch contract wasm byte-code, use the ContractCode ledger entry key. + +## Parameters + +- `key`: `` - The key of the ledger entry you wish to retrieve (serialized in a base64 string) + +## Return + +- `` + - `entries`: Array containing the specified ledger entries which were found + - `key`: `` - The key of the ledger entry (serialized in a base64 string) + - `xdr`: `` - The current value of the given ledger entry (serialized in a base64 string) + - `lastModifiedLedgerSeq`: `` - The ledger number of the last time this entry was updated (optional) + - `latestLedger`: `` - The current latest ledger observed by the node when this response was generated. + +## Examples + +### Request + +```json +{ + "jsonrpc": "2.0", + "id": 8675309, + "method": "getLedgerEntry", + "params": { + "keys": ["AAAAB+qfy4GuVKKfazvyk4R9P9fpo2n9HICsr+xqvVcTF+DC","AAAABuGr69HGMhJNHrYmkrVICfPPVxkqlKmRGXAskfpmvOyyAAAAFA=="] + } +} +``` + +### Response + +```json +{ + "jsonrpc": "2.0", + "id": 8675309, + "result": { + "entries":[ + { + "key": "AAAAB+qfy4GuVKKfazvyk4R9P9fpo2n9HICsr+xqvVcTF+DC", + "xdr": "AAAABwAAAADqn8uBrlSin2s78pOEfT/X6aNp/RyArK/sar1XExfgwgAAAAphIGNvbnRyYWN0AAA=", + "lastModifiedLedgerSeq": "13" + } + ], + "latestLedger": "179436" + } +} +``` + +### Generating `key` Parameters + +The example above is querying a deployment of the [`increment` example contract] to find out what value is stored in the `COUNTER` ledger entry. This value can be derived using the following code snippets. You should be able to extrapolate from the provided examples how to get `key` parameters for other types and values. + +#### Python + +:::note + +If you are using the Python `stellar_sdk` to generate these keys, you will need to install the latest version of the `soroban` branch of the SDK. This can be done like so: + +```bash +pip install git+https://github.com/StellarCN/py-stellar-base.git@soroban +``` + +::: + +```python +import stellar_sdk.xdr as xdr, stellar_sdk.soroban_types as soroban_types + +def get_ledger_key_symbol(contract_id, symbol_text): + ledger_key = xdr.ledger_key.LedgerKey( + type=xdr.ledger_entry_type.LedgerEntryType.CONTRACT_DATA, + contract_data=xdr.ledger_key_contract_data.LedgerKeyContractData( + contract_id=xdr.hash.Hash(bytes.fromhex(contract_id)), + key=soroban_types.Symbol(symbol_text)._to_xdr_sc_val() + ) + ) + return ledger_key.to_xdr() + +print(get_ledger_key_symbol( + "1bface23a759c5517463198ed14a4969cb4a774ca7d24f54b2d7c50a80bcaa89", + "COUNTER" +)) +``` + +#### JavaScript + +```js +const SorobanClient = require('soroban-client') +const xdr = SorobanClient.xdr + +const getLedgerKeySymbol = (contractId, symbolText) => { + const ledgerKey = xdr.LedgerKey.contractData( + new xdr.LedgerKeyContractData({ + contractId: Buffer.from(contractId, 'hex'), + key: xdr.ScVal.scvSymbol(symbolText) + }) + ) + return ledgerKey.toXDR('base64') +} +console.log(getLedgerKeySymbol( + '1bface23a759c5517463198ed14a4969cb4a774ca7d24f54b2d7c50a80bcaa89', + 'COUNTER' +)) +``` + +### Requesting an Account + +:::note + +This functionality is included in the js [soroban-client](https://www.npmjs.com/package/soroban-client) package as `Server.getAccount(address)`. + +::: + +Accounts are stored as ledger entries, so we can use this method to look up an account along with it's current sequence number. + +```js +const SorobanClient = require('soroban-client') +const xdr = SorobanClient.xdr + +const getLedgerKeyAccount = (address) => { + // We can use the `StrKey` library here to decode the address into the public + // key. + const publicKey = SorobanClient.StrKey.decodeEd25519PublicKey(address); + + const ledgerKey = xdr.LedgerKey.account( + new xdr.LedgerKeyAccount({ + accountId: xdr.PublicKey.publicKeyTypeEd25519( + publicKey + ), + }) + ) + return ledgerKey.toXDR('base64') +} + +console.log(getLedgerKeyAccount( + 'GCU5YE6IVBOEZ5LUU5N2NB55VPB5YZNFERT65SSTVXTNMS7IEQWXKBM2' +)) + +# OUTPUT: AAAAAAAAAACp3BPIqFxM9XSnW6aHvavD3GWlJGfuylOt5tZL6CQtdQ== +``` + + +We then take our output from this function, and use it as the `key` parameter in our call to the `getLedgerEntry` method. + +```json +{ + "jsonrpc": "2.0", + "id": 8675309, + "method": "getLedgerEntries", + "params": { + "keys": ["AAAAAAAAAACp3BPIqFxM9XSnW6aHvavD3GWlJGfuylOt5tZL6CQtdQ=="] + } +} +``` + +And the response we get contains the `LedgerEntryData` with the current information about this account. + +```json +{ + "jsonrpc": "2.0", + "id": 8675309, + "result": { + "entries":[ + { + "key": "AAAAAAAAAACp3BPIqFxM9XSnW6aHvavD3GWlJGfuylOt5tZL6CQtdQ==", + "xdr": "AAAAAAAAAACp3BPIqFxM9XSnW6aHvavD3GWlJGfuylOt5tZL6CQtdQAAABdIdugAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAA", + "lastModifiedLedgerSeq": "164303" + } + ], + "latestLedger": "246819" + } +} +``` + +We can then parse this result as an `xdr.LedgerEntryData` type. + +```js +const parsed = xdr.LedgerEntryData.fromXDR( + 'AAAAAAAAAACp3BPIqFxM9XSnW6aHvavD3GWlJGfuylOt5tZL6CQtdQAAABdIdugAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAA', + 'base64' +) +console.log(parsed); +``` + +### Requesting a Contract's WASM Code + +This can be a bit tricky to wrap your head around, but the conventions do make sense once you let it sink in. + +In the previous examples, the `COUNTER` _key_ was used as a `LedgerKey` while the incremented _value_ was stored in a **`LedgerEntry`**. "Ledger Entry" is the relevant term to keep in mind during this discussion. That `LedgerEntry` was stored on the Stellar ledger, and was associated with a corresponding `LedgerKey`. `LedgerKey: LedgerEntry` works the same way you would think of almost any `key: value` storage system. + +#### How Soroban Contract Deployment Works + +When you deploy a contract, first the code is "installed" (i.e. it is uploaded onto the blockchain). This creates a `LedgerEntry` containing the WASM byte-code, which is uniquely identified by its hash (that is, the hash of the uploaded code itself). Then, when the contract is "deployed," we create a `LedgerEntry` with a reference to that code's hash. So fetching the contract code is a two-step process: + +1. First, we look up the contract itself, to see which code hash it is referencing. +2. Then, we can look up the raw WASM byte-code using that hash. + +#### Request the `LedgerKey` for the Contract Code + +```python +def get_ledger_key_contract_code(contract_id): + ledger_key = xdr.ledger_key.LedgerKey( + type=xdr.ledger_entry_type.LedgerEntryType.CONTRACT_DATA, + contract_data=xdr.ledger_key_contract_data.LedgerKeyContractData( + contract_id=xdr.hash.Hash(bytes.fromhex(contract_id)), + key=xdr.sc_val.SCVal( + type=xdr.sc_val_type.SCValType.SCV_STATIC, + ic=xdr.sc_static.SCStatic.SCS_LEDGER_KEY_CONTRACT_CODE + ) + ) + ) + return ledger_key.to_xdr() +print(get_ledger_key_contract_code( + "1bface23a759c5517463198ed14a4969cb4a774ca7d24f54b2d7c50a80bcaa89" +)) +# OUTPUT: AAAABhv6ziOnWcVRdGMZjtFKSWnLSndMp9JPVLLXxQqAvKqJAAAAAwAAAAM= +``` + +We then take our output from this function, and use it as the `key` parameter in our call to the `getLedgerEntry` method. + +```json +{ + "jsonrpc": "2.0", + "id": 8675309, + "method": "getLedgerEntry", + "params": { + "keys": ["AAAABhv6ziOnWcVRdGMZjtFKSWnLSndMp9JPVLLXxQqAvKqJAAAAAwAAAAM="], + } +} +``` + +And the response we get contains the `LedgerEntryData` that can be used to find the `hash` we must use to request the WASM byte-code. This hash is the `LedgerKey` that's been associated with the deployed contract code. + +```json +{ + "jsonrpc": "2.0", + "id": 8675309, + "result": { + "entries":[ + { + "key": "AAAABhv6ziOnWcVRdGMZjtFKSWnLSndMp9JPVLLXxQqAvKqJAAAAAwAAAAM=", + "xdr": "AAAABhv6ziOnWcVRdGMZjtFKSWnLSndMp9JPVLLXxQqAvKqJAAAAAwAAAAMAAAAEAAAAAQAAAAcAAAAA1CpZRz0BSN27PmqtsmBhv+AAJJwHgmrvJNPrHRAl9l8=", + "lastModifiedLedgerSeq": "164303" + } + ], + "latestLedger": "246819" + } +} +``` + +#### Request the `ContractCode` Using the Retrieved `LedgerKey` + +Now take the `xdr` field from the previous response's `result` object, and create a `LedgerKey` from the hash contained inside. + +```python +def get_ledger_key_wasm_id(contract_code_ledger_entry_data): + # First, we dig the wasm_id hash out of the xdr we received from RPC + contract_code_wasm_hash = xdr.ledger_entry_data.LedgerEntryData.from_xdr( + contract_code_ledger_entry_data + ).contract_data.val.obj.contract_code.wasm_id.hash + # Now, we can create the `LedgerKey` as we've done in previous examples + ledger_key = xdr.ledger_key.LedgerKey( + type=xdr.ledger_entry_type.LedgerEntryType.CONTRACT_CODE, + contract_code=xdr.ledger_key_contract_code.LedgerKeyContractCode( + hash=xdr.hash.Hash(contract_code_wasm_hash) + ) + ) + return ledger_key.to_xdr() +print(get_ledger_key_wasm_id( + "AAAABhv6ziOnWcVRdGMZjtFKSWnLSndMp9JPVLLXxQqAvKqJAAAAAwAAAAMAAAAEAAAAAQAAAAcAAAAA1CpZRz0BSN27PmqtsmBhv+AAJJwHgmrvJNPrHRAl9l8=" +)) +# OUTPUT: AAAAB9QqWUc9AUjduz5qrbJgYb/gACScB4Jq7yTT6x0QJfZf +``` + +Now, finally we have a `LedgerKey` that correspond to the WASM byte-code that has been deployed under the `ContractId` we started out with so very long ago. This `LedgerKey` can be used in a final request to the Soroban-RPC endpoint. + +```json +{ + "jsonrpc": "2.0", + "id": 8675309, + "method": "getLedgerEntry", + "params": { + "keys": ["AAAAB9QqWUc9AUjduz5qrbJgYb/gACScB4Jq7yTT6x0QJfZf"] + } +} +``` + +And the response we get contains (even more) `LedgerEntryData` that we can decode and parse to get the actual, deployed, real-life contract byte-code. We'll leave that exercise up to you. You can check out what is contained using the ["View XDR" page of the Stellar Laboratory]. + +```json +{ + "jsonrpc": "2.0", + "id": 8675309, + "result": { + "entries":[ + { + "key": "AAAAB9QqWUc9AUjduz5qrbJgYb/gACScB4Jq7yTT6x0QJfZf", + "xdr": "AAAABwAAAADUKllHPQFI3bs+aq2yYGG/4AAknAeCau8k0+sdECX2XwAAAakAYXNtAQAAAAEXBWABfgF+YAJ+fgF+YAABfmABfwBgAAACEwMBbAEwAAABbAExAAABbAFfAAEDBgUCAwQEBAUDAQAQBhkDfwFBgIDAAAt/AEGAgMAAC38AQYCAwAALBzUFBm1lbW9yeQIACWluY3JlbWVudAADAV8ABwpfX2RhdGFfZW5kAwELX19oZWFwX2Jhc2UDAgrAAQWhAQMBfwF+AX8jgICAgABBEGsiACSAgICAAAJAAkBC2YP9sqDNAxCAgICAAEIVUg0AAkBC2YP9sqDNAxCBgICAACIBQg+DQgFSDQAgAUIEiKchAgwCCyAAQQhqEISAgIAAAAtBACECCwJAIAJBAWoiAg0AEIWAgIAAAAtC2YP9sqDNAyACrUIEhkIBhCIBEIKAgIAAGiAAQRBqJICAgIAAIAELCQAQhoCAgAAACwkAEIaAgIAAAAsEAAAACwIACwAeEWNvbnRyYWN0ZW52bWV0YXYwAAAAAAAAAAAAAAAbAC8OY29udHJhY3RzcGVjdjAAAAAAAAAACWluY3JlbWVudAAAAAAAAAAAAAABAAAAAQAAAA==", + "lastModifiedLedgerSeq": "164302" + } + ], + "latestLedger": "246883" + } +} +``` + +[`increment` example contract]: /docs/getting-started/storing-data +["View XDR" page of the Stellar Laboratory]: From 523d061b857a9842e4228a1f2ce75f539df15e96 Mon Sep 17 00:00:00 2001 From: Alfonso Acosta Date: Thu, 25 May 2023 19:58:45 +0200 Subject: [PATCH 021/133] API: fix parameter description in getLedgerEntries (#457) --- api/methods/getLedgerEntries.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/methods/getLedgerEntries.mdx b/api/methods/getLedgerEntries.mdx index f7039f232..b77340a80 100644 --- a/api/methods/getLedgerEntries.mdx +++ b/api/methods/getLedgerEntries.mdx @@ -10,7 +10,7 @@ To fetch contract wasm byte-code, use the ContractCode ledger entry key. ## Parameters -- `key`: `` - The key of the ledger entry you wish to retrieve (serialized in a base64 string) +- `keys`: `` - Array containing the keys of the ledger entries you wish to retrieve. (an array of serialized base64 strings) ## Return From 391b6388f4c5574848f9060d88ac823f018c0c6f Mon Sep 17 00:00:00 2001 From: Alfonso Acosta Date: Thu, 25 May 2023 19:58:45 +0200 Subject: [PATCH 022/133] API: fix parameter description in getLedgerEntries (#457) --- api/methods/getLedgerEntries.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/methods/getLedgerEntries.mdx b/api/methods/getLedgerEntries.mdx index f7039f232..b77340a80 100644 --- a/api/methods/getLedgerEntries.mdx +++ b/api/methods/getLedgerEntries.mdx @@ -10,7 +10,7 @@ To fetch contract wasm byte-code, use the ContractCode ledger entry key. ## Parameters -- `key`: `` - The key of the ledger entry you wish to retrieve (serialized in a base64 string) +- `keys`: `` - Array containing the keys of the ledger entries you wish to retrieve. (an array of serialized base64 strings) ## Return From 42c26b64ae751f932ad9dde2cb9e6b0fcd618a07 Mon Sep 17 00:00:00 2001 From: Jun Luo <4catcode@gmail.com> Date: Sat, 10 Jun 2023 00:51:18 +0800 Subject: [PATCH 023/133] Update getLedgerEntries docs. (#472) --- api/methods/getLedgerEntries.mdx | 125 +++++++++++++++++-------------- 1 file changed, 69 insertions(+), 56 deletions(-) diff --git a/api/methods/getLedgerEntries.mdx b/api/methods/getLedgerEntries.mdx index b77340a80..06d026f03 100644 --- a/api/methods/getLedgerEntries.mdx +++ b/api/methods/getLedgerEntries.mdx @@ -29,7 +29,7 @@ To fetch contract wasm byte-code, use the ContractCode ledger entry key. { "jsonrpc": "2.0", "id": 8675309, - "method": "getLedgerEntry", + "method": "getLedgerEntries", "params": { "keys": ["AAAAB+qfy4GuVKKfazvyk4R9P9fpo2n9HICsr+xqvVcTF+DC","AAAABuGr69HGMhJNHrYmkrVICfPPVxkqlKmRGXAskfpmvOyyAAAAFA=="] } @@ -55,9 +55,9 @@ To fetch contract wasm byte-code, use the ContractCode ledger entry key. } ``` -### Generating `key` Parameters +### Generating `keys` Parameters -The example above is querying a deployment of the [`increment` example contract] to find out what value is stored in the `COUNTER` ledger entry. This value can be derived using the following code snippets. You should be able to extrapolate from the provided examples how to get `key` parameters for other types and values. +The example above is querying a deployment of the [`increment` example contract] to find out what value is stored in the `COUNTER` ledger entry. This value can be derived using the following code snippets. You should be able to extrapolate from the provided examples how to get `keys` parameters for other types and values. #### Python @@ -72,22 +72,24 @@ pip install git+https://github.com/StellarCN/py-stellar-base.git@soroban ::: ```python -import stellar_sdk.xdr as xdr, stellar_sdk.soroban_types as soroban_types +from stellar_sdk import xdr +from stellar_sdk.soroban import types as soroban_types -def get_ledger_key_symbol(contract_id, symbol_text): - ledger_key = xdr.ledger_key.LedgerKey( - type=xdr.ledger_entry_type.LedgerEntryType.CONTRACT_DATA, - contract_data=xdr.ledger_key_contract_data.LedgerKeyContractData( +def get_ledger_key_symbol(contract_id: str, symbol_text: str) -> str: + ledger_key = xdr.LedgerKey( + type=xdr.LedgerEntryType.CONTRACT_DATA, + contract_data=xdr.LedgerKeyContractData( contract_id=xdr.hash.Hash(bytes.fromhex(contract_id)), - key=soroban_types.Symbol(symbol_text)._to_xdr_sc_val() - ) + key=soroban_types.Symbol(symbol_text).to_xdr_sc_val(), + ), ) return ledger_key.to_xdr() -print(get_ledger_key_symbol( - "1bface23a759c5517463198ed14a4969cb4a774ca7d24f54b2d7c50a80bcaa89", - "COUNTER" -)) +print( + get_ledger_key_symbol( + "58b53604fda60524fa7097fca030a6e840c4a84dccf7a4fe909790245e31a86f", "COUNTER" + ) +) ``` #### JavaScript @@ -106,7 +108,7 @@ const getLedgerKeySymbol = (contractId, symbolText) => { return ledgerKey.toXDR('base64') } console.log(getLedgerKeySymbol( - '1bface23a759c5517463198ed14a4969cb4a774ca7d24f54b2d7c50a80bcaa89', + '58b53604fda60524fa7097fca030a6e840c4a84dccf7a4fe909790245e31a86f', 'COUNTER' )) ``` @@ -148,7 +150,7 @@ console.log(getLedgerKeyAccount( ``` -We then take our output from this function, and use it as the `key` parameter in our call to the `getLedgerEntry` method. +We then take our output from this function, and use it as the element in the `keys` array parameter in our call to the `getLedgerEntries` method. ```json { @@ -206,33 +208,39 @@ When you deploy a contract, first the code is "installed" (i.e. it is uploaded o #### Request the `LedgerKey` for the Contract Code ```python -def get_ledger_key_contract_code(contract_id): - ledger_key = xdr.ledger_key.LedgerKey( - type=xdr.ledger_entry_type.LedgerEntryType.CONTRACT_DATA, - contract_data=xdr.ledger_key_contract_data.LedgerKeyContractData( - contract_id=xdr.hash.Hash(bytes.fromhex(contract_id)), - key=xdr.sc_val.SCVal( - type=xdr.sc_val_type.SCValType.SCV_STATIC, - ic=xdr.sc_static.SCStatic.SCS_LEDGER_KEY_CONTRACT_CODE - ) - ) +from stellar_sdk import xdr + +def get_ledger_key_contract_code(contract_id: str) -> str: + ledger_key = xdr.LedgerKey( + type=xdr.LedgerEntryType.CONTRACT_DATA, + contract_data=xdr.LedgerKeyContractData( + contract_id=xdr.Hash(bytes.fromhex(contract_id)), + key=xdr.SCVal( + type=xdr.SCValType.SCV_LEDGER_KEY_CONTRACT_EXECUTABLE, + ), + ), ) return ledger_key.to_xdr() -print(get_ledger_key_contract_code( - "1bface23a759c5517463198ed14a4969cb4a774ca7d24f54b2d7c50a80bcaa89" -)) -# OUTPUT: AAAABhv6ziOnWcVRdGMZjtFKSWnLSndMp9JPVLLXxQqAvKqJAAAAAwAAAAM= + +print( + get_ledger_key_contract_code( + "af9a2527e3b3b5571d63b0246ba32b7d31a5323766df7c60dfc0b3e3ba6fdf23" + ) +) +# OUTPUT: AAAABq+aJSfjs7VXHWOwJGujK30xpTI3Zt98YN/As+O6b98jAAAAFA== ``` -We then take our output from this function, and use it as the `key` parameter in our call to the `getLedgerEntry` method. +We then take our output from this function, and use it as the element in the `keys` array parameter in our call to the `getLedgerEntries` method. ```json { "jsonrpc": "2.0", "id": 8675309, - "method": "getLedgerEntry", + "method": "getLedgerEntries", "params": { - "keys": ["AAAABhv6ziOnWcVRdGMZjtFKSWnLSndMp9JPVLLXxQqAvKqJAAAAAwAAAAM="], + "keys": [ + "AAAABq+aJSfjs7VXHWOwJGujK30xpTI3Zt98YN/As+O6b98jAAAAFA==" + ] } } ``` @@ -244,14 +252,14 @@ And the response we get contains the `LedgerEntryData` that can be used to find "jsonrpc": "2.0", "id": 8675309, "result": { - "entries":[ + "entries": [ { - "key": "AAAABhv6ziOnWcVRdGMZjtFKSWnLSndMp9JPVLLXxQqAvKqJAAAAAwAAAAM=", - "xdr": "AAAABhv6ziOnWcVRdGMZjtFKSWnLSndMp9JPVLLXxQqAvKqJAAAAAwAAAAMAAAAEAAAAAQAAAAcAAAAA1CpZRz0BSN27PmqtsmBhv+AAJJwHgmrvJNPrHRAl9l8=", - "lastModifiedLedgerSeq": "164303" + "key": "AAAABq+aJSfjs7VXHWOwJGujK30xpTI3Zt98YN/As+O6b98jAAAAFA==", + "xdr": "AAAABq+aJSfjs7VXHWOwJGujK30xpTI3Zt98YN/As+O6b98jAAAAFAAAABIAAAAAZBYoEJT3IaPMMk3FoRmnEQHoDxewPZL+Uor+xWI4uII=", + "lastModifiedLedgerSeq": "261603" } ], - "latestLedger": "246819" + "latestLedger": "262322" } } ``` @@ -261,23 +269,28 @@ And the response we get contains the `LedgerEntryData` that can be used to find Now take the `xdr` field from the previous response's `result` object, and create a `LedgerKey` from the hash contained inside. ```python -def get_ledger_key_wasm_id(contract_code_ledger_entry_data): +from stellar_sdk import xdr + +def get_ledger_key_wasm_id(contract_code_ledger_entry_data: str) -> str: # First, we dig the wasm_id hash out of the xdr we received from RPC - contract_code_wasm_hash = xdr.ledger_entry_data.LedgerEntryData.from_xdr( + contract_code_wasm_hash = xdr.LedgerEntryData.from_xdr( contract_code_ledger_entry_data - ).contract_data.val.obj.contract_code.wasm_id.hash + ).contract_data.val.exec.wasm_id.hash # Now, we can create the `LedgerKey` as we've done in previous examples - ledger_key = xdr.ledger_key.LedgerKey( - type=xdr.ledger_entry_type.LedgerEntryType.CONTRACT_CODE, - contract_code=xdr.ledger_key_contract_code.LedgerKeyContractCode( + ledger_key = xdr.LedgerKey( + type=xdr.LedgerEntryType.CONTRACT_CODE, + contract_code=xdr.LedgerKeyContractCode( hash=xdr.hash.Hash(contract_code_wasm_hash) - ) + ), ) return ledger_key.to_xdr() -print(get_ledger_key_wasm_id( - "AAAABhv6ziOnWcVRdGMZjtFKSWnLSndMp9JPVLLXxQqAvKqJAAAAAwAAAAMAAAAEAAAAAQAAAAcAAAAA1CpZRz0BSN27PmqtsmBhv+AAJJwHgmrvJNPrHRAl9l8=" -)) -# OUTPUT: AAAAB9QqWUc9AUjduz5qrbJgYb/gACScB4Jq7yTT6x0QJfZf + +print( + get_ledger_key_wasm_id( + "AAAABq+aJSfjs7VXHWOwJGujK30xpTI3Zt98YN/As+O6b98jAAAAFAAAABIAAAAAZBYoEJT3IaPMMk3FoRmnEQHoDxewPZL+Uor+xWI4uII=" + ) +) +# OUTPUT: AAAAB2QWKBCU9yGjzDJNxaEZpxEB6A8XsD2S/lKK/sViOLiC ``` Now, finally we have a `LedgerKey` that correspond to the WASM byte-code that has been deployed under the `ContractId` we started out with so very long ago. This `LedgerKey` can be used in a final request to the Soroban-RPC endpoint. @@ -286,9 +299,9 @@ Now, finally we have a `LedgerKey` that correspond to the WASM byte-code that ha { "jsonrpc": "2.0", "id": 8675309, - "method": "getLedgerEntry", + "method": "getLedgerEntries", "params": { - "keys": ["AAAAB9QqWUc9AUjduz5qrbJgYb/gACScB4Jq7yTT6x0QJfZf"] + "keys": ["AAAAB2QWKBCU9yGjzDJNxaEZpxEB6A8XsD2S/lKK/sViOLiC"] } } ``` @@ -300,14 +313,14 @@ And the response we get contains (even more) `LedgerEntryData` that we can decod "jsonrpc": "2.0", "id": 8675309, "result": { - "entries":[ + "entries": [ { - "key": "AAAAB9QqWUc9AUjduz5qrbJgYb/gACScB4Jq7yTT6x0QJfZf", - "xdr": "AAAABwAAAADUKllHPQFI3bs+aq2yYGG/4AAknAeCau8k0+sdECX2XwAAAakAYXNtAQAAAAEXBWABfgF+YAJ+fgF+YAABfmABfwBgAAACEwMBbAEwAAABbAExAAABbAFfAAEDBgUCAwQEBAUDAQAQBhkDfwFBgIDAAAt/AEGAgMAAC38AQYCAwAALBzUFBm1lbW9yeQIACWluY3JlbWVudAADAV8ABwpfX2RhdGFfZW5kAwELX19oZWFwX2Jhc2UDAgrAAQWhAQMBfwF+AX8jgICAgABBEGsiACSAgICAAAJAAkBC2YP9sqDNAxCAgICAAEIVUg0AAkBC2YP9sqDNAxCBgICAACIBQg+DQgFSDQAgAUIEiKchAgwCCyAAQQhqEISAgIAAAAtBACECCwJAIAJBAWoiAg0AEIWAgIAAAAtC2YP9sqDNAyACrUIEhkIBhCIBEIKAgIAAGiAAQRBqJICAgIAAIAELCQAQhoCAgAAACwkAEIaAgIAAAAsEAAAACwIACwAeEWNvbnRyYWN0ZW52bWV0YXYwAAAAAAAAAAAAAAAbAC8OY29udHJhY3RzcGVjdjAAAAAAAAAACWluY3JlbWVudAAAAAAAAAAAAAABAAAAAQAAAA==", - "lastModifiedLedgerSeq": "164302" + "key": "AAAAB2QWKBCU9yGjzDJNxaEZpxEB6A8XsD2S/lKK/sViOLiC", + "xdr": "AAAABwAAAABkFigQlPcho8wyTcWhGacRAegPF7A9kv5Siv7FYji4ggAAAlQAYXNtAQAAAAEPA2ACfn4BfmABfgF+YAAAAgcBAXYBRwAAAwQDAQICBQMBABEGGQN/AUGAgMAAC38AQYWAwAALfwBBkIDAAAsHMQUGbWVtb3J5AgAFaGVsbG8AAQFfAAMKX19kYXRhX2VuZAMBC19faGVhcF9iYXNlAwIK4QID1gIDAn8CfgF/I4CAgIAAQSBrIgEkgICAgAACQAJAIACnQf8BcSICQQ5GDQAgAkHKAEcNAQtCACEDQXshAgNAAkACQAJAAkAgAkUNAEIBIQQgAkGFgMCAAGotAAAiBUHfAEYNAyAFrSEEIAVBUGpBCkkNAiAFQb9/akEaSQ0BAkAgBUGff2pBGk8NACAEQkV8IQQMBAsQgoCAgAAACyABIAA3AwggASADQgiGQg6ENwMAQQAhAgNAAkAgAkEQRw0AQQAhAgJAA0AgAkEQRg0BIAFBEGogAmogASACaikDADcDACACQQhqIQIMAAsLIAFBEGqtQiCGQgSEQoSAgIAgEICAgIAAIQQgAUEgaiSAgICAACAEDwsgAUEQaiACakICNwMAIAJBCGohAgwACwsgBEJLfCEEDAELIARCUnwhBAsgAkEBaiECIAQgA0IGhoQhAwwACwsAAAsEAAAACwIACwsOAQBBgIDAAAsFSGVsbG8AHhFjb250cmFjdGVudm1ldGF2MAAAAAAAAAAUAAAAJQBDDmNvbnRyYWN0c3BlY3YwAAAAAAAAAAAAAAAFaGVsbG8AAAAAAAABAAAAAAAAAAJ0bwAAAAAAEQAAAAEAAAPqAAAAEQ==", + "lastModifiedLedgerSeq": "75206" } ], - "latestLedger": "246883" + "latestLedger": "262384" } } ``` From 153e90296a9b3d54e2a56d10c1f64c75cd3216f6 Mon Sep 17 00:00:00 2001 From: Jun Luo <4catcode@gmail.com> Date: Sat, 10 Jun 2023 00:51:18 +0800 Subject: [PATCH 024/133] Update getLedgerEntries docs. (#472) --- api/methods/getLedgerEntries.mdx | 125 +++++++++++++++++-------------- 1 file changed, 69 insertions(+), 56 deletions(-) diff --git a/api/methods/getLedgerEntries.mdx b/api/methods/getLedgerEntries.mdx index b77340a80..06d026f03 100644 --- a/api/methods/getLedgerEntries.mdx +++ b/api/methods/getLedgerEntries.mdx @@ -29,7 +29,7 @@ To fetch contract wasm byte-code, use the ContractCode ledger entry key. { "jsonrpc": "2.0", "id": 8675309, - "method": "getLedgerEntry", + "method": "getLedgerEntries", "params": { "keys": ["AAAAB+qfy4GuVKKfazvyk4R9P9fpo2n9HICsr+xqvVcTF+DC","AAAABuGr69HGMhJNHrYmkrVICfPPVxkqlKmRGXAskfpmvOyyAAAAFA=="] } @@ -55,9 +55,9 @@ To fetch contract wasm byte-code, use the ContractCode ledger entry key. } ``` -### Generating `key` Parameters +### Generating `keys` Parameters -The example above is querying a deployment of the [`increment` example contract] to find out what value is stored in the `COUNTER` ledger entry. This value can be derived using the following code snippets. You should be able to extrapolate from the provided examples how to get `key` parameters for other types and values. +The example above is querying a deployment of the [`increment` example contract] to find out what value is stored in the `COUNTER` ledger entry. This value can be derived using the following code snippets. You should be able to extrapolate from the provided examples how to get `keys` parameters for other types and values. #### Python @@ -72,22 +72,24 @@ pip install git+https://github.com/StellarCN/py-stellar-base.git@soroban ::: ```python -import stellar_sdk.xdr as xdr, stellar_sdk.soroban_types as soroban_types +from stellar_sdk import xdr +from stellar_sdk.soroban import types as soroban_types -def get_ledger_key_symbol(contract_id, symbol_text): - ledger_key = xdr.ledger_key.LedgerKey( - type=xdr.ledger_entry_type.LedgerEntryType.CONTRACT_DATA, - contract_data=xdr.ledger_key_contract_data.LedgerKeyContractData( +def get_ledger_key_symbol(contract_id: str, symbol_text: str) -> str: + ledger_key = xdr.LedgerKey( + type=xdr.LedgerEntryType.CONTRACT_DATA, + contract_data=xdr.LedgerKeyContractData( contract_id=xdr.hash.Hash(bytes.fromhex(contract_id)), - key=soroban_types.Symbol(symbol_text)._to_xdr_sc_val() - ) + key=soroban_types.Symbol(symbol_text).to_xdr_sc_val(), + ), ) return ledger_key.to_xdr() -print(get_ledger_key_symbol( - "1bface23a759c5517463198ed14a4969cb4a774ca7d24f54b2d7c50a80bcaa89", - "COUNTER" -)) +print( + get_ledger_key_symbol( + "58b53604fda60524fa7097fca030a6e840c4a84dccf7a4fe909790245e31a86f", "COUNTER" + ) +) ``` #### JavaScript @@ -106,7 +108,7 @@ const getLedgerKeySymbol = (contractId, symbolText) => { return ledgerKey.toXDR('base64') } console.log(getLedgerKeySymbol( - '1bface23a759c5517463198ed14a4969cb4a774ca7d24f54b2d7c50a80bcaa89', + '58b53604fda60524fa7097fca030a6e840c4a84dccf7a4fe909790245e31a86f', 'COUNTER' )) ``` @@ -148,7 +150,7 @@ console.log(getLedgerKeyAccount( ``` -We then take our output from this function, and use it as the `key` parameter in our call to the `getLedgerEntry` method. +We then take our output from this function, and use it as the element in the `keys` array parameter in our call to the `getLedgerEntries` method. ```json { @@ -206,33 +208,39 @@ When you deploy a contract, first the code is "installed" (i.e. it is uploaded o #### Request the `LedgerKey` for the Contract Code ```python -def get_ledger_key_contract_code(contract_id): - ledger_key = xdr.ledger_key.LedgerKey( - type=xdr.ledger_entry_type.LedgerEntryType.CONTRACT_DATA, - contract_data=xdr.ledger_key_contract_data.LedgerKeyContractData( - contract_id=xdr.hash.Hash(bytes.fromhex(contract_id)), - key=xdr.sc_val.SCVal( - type=xdr.sc_val_type.SCValType.SCV_STATIC, - ic=xdr.sc_static.SCStatic.SCS_LEDGER_KEY_CONTRACT_CODE - ) - ) +from stellar_sdk import xdr + +def get_ledger_key_contract_code(contract_id: str) -> str: + ledger_key = xdr.LedgerKey( + type=xdr.LedgerEntryType.CONTRACT_DATA, + contract_data=xdr.LedgerKeyContractData( + contract_id=xdr.Hash(bytes.fromhex(contract_id)), + key=xdr.SCVal( + type=xdr.SCValType.SCV_LEDGER_KEY_CONTRACT_EXECUTABLE, + ), + ), ) return ledger_key.to_xdr() -print(get_ledger_key_contract_code( - "1bface23a759c5517463198ed14a4969cb4a774ca7d24f54b2d7c50a80bcaa89" -)) -# OUTPUT: AAAABhv6ziOnWcVRdGMZjtFKSWnLSndMp9JPVLLXxQqAvKqJAAAAAwAAAAM= + +print( + get_ledger_key_contract_code( + "af9a2527e3b3b5571d63b0246ba32b7d31a5323766df7c60dfc0b3e3ba6fdf23" + ) +) +# OUTPUT: AAAABq+aJSfjs7VXHWOwJGujK30xpTI3Zt98YN/As+O6b98jAAAAFA== ``` -We then take our output from this function, and use it as the `key` parameter in our call to the `getLedgerEntry` method. +We then take our output from this function, and use it as the element in the `keys` array parameter in our call to the `getLedgerEntries` method. ```json { "jsonrpc": "2.0", "id": 8675309, - "method": "getLedgerEntry", + "method": "getLedgerEntries", "params": { - "keys": ["AAAABhv6ziOnWcVRdGMZjtFKSWnLSndMp9JPVLLXxQqAvKqJAAAAAwAAAAM="], + "keys": [ + "AAAABq+aJSfjs7VXHWOwJGujK30xpTI3Zt98YN/As+O6b98jAAAAFA==" + ] } } ``` @@ -244,14 +252,14 @@ And the response we get contains the `LedgerEntryData` that can be used to find "jsonrpc": "2.0", "id": 8675309, "result": { - "entries":[ + "entries": [ { - "key": "AAAABhv6ziOnWcVRdGMZjtFKSWnLSndMp9JPVLLXxQqAvKqJAAAAAwAAAAM=", - "xdr": "AAAABhv6ziOnWcVRdGMZjtFKSWnLSndMp9JPVLLXxQqAvKqJAAAAAwAAAAMAAAAEAAAAAQAAAAcAAAAA1CpZRz0BSN27PmqtsmBhv+AAJJwHgmrvJNPrHRAl9l8=", - "lastModifiedLedgerSeq": "164303" + "key": "AAAABq+aJSfjs7VXHWOwJGujK30xpTI3Zt98YN/As+O6b98jAAAAFA==", + "xdr": "AAAABq+aJSfjs7VXHWOwJGujK30xpTI3Zt98YN/As+O6b98jAAAAFAAAABIAAAAAZBYoEJT3IaPMMk3FoRmnEQHoDxewPZL+Uor+xWI4uII=", + "lastModifiedLedgerSeq": "261603" } ], - "latestLedger": "246819" + "latestLedger": "262322" } } ``` @@ -261,23 +269,28 @@ And the response we get contains the `LedgerEntryData` that can be used to find Now take the `xdr` field from the previous response's `result` object, and create a `LedgerKey` from the hash contained inside. ```python -def get_ledger_key_wasm_id(contract_code_ledger_entry_data): +from stellar_sdk import xdr + +def get_ledger_key_wasm_id(contract_code_ledger_entry_data: str) -> str: # First, we dig the wasm_id hash out of the xdr we received from RPC - contract_code_wasm_hash = xdr.ledger_entry_data.LedgerEntryData.from_xdr( + contract_code_wasm_hash = xdr.LedgerEntryData.from_xdr( contract_code_ledger_entry_data - ).contract_data.val.obj.contract_code.wasm_id.hash + ).contract_data.val.exec.wasm_id.hash # Now, we can create the `LedgerKey` as we've done in previous examples - ledger_key = xdr.ledger_key.LedgerKey( - type=xdr.ledger_entry_type.LedgerEntryType.CONTRACT_CODE, - contract_code=xdr.ledger_key_contract_code.LedgerKeyContractCode( + ledger_key = xdr.LedgerKey( + type=xdr.LedgerEntryType.CONTRACT_CODE, + contract_code=xdr.LedgerKeyContractCode( hash=xdr.hash.Hash(contract_code_wasm_hash) - ) + ), ) return ledger_key.to_xdr() -print(get_ledger_key_wasm_id( - "AAAABhv6ziOnWcVRdGMZjtFKSWnLSndMp9JPVLLXxQqAvKqJAAAAAwAAAAMAAAAEAAAAAQAAAAcAAAAA1CpZRz0BSN27PmqtsmBhv+AAJJwHgmrvJNPrHRAl9l8=" -)) -# OUTPUT: AAAAB9QqWUc9AUjduz5qrbJgYb/gACScB4Jq7yTT6x0QJfZf + +print( + get_ledger_key_wasm_id( + "AAAABq+aJSfjs7VXHWOwJGujK30xpTI3Zt98YN/As+O6b98jAAAAFAAAABIAAAAAZBYoEJT3IaPMMk3FoRmnEQHoDxewPZL+Uor+xWI4uII=" + ) +) +# OUTPUT: AAAAB2QWKBCU9yGjzDJNxaEZpxEB6A8XsD2S/lKK/sViOLiC ``` Now, finally we have a `LedgerKey` that correspond to the WASM byte-code that has been deployed under the `ContractId` we started out with so very long ago. This `LedgerKey` can be used in a final request to the Soroban-RPC endpoint. @@ -286,9 +299,9 @@ Now, finally we have a `LedgerKey` that correspond to the WASM byte-code that ha { "jsonrpc": "2.0", "id": 8675309, - "method": "getLedgerEntry", + "method": "getLedgerEntries", "params": { - "keys": ["AAAAB9QqWUc9AUjduz5qrbJgYb/gACScB4Jq7yTT6x0QJfZf"] + "keys": ["AAAAB2QWKBCU9yGjzDJNxaEZpxEB6A8XsD2S/lKK/sViOLiC"] } } ``` @@ -300,14 +313,14 @@ And the response we get contains (even more) `LedgerEntryData` that we can decod "jsonrpc": "2.0", "id": 8675309, "result": { - "entries":[ + "entries": [ { - "key": "AAAAB9QqWUc9AUjduz5qrbJgYb/gACScB4Jq7yTT6x0QJfZf", - "xdr": "AAAABwAAAADUKllHPQFI3bs+aq2yYGG/4AAknAeCau8k0+sdECX2XwAAAakAYXNtAQAAAAEXBWABfgF+YAJ+fgF+YAABfmABfwBgAAACEwMBbAEwAAABbAExAAABbAFfAAEDBgUCAwQEBAUDAQAQBhkDfwFBgIDAAAt/AEGAgMAAC38AQYCAwAALBzUFBm1lbW9yeQIACWluY3JlbWVudAADAV8ABwpfX2RhdGFfZW5kAwELX19oZWFwX2Jhc2UDAgrAAQWhAQMBfwF+AX8jgICAgABBEGsiACSAgICAAAJAAkBC2YP9sqDNAxCAgICAAEIVUg0AAkBC2YP9sqDNAxCBgICAACIBQg+DQgFSDQAgAUIEiKchAgwCCyAAQQhqEISAgIAAAAtBACECCwJAIAJBAWoiAg0AEIWAgIAAAAtC2YP9sqDNAyACrUIEhkIBhCIBEIKAgIAAGiAAQRBqJICAgIAAIAELCQAQhoCAgAAACwkAEIaAgIAAAAsEAAAACwIACwAeEWNvbnRyYWN0ZW52bWV0YXYwAAAAAAAAAAAAAAAbAC8OY29udHJhY3RzcGVjdjAAAAAAAAAACWluY3JlbWVudAAAAAAAAAAAAAABAAAAAQAAAA==", - "lastModifiedLedgerSeq": "164302" + "key": "AAAAB2QWKBCU9yGjzDJNxaEZpxEB6A8XsD2S/lKK/sViOLiC", + "xdr": "AAAABwAAAABkFigQlPcho8wyTcWhGacRAegPF7A9kv5Siv7FYji4ggAAAlQAYXNtAQAAAAEPA2ACfn4BfmABfgF+YAAAAgcBAXYBRwAAAwQDAQICBQMBABEGGQN/AUGAgMAAC38AQYWAwAALfwBBkIDAAAsHMQUGbWVtb3J5AgAFaGVsbG8AAQFfAAMKX19kYXRhX2VuZAMBC19faGVhcF9iYXNlAwIK4QID1gIDAn8CfgF/I4CAgIAAQSBrIgEkgICAgAACQAJAIACnQf8BcSICQQ5GDQAgAkHKAEcNAQtCACEDQXshAgNAAkACQAJAAkAgAkUNAEIBIQQgAkGFgMCAAGotAAAiBUHfAEYNAyAFrSEEIAVBUGpBCkkNAiAFQb9/akEaSQ0BAkAgBUGff2pBGk8NACAEQkV8IQQMBAsQgoCAgAAACyABIAA3AwggASADQgiGQg6ENwMAQQAhAgNAAkAgAkEQRw0AQQAhAgJAA0AgAkEQRg0BIAFBEGogAmogASACaikDADcDACACQQhqIQIMAAsLIAFBEGqtQiCGQgSEQoSAgIAgEICAgIAAIQQgAUEgaiSAgICAACAEDwsgAUEQaiACakICNwMAIAJBCGohAgwACwsgBEJLfCEEDAELIARCUnwhBAsgAkEBaiECIAQgA0IGhoQhAwwACwsAAAsEAAAACwIACwsOAQBBgIDAAAsFSGVsbG8AHhFjb250cmFjdGVudm1ldGF2MAAAAAAAAAAUAAAAJQBDDmNvbnRyYWN0c3BlY3YwAAAAAAAAAAAAAAAFaGVsbG8AAAAAAAABAAAAAAAAAAJ0bwAAAAAAEQAAAAEAAAPqAAAAEQ==", + "lastModifiedLedgerSeq": "75206" } ], - "latestLedger": "246883" + "latestLedger": "262384" } } ``` From 36f01c429e2c1184c57a0ece46c47c5baa9a9adb Mon Sep 17 00:00:00 2001 From: Leigh McCulloch <351529+leighmcculloch@users.noreply.github.com> Date: Thu, 13 Jul 2023 14:05:27 -0700 Subject: [PATCH 025/133] Release Preview 10 (#480) * Change command recommended for building .wasm files for deployment (#476) * Fix logging example (#481) * Update docs with auth XDR changes. (#483) * Update docs with auth XDR changes. * WASM->Wasm rename. Wasm is the official abbreviation of WebAssembly. * Typo fixes (#484) * Add fuzzing docs. (#486) * State expiration operations and token updates (#485) * Add docs for state expiration operations * Updates * update token * Update custom account * More token updates * Update atomic swap * More detailed state expiration docs (#492) * More fixes (#489) * More fixes * Add approve warning * Update releases page * Fix link * Update example links from 0.8.4 to 0.9.2 * fix link * Fixed instance bump bug in docs (#493) --------- Co-authored-by: Dmytro Kozhevin Co-authored-by: Brian Anderson Co-authored-by: Siddharth Suresh Co-authored-by: Garand Tyson Co-authored-by: Julian Martinez --- api/methods/getLedgerEntries.mdx | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/api/methods/getLedgerEntries.mdx b/api/methods/getLedgerEntries.mdx index 06d026f03..7bb5b6280 100644 --- a/api/methods/getLedgerEntries.mdx +++ b/api/methods/getLedgerEntries.mdx @@ -192,7 +192,7 @@ const parsed = xdr.LedgerEntryData.fromXDR( console.log(parsed); ``` -### Requesting a Contract's WASM Code +### Requesting a Contract's Wasm Code This can be a bit tricky to wrap your head around, but the conventions do make sense once you let it sink in. @@ -200,10 +200,10 @@ In the previous examples, the `COUNTER` _key_ was used as a `LedgerKey` while th #### How Soroban Contract Deployment Works -When you deploy a contract, first the code is "installed" (i.e. it is uploaded onto the blockchain). This creates a `LedgerEntry` containing the WASM byte-code, which is uniquely identified by its hash (that is, the hash of the uploaded code itself). Then, when the contract is "deployed," we create a `LedgerEntry` with a reference to that code's hash. So fetching the contract code is a two-step process: +When you deploy a contract, first the code is "installed" (i.e. it is uploaded onto the blockchain). This creates a `LedgerEntry` containing the Wasm byte-code, which is uniquely identified by its hash (that is, the hash of the uploaded code itself). Then, when the contract is "deployed," we create a `LedgerEntry` with a reference to that code's hash. So fetching the contract code is a two-step process: 1. First, we look up the contract itself, to see which code hash it is referencing. -2. Then, we can look up the raw WASM byte-code using that hash. +2. Then, we can look up the raw Wasm byte-code using that hash. #### Request the `LedgerKey` for the Contract Code @@ -245,7 +245,7 @@ We then take our output from this function, and use it as the element in the `ke } ``` -And the response we get contains the `LedgerEntryData` that can be used to find the `hash` we must use to request the WASM byte-code. This hash is the `LedgerKey` that's been associated with the deployed contract code. +And the response we get contains the `LedgerEntryData` that can be used to find the `hash` we must use to request the Wasm byte-code. This hash is the `LedgerKey` that's been associated with the deployed contract code. ```json { @@ -293,7 +293,7 @@ print( # OUTPUT: AAAAB2QWKBCU9yGjzDJNxaEZpxEB6A8XsD2S/lKK/sViOLiC ``` -Now, finally we have a `LedgerKey` that correspond to the WASM byte-code that has been deployed under the `ContractId` we started out with so very long ago. This `LedgerKey` can be used in a final request to the Soroban-RPC endpoint. +Now, finally we have a `LedgerKey` that correspond to the Wasm byte-code that has been deployed under the `ContractId` we started out with so very long ago. This `LedgerKey` can be used in a final request to the Soroban-RPC endpoint. ```json { From dced5e88ec2f7811689504d72a3b9205c200f69d Mon Sep 17 00:00:00 2001 From: Leigh McCulloch <351529+leighmcculloch@users.noreply.github.com> Date: Thu, 13 Jul 2023 14:05:27 -0700 Subject: [PATCH 026/133] Release Preview 10 (#480) * Change command recommended for building .wasm files for deployment (#476) * Fix logging example (#481) * Update docs with auth XDR changes. (#483) * Update docs with auth XDR changes. * WASM->Wasm rename. Wasm is the official abbreviation of WebAssembly. * Typo fixes (#484) * Add fuzzing docs. (#486) * State expiration operations and token updates (#485) * Add docs for state expiration operations * Updates * update token * Update custom account * More token updates * Update atomic swap * More detailed state expiration docs (#492) * More fixes (#489) * More fixes * Add approve warning * Update releases page * Fix link * Update example links from 0.8.4 to 0.9.2 * fix link * Fixed instance bump bug in docs (#493) --------- Co-authored-by: Dmytro Kozhevin Co-authored-by: Brian Anderson Co-authored-by: Siddharth Suresh Co-authored-by: Garand Tyson Co-authored-by: Julian Martinez --- api/methods/getLedgerEntries.mdx | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/api/methods/getLedgerEntries.mdx b/api/methods/getLedgerEntries.mdx index 06d026f03..7bb5b6280 100644 --- a/api/methods/getLedgerEntries.mdx +++ b/api/methods/getLedgerEntries.mdx @@ -192,7 +192,7 @@ const parsed = xdr.LedgerEntryData.fromXDR( console.log(parsed); ``` -### Requesting a Contract's WASM Code +### Requesting a Contract's Wasm Code This can be a bit tricky to wrap your head around, but the conventions do make sense once you let it sink in. @@ -200,10 +200,10 @@ In the previous examples, the `COUNTER` _key_ was used as a `LedgerKey` while th #### How Soroban Contract Deployment Works -When you deploy a contract, first the code is "installed" (i.e. it is uploaded onto the blockchain). This creates a `LedgerEntry` containing the WASM byte-code, which is uniquely identified by its hash (that is, the hash of the uploaded code itself). Then, when the contract is "deployed," we create a `LedgerEntry` with a reference to that code's hash. So fetching the contract code is a two-step process: +When you deploy a contract, first the code is "installed" (i.e. it is uploaded onto the blockchain). This creates a `LedgerEntry` containing the Wasm byte-code, which is uniquely identified by its hash (that is, the hash of the uploaded code itself). Then, when the contract is "deployed," we create a `LedgerEntry` with a reference to that code's hash. So fetching the contract code is a two-step process: 1. First, we look up the contract itself, to see which code hash it is referencing. -2. Then, we can look up the raw WASM byte-code using that hash. +2. Then, we can look up the raw Wasm byte-code using that hash. #### Request the `LedgerKey` for the Contract Code @@ -245,7 +245,7 @@ We then take our output from this function, and use it as the element in the `ke } ``` -And the response we get contains the `LedgerEntryData` that can be used to find the `hash` we must use to request the WASM byte-code. This hash is the `LedgerKey` that's been associated with the deployed contract code. +And the response we get contains the `LedgerEntryData` that can be used to find the `hash` we must use to request the Wasm byte-code. This hash is the `LedgerKey` that's been associated with the deployed contract code. ```json { @@ -293,7 +293,7 @@ print( # OUTPUT: AAAAB2QWKBCU9yGjzDJNxaEZpxEB6A8XsD2S/lKK/sViOLiC ``` -Now, finally we have a `LedgerKey` that correspond to the WASM byte-code that has been deployed under the `ContractId` we started out with so very long ago. This `LedgerKey` can be used in a final request to the Soroban-RPC endpoint. +Now, finally we have a `LedgerKey` that correspond to the Wasm byte-code that has been deployed under the `ContractId` we started out with so very long ago. This `LedgerKey` can be used in a final request to the Soroban-RPC endpoint. ```json { From c4cf33c710dfc2b7dab541539af61a04862fd542 Mon Sep 17 00:00:00 2001 From: George Date: Fri, 21 Jul 2023 08:28:39 -0700 Subject: [PATCH 027/133] Clarify that there is always 0 or 1 item in `results` (#506) Co-authored-by: Tyler van der Hoeven --- api/methods/simulateTransaction.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/api/methods/simulateTransaction.mdx b/api/methods/simulateTransaction.mdx index 06d893837..16cf6999f 100644 --- a/api/methods/simulateTransaction.mdx +++ b/api/methods/simulateTransaction.mdx @@ -14,7 +14,7 @@ Submit a trial contract invocation to simulate how it would be executed by the n - `cost`: `` - Information about instructions used, etc. - `cpuInsns`: `` - Stringified-number of the total cpu instructions consumed by this transaction - `memBytes`: `` - Stringified-number of the total memory bytes allocated by this transaction - - `results`: `` - If `error` is present then results will not be in the response. There will be one result object for each Host Function invocation, in the same order the Host Function was supplied. + - `results`: `` - If `error` is present then `results` will not be in the response. This array will only have one element: the result for the Host Function invocation. - `xdr`: `` - (optional) Only present on success. xdr-encoded return value of the Host Function call. - `auth`: `` - Per-address authorizations recorded when simulating this Host Function call. (an array of serialized base64 strings) - `transactionData`: `` - The recommended Soroban Transaction Data to use when submitting the simulated transaction. This data contains the refundable fee and resource usage information such as the ledger footprint and IO access data (serialized in a base64 string). @@ -71,4 +71,4 @@ Submit a trial contract invocation to simulate how it would be executed by the n "latestLedger": "23456" } } -``` \ No newline at end of file +``` From 970427a394ffc275c81ac039b240bc3d2f9f37f2 Mon Sep 17 00:00:00 2001 From: Vincent Amouret Date: Mon, 24 Jul 2023 14:44:17 +0200 Subject: [PATCH 028/133] Add javascript example to get the WASM content (#473) * Add javascript example to get the WASM content * Update to preview 10 --- api/methods/getLedgerEntries.mdx | 71 ++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) diff --git a/api/methods/getLedgerEntries.mdx b/api/methods/getLedgerEntries.mdx index 7bb5b6280..076486125 100644 --- a/api/methods/getLedgerEntries.mdx +++ b/api/methods/getLedgerEntries.mdx @@ -207,6 +207,8 @@ When you deploy a contract, first the code is "installed" (i.e. it is uploaded o #### Request the `LedgerKey` for the Contract Code +##### Python + ```python from stellar_sdk import xdr @@ -230,6 +232,31 @@ print( # OUTPUT: AAAABq+aJSfjs7VXHWOwJGujK30xpTI3Zt98YN/As+O6b98jAAAAFA== ``` +##### JavaScript + +```javascript +const { xdr } = require("soroban-client") +function getLedgerKeyContractCode(contractId) { + let ledgerKey = xdr.LedgerKey.contractData( + new xdr.LedgerKeyContractData({ + contract: xdr.ScAddress.scAddressTypeContract(contractId), + key: new xdr.ScVal.scvLedgerKeyContractInstance(), + durability: xdr.ContractDataDurability.persistent(), + bodyType: xdr.ContractEntryBodyType.dataEntry(), + }) + ); + + return ledgerKey.toXDR('base64'); +} + +console.log( + getLedgerKeyContractCode( + "af9a2527e3b3b5571d63b0246ba32b7d31a5323766df7c60dfc0b3e3ba6fdf23" + ) +) +// OUTPUT: AAAABq+aJSfjs7VXHWOwJGujK30xpTI3Zt98YN/As+O6b98jAAAAFA== +``` + We then take our output from this function, and use it as the element in the `keys` array parameter in our call to the `getLedgerEntries` method. ```json @@ -268,6 +295,8 @@ And the response we get contains the `LedgerEntryData` that can be used to find Now take the `xdr` field from the previous response's `result` object, and create a `LedgerKey` from the hash contained inside. +##### Python + ```python from stellar_sdk import xdr @@ -293,8 +322,50 @@ print( # OUTPUT: AAAAB2QWKBCU9yGjzDJNxaEZpxEB6A8XsD2S/lKK/sViOLiC ``` +##### JavaScript + +```javascript +const { xdr } = require("soroban-client") + +function getLedgerKeyWasmId(contractCodeLedgerEntryData) { + + let entry = xdr.LedgerEntryData.fromXDR( + contractCodeLedgerEntryData, + "base64" + ); + + let instance = new xdr.ScContractInstance({ + executable: entry.contractData() + .body() + .value() + .val() + }); + + let ledgerKey = xdr.LedgerKey.contractCode( + new xdr.LedgerKeyContractCode({ + hash: xdr.ContractExecutable.contractExecutableWasm(instance.executable()) + .wasmHash() + .instance() + .executable() + .wasmHash(), + bodyType: xdr.ContractEntryBodyType.dataEntry() + }) + ); + + return ledgerKey.toXDR('base64'); +} + +console.log( + getLedgerKeyWasmId( + "AAAABq+aJSfjs7VXHWOwJGujK30xpTI3Zt98YN/As+O6b98jAAAAFAAAABIAAAAAZBYoEJT3IaPMMk3FoRmnEQHoDxewPZL+Uor+xWI4uII=" + ) +) +// OUTPUT: AAAAB2QWKBCU9yGjzDJNxaEZpxEB6A8XsD2S/lKK/sViOLiC +``` + Now, finally we have a `LedgerKey` that correspond to the Wasm byte-code that has been deployed under the `ContractId` we started out with so very long ago. This `LedgerKey` can be used in a final request to the Soroban-RPC endpoint. + ```json { "jsonrpc": "2.0", From 66e0050c20398114c0742819d4cd391113e93df6 Mon Sep 17 00:00:00 2001 From: Vincent Amouret Date: Mon, 24 Jul 2023 14:44:17 +0200 Subject: [PATCH 029/133] Add javascript example to get the WASM content (#473) * Add javascript example to get the WASM content * Update to preview 10 --- api/methods/getLedgerEntries.mdx | 71 ++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) diff --git a/api/methods/getLedgerEntries.mdx b/api/methods/getLedgerEntries.mdx index 7bb5b6280..076486125 100644 --- a/api/methods/getLedgerEntries.mdx +++ b/api/methods/getLedgerEntries.mdx @@ -207,6 +207,8 @@ When you deploy a contract, first the code is "installed" (i.e. it is uploaded o #### Request the `LedgerKey` for the Contract Code +##### Python + ```python from stellar_sdk import xdr @@ -230,6 +232,31 @@ print( # OUTPUT: AAAABq+aJSfjs7VXHWOwJGujK30xpTI3Zt98YN/As+O6b98jAAAAFA== ``` +##### JavaScript + +```javascript +const { xdr } = require("soroban-client") +function getLedgerKeyContractCode(contractId) { + let ledgerKey = xdr.LedgerKey.contractData( + new xdr.LedgerKeyContractData({ + contract: xdr.ScAddress.scAddressTypeContract(contractId), + key: new xdr.ScVal.scvLedgerKeyContractInstance(), + durability: xdr.ContractDataDurability.persistent(), + bodyType: xdr.ContractEntryBodyType.dataEntry(), + }) + ); + + return ledgerKey.toXDR('base64'); +} + +console.log( + getLedgerKeyContractCode( + "af9a2527e3b3b5571d63b0246ba32b7d31a5323766df7c60dfc0b3e3ba6fdf23" + ) +) +// OUTPUT: AAAABq+aJSfjs7VXHWOwJGujK30xpTI3Zt98YN/As+O6b98jAAAAFA== +``` + We then take our output from this function, and use it as the element in the `keys` array parameter in our call to the `getLedgerEntries` method. ```json @@ -268,6 +295,8 @@ And the response we get contains the `LedgerEntryData` that can be used to find Now take the `xdr` field from the previous response's `result` object, and create a `LedgerKey` from the hash contained inside. +##### Python + ```python from stellar_sdk import xdr @@ -293,8 +322,50 @@ print( # OUTPUT: AAAAB2QWKBCU9yGjzDJNxaEZpxEB6A8XsD2S/lKK/sViOLiC ``` +##### JavaScript + +```javascript +const { xdr } = require("soroban-client") + +function getLedgerKeyWasmId(contractCodeLedgerEntryData) { + + let entry = xdr.LedgerEntryData.fromXDR( + contractCodeLedgerEntryData, + "base64" + ); + + let instance = new xdr.ScContractInstance({ + executable: entry.contractData() + .body() + .value() + .val() + }); + + let ledgerKey = xdr.LedgerKey.contractCode( + new xdr.LedgerKeyContractCode({ + hash: xdr.ContractExecutable.contractExecutableWasm(instance.executable()) + .wasmHash() + .instance() + .executable() + .wasmHash(), + bodyType: xdr.ContractEntryBodyType.dataEntry() + }) + ); + + return ledgerKey.toXDR('base64'); +} + +console.log( + getLedgerKeyWasmId( + "AAAABq+aJSfjs7VXHWOwJGujK30xpTI3Zt98YN/As+O6b98jAAAAFAAAABIAAAAAZBYoEJT3IaPMMk3FoRmnEQHoDxewPZL+Uor+xWI4uII=" + ) +) +// OUTPUT: AAAAB2QWKBCU9yGjzDJNxaEZpxEB6A8XsD2S/lKK/sViOLiC +``` + Now, finally we have a `LedgerKey` that correspond to the Wasm byte-code that has been deployed under the `ContractId` we started out with so very long ago. This `LedgerKey` can be used in a final request to the Soroban-RPC endpoint. + ```json { "jsonrpc": "2.0", From 9a57b1710e0def5d8d1034de9e45e521ecb4a14f Mon Sep 17 00:00:00 2001 From: Alfonso Acosta Date: Tue, 22 Aug 2023 14:05:20 +0200 Subject: [PATCH 030/133] Update soroban-rpc docs (#551) * Add new fields * Move optionality explanations to the ends * Make the documention of every field consistent * Remove multiple results from the example (since multiop transactions are not supported) --- api/methods/simulateTransaction.mdx | 31 +++++++++++++---------------- 1 file changed, 14 insertions(+), 17 deletions(-) diff --git a/api/methods/simulateTransaction.mdx b/api/methods/simulateTransaction.mdx index 16cf6999f..8555967e7 100644 --- a/api/methods/simulateTransaction.mdx +++ b/api/methods/simulateTransaction.mdx @@ -10,17 +10,20 @@ Submit a trial contract invocation to simulate how it would be executed by the n ## Returns - `` - - `minResourceFee`: `` - Stringified-number of the recommended minimum resource fee to add when submitting the transaction. This fee is to be added on top of the [Stellar network fee](https://developers.stellar.org/docs/encyclopedia/fees-surge-pricing-fee-strategies#network-fees-on-stellar). - - `cost`: `` - Information about instructions used, etc. - - `cpuInsns`: `` - Stringified-number of the total cpu instructions consumed by this transaction - - `memBytes`: `` - Stringified-number of the total memory bytes allocated by this transaction - - `results`: `` - If `error` is present then `results` will not be in the response. This array will only have one element: the result for the Host Function invocation. - - `xdr`: `` - (optional) Only present on success. xdr-encoded return value of the Host Function call. - - `auth`: `` - Per-address authorizations recorded when simulating this Host Function call. (an array of serialized base64 strings) - - `transactionData`: `` - The recommended Soroban Transaction Data to use when submitting the simulated transaction. This data contains the refundable fee and resource usage information such as the ledger footprint and IO access data (serialized in a base64 string). - - `events`: `` - Array of the events emitted during the contract invocation(s). The events are ordered by their emission _time_. (an array of serialized base64 strings) - - `latestLedger`: `` - Stringified-number of the current latest ledger observed by the node when this response was generated. - - `error`: `` - (optional) only present if the transaction failed. This field will include more details from `stellar-core` about why the invoke host function call failed. + - `minResourceFee`: `` (optional) stringified number - Recommended minimum resource fee to add when submitting the transaction. This fee is to be added on top of the [Stellar network fee](https://developers.stellar.org/docs/encyclopedia/fees-surge-pricing-fee-strategies#network-fees-on-stellar). Not present in case of error. + - `cost`: `` (optional) - Information about instructions used, etc. Not present in case of error. + - `cpuInsns`: `` stringified number - Total cpu instructions consumed by this transaction + - `memBytes`: `` stringified number - Total memory bytes allocated by this transaction + - `results`: `` (optional) - This array will only have one element: the result for the Host Function invocation. Only present on successful simulation (i.e. no error) of `InvokeHostFunction` operations. + - `xdr`: `` serialized base64 string - return value of the Host Function call. + - `auth`: `` array of serialized base64 strings - Per-address authorizations recorded when simulating this Host Function call. + - `transactionData`: `` (optional) serialized base64 string - The recommended Soroban Transaction Data to use when submitting the simulated transaction. This data contains the refundable fee and resource usage information such as the ledger footprint and IO access data (serialized in a base64 string). Not present in case of error. + - `events`: `` (optional) array of serialized base64 strings - Array of the events emitted during the contract invocation. The events are ordered by their emission _time_. (an array of serialized base64 strings). Only present when simulating of `InvokeHostFunction` operations, note that it can be present on error, providing extra context about what failed. + - `restorePreamble`: `` (optional) - It can only present on successful simulation (i.e. no error) of `InvokeHostFunction` operations. If present, it indicates the simulation detected expired ledger entries which requires restoring with the submission of a `RestoreFootprint` operation before submitting the `InvokeHostFunction` operation. The `minResourceFee` and `transactionData` fields should be used to construct the transaction containing the `RestoreFootprint` operation. + - `minResourceFee`: `` stringified number - Recommended minimum resource fee to add when submitting the `RestoreFootprint` operation. This fee is to be added on top of the [Stellar network fee](https://developers.stellar.org/docs/encyclopedia/fees-surge-pricing-fee-strategies#network-fees-on-stellar). + - `transactionData`: `` serialized base64 string - The recommended Soroban Transaction Data to use when submitting the `RestoreFootprint` operation. + - `latestLedger`: `` stringified number - Current latest closed ledger (LCL) observed by the node when this response was generated. Always present. + - `error`: `` (optional) - This field will include details about why the invoke host function call failed. Only present if the transaction simulation failed. ## Examples @@ -56,12 +59,6 @@ Submit a trial contract invocation to simulate how it would be executed by the n "AAAAAQAAAAAAAAAAYvwdC9CRsrYcDdZWNGsqaNfTR8bywsjubQRHAlb8BfcAAAAAAAAAAOGr69HGMhJNHrYmkrVICfPPVxkqlKmRGXAskfpmvOyyAAAABGF1dGgAAAACAAAAEwAAAAAAAAAAYvwdC9CRsrYcDdZWNGsqaNfTR8bywsjubQRHAlb8BfcAAAAPAAAABXdvcmxkAAAAAAAAAAAAAAA=" ], "xdr": "AAAAEwAAAAAAAAAAYvwdC9CRsrYcDdZWNGsqaNfTR8bywsjubQRHAlb8Bfc=" - }, - { - "auth": [ - "AAAAAQAAAAAAAAAAYvwdC9CRsrYcDdZWNGsqaNfTR8bywsjubQRHAlb8BfcAAAAAAAAAAeGr69HGMhJNHrYmkrVICfPPVxkqlKmRGXAskfpmvOyyAAAABGF1dGgAAAACAAAAEwAAAAAAAAAAYvwdC9CRsrYcDdZWNGsqaNfTR8bywsjubQRHAlb8BfcAAAAPAAAABXdvcmxkAAAAAAAAAAAAAAA=" - ], - "xdr": "AAAAEwAAAAAAAAAAYvwdC9CRsrYcDdZWNGsqaNfTR8bywsjubQRHAlb8Bfc=" } ], "cost": { From 2b5580ddf0fc988291284484bace0fd95c14e8d3 Mon Sep 17 00:00:00 2001 From: Alfonso Acosta Date: Tue, 19 Sep 2023 17:13:53 +0200 Subject: [PATCH 031/133] Update simulateTransaction.mdx (#567) Improved readability for the description of the `restorePreamble` in the RPC response --- api/methods/simulateTransaction.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/methods/simulateTransaction.mdx b/api/methods/simulateTransaction.mdx index 8555967e7..80f2c390c 100644 --- a/api/methods/simulateTransaction.mdx +++ b/api/methods/simulateTransaction.mdx @@ -19,7 +19,7 @@ Submit a trial contract invocation to simulate how it would be executed by the n - `auth`: `` array of serialized base64 strings - Per-address authorizations recorded when simulating this Host Function call. - `transactionData`: `` (optional) serialized base64 string - The recommended Soroban Transaction Data to use when submitting the simulated transaction. This data contains the refundable fee and resource usage information such as the ledger footprint and IO access data (serialized in a base64 string). Not present in case of error. - `events`: `` (optional) array of serialized base64 strings - Array of the events emitted during the contract invocation. The events are ordered by their emission _time_. (an array of serialized base64 strings). Only present when simulating of `InvokeHostFunction` operations, note that it can be present on error, providing extra context about what failed. - - `restorePreamble`: `` (optional) - It can only present on successful simulation (i.e. no error) of `InvokeHostFunction` operations. If present, it indicates the simulation detected expired ledger entries which requires restoring with the submission of a `RestoreFootprint` operation before submitting the `InvokeHostFunction` operation. The `minResourceFee` and `transactionData` fields should be used to construct the transaction containing the `RestoreFootprint` operation. + - `restorePreamble`: `` (optional) - It can only be present on successful simulation (i.e. no error) of `InvokeHostFunction` operations. If present, it indicates that the simulation detected expired ledger entries which need to be restored before the submission of the `InvokeHostFunction` operation. The `minResourceFee` and `transactionData` fields should be used to submit a transaction containing a `RestoreFootprint` operation. - `minResourceFee`: `` stringified number - Recommended minimum resource fee to add when submitting the `RestoreFootprint` operation. This fee is to be added on top of the [Stellar network fee](https://developers.stellar.org/docs/encyclopedia/fees-surge-pricing-fee-strategies#network-fees-on-stellar). - `transactionData`: `` serialized base64 string - The recommended Soroban Transaction Data to use when submitting the `RestoreFootprint` operation. - `latestLedger`: `` stringified number - Current latest closed ledger (LCL) observed by the node when this response was generated. Always present. From 4dd36ef981e41b925503cb6a76c5dca839b30199 Mon Sep 17 00:00:00 2001 From: Elliot Voris Date: Tue, 19 Sep 2023 10:21:48 -0500 Subject: [PATCH 032/133] feat: Display example RPC requests as a useable CURL command (#568) Also displaying generic code snippets for popular languages, as well as in raw JSON format. A new `ExampleRequest` component has been made to facilitate this, as well. This component takes a `method` prop for the name of the RPC method being called, as well as an optional `params` prop which can pass the object that should be used to populate the RPC request object. Refs: #565 --- api/methods/getEvents.mdx | 39 +++++++++++++---------------- api/methods/getHealth.mdx | 10 +++----- api/methods/getLatestLedger.mdx | 10 +++----- api/methods/getLedgerEntries.mdx | 13 +++------- api/methods/getNetwork.mdx | 22 ++++++++++++++++ api/methods/getTransaction.mdx | 13 +++------- api/methods/sendTransaction.mdx | 13 +++------- api/methods/simulateTransaction.mdx | 14 +++-------- 8 files changed, 58 insertions(+), 76 deletions(-) diff --git a/api/methods/getEvents.mdx b/api/methods/getEvents.mdx index fa359558f..41602a8df 100644 --- a/api/methods/getEvents.mdx +++ b/api/methods/getEvents.mdx @@ -2,6 +2,8 @@ sidebar_position: 2 --- +import ExampleRequest from "@site/src/components/ExampleRequest"; + Clients can request a filtered list of events emitted by a given ledger range. Soroban-RPC will support querying within a maximum 24 hours of recent ledgers. @@ -66,30 +68,23 @@ The examples below only returns two transfer events that took place to/from the ### Request -```json -{ - "jsonrpc": "2.0", - "id": 8675309, - "method": "getEvents", - "params": { - "startLedger": "227000", - "filters": [ - { - "type": "contract", - "contractIds": [ - "d93f5c7bb0ebc4a9c8f727c5cebc4e41194d38257e1d0d910356b43bfc528813" - ], - "topics": [ - ["AAAABQAAAAh0cmFuc2Zlcg==", "*", "*"] - ] - } - ], - "pagination": { - "limit": 100 + ### Response diff --git a/api/methods/getHealth.mdx b/api/methods/getHealth.mdx index c3961f84c..025c74da9 100644 --- a/api/methods/getHealth.mdx +++ b/api/methods/getHealth.mdx @@ -2,6 +2,8 @@ sidebar_position: 3 --- +import ExampleRequest from "@site/src/components/ExampleRequest"; + General node health check. ## Parameters @@ -17,13 +19,7 @@ General node health check. ### Request -```json -{ - "jsonrpc": "2.0", - "id": 8675309, - "method": "getHealth" -} -``` + ### Response diff --git a/api/methods/getLatestLedger.mdx b/api/methods/getLatestLedger.mdx index e82b66201..d55ac583d 100644 --- a/api/methods/getLatestLedger.mdx +++ b/api/methods/getLatestLedger.mdx @@ -2,6 +2,8 @@ sidebar_position: 1 --- +import ExampleRequest from "@site/src/components/ExampleRequest"; + For finding out the current latest known ledger of this node. This is a subset of the ledger info from Horizon. ## Parameters @@ -19,13 +21,7 @@ For finding out the current latest known ledger of this node. This is a subset o ### Request -```json -{ - "jsonrpc": "2.0", - "id": 8675309, - "method": "getLatestLedger" -} -``` + ### Response diff --git a/api/methods/getLedgerEntries.mdx b/api/methods/getLedgerEntries.mdx index 076486125..d098cb5c3 100644 --- a/api/methods/getLedgerEntries.mdx +++ b/api/methods/getLedgerEntries.mdx @@ -2,6 +2,8 @@ sidebar_position: 4 --- +import ExampleRequest from "@site/src/components/ExampleRequest"; + For reading the current value of ledger entries directly. Allows you to directly inspect the _current state_ of a contract, a contract's code, or any other ledger entry. This is a backup way to access your contract data which may not be available via events or `simulateTransaction`. @@ -25,16 +27,7 @@ To fetch contract wasm byte-code, use the ContractCode ledger entry key. ### Request -```json -{ - "jsonrpc": "2.0", - "id": 8675309, - "method": "getLedgerEntries", - "params": { - "keys": ["AAAAB+qfy4GuVKKfazvyk4R9P9fpo2n9HICsr+xqvVcTF+DC","AAAABuGr69HGMhJNHrYmkrVICfPPVxkqlKmRGXAskfpmvOyyAAAAFA=="] - } -} -``` + ### Response diff --git a/api/methods/getNetwork.mdx b/api/methods/getNetwork.mdx index dc4730499..4d173240d 100644 --- a/api/methods/getNetwork.mdx +++ b/api/methods/getNetwork.mdx @@ -2,6 +2,8 @@ sidebar_position: 5 --- +import ExampleRequest from "@site/src/components/ExampleRequest"; + General info about the currently configured network. ## Parameters @@ -14,3 +16,23 @@ General info about the currently configured network. - `friendbotUrl`: `` (optional) - The URL of this network's "friendbot" faucet - `passphrase`: `` - Network passphrase configured - `protocolVersion`: `` - Protocol version of the latest ledger + +## Examples + +### Request + + + +### Response + +```json +{ + "jsonrpc": "2.0", + "id": 8675309, + "result": { + "friendbotUrl": "https://friendbot-futurenet.stellar.org/", + "passphrase": "Test SDF Future Network ; October 2022", + "protocolVersion": "20" + } +} +``` diff --git a/api/methods/getTransaction.mdx b/api/methods/getTransaction.mdx index f21b160bf..dc3551933 100644 --- a/api/methods/getTransaction.mdx +++ b/api/methods/getTransaction.mdx @@ -2,6 +2,8 @@ sidebar_position: 8 --- +import ExampleRequest from "@site/src/components/ExampleRequest"; + Clients will poll this to tell when the transaction has been completed. @@ -32,16 +34,7 @@ Clients will poll this to tell when the transaction has been completed. ### Request -```json -{ - "jsonrpc": "2.0", - "id": 8675309, - "method": "getTransactionStatus", - "params": { - "hash": "a01441a4d0b80769d2c2d97dcd28d13e9036065da14ea83731424d77efc50894" - } -} -``` + ### Response diff --git a/api/methods/sendTransaction.mdx b/api/methods/sendTransaction.mdx index 928db48d7..df32bc6c4 100644 --- a/api/methods/sendTransaction.mdx +++ b/api/methods/sendTransaction.mdx @@ -2,6 +2,8 @@ sidebar_position: 7 --- +import ExampleRequest from "@site/src/components/ExampleRequest"; + Submit a real transaction to the Stellar network. This is the only way to make changes "on-chain". Unlike Horizon, this does not wait for transaction completion. It simply validates and enqueues the transaction. Clients should call getTransaction to learn about transaction success/failure. @@ -29,16 +31,7 @@ This supports all transactions, not only smart contract-related transactions. ### Request -```json -{ - "jsonrpc": "2.0", - "id": 8675309, - "method": "sendTransaction", - "params": { - "transaction": "AAAAAgAAAABzdv3ojkzWHMD7KUoXhrPx0GH18vHKV0ZfqpMiEblG1gAAp18AAAAAAAAAAgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAHN2/eiOTNYcwPspSheGs/HQYfXy8cpXRl+qkyIRuUbWAAAAGAAAAAEAAAABAAAAAPVf8W9m9DNgJmuV22+P7AHXYDEFQwauSks4BZj2z9EUAAAAAO3beL34UBBpCfUUPCfcnqX8YQKn41UhnKu6BInkVe9lAAAAAAAAAAEAAAABAAAAB+3beL34UBBpCfUUPCfcnqX8YQKn41UhnKu6BInkVe9lAAAAAQAAAAbhq+vRxjISTR62JpK1SAnzz1cZKpSpkRlwLJH6ZrzssgAAABQAAUKLAAAUkAAAAIAAAACoAAAAAAAAACEAAAAAAAAAARG5RtYAAABA+Vy3k86bNEP7rP8hb3cY1QWYhRa3CnF7jqHUj22Rd++2a0YwCKrMbofTUOb21GP6aFZwfKVvaokS22u1to5xDw==" - } -} -``` + ### Response diff --git a/api/methods/simulateTransaction.mdx b/api/methods/simulateTransaction.mdx index 80f2c390c..92c561a56 100644 --- a/api/methods/simulateTransaction.mdx +++ b/api/methods/simulateTransaction.mdx @@ -2,7 +2,10 @@ sidebar_position: 8 --- +import ExampleRequest from "@site/src/components/ExampleRequest"; + Submit a trial contract invocation to simulate how it would be executed by the network. This endpoint calculates the effective transaction data, required authorizations, and minimal resource fee. It provides a way to test and analyze the potential outcomes of a transaction without actually submitting it to the network. + ## Parameters - `` - The transaction to be simulated (serialized in base64) @@ -29,16 +32,7 @@ Submit a trial contract invocation to simulate how it would be executed by the n ### Request -```json -{ - "jsonrpc": "2.0", - "id": 1102, - "method": "simulateTransaction", - "params": { - "transaction": "AAAAAgAAAABzdv3ojkzWHMD7KUoXhrPx0GH18vHKV0ZfqpMiEblG1gAAAGQAAAAAAAAABAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAHN2/eiOTNYcwPspSheGs/HQYfXy8cpXRl+qkyIRuUbWAAAAGAAAAAIAAAAAAAAABAAAAA0AAAAg4avr0cYyEk0etiaStUgJ889XGSqUqZEZcCyR+ma87LIAAAAPAAAABGF1dGgAAAATAAAAAAAAAABi/B0L0JGythwN1lY0aypo19NHxvLCyO5tBEcCVvwF9wAAAA8AAAAFd29ybGQAAAAAAAAAAAAAAAAAAAQAAAANAAAAIOGr69HGMhJNHrYmkrVICfPPVxkqlKmRGXAskfpmvOyyAAAADwAAAARhdXRoAAAAEwAAAAAAAAAAYvwdC9CRsrYcDdZWNGsqaNfTR8bywsjubQRHAlb8BfcAAAAPAAAABXdvcmxkAAAAAAAAAAAAAAAAAAAA" - } -} -``` + ### Response From 796da1f9f00152e2787217f310dce14c2498be34 Mon Sep 17 00:00:00 2001 From: Elliot Voris Date: Tue, 19 Sep 2023 10:21:48 -0500 Subject: [PATCH 033/133] feat: Display example RPC requests as a useable CURL command (#568) Also displaying generic code snippets for popular languages, as well as in raw JSON format. A new `ExampleRequest` component has been made to facilitate this, as well. This component takes a `method` prop for the name of the RPC method being called, as well as an optional `params` prop which can pass the object that should be used to populate the RPC request object. Refs: #565 --- api/methods/getLedgerEntries.mdx | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/api/methods/getLedgerEntries.mdx b/api/methods/getLedgerEntries.mdx index 076486125..d098cb5c3 100644 --- a/api/methods/getLedgerEntries.mdx +++ b/api/methods/getLedgerEntries.mdx @@ -2,6 +2,8 @@ sidebar_position: 4 --- +import ExampleRequest from "@site/src/components/ExampleRequest"; + For reading the current value of ledger entries directly. Allows you to directly inspect the _current state_ of a contract, a contract's code, or any other ledger entry. This is a backup way to access your contract data which may not be available via events or `simulateTransaction`. @@ -25,16 +27,7 @@ To fetch contract wasm byte-code, use the ContractCode ledger entry key. ### Request -```json -{ - "jsonrpc": "2.0", - "id": 8675309, - "method": "getLedgerEntries", - "params": { - "keys": ["AAAAB+qfy4GuVKKfazvyk4R9P9fpo2n9HICsr+xqvVcTF+DC","AAAABuGr69HGMhJNHrYmkrVICfPPVxkqlKmRGXAskfpmvOyyAAAAFA=="] - } -} -``` + ### Response From d21d19748704e204b322ee916fd3b92a224864a5 Mon Sep 17 00:00:00 2001 From: Julian Martinez <73849597+Julian-dev28@users.noreply.github.com> Date: Fri, 22 Sep 2023 10:25:37 -0700 Subject: [PATCH 034/133] Update Futurenet to Testnet Across Documentation (#577) * Futurenet -> Testnet * fix broken links * update-rpc-page * Update testnet.mdx * Pass 1 * format * update table in testnet.mdx * update state expiration example script to use testnet * replacing futurenet with testnet in contract deployment example * revert SDC contnet * include testnet network passphrase on releases page * update freighter to include testnet alongside futurenet * revert SDC to Use Futurenet for the time being * style: fix up markdown syntax and style in `rpc.mdx` Also adds some small linguistic and grammer changes, as well as more updates from Futurenet to Testnet * docs: include Testnet when describing what RPC servers SDF maintains * style: changing a single ellipsis character with three periods * docs: include gh repo links to the software that runs in quickstart * add the Testnet network to the example `initialize.sh` script * change contract-invoking transaction example code to use Testnet * change to valid futurenet URLs in dapp challenges * Apply suggestions from code review minor tweaks that slipped through the cracks --------- Co-authored-by: Elliot Voris --- api/methods/getLedgerEntries.mdx | 2 +- api/methods/getNetwork.mdx | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/api/methods/getLedgerEntries.mdx b/api/methods/getLedgerEntries.mdx index d098cb5c3..3bb85dd88 100644 --- a/api/methods/getLedgerEntries.mdx +++ b/api/methods/getLedgerEntries.mdx @@ -390,4 +390,4 @@ And the response we get contains (even more) `LedgerEntryData` that we can decod ``` [`increment` example contract]: /docs/getting-started/storing-data -["View XDR" page of the Stellar Laboratory]: +["View XDR" page of the Stellar Laboratory]: diff --git a/api/methods/getNetwork.mdx b/api/methods/getNetwork.mdx index 4d173240d..025c3cf23 100644 --- a/api/methods/getNetwork.mdx +++ b/api/methods/getNetwork.mdx @@ -30,8 +30,8 @@ General info about the currently configured network. "jsonrpc": "2.0", "id": 8675309, "result": { - "friendbotUrl": "https://friendbot-futurenet.stellar.org/", - "passphrase": "Test SDF Future Network ; October 2022", + "friendbotUrl": "https://friendbot.stellar.org/", + "passphrase": "Test SDF Network ; September 2015", "protocolVersion": "20" } } From ce2e3ff41e6013721e8c0094ca6b8d46fa6650be Mon Sep 17 00:00:00 2001 From: Julian Martinez <73849597+Julian-dev28@users.noreply.github.com> Date: Fri, 22 Sep 2023 10:25:37 -0700 Subject: [PATCH 035/133] Update Futurenet to Testnet Across Documentation (#577) * Futurenet -> Testnet * fix broken links * update-rpc-page * Update testnet.mdx * Pass 1 * format * update table in testnet.mdx * update state expiration example script to use testnet * replacing futurenet with testnet in contract deployment example * revert SDC contnet * include testnet network passphrase on releases page * update freighter to include testnet alongside futurenet * revert SDC to Use Futurenet for the time being * style: fix up markdown syntax and style in `rpc.mdx` Also adds some small linguistic and grammer changes, as well as more updates from Futurenet to Testnet * docs: include Testnet when describing what RPC servers SDF maintains * style: changing a single ellipsis character with three periods * docs: include gh repo links to the software that runs in quickstart * add the Testnet network to the example `initialize.sh` script * change contract-invoking transaction example code to use Testnet * change to valid futurenet URLs in dapp challenges * Apply suggestions from code review minor tweaks that slipped through the cracks --------- Co-authored-by: Elliot Voris --- api/methods/getLedgerEntries.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/methods/getLedgerEntries.mdx b/api/methods/getLedgerEntries.mdx index d098cb5c3..3bb85dd88 100644 --- a/api/methods/getLedgerEntries.mdx +++ b/api/methods/getLedgerEntries.mdx @@ -390,4 +390,4 @@ And the response we get contains (even more) `LedgerEntryData` that we can decod ``` [`increment` example contract]: /docs/getting-started/storing-data -["View XDR" page of the Stellar Laboratory]: +["View XDR" page of the Stellar Laboratory]: From 0717be82ff849d285bebb0636c3289535d7d5a91 Mon Sep 17 00:00:00 2001 From: George Date: Tue, 10 Oct 2023 16:08:46 -0700 Subject: [PATCH 036/133] Clarify that IDs are strkeys, plus minor lang cleanup (#605) --- api/methods/getEvents.mdx | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/api/methods/getEvents.mdx b/api/methods/getEvents.mdx index 41602a8df..e9ee6d515 100644 --- a/api/methods/getEvents.mdx +++ b/api/methods/getEvents.mdx @@ -26,7 +26,7 @@ By default soroban-rpc retains the most recent 24 hours of events. - A `SegmentMatcher` is one of the following: - For an exact segment match, a string containing base64-encoded ScVal - For a wildcard single-segment match, the string "*", matches exactly one segment. - - Examples of matching token transfer events. Events are emitted here: [rs-soroban-env/event.rs at 924d86cacd58b8a162344bfe0ab37d9668f5d629]. I've decoded the base64-encoded ScVals for easier reading (both the symbols and addresses). In real usage, the `ScSymbol("transfer").toXdr().toString("base64")`, and `ScBinary(pubkeyBytes).toXdr().toString("base64")`, would be base64 encoded strings for exact matches. For example: + - Examples of matching token transfer events. Events are emitted here: [rs-soroban-env/event.rs @ `924d86c`], with base64-encoded ScVals decoded for easier reading (both the symbols and addresses). In real usage, the `ScSymbol("transfer").toXdr().toString("base64")`, and `ScBinary(pubkeyBytes).toXdr().toString("base64")`, would be base64-encoded strings for exact matches. For example: - `[ScSymbol("transfer"), "*", "*"]` - Matches any token transfer events - `[ScSymbol("transfer"), "*", "GABC...123"]` @@ -41,15 +41,14 @@ By default soroban-rpc retains the most recent 24 hours of events. - `latestLedger`: `` - Stringified-number of the current latest ledger observed by the node when this response was generated. - `events`: `` - `ledger`: `` - String-ified sequence number of the ledger. - - `ledgerClosedAt`: `` - ISO8601 timestamp of the ledger closing time. - - `contractId`: `` - ID of the emitting contract. + - `ledgerClosedAt`: `` - [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) timestamp of the ledger closing time. + - `contractId`: `` - StrKey ID (`C...`) of the emitting contract ([SEP-23](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0023.md#specification)). - `id`: `` - Unique identifier for this event. - The event's unique id field is based on a [`toid` from Horizon] as used in Horizon's /effects endpoint. - https://github.com/stellar/go/blob/master/services/horizon/internal/db2/history/effect.go#L58 - Specifically, it is a string containing: - - bigint(32 bit ledger sequence + 20 bit txn number + 12 bit operation) + `` + number for the event within the operation. - - For example: - - 1234-1 + - bigint(32 bit ledger sequence + 20 bit txn number + 12 bit operation) + `` + number for the event within the operation. + - For example: `1234-1` - `pagingToken`: `` - Duplicate of `id` field, but in the standard place for pagination tokens. - `inSuccessfulContractCall`: `` - If true the event was emitted during a successful contract call. - `topic`: `` - List containing the topic this event was emitted with. @@ -99,7 +98,7 @@ The examples below only returns two transfer events that took place to/from the "type": "contract", "ledger": "230010", "ledgerClosedAt": "2023-01-23T18:54:41Z", - "contractId": "d93f5c7bb0ebc4a9c8f727c5cebc4e41194d38257e1d0d910356b43bfc528813", + "contractId": "CB64D3G7SM2RTH6JSGG34DDTFTQ5CFDKVDZJZSODMCX4NJ2HV2KN7OHT", "id": "0000987885427757056-0000000001", "pagingToken": "0000987885427757056-0000000001", "inSuccessfulContractCall": true, @@ -116,7 +115,7 @@ The examples below only returns two transfer events that took place to/from the "type": "contract", "ledger": "230170", "ledgerClosedAt": "2023-01-23T19:08:37Z", - "contractId": "d93f5c7bb0ebc4a9c8f727c5cebc4e41194d38257e1d0d910356b43bfc528813", + "contractId": "CB64D3G7SM2RTH6JSGG34DDTFTQ5CFDKVDZJZSODMCX4NJ2HV2KN7OHT", "id": "0000988572622524416-0000000001", "pagingToken": "0000988572622524416-0000000001", "inSuccessfulContractCall": true, @@ -134,5 +133,5 @@ The examples below only returns two transfer events that took place to/from the } ``` -[rs-soroban-env/event.rs at 924d86cacd58b8a162344bfe0ab37d9668f5d629]: +[rs-soroban-env/event.rs @ `924d86c`]: [`toid` from Horizon]: From d366f06309e9980c487bb656a0eb2e4fb9b1769b Mon Sep 17 00:00:00 2001 From: Tsachi Herman <24438559+tsachiherman@users.noreply.github.com> Date: Mon, 16 Oct 2023 12:44:33 -0400 Subject: [PATCH 037/133] update getLedgerEntries documentation (#614) * update * update per feedback, --- api/methods/getLedgerEntries.mdx | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/api/methods/getLedgerEntries.mdx b/api/methods/getLedgerEntries.mdx index 3bb85dd88..29f87f709 100644 --- a/api/methods/getLedgerEntries.mdx +++ b/api/methods/getLedgerEntries.mdx @@ -17,10 +17,11 @@ To fetch contract wasm byte-code, use the ContractCode ledger entry key. ## Return - `` - - `entries`: Array containing the specified ledger entries which were found - - `key`: `` - The key of the ledger entry (serialized in a base64 string) - - `xdr`: `` - The current value of the given ledger entry (serialized in a base64 string) - - `lastModifiedLedgerSeq`: `` - The ledger number of the last time this entry was updated (optional) + - `entries`: Array containing the specified ledger entries which were found. + - `key`: `` - The key of the ledger entry (serialized in a base64 string). + - `xdr`: `` - The current value of the given ledger entry (serialized in a base64 string). + - `lastModifiedLedgerSeq`: `` - The ledger sequence number of the last time this entry was updated. + - `expirationLedgerSeq`: `` - The ledger sequence number after which the ledger entry would expire. This field exists only for ContractCodeEntry and ContractDataEntry ledger entries (optional). - `latestLedger`: `` - The current latest ledger observed by the node when this response was generated. ## Examples @@ -40,7 +41,8 @@ To fetch contract wasm byte-code, use the ContractCode ledger entry key. { "key": "AAAAB+qfy4GuVKKfazvyk4R9P9fpo2n9HICsr+xqvVcTF+DC", "xdr": "AAAABwAAAADqn8uBrlSin2s78pOEfT/X6aNp/RyArK/sar1XExfgwgAAAAphIGNvbnRyYWN0AAA=", - "lastModifiedLedgerSeq": "13" + "lastModifiedLedgerSeq": "13", + "expirationLedgerSeq": "95" } ], "latestLedger": "179436" @@ -381,7 +383,8 @@ And the response we get contains (even more) `LedgerEntryData` that we can decod { "key": "AAAAB2QWKBCU9yGjzDJNxaEZpxEB6A8XsD2S/lKK/sViOLiC", "xdr": "AAAABwAAAABkFigQlPcho8wyTcWhGacRAegPF7A9kv5Siv7FYji4ggAAAlQAYXNtAQAAAAEPA2ACfn4BfmABfgF+YAAAAgcBAXYBRwAAAwQDAQICBQMBABEGGQN/AUGAgMAAC38AQYWAwAALfwBBkIDAAAsHMQUGbWVtb3J5AgAFaGVsbG8AAQFfAAMKX19kYXRhX2VuZAMBC19faGVhcF9iYXNlAwIK4QID1gIDAn8CfgF/I4CAgIAAQSBrIgEkgICAgAACQAJAIACnQf8BcSICQQ5GDQAgAkHKAEcNAQtCACEDQXshAgNAAkACQAJAAkAgAkUNAEIBIQQgAkGFgMCAAGotAAAiBUHfAEYNAyAFrSEEIAVBUGpBCkkNAiAFQb9/akEaSQ0BAkAgBUGff2pBGk8NACAEQkV8IQQMBAsQgoCAgAAACyABIAA3AwggASADQgiGQg6ENwMAQQAhAgNAAkAgAkEQRw0AQQAhAgJAA0AgAkEQRg0BIAFBEGogAmogASACaikDADcDACACQQhqIQIMAAsLIAFBEGqtQiCGQgSEQoSAgIAgEICAgIAAIQQgAUEgaiSAgICAACAEDwsgAUEQaiACakICNwMAIAJBCGohAgwACwsgBEJLfCEEDAELIARCUnwhBAsgAkEBaiECIAQgA0IGhoQhAwwACwsAAAsEAAAACwIACwsOAQBBgIDAAAsFSGVsbG8AHhFjb250cmFjdGVudm1ldGF2MAAAAAAAAAAUAAAAJQBDDmNvbnRyYWN0c3BlY3YwAAAAAAAAAAAAAAAFaGVsbG8AAAAAAAABAAAAAAAAAAJ0bwAAAAAAEQAAAAEAAAPqAAAAEQ==", - "lastModifiedLedgerSeq": "75206" + "lastModifiedLedgerSeq": "75206", + "expirationLedgerSeq": "320384" } ], "latestLedger": "262384" From 0401f00d97e0f56a48f25c54c298a83686710aa4 Mon Sep 17 00:00:00 2001 From: Tsachi Herman <24438559+tsachiherman@users.noreply.github.com> Date: Mon, 16 Oct 2023 12:44:33 -0400 Subject: [PATCH 038/133] update getLedgerEntries documentation (#614) * update * update per feedback, --- api/methods/getLedgerEntries.mdx | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/api/methods/getLedgerEntries.mdx b/api/methods/getLedgerEntries.mdx index 3bb85dd88..29f87f709 100644 --- a/api/methods/getLedgerEntries.mdx +++ b/api/methods/getLedgerEntries.mdx @@ -17,10 +17,11 @@ To fetch contract wasm byte-code, use the ContractCode ledger entry key. ## Return - `` - - `entries`: Array containing the specified ledger entries which were found - - `key`: `` - The key of the ledger entry (serialized in a base64 string) - - `xdr`: `` - The current value of the given ledger entry (serialized in a base64 string) - - `lastModifiedLedgerSeq`: `` - The ledger number of the last time this entry was updated (optional) + - `entries`: Array containing the specified ledger entries which were found. + - `key`: `` - The key of the ledger entry (serialized in a base64 string). + - `xdr`: `` - The current value of the given ledger entry (serialized in a base64 string). + - `lastModifiedLedgerSeq`: `` - The ledger sequence number of the last time this entry was updated. + - `expirationLedgerSeq`: `` - The ledger sequence number after which the ledger entry would expire. This field exists only for ContractCodeEntry and ContractDataEntry ledger entries (optional). - `latestLedger`: `` - The current latest ledger observed by the node when this response was generated. ## Examples @@ -40,7 +41,8 @@ To fetch contract wasm byte-code, use the ContractCode ledger entry key. { "key": "AAAAB+qfy4GuVKKfazvyk4R9P9fpo2n9HICsr+xqvVcTF+DC", "xdr": "AAAABwAAAADqn8uBrlSin2s78pOEfT/X6aNp/RyArK/sar1XExfgwgAAAAphIGNvbnRyYWN0AAA=", - "lastModifiedLedgerSeq": "13" + "lastModifiedLedgerSeq": "13", + "expirationLedgerSeq": "95" } ], "latestLedger": "179436" @@ -381,7 +383,8 @@ And the response we get contains (even more) `LedgerEntryData` that we can decod { "key": "AAAAB2QWKBCU9yGjzDJNxaEZpxEB6A8XsD2S/lKK/sViOLiC", "xdr": "AAAABwAAAABkFigQlPcho8wyTcWhGacRAegPF7A9kv5Siv7FYji4ggAAAlQAYXNtAQAAAAEPA2ACfn4BfmABfgF+YAAAAgcBAXYBRwAAAwQDAQICBQMBABEGGQN/AUGAgMAAC38AQYWAwAALfwBBkIDAAAsHMQUGbWVtb3J5AgAFaGVsbG8AAQFfAAMKX19kYXRhX2VuZAMBC19faGVhcF9iYXNlAwIK4QID1gIDAn8CfgF/I4CAgIAAQSBrIgEkgICAgAACQAJAIACnQf8BcSICQQ5GDQAgAkHKAEcNAQtCACEDQXshAgNAAkACQAJAAkAgAkUNAEIBIQQgAkGFgMCAAGotAAAiBUHfAEYNAyAFrSEEIAVBUGpBCkkNAiAFQb9/akEaSQ0BAkAgBUGff2pBGk8NACAEQkV8IQQMBAsQgoCAgAAACyABIAA3AwggASADQgiGQg6ENwMAQQAhAgNAAkAgAkEQRw0AQQAhAgJAA0AgAkEQRg0BIAFBEGogAmogASACaikDADcDACACQQhqIQIMAAsLIAFBEGqtQiCGQgSEQoSAgIAgEICAgIAAIQQgAUEgaiSAgICAACAEDwsgAUEQaiACakICNwMAIAJBCGohAgwACwsgBEJLfCEEDAELIARCUnwhBAsgAkEBaiECIAQgA0IGhoQhAwwACwsAAAsEAAAACwIACwsOAQBBgIDAAAsFSGVsbG8AHhFjb250cmFjdGVudm1ldGF2MAAAAAAAAAAUAAAAJQBDDmNvbnRyYWN0c3BlY3YwAAAAAAAAAAAAAAAFaGVsbG8AAAAAAAABAAAAAAAAAAJ0bwAAAAAAEQAAAAEAAAPqAAAAEQ==", - "lastModifiedLedgerSeq": "75206" + "lastModifiedLedgerSeq": "75206", + "expirationLedgerSeq": "320384" } ], "latestLedger": "262384" From 3726c89bd58ce3b8585f836f1ed511e312e93bae Mon Sep 17 00:00:00 2001 From: MazurakIhor <131388095+MazurakIhor@users.noreply.github.com> Date: Wed, 18 Oct 2023 22:48:26 +0300 Subject: [PATCH 039/133] Reworked documentation of Soroban RPC methods using open-rpc-docs-react component to be consistent with Anchor API (#603) * Reworked documentation of Soroban RPC methods using open-rpc-docs-react component to be consistent with Anchor API * Merged latest changes from main and adjusted descriptions * Updated docs for getLedgerEntries RPC call. Fixed typescript error. --- api/methods/getEvents.mdx | 53 ++--------------------------- api/methods/getHealth.mdx | 12 ++----- api/methods/getLatestLedger.mdx | 14 ++------ api/methods/getLedgerEntries.mdx | 22 ++---------- api/methods/getNetwork.mdx | 14 ++------ api/methods/getTransaction.mdx | 28 ++------------- api/methods/sendTransaction.mdx | 25 ++------------ api/methods/simulateTransaction.mdx | 26 ++------------ 8 files changed, 24 insertions(+), 170 deletions(-) diff --git a/api/methods/getEvents.mdx b/api/methods/getEvents.mdx index e9ee6d515..c6cc9a053 100644 --- a/api/methods/getEvents.mdx +++ b/api/methods/getEvents.mdx @@ -1,59 +1,12 @@ --- sidebar_position: 2 +hide_title: true --- import ExampleRequest from "@site/src/components/ExampleRequest"; +import {RpcMethod} from "@site/src/components/RpcMethod"; -Clients can request a filtered list of events emitted by a given ledger range. - -Soroban-RPC will support querying within a maximum 24 hours of recent ledgers. - -Note, this could be used by the client to only prompt a refresh when there is a new ledger with relevant events. It should also be used by backend Dapp components to "ingest" events into their own database for querying and serving. - -If making multiple requests, clients should deduplicate any events received, based on the event's unique id field. This prevents double-processing in the case of duplicate events being received. - -By default soroban-rpc retains the most recent 24 hours of events. - -## Parameters - -- `startLedger`: `` - Stringified 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](../pagination) is included in the request, `startLedger` must be omitted. -- `filters`: `` - List of filters for the returned events. Events matching any of the filters are included. To match a filter, an event must match both a contractId and a topic. Maximum 5 filters are allowed per request. - - `type`: `` - (optional) A comma separated list of event types (`system`, `contract`, or `diagnostic`) used to filter events. If omitted, all event types are included. - - `contractIds`: `` - (optional) List of contract ids to query for events. If omitted, return events for all contracts. Maximum 5 contract IDs are allowed per request. - - `topics`: `` - (optional) List of topic filters. If omitted, query for all events. If multiple filters are specified, events will be included if they match any of the filters. Maximum 5 filters are allowed per request. - - A `TopicFilter` is `SegmentMatcher[]` - - The list can be 1-4 `SegmentMatcher`s long. - - A `SegmentMatcher` is one of the following: - - For an exact segment match, a string containing base64-encoded ScVal - - For a wildcard single-segment match, the string "*", matches exactly one segment. - - Examples of matching token transfer events. Events are emitted here: [rs-soroban-env/event.rs @ `924d86c`], with base64-encoded ScVals decoded for easier reading (both the symbols and addresses). In real usage, the `ScSymbol("transfer").toXdr().toString("base64")`, and `ScBinary(pubkeyBytes).toXdr().toString("base64")`, would be base64-encoded strings for exact matches. For example: - - `[ScSymbol("transfer"), "*", "*"]` - - Matches any token transfer events - - `[ScSymbol("transfer"), "*", "GABC...123"]` - - Matches any token transfer events to recipient: GABC...123 - - `[ScSymbol("transfer"), "GDEF...456", "GABC...123"]` - - Matches only token transfers from GDEF...456 to GABC...123. -- `pagination`: `` - See "[Pagination](../pagination)" - -## Returns - -- `` - - `latestLedger`: `` - Stringified-number of the current latest ledger observed by the node when this response was generated. - - `events`: `` - - `ledger`: `` - String-ified sequence number of the ledger. - - `ledgerClosedAt`: `` - [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) timestamp of the ledger closing time. - - `contractId`: `` - StrKey ID (`C...`) of the emitting contract ([SEP-23](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0023.md#specification)). - - `id`: `` - Unique identifier for this event. - - The event's unique id field is based on a [`toid` from Horizon] as used in Horizon's /effects endpoint. - - https://github.com/stellar/go/blob/master/services/horizon/internal/db2/history/effect.go#L58 - - Specifically, it is a string containing: - - bigint(32 bit ledger sequence + 20 bit txn number + 12 bit operation) + `` + number for the event within the operation. - - For example: `1234-1` - - `pagingToken`: `` - Duplicate of `id` field, but in the standard place for pagination tokens. - - `inSuccessfulContractCall`: `` - If true the event was emitted during a successful contract call. - - `topic`: `` - List containing the topic this event was emitted with. - - `value`: `` - List containing the topic this event was emitted with. - - `xdr`: `` - The emitted body value of the event (serialized in a base64 string). + ## Examples diff --git a/api/methods/getHealth.mdx b/api/methods/getHealth.mdx index 025c74da9..1e85ff624 100644 --- a/api/methods/getHealth.mdx +++ b/api/methods/getHealth.mdx @@ -1,19 +1,13 @@ --- sidebar_position: 3 +hide_title: true --- import ExampleRequest from "@site/src/components/ExampleRequest"; -General node health check. +import {RpcMethod} from "@site/src/components/RpcMethod"; -## Parameters - -- None - -## Returns - -- `` - - `status`: "healthy" + ## Examples diff --git a/api/methods/getLatestLedger.mdx b/api/methods/getLatestLedger.mdx index d55ac583d..cedb584f9 100644 --- a/api/methods/getLatestLedger.mdx +++ b/api/methods/getLatestLedger.mdx @@ -1,21 +1,13 @@ --- sidebar_position: 1 +hide_title: true --- import ExampleRequest from "@site/src/components/ExampleRequest"; -For finding out the current latest known ledger of this node. This is a subset of the ledger info from Horizon. +import {RpcMethod} from "@site/src/components/RpcMethod"; -## Parameters - -- None - -## Returns - -- `` - - `id`: `` - hash of the latest ledger as a hex-encoded string - - `protocolVersion`: `` - Stellar Core protocol version associated with the latest ledger - - `sequence`: `` - sequence number of the latest ledger + ## Examples diff --git a/api/methods/getLedgerEntries.mdx b/api/methods/getLedgerEntries.mdx index 29f87f709..0fcb85c22 100644 --- a/api/methods/getLedgerEntries.mdx +++ b/api/methods/getLedgerEntries.mdx @@ -1,28 +1,12 @@ --- sidebar_position: 4 +hide_title: true --- import ExampleRequest from "@site/src/components/ExampleRequest"; +import {RpcMethod} from "@site/src/components/RpcMethod"; -For reading the current value of ledger entries directly. - -Allows you to directly inspect the _current state_ of a contract, a contract's code, or any other ledger entry. This is a backup way to access your contract data which may not be available via events or `simulateTransaction`. - -To fetch contract wasm byte-code, use the ContractCode ledger entry key. - -## Parameters - -- `keys`: `` - Array containing the keys of the ledger entries you wish to retrieve. (an array of serialized base64 strings) - -## Return - -- `` - - `entries`: Array containing the specified ledger entries which were found. - - `key`: `` - The key of the ledger entry (serialized in a base64 string). - - `xdr`: `` - The current value of the given ledger entry (serialized in a base64 string). - - `lastModifiedLedgerSeq`: `` - The ledger sequence number of the last time this entry was updated. - - `expirationLedgerSeq`: `` - The ledger sequence number after which the ledger entry would expire. This field exists only for ContractCodeEntry and ContractDataEntry ledger entries (optional). - - `latestLedger`: `` - The current latest ledger observed by the node when this response was generated. + ## Examples diff --git a/api/methods/getNetwork.mdx b/api/methods/getNetwork.mdx index 025c3cf23..be7948d55 100644 --- a/api/methods/getNetwork.mdx +++ b/api/methods/getNetwork.mdx @@ -1,21 +1,13 @@ --- sidebar_position: 5 +hide_title: true --- import ExampleRequest from "@site/src/components/ExampleRequest"; -General info about the currently configured network. +import {RpcMethod} from "@site/src/components/RpcMethod"; -## Parameters - -- None - -## Returns - -- `` - - `friendbotUrl`: `` (optional) - The URL of this network's "friendbot" faucet - - `passphrase`: `` - Network passphrase configured - - `protocolVersion`: `` - Protocol version of the latest ledger + ## Examples diff --git a/api/methods/getTransaction.mdx b/api/methods/getTransaction.mdx index dc3551933..cb5987fb2 100644 --- a/api/methods/getTransaction.mdx +++ b/api/methods/getTransaction.mdx @@ -1,34 +1,12 @@ --- sidebar_position: 8 +hide_title: true --- import ExampleRequest from "@site/src/components/ExampleRequest"; +import {RpcMethod} from "@site/src/components/RpcMethod"; -Clients will poll this to tell when the transaction has been completed. - - -## Parameters - -- `` - transaction hash to query, as a hex-encoded string - -## Returns - -- `` - - `status`: `` - the current status of the transaction by hash, one of: - - `SUCCESS` - - `NOT_FOUND` - - `FAILED` - - `latestLedger`: `` - The latest ledger known to Soroban-RPC at the time it handled the `getTransaction()` request. - - `latestLedgerCloseTime`: `` - The unix timestamp of the close time of the latest ledger known to Soroban-RPC at the time it handled the `getTransaction()` request. - - `oldestLedger`: `` - The oldest ledger ingested by Soroban-RPC at the time it handled the `getTransaction()` request. - - `oldestLedgerCloseTime`: `` - The unix timestamp of the close time of the oldest ledger ingested by Soroban-RPC at the time it handled the `getTransaction()` request. - - `ledger`: `` - (optional) The sequence of the ledger which included the transaction. This field is only present if `status` is `SUCCESS` or `FAILED`. - - `createdAt`: `` - (optional) The unix timestamp of when the transaction was included in the ledger. This field is only present if `status` is `SUCCESS` or `FAILED`. - - `applicationOrder`: `` - (optional) The index of the transaction among all transactions included in the ledger. This field is only present if `status` is `SUCCESS` or `FAILED`. - - `feeBump`: `` - (optional) Indicates whether the transaction was fee bumped. This field is only present if `status` is `SUCCESS` or `FAILED`. - - `envelopeXdr`: `` - (optional) A base64 encoded string of the raw TransactionEnvelope XDR struct for this transaction. - - `resultXdr`: `` - (optional) A base64 encoded string of the raw TransactionResult XDR struct for this transaction. This field is only present if `status` is `SUCCESS` or `FAILED`. - - `resultMetaXdr`: `` - (optional) A base64 encoded string of the raw TransactionResultMeta XDR struct for this transaction. + ## Examples diff --git a/api/methods/sendTransaction.mdx b/api/methods/sendTransaction.mdx index df32bc6c4..842d9aa8e 100644 --- a/api/methods/sendTransaction.mdx +++ b/api/methods/sendTransaction.mdx @@ -1,31 +1,12 @@ --- sidebar_position: 7 +hide_title: true --- import ExampleRequest from "@site/src/components/ExampleRequest"; +import {RpcMethod} from "@site/src/components/RpcMethod"; -Submit a real transaction to the Stellar network. This is the only way to make changes "on-chain". - -Unlike Horizon, this does not wait for transaction completion. It simply validates and enqueues the transaction. Clients should call getTransaction to learn about transaction success/failure. - -This supports all transactions, not only smart contract-related transactions. - -## Parameters - -- `` - The signed transaction to broadcast (serialized in base64) - -## Returns - -- `` - - `hash`: `` The transaction hash (in an hex-encoded string). - - `status`: `` - The current status of the transaction by hash, one of: - - `PENDING` - The transaction has been accepted by stellar-core. - - `DUPLICATE` - The transaction has already been submitted to stellar-core. - - `TRY_AGAIN_LATER` - The transaction was not included in the previous 4 ledgers and is banned from the next few ledgers. - - `ERROR` - An error occurred from submitting the transaction to stellar-core. - - `latestLedger`: `` - The latest ledger known to Soroban-RPC at the time it handled the `sendTransaction()` request. - - `latestLedgerCloseTime`: `` - The unix timestamp of the close time of the latest ledger known to Soroban-RPC at the time it handled the `sendTransaction()` request. - - `errorResultXdr`: `` - (optional) If the transaction status is `ERROR`, this will be a base64 encoded string of the raw TransactionResult XDR struct containing details on why stellar-core rejected the transaction. + ## Examples diff --git a/api/methods/simulateTransaction.mdx b/api/methods/simulateTransaction.mdx index 92c561a56..2a270581c 100644 --- a/api/methods/simulateTransaction.mdx +++ b/api/methods/simulateTransaction.mdx @@ -1,32 +1,12 @@ --- sidebar_position: 8 +hide_title: true --- import ExampleRequest from "@site/src/components/ExampleRequest"; +import {RpcMethod} from "@site/src/components/RpcMethod"; -Submit a trial contract invocation to simulate how it would be executed by the network. This endpoint calculates the effective transaction data, required authorizations, and minimal resource fee. It provides a way to test and analyze the potential outcomes of a transaction without actually submitting it to the network. - -## Parameters - -- `` - The transaction to be simulated (serialized in base64) - -## Returns - -- `` - - `minResourceFee`: `` (optional) stringified number - Recommended minimum resource fee to add when submitting the transaction. This fee is to be added on top of the [Stellar network fee](https://developers.stellar.org/docs/encyclopedia/fees-surge-pricing-fee-strategies#network-fees-on-stellar). Not present in case of error. - - `cost`: `` (optional) - Information about instructions used, etc. Not present in case of error. - - `cpuInsns`: `` stringified number - Total cpu instructions consumed by this transaction - - `memBytes`: `` stringified number - Total memory bytes allocated by this transaction - - `results`: `` (optional) - This array will only have one element: the result for the Host Function invocation. Only present on successful simulation (i.e. no error) of `InvokeHostFunction` operations. - - `xdr`: `` serialized base64 string - return value of the Host Function call. - - `auth`: `` array of serialized base64 strings - Per-address authorizations recorded when simulating this Host Function call. - - `transactionData`: `` (optional) serialized base64 string - The recommended Soroban Transaction Data to use when submitting the simulated transaction. This data contains the refundable fee and resource usage information such as the ledger footprint and IO access data (serialized in a base64 string). Not present in case of error. - - `events`: `` (optional) array of serialized base64 strings - Array of the events emitted during the contract invocation. The events are ordered by their emission _time_. (an array of serialized base64 strings). Only present when simulating of `InvokeHostFunction` operations, note that it can be present on error, providing extra context about what failed. - - `restorePreamble`: `` (optional) - It can only be present on successful simulation (i.e. no error) of `InvokeHostFunction` operations. If present, it indicates that the simulation detected expired ledger entries which need to be restored before the submission of the `InvokeHostFunction` operation. The `minResourceFee` and `transactionData` fields should be used to submit a transaction containing a `RestoreFootprint` operation. - - `minResourceFee`: `` stringified number - Recommended minimum resource fee to add when submitting the `RestoreFootprint` operation. This fee is to be added on top of the [Stellar network fee](https://developers.stellar.org/docs/encyclopedia/fees-surge-pricing-fee-strategies#network-fees-on-stellar). - - `transactionData`: `` serialized base64 string - The recommended Soroban Transaction Data to use when submitting the `RestoreFootprint` operation. - - `latestLedger`: `` stringified number - Current latest closed ledger (LCL) observed by the node when this response was generated. Always present. - - `error`: `` (optional) - This field will include details about why the invoke host function call failed. Only present if the transaction simulation failed. + ## Examples From d516799cf29c676126b3937a4b6043056e05926f Mon Sep 17 00:00:00 2001 From: MazurakIhor <131388095+MazurakIhor@users.noreply.github.com> Date: Wed, 18 Oct 2023 22:48:26 +0300 Subject: [PATCH 040/133] Reworked documentation of Soroban RPC methods using open-rpc-docs-react component to be consistent with Anchor API (#603) * Reworked documentation of Soroban RPC methods using open-rpc-docs-react component to be consistent with Anchor API * Merged latest changes from main and adjusted descriptions * Updated docs for getLedgerEntries RPC call. Fixed typescript error. --- api/methods/getLedgerEntries.mdx | 22 +++------------------- 1 file changed, 3 insertions(+), 19 deletions(-) diff --git a/api/methods/getLedgerEntries.mdx b/api/methods/getLedgerEntries.mdx index 29f87f709..0fcb85c22 100644 --- a/api/methods/getLedgerEntries.mdx +++ b/api/methods/getLedgerEntries.mdx @@ -1,28 +1,12 @@ --- sidebar_position: 4 +hide_title: true --- import ExampleRequest from "@site/src/components/ExampleRequest"; +import {RpcMethod} from "@site/src/components/RpcMethod"; -For reading the current value of ledger entries directly. - -Allows you to directly inspect the _current state_ of a contract, a contract's code, or any other ledger entry. This is a backup way to access your contract data which may not be available via events or `simulateTransaction`. - -To fetch contract wasm byte-code, use the ContractCode ledger entry key. - -## Parameters - -- `keys`: `` - Array containing the keys of the ledger entries you wish to retrieve. (an array of serialized base64 strings) - -## Return - -- `` - - `entries`: Array containing the specified ledger entries which were found. - - `key`: `` - The key of the ledger entry (serialized in a base64 string). - - `xdr`: `` - The current value of the given ledger entry (serialized in a base64 string). - - `lastModifiedLedgerSeq`: `` - The ledger sequence number of the last time this entry was updated. - - `expirationLedgerSeq`: `` - The ledger sequence number after which the ledger entry would expire. This field exists only for ContractCodeEntry and ContractDataEntry ledger entries (optional). - - `latestLedger`: `` - The current latest ledger observed by the node when this response was generated. + ## Examples From f75442ce64da19164e98f49d9d424e25189217f1 Mon Sep 17 00:00:00 2001 From: Alfonso Acosta Date: Thu, 26 Oct 2023 18:33:01 +0200 Subject: [PATCH 041/133] rpc: rename expirationLedgerSeq to liveUntilLedgerSeq (#625) * rpc: rename expirationLedgerSeq to liveUntilLedgerSeq * rpc: rename expiration ledger in openrpc file --------- Co-authored-by: Elliot Voris --- api/methods/getLedgerEntries.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/api/methods/getLedgerEntries.mdx b/api/methods/getLedgerEntries.mdx index 0fcb85c22..5ab1bb53d 100644 --- a/api/methods/getLedgerEntries.mdx +++ b/api/methods/getLedgerEntries.mdx @@ -26,7 +26,7 @@ import {RpcMethod} from "@site/src/components/RpcMethod"; "key": "AAAAB+qfy4GuVKKfazvyk4R9P9fpo2n9HICsr+xqvVcTF+DC", "xdr": "AAAABwAAAADqn8uBrlSin2s78pOEfT/X6aNp/RyArK/sar1XExfgwgAAAAphIGNvbnRyYWN0AAA=", "lastModifiedLedgerSeq": "13", - "expirationLedgerSeq": "95" + "liveUntilLedgerSeq": "95" } ], "latestLedger": "179436" @@ -368,7 +368,7 @@ And the response we get contains (even more) `LedgerEntryData` that we can decod "key": "AAAAB2QWKBCU9yGjzDJNxaEZpxEB6A8XsD2S/lKK/sViOLiC", "xdr": "AAAABwAAAABkFigQlPcho8wyTcWhGacRAegPF7A9kv5Siv7FYji4ggAAAlQAYXNtAQAAAAEPA2ACfn4BfmABfgF+YAAAAgcBAXYBRwAAAwQDAQICBQMBABEGGQN/AUGAgMAAC38AQYWAwAALfwBBkIDAAAsHMQUGbWVtb3J5AgAFaGVsbG8AAQFfAAMKX19kYXRhX2VuZAMBC19faGVhcF9iYXNlAwIK4QID1gIDAn8CfgF/I4CAgIAAQSBrIgEkgICAgAACQAJAIACnQf8BcSICQQ5GDQAgAkHKAEcNAQtCACEDQXshAgNAAkACQAJAAkAgAkUNAEIBIQQgAkGFgMCAAGotAAAiBUHfAEYNAyAFrSEEIAVBUGpBCkkNAiAFQb9/akEaSQ0BAkAgBUGff2pBGk8NACAEQkV8IQQMBAsQgoCAgAAACyABIAA3AwggASADQgiGQg6ENwMAQQAhAgNAAkAgAkEQRw0AQQAhAgJAA0AgAkEQRg0BIAFBEGogAmogASACaikDADcDACACQQhqIQIMAAsLIAFBEGqtQiCGQgSEQoSAgIAgEICAgIAAIQQgAUEgaiSAgICAACAEDwsgAUEQaiACakICNwMAIAJBCGohAgwACwsgBEJLfCEEDAELIARCUnwhBAsgAkEBaiECIAQgA0IGhoQhAwwACwsAAAsEAAAACwIACwsOAQBBgIDAAAsFSGVsbG8AHhFjb250cmFjdGVudm1ldGF2MAAAAAAAAAAUAAAAJQBDDmNvbnRyYWN0c3BlY3YwAAAAAAAAAAAAAAAFaGVsbG8AAAAAAAABAAAAAAAAAAJ0bwAAAAAAEQAAAAEAAAPqAAAAEQ==", "lastModifiedLedgerSeq": "75206", - "expirationLedgerSeq": "320384" + "liveUntilLedgerSeq": "320384" } ], "latestLedger": "262384" From 2e0eb8c056dc4200033e2c235227b8805c319cdc Mon Sep 17 00:00:00 2001 From: Alfonso Acosta Date: Thu, 26 Oct 2023 18:33:01 +0200 Subject: [PATCH 042/133] rpc: rename expirationLedgerSeq to liveUntilLedgerSeq (#625) * rpc: rename expirationLedgerSeq to liveUntilLedgerSeq * rpc: rename expiration ledger in openrpc file --------- Co-authored-by: Elliot Voris --- api/methods/getLedgerEntries.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/api/methods/getLedgerEntries.mdx b/api/methods/getLedgerEntries.mdx index 0fcb85c22..5ab1bb53d 100644 --- a/api/methods/getLedgerEntries.mdx +++ b/api/methods/getLedgerEntries.mdx @@ -26,7 +26,7 @@ import {RpcMethod} from "@site/src/components/RpcMethod"; "key": "AAAAB+qfy4GuVKKfazvyk4R9P9fpo2n9HICsr+xqvVcTF+DC", "xdr": "AAAABwAAAADqn8uBrlSin2s78pOEfT/X6aNp/RyArK/sar1XExfgwgAAAAphIGNvbnRyYWN0AAA=", "lastModifiedLedgerSeq": "13", - "expirationLedgerSeq": "95" + "liveUntilLedgerSeq": "95" } ], "latestLedger": "179436" @@ -368,7 +368,7 @@ And the response we get contains (even more) `LedgerEntryData` that we can decod "key": "AAAAB2QWKBCU9yGjzDJNxaEZpxEB6A8XsD2S/lKK/sViOLiC", "xdr": "AAAABwAAAABkFigQlPcho8wyTcWhGacRAegPF7A9kv5Siv7FYji4ggAAAlQAYXNtAQAAAAEPA2ACfn4BfmABfgF+YAAAAgcBAXYBRwAAAwQDAQICBQMBABEGGQN/AUGAgMAAC38AQYWAwAALfwBBkIDAAAsHMQUGbWVtb3J5AgAFaGVsbG8AAQFfAAMKX19kYXRhX2VuZAMBC19faGVhcF9iYXNlAwIK4QID1gIDAn8CfgF/I4CAgIAAQSBrIgEkgICAgAACQAJAIACnQf8BcSICQQ5GDQAgAkHKAEcNAQtCACEDQXshAgNAAkACQAJAAkAgAkUNAEIBIQQgAkGFgMCAAGotAAAiBUHfAEYNAyAFrSEEIAVBUGpBCkkNAiAFQb9/akEaSQ0BAkAgBUGff2pBGk8NACAEQkV8IQQMBAsQgoCAgAAACyABIAA3AwggASADQgiGQg6ENwMAQQAhAgNAAkAgAkEQRw0AQQAhAgJAA0AgAkEQRg0BIAFBEGogAmogASACaikDADcDACACQQhqIQIMAAsLIAFBEGqtQiCGQgSEQoSAgIAgEICAgIAAIQQgAUEgaiSAgICAACAEDwsgAUEQaiACakICNwMAIAJBCGohAgwACwsgBEJLfCEEDAELIARCUnwhBAsgAkEBaiECIAQgA0IGhoQhAwwACwsAAAsEAAAACwIACwsOAQBBgIDAAAsFSGVsbG8AHhFjb250cmFjdGVudm1ldGF2MAAAAAAAAAAUAAAAJQBDDmNvbnRyYWN0c3BlY3YwAAAAAAAAAAAAAAAFaGVsbG8AAAAAAAABAAAAAAAAAAJ0bwAAAAAAEQAAAAEAAAPqAAAAEQ==", "lastModifiedLedgerSeq": "75206", - "expirationLedgerSeq": "320384" + "liveUntilLedgerSeq": "320384" } ], "latestLedger": "262384" From 7b5f59caa9d291f04531d7298468f0c3135eabd1 Mon Sep 17 00:00:00 2001 From: George Date: Thu, 26 Oct 2023 15:20:13 -0700 Subject: [PATCH 043/133] Update WASM retrieval tutorial (#627) --- api/methods/getLedgerEntries.mdx | 29 +++++++++-------------------- 1 file changed, 9 insertions(+), 20 deletions(-) diff --git a/api/methods/getLedgerEntries.mdx b/api/methods/getLedgerEntries.mdx index 5ab1bb53d..df2a1f8fd 100644 --- a/api/methods/getLedgerEntries.mdx +++ b/api/methods/getLedgerEntries.mdx @@ -214,14 +214,14 @@ print( ##### JavaScript ```javascript -const { xdr } = require("soroban-client") +const { Address, xdr } = require("soroban-client"); + function getLedgerKeyContractCode(contractId) { let ledgerKey = xdr.LedgerKey.contractData( new xdr.LedgerKeyContractData({ - contract: xdr.ScAddress.scAddressTypeContract(contractId), + contract: new Address(contractId).toScAddress(), key: new xdr.ScVal.scvLedgerKeyContractInstance(), - durability: xdr.ContractDataDurability.persistent(), - bodyType: xdr.ContractEntryBodyType.dataEntry(), + durability: xdr.ContractDataDurability.persistent() }) ); @@ -230,7 +230,7 @@ function getLedgerKeyContractCode(contractId) { console.log( getLedgerKeyContractCode( - "af9a2527e3b3b5571d63b0246ba32b7d31a5323766df7c60dfc0b3e3ba6fdf23" + "CA3D5KRYM6CB7OWQ6TWYRR3Z4T7GNZLKERYNZGGA5SOAOPIFY6YQGAXE" ) ) // OUTPUT: AAAABq+aJSfjs7VXHWOwJGujK30xpTI3Zt98YN/As+O6b98jAAAAFA== @@ -304,30 +304,19 @@ print( ##### JavaScript ```javascript -const { xdr } = require("soroban-client") +const { xdr } = require("soroban-client"); function getLedgerKeyWasmId(contractCodeLedgerEntryData) { - - let entry = xdr.LedgerEntryData.fromXDR( + const entry = xdr.LedgerEntryData.fromXDR( contractCodeLedgerEntryData, "base64" ); - let instance = new xdr.ScContractInstance({ - executable: entry.contractData() - .body() - .value() - .val() - }); + const instance = entry.contractData().val().instance(); let ledgerKey = xdr.LedgerKey.contractCode( new xdr.LedgerKeyContractCode({ - hash: xdr.ContractExecutable.contractExecutableWasm(instance.executable()) - .wasmHash() - .instance() - .executable() - .wasmHash(), - bodyType: xdr.ContractEntryBodyType.dataEntry() + hash: instance.wasmHash() }) ); From ca423725601e3f965e0be8a1594c3171fae2bf3c Mon Sep 17 00:00:00 2001 From: George Date: Thu, 26 Oct 2023 15:20:13 -0700 Subject: [PATCH 044/133] Update WASM retrieval tutorial (#627) --- api/methods/getLedgerEntries.mdx | 29 +++++++++-------------------- 1 file changed, 9 insertions(+), 20 deletions(-) diff --git a/api/methods/getLedgerEntries.mdx b/api/methods/getLedgerEntries.mdx index 5ab1bb53d..df2a1f8fd 100644 --- a/api/methods/getLedgerEntries.mdx +++ b/api/methods/getLedgerEntries.mdx @@ -214,14 +214,14 @@ print( ##### JavaScript ```javascript -const { xdr } = require("soroban-client") +const { Address, xdr } = require("soroban-client"); + function getLedgerKeyContractCode(contractId) { let ledgerKey = xdr.LedgerKey.contractData( new xdr.LedgerKeyContractData({ - contract: xdr.ScAddress.scAddressTypeContract(contractId), + contract: new Address(contractId).toScAddress(), key: new xdr.ScVal.scvLedgerKeyContractInstance(), - durability: xdr.ContractDataDurability.persistent(), - bodyType: xdr.ContractEntryBodyType.dataEntry(), + durability: xdr.ContractDataDurability.persistent() }) ); @@ -230,7 +230,7 @@ function getLedgerKeyContractCode(contractId) { console.log( getLedgerKeyContractCode( - "af9a2527e3b3b5571d63b0246ba32b7d31a5323766df7c60dfc0b3e3ba6fdf23" + "CA3D5KRYM6CB7OWQ6TWYRR3Z4T7GNZLKERYNZGGA5SOAOPIFY6YQGAXE" ) ) // OUTPUT: AAAABq+aJSfjs7VXHWOwJGujK30xpTI3Zt98YN/As+O6b98jAAAAFA== @@ -304,30 +304,19 @@ print( ##### JavaScript ```javascript -const { xdr } = require("soroban-client") +const { xdr } = require("soroban-client"); function getLedgerKeyWasmId(contractCodeLedgerEntryData) { - - let entry = xdr.LedgerEntryData.fromXDR( + const entry = xdr.LedgerEntryData.fromXDR( contractCodeLedgerEntryData, "base64" ); - let instance = new xdr.ScContractInstance({ - executable: entry.contractData() - .body() - .value() - .val() - }); + const instance = entry.contractData().val().instance(); let ledgerKey = xdr.LedgerKey.contractCode( new xdr.LedgerKeyContractCode({ - hash: xdr.ContractExecutable.contractExecutableWasm(instance.executable()) - .wasmHash() - .instance() - .executable() - .wasmHash(), - bodyType: xdr.ContractEntryBodyType.dataEntry() + hash: instance.wasmHash() }) ); From b32d484a3ddc2d9345f265e402aeb63488c3a1ed Mon Sep 17 00:00:00 2001 From: George Date: Thu, 2 Nov 2023 12:53:52 -0700 Subject: [PATCH 045/133] Upgrade `getLedgerEntries` examples to latest pre-stable releases of the SDKs (#635) Co-authored-by: Elliot Voris --- api/methods/getLedgerEntries.mdx | 110 +++++++++++++++---------------- 1 file changed, 54 insertions(+), 56 deletions(-) diff --git a/api/methods/getLedgerEntries.mdx b/api/methods/getLedgerEntries.mdx index df2a1f8fd..20c2d3833 100644 --- a/api/methods/getLedgerEntries.mdx +++ b/api/methods/getLedgerEntries.mdx @@ -42,80 +42,84 @@ The example above is querying a deployment of the [`increment` example contract] :::note -If you are using the Python `stellar_sdk` to generate these keys, you will need to install the latest version of the `soroban` branch of the SDK. This can be done like so: +If you are using the [Python](https://stellar-sdk.readthedocs.io/en/9.0.0-beta0/) `stellar_sdk` to generate these keys, you will need to install the latest pre-release version of the SDK. This can be done like so: ```bash -pip install git+https://github.com/StellarCN/py-stellar-base.git@soroban +pip install --upgrade --pre stellar-sdk ``` ::: ```python from stellar_sdk import xdr -from stellar_sdk.soroban import types as soroban_types +from stellar_sdk.strkey import StrKey +from stellar_sdk.soroban import Symbol def get_ledger_key_symbol(contract_id: str, symbol_text: str) -> str: - ledger_key = xdr.LedgerKey( - type=xdr.LedgerEntryType.CONTRACT_DATA, - contract_data=xdr.LedgerKeyContractData( - contract_id=xdr.hash.Hash(bytes.fromhex(contract_id)), - key=soroban_types.Symbol(symbol_text).to_xdr_sc_val(), - ), - ) - return ledger_key.to_xdr() + ledger_key = xdr.LedgerKey( + type=xdr.LedgerEntryType.CONTRACT_DATA, + contract_data=xdr.LedgerKeyContractData( + contract_id=xdr.hash.Hash(StrKey.decode_contract(contract_id)), + key=Symbol(symbol_text).to_xdr_sc_val(), + ), + ) + return ledger_key.to_xdr() print( - get_ledger_key_symbol( - "58b53604fda60524fa7097fca030a6e840c4a84dccf7a4fe909790245e31a86f", "COUNTER" - ) + get_ledger_key_symbol( + "CA3D5KRYM6CB7OWQ6TWYRR3Z4T7GNZLKERYNZGGA5SOAOPIFY6YQGAXE", + "COUNTER" + ) ) ``` #### JavaScript +If you are using the [JavaScript](https://stellar.github.io/js-stellar-sdk/) `stellar-sdk` to generate these keys, you will need to install the latest pre-release version of the SDK. This can be done like so: + +```bash +yarn add stellar-sdk@beta +``` + ```js -const SorobanClient = require('soroban-client') -const xdr = SorobanClient.xdr +import { xdr, StrKey } from 'stellar-sdk'; const getLedgerKeySymbol = (contractId, symbolText) => { const ledgerKey = xdr.LedgerKey.contractData( new xdr.LedgerKeyContractData({ - contractId: Buffer.from(contractId, 'hex'), + contractId: StrKey.decodeContract(contractId), key: xdr.ScVal.scvSymbol(symbolText) }) + ); + return ledgerKey.toXDR('base64'); +}; + +console.log( + getLedgerKeySymbol( + 'CA3D5KRYM6CB7OWQ6TWYRR3Z4T7GNZLKERYNZGGA5SOAOPIFY6YQGAXE', + 'COUNTER' ) - return ledgerKey.toXDR('base64') -} -console.log(getLedgerKeySymbol( - '58b53604fda60524fa7097fca030a6e840c4a84dccf7a4fe909790245e31a86f', - 'COUNTER' -)) +); ``` ### Requesting an Account :::note -This functionality is included in the js [soroban-client](https://www.npmjs.com/package/soroban-client) package as `Server.getAccount(address)`. +This functionality is included in the JavaScript [stellar-sdk](https://www.npmjs.com/package/stellar-sdk) package as `SorobanRpc.Server.getAccount(address)`. ::: Accounts are stored as ledger entries, so we can use this method to look up an account along with it's current sequence number. ```js -const SorobanClient = require('soroban-client') -const xdr = SorobanClient.xdr +import { xdr, Keypair, StrKey } from 'stellar-sdk' const getLedgerKeyAccount = (address) => { - // We can use the `StrKey` library here to decode the address into the public - // key. - const publicKey = SorobanClient.StrKey.decodeEd25519PublicKey(address); - + const publicKey = StrKey.decodeEd25519PublicKey(address) const ledgerKey = xdr.LedgerKey.account( new xdr.LedgerKeyAccount({ - accountId: xdr.PublicKey.publicKeyTypeEd25519( - publicKey - ), + accountId: Keypair.fromPublicKey(publicKey).xdrPublicKey(), }) ) return ledgerKey.toXDR('base64') @@ -190,23 +194,24 @@ When you deploy a contract, first the code is "installed" (i.e. it is uploaded o ```python from stellar_sdk import xdr +from stellar_sdk.strkey import StrKey def get_ledger_key_contract_code(contract_id: str) -> str: - ledger_key = xdr.LedgerKey( - type=xdr.LedgerEntryType.CONTRACT_DATA, - contract_data=xdr.LedgerKeyContractData( - contract_id=xdr.Hash(bytes.fromhex(contract_id)), - key=xdr.SCVal( - type=xdr.SCValType.SCV_LEDGER_KEY_CONTRACT_EXECUTABLE, - ), - ), - ) - return ledger_key.to_xdr() + ledger_key = xdr.LedgerKey( + type=xdr.LedgerEntryType.CONTRACT_DATA, + contract_data=xdr.LedgerKeyContractData( + contract_id=xdr.Hash(StrKey.decodeContract(contract_id)), + key=xdr.SCVal( + type=xdr.SCValType.SCV_LEDGER_KEY_CONTRACT_EXECUTABLE, + ), + ), + ) + return ledger_key.to_xdr() print( - get_ledger_key_contract_code( - "af9a2527e3b3b5571d63b0246ba32b7d31a5323766df7c60dfc0b3e3ba6fdf23" - ) + get_ledger_key_contract_code( + "CA3D5KRYM6CB7OWQ6TWYRR3Z4T7GNZLKERYNZGGA5SOAOPIFY6YQGAXE" + ) ) # OUTPUT: AAAABq+aJSfjs7VXHWOwJGujK30xpTI3Zt98YN/As+O6b98jAAAAFA== ``` @@ -214,18 +219,11 @@ print( ##### JavaScript ```javascript -const { Address, xdr } = require("soroban-client"); +import { Address, xdr } from 'stellar-sdk'; function getLedgerKeyContractCode(contractId) { - let ledgerKey = xdr.LedgerKey.contractData( - new xdr.LedgerKeyContractData({ - contract: new Address(contractId).toScAddress(), - key: new xdr.ScVal.scvLedgerKeyContractInstance(), - durability: xdr.ContractDataDurability.persistent() - }) - ); - - return ledgerKey.toXDR('base64'); + const [ _, instance ] = new ContractId(contractId).getFootprint(); + return instance.toXDR('base64'); } console.log( From 5d46973efeb4a486d922cc378f81f2c314ba2b6b Mon Sep 17 00:00:00 2001 From: George Date: Thu, 2 Nov 2023 12:53:52 -0700 Subject: [PATCH 046/133] Upgrade `getLedgerEntries` examples to latest pre-stable releases of the SDKs (#635) Co-authored-by: Elliot Voris --- api/methods/getLedgerEntries.mdx | 110 +++++++++++++++---------------- 1 file changed, 54 insertions(+), 56 deletions(-) diff --git a/api/methods/getLedgerEntries.mdx b/api/methods/getLedgerEntries.mdx index df2a1f8fd..20c2d3833 100644 --- a/api/methods/getLedgerEntries.mdx +++ b/api/methods/getLedgerEntries.mdx @@ -42,80 +42,84 @@ The example above is querying a deployment of the [`increment` example contract] :::note -If you are using the Python `stellar_sdk` to generate these keys, you will need to install the latest version of the `soroban` branch of the SDK. This can be done like so: +If you are using the [Python](https://stellar-sdk.readthedocs.io/en/9.0.0-beta0/) `stellar_sdk` to generate these keys, you will need to install the latest pre-release version of the SDK. This can be done like so: ```bash -pip install git+https://github.com/StellarCN/py-stellar-base.git@soroban +pip install --upgrade --pre stellar-sdk ``` ::: ```python from stellar_sdk import xdr -from stellar_sdk.soroban import types as soroban_types +from stellar_sdk.strkey import StrKey +from stellar_sdk.soroban import Symbol def get_ledger_key_symbol(contract_id: str, symbol_text: str) -> str: - ledger_key = xdr.LedgerKey( - type=xdr.LedgerEntryType.CONTRACT_DATA, - contract_data=xdr.LedgerKeyContractData( - contract_id=xdr.hash.Hash(bytes.fromhex(contract_id)), - key=soroban_types.Symbol(symbol_text).to_xdr_sc_val(), - ), - ) - return ledger_key.to_xdr() + ledger_key = xdr.LedgerKey( + type=xdr.LedgerEntryType.CONTRACT_DATA, + contract_data=xdr.LedgerKeyContractData( + contract_id=xdr.hash.Hash(StrKey.decode_contract(contract_id)), + key=Symbol(symbol_text).to_xdr_sc_val(), + ), + ) + return ledger_key.to_xdr() print( - get_ledger_key_symbol( - "58b53604fda60524fa7097fca030a6e840c4a84dccf7a4fe909790245e31a86f", "COUNTER" - ) + get_ledger_key_symbol( + "CA3D5KRYM6CB7OWQ6TWYRR3Z4T7GNZLKERYNZGGA5SOAOPIFY6YQGAXE", + "COUNTER" + ) ) ``` #### JavaScript +If you are using the [JavaScript](https://stellar.github.io/js-stellar-sdk/) `stellar-sdk` to generate these keys, you will need to install the latest pre-release version of the SDK. This can be done like so: + +```bash +yarn add stellar-sdk@beta +``` + ```js -const SorobanClient = require('soroban-client') -const xdr = SorobanClient.xdr +import { xdr, StrKey } from 'stellar-sdk'; const getLedgerKeySymbol = (contractId, symbolText) => { const ledgerKey = xdr.LedgerKey.contractData( new xdr.LedgerKeyContractData({ - contractId: Buffer.from(contractId, 'hex'), + contractId: StrKey.decodeContract(contractId), key: xdr.ScVal.scvSymbol(symbolText) }) + ); + return ledgerKey.toXDR('base64'); +}; + +console.log( + getLedgerKeySymbol( + 'CA3D5KRYM6CB7OWQ6TWYRR3Z4T7GNZLKERYNZGGA5SOAOPIFY6YQGAXE', + 'COUNTER' ) - return ledgerKey.toXDR('base64') -} -console.log(getLedgerKeySymbol( - '58b53604fda60524fa7097fca030a6e840c4a84dccf7a4fe909790245e31a86f', - 'COUNTER' -)) +); ``` ### Requesting an Account :::note -This functionality is included in the js [soroban-client](https://www.npmjs.com/package/soroban-client) package as `Server.getAccount(address)`. +This functionality is included in the JavaScript [stellar-sdk](https://www.npmjs.com/package/stellar-sdk) package as `SorobanRpc.Server.getAccount(address)`. ::: Accounts are stored as ledger entries, so we can use this method to look up an account along with it's current sequence number. ```js -const SorobanClient = require('soroban-client') -const xdr = SorobanClient.xdr +import { xdr, Keypair, StrKey } from 'stellar-sdk' const getLedgerKeyAccount = (address) => { - // We can use the `StrKey` library here to decode the address into the public - // key. - const publicKey = SorobanClient.StrKey.decodeEd25519PublicKey(address); - + const publicKey = StrKey.decodeEd25519PublicKey(address) const ledgerKey = xdr.LedgerKey.account( new xdr.LedgerKeyAccount({ - accountId: xdr.PublicKey.publicKeyTypeEd25519( - publicKey - ), + accountId: Keypair.fromPublicKey(publicKey).xdrPublicKey(), }) ) return ledgerKey.toXDR('base64') @@ -190,23 +194,24 @@ When you deploy a contract, first the code is "installed" (i.e. it is uploaded o ```python from stellar_sdk import xdr +from stellar_sdk.strkey import StrKey def get_ledger_key_contract_code(contract_id: str) -> str: - ledger_key = xdr.LedgerKey( - type=xdr.LedgerEntryType.CONTRACT_DATA, - contract_data=xdr.LedgerKeyContractData( - contract_id=xdr.Hash(bytes.fromhex(contract_id)), - key=xdr.SCVal( - type=xdr.SCValType.SCV_LEDGER_KEY_CONTRACT_EXECUTABLE, - ), - ), - ) - return ledger_key.to_xdr() + ledger_key = xdr.LedgerKey( + type=xdr.LedgerEntryType.CONTRACT_DATA, + contract_data=xdr.LedgerKeyContractData( + contract_id=xdr.Hash(StrKey.decodeContract(contract_id)), + key=xdr.SCVal( + type=xdr.SCValType.SCV_LEDGER_KEY_CONTRACT_EXECUTABLE, + ), + ), + ) + return ledger_key.to_xdr() print( - get_ledger_key_contract_code( - "af9a2527e3b3b5571d63b0246ba32b7d31a5323766df7c60dfc0b3e3ba6fdf23" - ) + get_ledger_key_contract_code( + "CA3D5KRYM6CB7OWQ6TWYRR3Z4T7GNZLKERYNZGGA5SOAOPIFY6YQGAXE" + ) ) # OUTPUT: AAAABq+aJSfjs7VXHWOwJGujK30xpTI3Zt98YN/As+O6b98jAAAAFA== ``` @@ -214,18 +219,11 @@ print( ##### JavaScript ```javascript -const { Address, xdr } = require("soroban-client"); +import { Address, xdr } from 'stellar-sdk'; function getLedgerKeyContractCode(contractId) { - let ledgerKey = xdr.LedgerKey.contractData( - new xdr.LedgerKeyContractData({ - contract: new Address(contractId).toScAddress(), - key: new xdr.ScVal.scvLedgerKeyContractInstance(), - durability: xdr.ContractDataDurability.persistent() - }) - ); - - return ledgerKey.toXDR('base64'); + const [ _, instance ] = new ContractId(contractId).getFootprint(); + return instance.toXDR('base64'); } console.log( From 03a4a266241b808285cce4ab4112125013c9889b Mon Sep 17 00:00:00 2001 From: Elliot Voris Date: Mon, 20 Nov 2023 10:27:38 -0600 Subject: [PATCH 047/133] Integrate a complete `openrpc.json` document (#647) * docs: move data providers page out of sdks directory * restarting effort to integrate a full openrpc.json spec file * more random stuff... some of it is good and works well * docs: put everything into one `openrpc.json` document - modify the metamask package to display things a little nicer - generate openrpc.json file from a compound schema (in another repo soon) - add more react components to the `` component * style: customize metamask style for examples select box * docs: remove examples from within the mdx pages * docs: add descriptions to each of the method pages * docs: including a description of the OpenRPC spec * docs: rename sidebar category to simply "Methods" --- api/json-rpc.mdx | 7 + api/methods/getEvents.mdx | 86 +- api/methods/getHealth.mdx | 24 +- api/methods/getLatestLedger.mdx | 26 +- api/methods/getLedgerEntries.mdx | 31 +- api/methods/getNetwork.mdx | 26 +- api/methods/getTransaction.mdx | 75 +- api/methods/sendTransaction.mdx | 27 +- api/methods/simulateTransaction.mdx | 41 +- .../@metamask+open-rpc-docs-react+0.1.2.patch | 95 ++ static/openrpc.json | 1168 +++++++++++++++++ 11 files changed, 1286 insertions(+), 320 deletions(-) create mode 100644 patches/@metamask+open-rpc-docs-react+0.1.2.patch create mode 100644 static/openrpc.json diff --git a/api/json-rpc.mdx b/api/json-rpc.mdx index 043ccc396..d76bd1ed2 100644 --- a/api/json-rpc.mdx +++ b/api/json-rpc.mdx @@ -12,6 +12,13 @@ To interact with soroban-rpc from inside a JavaScript application, use the [js-s When XDR is passed as a parameter or returned, it is always a string encoded using standard base64. +## Open-RPC Specification + +Soroban-RPC provides an [OpenRPC] specification document that can be used to mock, build, and/or validate both server and client software implementations. This document is used to generate all of our [methods] documentation pages. You can view the full [specification document here](/openrpc.json). Additionally, you can experiment with this specificaiton document in the [OpenRPC Playground]. + [JSON-RPC 2.0]: [jsonrpc error object]: [js-soroban-client]: +[OpenRPC]: +[methods]: <./methods> +[OpenRPC Playground]: diff --git a/api/methods/getEvents.mdx b/api/methods/getEvents.mdx index c6cc9a053..6417fd758 100644 --- a/api/methods/getEvents.mdx +++ b/api/methods/getEvents.mdx @@ -1,90 +1,8 @@ --- -sidebar_position: 2 hide_title: true +description: Returns contract events --- -import ExampleRequest from "@site/src/components/ExampleRequest"; -import {RpcMethod} from "@site/src/components/RpcMethod"; +import { RpcMethod } from "@site/src/components/RpcMethod"; - -## Examples - -The following examples query the asset contract for the `native` token, searching for any transfers that take place (up to 100 results). - -:::note - -The examples below only returns two transfer events that took place to/from the same account. In the real-world, you would expect far more results. - -::: - -### Request - - - -### Response - -```json -{ - "jsonrpc": "2.0", - "id": 8675309, - "result": { - "latestLedger": "230473", - "events": [ - { - "type": "contract", - "ledger": "230010", - "ledgerClosedAt": "2023-01-23T18:54:41Z", - "contractId": "CB64D3G7SM2RTH6JSGG34DDTFTQ5CFDKVDZJZSODMCX4NJ2HV2KN7OHT", - "id": "0000987885427757056-0000000001", - "pagingToken": "0000987885427757056-0000000001", - "inSuccessfulContractCall": true, - "topic": [ - "AAAABQAAAAh0cmFuc2Zlcg==", - "AAAABAAAAAEAAAAAAAAAAgAAAAUAAAAHQWNjb3VudAAAAAAEAAAAAQAAAAgAAAAAHavpBsZgRv4pEDXWB0NnwQBvvAL/8adWXz2fV7eNq2o=", - "AAAABAAAAAEAAAAAAAAAAgAAAAUAAAAHQWNjb3VudAAAAAAEAAAAAQAAAAgAAAAAHavpBsZgRv4pEDXWB0NnwQBvvAL/8adWXz2fV7eNq2o=" - ], - "value": { - "xdr": "AAAABAAAAAEAAAAFAAAAAAABhqAAAAAAAAAAAA==" - } - }, - { - "type": "contract", - "ledger": "230170", - "ledgerClosedAt": "2023-01-23T19:08:37Z", - "contractId": "CB64D3G7SM2RTH6JSGG34DDTFTQ5CFDKVDZJZSODMCX4NJ2HV2KN7OHT", - "id": "0000988572622524416-0000000001", - "pagingToken": "0000988572622524416-0000000001", - "inSuccessfulContractCall": true, - "topic": [ - "AAAABQAAAAh0cmFuc2Zlcg==", - "AAAABAAAAAEAAAAAAAAAAgAAAAUAAAAHQWNjb3VudAAAAAAEAAAAAQAAAAgAAAAAHavpBsZgRv4pEDXWB0NnwQBvvAL/8adWXz2fV7eNq2o=", - "AAAABAAAAAEAAAAAAAAAAgAAAAUAAAAHQWNjb3VudAAAAAAEAAAAAQAAAAgAAAAAHavpBsZgRv4pEDXWB0NnwQBvvAL/8adWXz2fV7eNq2o=" - ], - "value": { - "xdr": "AAAABAAAAAEAAAAFAAAAAAAHoSAAAAAAAAAAAA==" - } - } - ] - } -} -``` - -[rs-soroban-env/event.rs @ `924d86c`]: -[`toid` from Horizon]: diff --git a/api/methods/getHealth.mdx b/api/methods/getHealth.mdx index 1e85ff624..826bef455 100644 --- a/api/methods/getHealth.mdx +++ b/api/methods/getHealth.mdx @@ -1,28 +1,8 @@ --- -sidebar_position: 3 hide_title: true +description: Returns node health --- -import ExampleRequest from "@site/src/components/ExampleRequest"; - -import {RpcMethod} from "@site/src/components/RpcMethod"; +import { RpcMethod } from "@site/src/components/RpcMethod"; - -## Examples - -### Request - - - -### Response - -```json -{ - "jsonrpc": "2.0", - "id": 8675309, - "result": { - "status": "healthy" - } -} -``` diff --git a/api/methods/getLatestLedger.mdx b/api/methods/getLatestLedger.mdx index cedb584f9..825f8088b 100644 --- a/api/methods/getLatestLedger.mdx +++ b/api/methods/getLatestLedger.mdx @@ -1,30 +1,8 @@ --- -sidebar_position: 1 hide_title: true +description: Returns latest known ledger --- -import ExampleRequest from "@site/src/components/ExampleRequest"; - -import {RpcMethod} from "@site/src/components/RpcMethod"; +import { RpcMethod } from "@site/src/components/RpcMethod"; - -## Examples - -### Request - - - -### Response - -```json -{ - "jsonrpc": "2.0", - "id": 8675309, - "result": { - "id": "2a00000000000000000000000000000000000000000000000000000000000000", - "protocolVersion": 20, - "sequence": 666 - } -} -``` diff --git a/api/methods/getLedgerEntries.mdx b/api/methods/getLedgerEntries.mdx index 20c2d3833..fab407d50 100644 --- a/api/methods/getLedgerEntries.mdx +++ b/api/methods/getLedgerEntries.mdx @@ -1,39 +1,12 @@ --- -sidebar_position: 4 hide_title: true +description: Returns ledger entries --- -import ExampleRequest from "@site/src/components/ExampleRequest"; -import {RpcMethod} from "@site/src/components/RpcMethod"; +import { RpcMethod } from "@site/src/components/RpcMethod"; -## Examples - -### Request - - - -### Response - -```json -{ - "jsonrpc": "2.0", - "id": 8675309, - "result": { - "entries":[ - { - "key": "AAAAB+qfy4GuVKKfazvyk4R9P9fpo2n9HICsr+xqvVcTF+DC", - "xdr": "AAAABwAAAADqn8uBrlSin2s78pOEfT/X6aNp/RyArK/sar1XExfgwgAAAAphIGNvbnRyYWN0AAA=", - "lastModifiedLedgerSeq": "13", - "liveUntilLedgerSeq": "95" - } - ], - "latestLedger": "179436" - } -} -``` - ### Generating `keys` Parameters The example above is querying a deployment of the [`increment` example contract] to find out what value is stored in the `COUNTER` ledger entry. This value can be derived using the following code snippets. You should be able to extrapolate from the provided examples how to get `keys` parameters for other types and values. diff --git a/api/methods/getNetwork.mdx b/api/methods/getNetwork.mdx index be7948d55..d9de0e506 100644 --- a/api/methods/getNetwork.mdx +++ b/api/methods/getNetwork.mdx @@ -1,30 +1,8 @@ --- -sidebar_position: 5 hide_title: true +description: Returns network config --- -import ExampleRequest from "@site/src/components/ExampleRequest"; - -import {RpcMethod} from "@site/src/components/RpcMethod"; +import { RpcMethod } from "@site/src/components/RpcMethod"; - -## Examples - -### Request - - - -### Response - -```json -{ - "jsonrpc": "2.0", - "id": 8675309, - "result": { - "friendbotUrl": "https://friendbot.stellar.org/", - "passphrase": "Test SDF Network ; September 2015", - "protocolVersion": "20" - } -} -``` diff --git a/api/methods/getTransaction.mdx b/api/methods/getTransaction.mdx index cb5987fb2..cceeec44c 100644 --- a/api/methods/getTransaction.mdx +++ b/api/methods/getTransaction.mdx @@ -1,79 +1,8 @@ --- -sidebar_position: 8 hide_title: true +description: Returns transaction details --- -import ExampleRequest from "@site/src/components/ExampleRequest"; -import {RpcMethod} from "@site/src/components/RpcMethod"; +import { RpcMethod } from "@site/src/components/RpcMethod"; - -## Examples - -### Request - - - -### Response - -#### Not Found - -```json -{ - "jsonrpc": "2.0", - "id": 8675309, - "result": { - "status": "NOT_FOUND", - "latestLedger": "45075181", - "latestLedgerCloseTime": "1677115742", - "oldestLedger": "45070000", - "latestLedgerCloseTime": "1677000000" - } -} -``` - -#### Success - -```json -{ - "jsonrpc": "2.0", - "id": 8675309, - "result": { - "status": "SUCCESS", - "latestLedger": "45075181", - "latestLedgerCloseTime": "1677115742", - "oldestLedger": "45070000", - "latestLedgerCloseTime": "1677000000", - "ledger": "45070700", - "createdAt": "1677009000", - "applicationOrder": 1, - "feeBump": false, - "envelope_xdr": "AAAAAgAAAABzdv3ojkzWHMD7KUoXhrPx0GH18vHKV0ZfqpMiEblG1gAAp18AAAAAAAAAAgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAHN2/eiOTNYcwPspSheGs/HQYfXy8cpXRl+qkyIRuUbWAAAAGAAAAAEAAAABAAAAAPVf8W9m9DNgJmuV22+P7AHXYDEFQwauSks4BZj2z9EUAAAAAO3beL34UBBpCfUUPCfcnqX8YQKn41UhnKu6BInkVe9lAAAAAAAAAAEAAAABAAAAB+3beL34UBBpCfUUPCfcnqX8YQKn41UhnKu6BInkVe9lAAAAAQAAAAbhq+vRxjISTR62JpK1SAnzz1cZKpSpkRlwLJH6ZrzssgAAABQAAUKLAAAUkAAAAIAAAACoAAAAAAAAACEAAAAAAAAAARG5RtYAAABA+Vy3k86bNEP7rP8hb3cY1QWYhRa3CnF7jqHUj22Rd++2a0YwCKrMbofTUOb21GP6aFZwfKVvaokS22u1to5xDw==", - "resultXdr": "AAAAAAAApS4AAAAAAAAAAQAAAAAAAAAYAAAAAAAAAAEAAAANAAAAIOGr69HGMhJNHrYmkrVICfPPVxkqlKmRGXAskfpmvOyyAAAAAA==", - "result_meta_xdr": "AAAAAwAAAAIAAAADAAAAFgAAAAAAAAAAc3b96I5M1hzA+ylKF4az8dBh9fLxyldGX6qTIhG5RtYN4Lazp2JdKwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAANAAAAAGRuCr8AAAAAAAAAAQAAABYAAAAAAAAAAHN2/eiOTNYcwPspSheGs/HQYfXy8cpXRl+qkyIRuUbWDeC2s6diXSsAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAFgAAAABkbgrIAAAAAAAAAAEAAAABAAAAAAAAABYAAAAG4avr0cYyEk0etiaStUgJ889XGSqUqZEZcCyR+ma87LIAAAAUAAAAEgAAAADt23i9+FAQaQn1FDwn3J6l/GECp+NVIZyrugSJ5FXvZQAAAAAAAAAAAAAAAQAAAAAAAAAAAAClLgAAAAAAAAABAAAAAAAAABgAAAAAAAAAAQAAAA0AAAAg4avr0cYyEk0etiaStUgJ889XGSqUqZEZcCyR+ma87LIAAAAA1pFOFvAXyYyG3zRHjl+0ABs5xH4/40CX9PPHFC+QN5jLvEh1Deu4U1CTs96viKx/TP+HQlV2pY3iusdUrNtGFrr72ylPbuM+gn7/FJKmJcDFiKveRR/kP8mOYOcy9S4RAAAAAA==" - } -} -``` - -#### Failed - -```json -{ - "jsonrpc": "2.0", - "id": 8675309, - "result": { - "status": "FAILED", - "latestLedger": "45075181", - "latestLedgerCloseTime": "1677115742", - "oldestLedger": "45070000", - "latestLedgerCloseTime": "1677000000", - "ledger": "45070700", - "createdAt": "1677009000", - "applicationOrder": 1, - "feeBump": false, - "envelope_xdr": "AAAAAgAAAABzdv3ojkzWHMD7KUoXhrPx0GH18vHKV0ZfqpMiEblG1gAAp18AAAAAAAAAAgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAHN2/eiOTNYcwPspSheGs/HQYfXy8cpXRl+qkyIRuUbWAAAAGAAAAAEAAAABAAAAAPVf8W9m9DNgJmuV22+P7AHXYDEFQwauSks4BZj2z9EUAAAAAO3beL34UBBpCfUUPCfcnqX8YQKn41UhnKu6BInkVe9lAAAAAAAAAAEAAAABAAAAB+3beL34UBBpCfUUPCfcnqX8YQKn41UhnKu6BInkVe9lAAAAAQAAAAbhq+vRxjISTR62JpK1SAnzz1cZKpSpkRlwLJH6ZrzssgAAABQAAUKLAAAUkAAAAIAAAACoAAAAAAAAACEAAAAAAAAAARG5RtYAAABA+Vy3k86bNEP7rP8hb3cY1QWYhRa3CnF7jqHUj22Rd++2a0YwCKrMbofTUOb21GP6aFZwfKVvaokS22u1to5xDw==", - "resultXdr": "AAAAAAAAAGT////7AAAAAA==", - "result_meta_xdr": "AAAAAgAAAAIAAAADArFrdQAAAAAAAAAAvgenT92Nw5O3DvhFwbrX+I/2ujYGfI4VHRnfGOAyytUAAAAADH94VAHVCqQAY5CKAAAACAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAQAAAAEzXjfgAAAAAAVJxmgAAAACAAAAAAAAAAAAAAAAAAAAAwAAAAACsWtzAAAAAGQAbxMAAAAAAAAAAQKxa3UAAAAAAAAAAL4Hp0/djcOTtw74RcG61/iP9ro2BnyOFR0Z3xjgMsrVAAAAAAx/eFQB1QqkAGOQiwAAAAgAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAEAAAABM1434AAAAAAFScZoAAAAAgAAAAAAAAAAAAAAAAAAAAMAAAAAArFrdQAAAABkAG8eAAAAAAAAAAEAAAAGAAAAAwKxa3MAAAACAAAAAL4Hp0/djcOTtw74RcG61/iP9ro2BnyOFR0Z3xjgMsrVAAAAAEdzHHcAAAAAAAAAAUVUWAAAAAAAiFZJtrzAu8HxgVF3Msk+SjJBIWa9ExB5oMrKb0kPrJMAAAAABUnGaHLv1t0BpbXWAAAAAAAAAAAAAAAAAAAAAQKxa3UAAAACAAAAAL4Hp0/djcOTtw74RcG61/iP9ro2BnyOFR0Z3xjgMsrVAAAAAEdzHHcAAAAAAAAAAUVUWAAAAAAAiFZJtrzAu8HxgVF3Msk+SjJBIWa9ExB5oMrKb0kPrJMAAAAABUmy4ChvHmEAlFriAAAAAAAAAAAAAAAAAAAAAwKxa3UAAAAAAAAAAL4Hp0/djcOTtw74RcG61/iP9ro2BnyOFR0Z3xjgMsrVAAAAAAx/eFQB1QqkAGOQiwAAAAgAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAEAAAABM1434AAAAAAFScZoAAAAAgAAAAAAAAAAAAAAAAAAAAMAAAAAArFrdQAAAABkAG8eAAAAAAAAAAECsWt1AAAAAAAAAAC+B6dP3Y3Dk7cO+EXButf4j/a6NgZ8jhUdGd8Y4DLK1QAAAAAMf3hUAdUKpABjkIsAAAAIAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAABAAAAATNeN+AAAAAABUmy4AAAAAIAAAAAAAAAAAAAAAAAAAADAAAAAAKxa3UAAAAAZABvHgAAAAAAAAADArFrcwAAAAEAAAAAvgenT92Nw5O3DvhFwbrX+I/2ujYGfI4VHRnfGOAyytUAAAABRVRYAAAAAACIVkm2vMC7wfGBUXcyyT5KMkEhZr0TEHmgyspvSQ+skwAAAE+W7pTjf/////////8AAAABAAAAAQAAAAFw+HPyAAAARkSap3YAAAAAAAAAAAAAAAECsWt1AAAAAQAAAAC+B6dP3Y3Dk7cO+EXButf4j/a6NgZ8jhUdGd8Y4DLK1QAAAAFFVFgAAAAAAIhWSba8wLvB8YFRdzLJPkoyQSFmvRMQeaDKym9JD6yTAAAAT5bulON//////////wAAAAEAAAABAAAAAXDzHW4AAABGRJqndgAAAAAAAAAAAAAAAA==" - } -} -``` diff --git a/api/methods/sendTransaction.mdx b/api/methods/sendTransaction.mdx index 842d9aa8e..b16d93e6b 100644 --- a/api/methods/sendTransaction.mdx +++ b/api/methods/sendTransaction.mdx @@ -1,31 +1,8 @@ --- -sidebar_position: 7 hide_title: true +description: Submits a transaction --- -import ExampleRequest from "@site/src/components/ExampleRequest"; -import {RpcMethod} from "@site/src/components/RpcMethod"; +import { RpcMethod } from "@site/src/components/RpcMethod"; - -## Examples - -### Request - - - -### Response - -```json -{ - "jsonrpc": "2.0", - "id": 8675309, - "result": { - "hash": "a01441a4d0b80769d2c2d97dcd28d13e9036065da14ea83731424d77efc50894", - "status": "PENDING", - "latestLedger": "45075181", - "latestLedgerCloseTime": "1677115742" - } -} -``` - diff --git a/api/methods/simulateTransaction.mdx b/api/methods/simulateTransaction.mdx index 2a270581c..1e08d5e62 100644 --- a/api/methods/simulateTransaction.mdx +++ b/api/methods/simulateTransaction.mdx @@ -1,45 +1,8 @@ --- -sidebar_position: 8 hide_title: true +description: Submits a trial contract invocation transaction --- -import ExampleRequest from "@site/src/components/ExampleRequest"; -import {RpcMethod} from "@site/src/components/RpcMethod"; +import { RpcMethod } from "@site/src/components/RpcMethod"; - -## Examples - -### Request - - - -### Response - -```json -{ - "jsonrpc": "2.0", - "id": 1102, - "result": { - "transactionData": "AAAAAwAAAAAAAAAAYvwdC9CRsrYcDdZWNGsqaNfTR8bywsjubQRHAlb8BfcAAAAG4avr0cYyEk0etiaStUgJ889XGSqUqZEZcCyR+ma87LIAAAAUAAAAB8zDhJ3ZTMHmdBjlVh/7d1HDdo+QI1ZXGmeRzBwVAoVXAAAAAQAAAAbhq+vRxjISTR62JpK1SAnzz1cZKpSpkRlwLJH6ZrzssgAAABUAAAAAAAAAAGL8HQvQkbK2HA3WVjRrKmjX00fG8sLI7m0ERwJW/AX3ACb/vgAAFcQAAAC0AAABrAAAAAAAAABUAAAAAA==", - "events": [ - "AAAAAQAAAAAAAAAB4avr0cYyEk0etiaStUgJ889XGSqUqZEZcCyR+ma87LIAAAABAAAAAAAAAAEAAAAOAAAABGF1dGgAAAAPAAAABXdvcmxkAAAA", - "AAAAAQAAAAAAAAAB4avr0cYyEk0etiaStUgJ889XGSqUqZEZcCyR+ma87LIAAAABAAAAAAAAAAEAAAAOAAAABGF1dGgAAAAPAAAABXdvcmxkAAAA" - ], - "minResourceFee": "79488", - "results": [ - { - "auth": [ - "AAAAAQAAAAAAAAAAYvwdC9CRsrYcDdZWNGsqaNfTR8bywsjubQRHAlb8BfcAAAAAAAAAAOGr69HGMhJNHrYmkrVICfPPVxkqlKmRGXAskfpmvOyyAAAABGF1dGgAAAACAAAAEwAAAAAAAAAAYvwdC9CRsrYcDdZWNGsqaNfTR8bywsjubQRHAlb8BfcAAAAPAAAABXdvcmxkAAAAAAAAAAAAAAA=" - ], - "xdr": "AAAAEwAAAAAAAAAAYvwdC9CRsrYcDdZWNGsqaNfTR8bywsjubQRHAlb8Bfc=" - } - ], - "cost": { - "cpuInsns": "2222468", - "memBytes": "2204681" - }, - "latestLedger": "23456" - } -} -``` diff --git a/patches/@metamask+open-rpc-docs-react+0.1.2.patch b/patches/@metamask+open-rpc-docs-react+0.1.2.patch new file mode 100644 index 000000000..efa7b5daa --- /dev/null +++ b/patches/@metamask+open-rpc-docs-react+0.1.2.patch @@ -0,0 +1,95 @@ +diff --git a/node_modules/@metamask/open-rpc-docs-react/dist/ExamplePairing/ExamplePairing.js b/node_modules/@metamask/open-rpc-docs-react/dist/ExamplePairing/ExamplePairing.js +index 354ce73..e113732 100644 +--- a/node_modules/@metamask/open-rpc-docs-react/dist/ExamplePairing/ExamplePairing.js ++++ b/node_modules/@metamask/open-rpc-docs-react/dist/ExamplePairing/ExamplePairing.js +@@ -45,10 +45,37 @@ class ExamplePairing extends react_1.Component { + }), {}) + : examplePairing.params.map(((p) => p.value)); + const methodCall = { ++ jsonrpc: "2.0", ++ id: 8675309, + method: methodName, + params, + }; +- const jsCode = `await window.ethereum.request(${JSON.stringify(methodCall, null, " ")});`; ++ if (Object.keys(params).length === 0) { ++ delete methodCall.params ++ } ++ const resultObj = { ++ jsonrpc: "2.0", ++ id: 8675309, ++ result: examplePairing.result.value ++ } ++ // const jsCode = `await window.ethereum.request(${JSON.stringify(methodCall, null, " ")});`; ++ const curlCode = `curl -X POST \\ ++-H 'Content-Type: application/json' \\ ++-d '${JSON.stringify(methodCall, null, 2)}' \\ ++https://soroban-testnet.stellar.org:443 | jq` ++ const jsCode = `let requestBody = ${JSON.stringify(methodCall, null, 2)} ++let res = await fetch('https://soroban-testnet.stellar.org', { ++ method: 'POST', ++ headers: { ++ 'Content-Type': 'application/json', ++ }, ++ body: JSON.stringify(requestBody), ++}) ++let json = await res.json() ++console.log(json)` ++ const pythonCode = `import json, requests ++res = requests.post('https://soroban-testnet.stellar.org', json=${JSON.stringify(methodCall, null, 4)}) ++print(json.dumps(res.json(), indent=4))` + return (react_1.default.createElement("div", null, + react_1.default.createElement("div", null, + react_1.default.createElement(MarkdownDescription_1.default, { uiSchema: uiSchema, source: examplePairing.description || "", className: "example-pairing-description" })), +@@ -56,18 +83,28 @@ class ExamplePairing extends react_1.Component { + react_1.default.createElement("div", null, + react_1.default.createElement("h3", null, "Request"), + react_1.default.createElement("div", null, +- components && components.CodeBlock && react_1.default.createElement(components.CodeBlock, { className: "language-js" }, jsCode), ++ components && components.CodeBlock && components.Tabs && components.TabItem && ++ react_1.default.createElement(components.Tabs, null, ++ react_1.default.createElement(components.TabItem, { value: "curl", label: "cURL" }, ++ react_1.default.createElement(components.CodeBlock, { className: "language-bash" }, curlCode)), ++ react_1.default.createElement(components.TabItem, { value: "js", label: "JavaScript" }, ++ react_1.default.createElement(components.CodeBlock, { className: "language-js" }, jsCode)), ++ react_1.default.createElement(components.TabItem, { value: "python", label: "Python" }, ++ react_1.default.createElement(components.CodeBlock, { className: "language-python" }, pythonCode)), ++ react_1.default.createElement(components.TabItem, { value: "json", label: "JSON" }, ++ react_1.default.createElement(components.CodeBlock, { className: "language-json" }, JSON.stringify(methodCall, null, 2))), ++ ), + !components?.CodeBlock && + react_1.default.createElement("pre", null, +- react_1.default.createElement("code", null, jsCode))))), ++ react_1.default.createElement("code", null, curlCode))))), + react_1.default.createElement("div", null, + react_1.default.createElement("div", null, + react_1.default.createElement("h3", null, "Result"), + react_1.default.createElement("div", null, +- components && components.CodeBlock && react_1.default.createElement(components.CodeBlock, { className: "language-js" }, JSON.stringify(examplePairing.result.value, null, ' ')), ++ components && components.CodeBlock && react_1.default.createElement(components.CodeBlock, { className: "language-json" }, JSON.stringify(resultObj, null, ' ')), + !components?.CodeBlock && + react_1.default.createElement("pre", null, +- react_1.default.createElement("code", null, JSON.stringify(examplePairing.result.value)))))))); ++ react_1.default.createElement("code", null, JSON.stringify(resultObj, null, ' ')))))))); + } + } + exports.default = ExamplePairing; +diff --git a/node_modules/@metamask/open-rpc-docs-react/dist/Method/Method.d.ts b/node_modules/@metamask/open-rpc-docs-react/dist/Method/Method.d.ts +index b8b0f3d..9a49549 100644 +--- a/node_modules/@metamask/open-rpc-docs-react/dist/Method/Method.d.ts ++++ b/node_modules/@metamask/open-rpc-docs-react/dist/Method/Method.d.ts +@@ -11,6 +11,14 @@ interface IProps { + children: string; + className?: string; + }>; ++ Tabs?: React.FC<{ ++ children: any; ++ }>; ++ TabItem?: React.FC<{ ++ children: any; ++ label: string; ++ value: string; ++ }>; + }; + onExamplePairingChange?: (examplePairing: ExamplePairingObject | undefined) => void; + reactJsonOptions?: object; diff --git a/static/openrpc.json b/static/openrpc.json new file mode 100644 index 000000000..2aae50a15 --- /dev/null +++ b/static/openrpc.json @@ -0,0 +1,1168 @@ +{ + "openrpc": "1.2.4", + "info": { + "title": "Soroban RPC", + "description": "Soroban-RPC allows you to communicate directly with Soroban via a JSON RPC interface.", + "termsOfService": "https://stellar.org/terms-of-service", + "contact": { + "name": "Stellar Development Foundation", + "url": "https://stellar.org/connect", + "email": "hello@stellar.org" + }, + "license": { + "name": "Apache 2.0", + "url": "https://www.apache.org/licenses/LICENSE-2.0.html" + }, + "version": "v20.0.0-rc4" + }, + "servers": [ + { + "name": "Testnet", + "url": "https://soroban-testnet.stellar.org:443", + "summary": "Publicly available RPC server maintained by SDF, operating on the Testnet test network.", + "description": "Testnet is meant to be a stable network that runs a production (or near-production) version of the Stellar network." + }, + { + "name": "Futurenet", + "url": "https://rpc-futurenet.stellar.org:443", + "summary": "Publicly available RPC server maintained by SDF, operating on the Futurenet test network.", + "description": "Futurenet is meant to be a bleeding-edge, experimental network that runs an early, test version of the Stellar network." + } + ], + "methods": [ + { + "name": "getEvents", + "summary": "returns contract events", + "description": "Clients can request a filtered list of events emitted by a given ledger range.\n\nSoroban-RPC will support querying within a maximum 24 hours of recent ledgers.\n\nNote, this could be used by the client to only prompt a refresh when there is a new ledger with relevant events. It should also be used by backend Dapp components to \"ingest\" events into their own database for querying and serving.\n\nIf making multiple requests, clients should deduplicate any events received, based on the event's unique id field. This prevents double-processing in the case of duplicate events being received.\n\nBy default soroban-rpc retains the most recent 24 hours of events.", + "externalDocs": { + "url": "https://soroban.stellar.org/api/methods/getEvents" + }, + "paramStructure": "by-name", + "params": [ + { + "name": "startLedger", + "summary": "ledger to begin searching from", + "description": "Stringified 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.", + "required": true, + "schema": { + "title": "ledgerSequence", + "description": "Stringified sequence number of the ledger.", + "type": "string" + } + }, + { + "name": "filters", + "summary": "filters to narrow events search", + "description": "List of filters for the returned events. Events matching any of the filters are included. To match a filter, an event must match both a contractId and a topic. Maximum 5 filters are allowed per request.", + "schema": { + "type": "array", + "maxItems": 5, + "items": { + "type": "object", + "required": [], + "properties": { + "type": { + "title": "type", + "type": "string", + "description": "A comma separated list of event types (system, contract, or diagnostic) used to filter events. If omitted, all event types are included." + }, + "contractIds": { + "title": "contractIds", + "type": "array", + "description": "(optional) List of contract IDs to query for events. If omitted, return events for all contracts. Maximum 5 contract IDs are allowed per request.", + "maxItems": 5, + "items": { + "title": "contractId", + "description": "A StrKey representation of a contract address (`C...`). ([SEP-23](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0023.md#specification)).", + "type": "string" + } + }, + "topics": { + "title": "topics", + "type": "array", + "description": "List of topic filters. If omitted, query for all events. If multiple filters are specified, events will be included if they match any of the filters. Maximum 5 filters are allowed per request.", + "maxItems": 5, + "items": { + "type": "array", + "description": "A `TopicFilter` is `SegmentMatcher[]`\n\n- The list can be 1-4 `SegmentMatchers` long.", + "minItems": 1, + "maxItems": 4, + "items": { + "title": "SegmentMatcher", + "type": "string", + "description": "A `SegmentMatcher` is one of the following:\n\n- For an exact segment match, a string containing a base64-encoded ScVal\n\n- For a wildcard single-segment match, the string \"*\", matches exactly one segment." + } + } + } + } + } + } + }, + { + "name": "pagination", + "summary": "pagination options", + "description": "Pagination in soroban-rpc is similar to pagination in Horizon. See [Pagination](https://soroban.stellar.org/api/pagination).", + "required": false, + "schema": { + "type": "object", + "required": [], + "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." + }, + "limit": { + "type": "number", + "description": "The maximum number of records returned. The limit for [getEvents](https://soroban.stellar.org/api/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." + } + } + } + } + ], + "result": { + "name": "getEventsResult", + "schema": { + "type": "object", + "properties": { + "latestLedger": { + "title": "latestLedger", + "description": "The latest ledger known to Soroban RPC at the time it handled the request.", + "type": "string" + }, + "events": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "title": "type", + "description": "The type of event emission.", + "type": "string", + "enum": [ + "contract", + "diagnostic", + "system" + ] + }, + "ledger": { + "title": "ledgerSequence", + "description": "Stringified sequence number of the ledger in which this event was emitted.", + "type": "string" + }, + "ledgerClosedAt": { + "type": "string", + "description": "[ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) timestamp of the ledger closing time" + }, + "contractId": { + "title": "contractId", + "description": "StrKey representation of the contract address that emitted this event.", + "type": "string" + }, + "id": { + "description": "Unique identifier for this event.\n\n- The event's unique id field is based on a [`toid` from Horizon](https://github.com/stellar/go/blob/master/toid/main.go) as used in Horizon's /effects endpoint.\n\n- https://github.com/stellar/go/blob/master/services/horizon/internal/db2/history/effect.go#L58\n\n- Specifically, it is a string containing:\n\n- bigint(32 bit ledger sequence + 20 bit txn number + 12 bit operation) + `` + number for the event within the operation.\n\n- For example: `1234-1`", + "type": "string" + }, + "pagingToken": { + "description": "Duplicate of `id` field, but in the standard place for pagination tokens.", + "type": "string" + }, + "inSuccessfulContractCall": { + "description": "If true the event was emitted during a successful contract call.", + "type": "boolean" + }, + "topic": { + "type": "array", + "description": "List containing the topic this event was emitted with.", + "minItems": 1, + "maxItems": 4, + "items": { + "title": "SegmentMatcher", + "type": "string", + "description": "A `SegmentMatcher` is one of the following:\n\n- For an exact segment match, a string containing a base64-encoded ScVal\n\n- For a wildcard single-segment match, the string \"*\", matches exactly one segment." + } + }, + "value": { + "description": "The data the event was broadcasting in the emitted event.", + "type": "object", + "properties": { + "xdr": { + "description": "The emitted body value of the event (serialized in a base64 string).", + "type": "string" + } + } + } + } + } + } + } + } + }, + "examples": [ + { + "name": "Native XLM Transfer Events", + "description": "Example request to the `getEvents` method, filtering for `transfer` events for native Lumens, and limiting the number of returned events to 2.", + "params": [ + { + "name": "startLedger", + "value": "2530000" + }, + { + "name": "filters", + "value": [ + { + "type": "contract", + "contractIds": [ + "CDLZFC3SYJYDZT7K67VZ75HPJVIEUVNIXF47ZG2FB2RMQQVU2HHGCYSC" + ], + "topics": [ + [ + "AAAADwAAAAh0cmFuc2Zlcg==", + "*", + "*", + "*" + ] + ] + } + ] + }, + { + "name": "pagination", + "value": { + "limit": 2 + } + } + ], + "result": { + "name": "getEventsResult", + "value": { + "events": [ + { + "type": "contract", + "ledger": "2531021", + "ledgerClosedAt": "2023-11-15T08:58:25Z", + "contractId": "CDLZFC3SYJYDZT7K67VZ75HPJVIEUVNIXF47ZG2FB2RMQQVU2HHGCYSC", + "id": "0010870652420501504-0000000004", + "pagingToken": "0010870652420501504-0000000004", + "topic": [ + "AAAADwAAAAh0cmFuc2Zlcg==", + "AAAAEgAAAAAAAAAAjt5DlR5mhneFx/1Lct0ToW555OFzg/Y28++28cJXU+I=", + "AAAAEgAAAAAAAAAA33Fu/fnobL8/u8tyLCIZzpMXbsRWRBlfAuEv7fBvTwM=", + "AAAADgAAAAZuYXRpdmUAAA==" + ], + "value": { + "xdr": "AAAACgAAAAAAAAAAAAAAAAAAAJY=" + }, + "inSuccessfulContractCall": true + }, + { + "type": "contract", + "ledger": "2531273", + "ledgerClosedAt": "2023-11-15T09:20:38Z", + "contractId": "CDLZFC3SYJYDZT7K67VZ75HPJVIEUVNIXF47ZG2FB2RMQQVU2HHGCYSC", + "id": "0010871734752280576-0000000004", + "pagingToken": "0010871734752280576-0000000004", + "topic": [ + "AAAADwAAAAh0cmFuc2Zlcg==", + "AAAAEgAAAAAAAAAA+YQ+FM83vUUwQ6P3gKCMVTyC3/jO+DERXTWJDKEjagU=", + "AAAAEgAAAAAAAAAAwl0UMLLKYqMEedoowz8VnwbRywjcKEeQegoMmU6C9/0=", + "AAAADgAAAAZuYXRpdmUAAA==" + ], + "value": { + "xdr": "AAAACgAAAAAAAAAAAAAAAAAAAJY=" + }, + "inSuccessfulContractCall": true + } + ], + "latestLedger": "2539388" + } + } + }, + { + "name": "All Events", + "description": "Example request to the `getEvents` method, filtering for all events of all types for any and all contracts.", + "params": [ + { + "name": "startLedger", + "value": "2530000" + }, + { + "name": "pagination", + "value": { + "limit": 2 + } + } + ], + "result": { + "name": "getEventsResult", + "value": { + "events": [ + { + "type": "diagnostic", + "ledger": "2530001", + "ledgerClosedAt": "2023-11-15T07:29:05Z", + "contractId": "", + "id": "0010866271553875968-0000000000", + "pagingToken": "0010866271553875968-0000000000", + "topic": [ + "AAAADwAAAAdmbl9jYWxsAA==", + "AAAADQAAACCGE7Aj5EvXxmmTtyojmlFF/Qv3qMTyL7THd6SG4GHZxQ==", + "AAAADwAAABFzZXRfY3VycmVuY3lfcmF0ZQAAAA==" + ], + "value": { + "xdr": "AAAAEAAAAAEAAAACAAAADwAAAAN1c2QAAAAACQAAAAAAAAAAAAAAAAASHQg=" + }, + "inSuccessfulContractCall": true + }, + { + "type": "diagnostic", + "ledger": "2530001", + "ledgerClosedAt": "2023-11-15T07:29:05Z", + "contractId": "CCDBHMBD4RF5PRTJSO3SUI42KFC72C7XVDCPEL5UY532JBXAMHM4KOQ3", + "id": "0010866271553875968-0000000001", + "pagingToken": "0010866271553875968-0000000001", + "topic": [ + "AAAADwAAAAlmbl9yZXR1cm4AAAA=", + "AAAADwAAABFzZXRfY3VycmVuY3lfcmF0ZQAAAA==" + ], + "value": { + "xdr": "AAAAAQ==" + }, + "inSuccessfulContractCall": true + } + ], + "latestLedger": "2539529" + } + } + } + ] + }, + { + "name": "getHealth", + "summary": "returns node health", + "description": "General node health check.", + "externalDocs": { + "url": "https://soroban.stellar.org/api/methods/getHealth" + }, + "paramStructure": "by-name", + "params": [], + "result": { + "name": "getHealthResult", + "schema": { + "type": "object", + "properties": { + "status": { + "type": "string", + "description": "\"healthy\"" + } + } + } + }, + "examples": [ + { + "name": "Current node health", + "description": "Example request to the `getHealth` method", + "params": [], + "result": { + "name": "getHealthResult", + "value": { + "status": "healthy" + } + } + } + ] + }, + { + "name": "getLatestLedger", + "summary": "returns latest known ledger", + "description": "For finding out the current latest known ledger of this node. This is a subset of the ledger info from Horizon.", + "externalDocs": { + "url": "https://soroban.stellar.org/api/methods/getLatestLedger" + }, + "paramStructure": "by-name", + "params": [], + "result": { + "name": "getLatestLedgerResult", + "schema": { + "type": "object", + "properties": { + "id": { + "title": "id", + "type": "string", + "minLength": 64, + "maxLength": 64, + "pattern": "^[a-f\\d]{64}$", + "description": "Hash identifier of the latest ledger (as a hex-encoded string) known to Soroban RPC at the time it handled the request." + }, + "protocolVersion": { + "title": "protocolVersion", + "description": "Stellar Core protocol version associated with the latest ledger.", + "type": "string" + }, + "sequence": { + "title": "latestLedger", + "description": "The latest ledger known to Soroban RPC at the time it handled the request.", + "type": "number" + } + } + } + }, + "examples": [ + { + "name": "Details of the Current Ledger", + "description": "Example request to the `getLatestLedger` method.", + "params": [], + "result": { + "name": "getLatestLedgerResult", + "value": { + "id": "c73c5eac58a441d4eb733c35253ae85f783e018f7be5ef974258fed067aabb36", + "protocolVersion": "20", + "sequence": 2539605 + } + } + } + ] + }, + { + "name": "getLedgerEntries", + "summary": "returns ledger entries", + "description": "For reading the current value of ledger entries directly.\n\nAllows you to directly inspect the current state of a contract, a contract's code, or any other ledger entry. This is a backup way to access your contract data which may not be available via events or `simulateTransaction`.\n\nTo fetch contract wasm byte-code, use the ContractCode ledger entry key.", + "externalDocs": { + "url": "https://soroban.stellar.org/api/methods/getLedgerEntries" + }, + "paramStructure": "by-name", + "params": [ + { + "name": "keys", + "summary": "array of ledger keys", + "description": "Array containing the keys of the ledger entries you wish to retrieve. (an array of serialized base64 strings)", + "required": true, + "schema": { + "description": "Array containing ledger keys.", + "type": "array", + "items": { + "type": "string", + "description": "Ledger key, serialized as a base64 string, corresponding to an existing ledger entry you wish to retrieve." + } + } + } + ], + "result": { + "name": "getLedgerEntriesResult", + "schema": { + "type": "object", + "required": [ + "latestLedger" + ], + "properties": { + "latestLedger": { + "title": "latestLedger", + "description": "The latest ledger known to Soroban RPC at the time it handled the request.", + "type": "string" + }, + "entries": { + "type": "array", + "description": "Array of objects containing all found ledger entries", + "items": { + "type": "object", + "description": "Object containing information about an existing ledger entry.", + "properties": { + "key": { + "type": "string", + "description": "The key of the ledger entry (serialized in a base64 string)." + }, + "xdr": { + "type": "string", + "description": "The current value of the given ledger entry (serialized in a base64 string)." + }, + "lastModifiedLedgerSeq": { + "title": "ledgerSequence", + "description": "The ledger sequence number of the last time this entry was updated.", + "type": "string" + }, + "liveUntilLedgerSeq": { + "title": "ledgerSequence", + "description": "Stringified sequence number of the ledger.", + "type": "string" + } + } + } + } + } + } + }, + "examples": [ + { + "name": "Retrieve a Contract's Counter Entry for an Address", + "description": "Example request to the `getNetwork` method for a `Counter(Address)` ledger entry.", + "params": [ + { + "name": "keys", + "summary": "ledger key for an address' counter entry", + "description": "A ledger key that will request a ledger entry defined using a tuple variant enum in a contract: `Counter(Address)`", + "value": [ + "AAAABgAAAAHMA/50/Q+w3Ni8UXWm/trxFBfAfl6De5kFttaMT0/ACwAAABAAAAABAAAAAgAAAA8AAAAHQ291bnRlcgAAAAASAAAAAAAAAAAg4dbAxsGAGICfBG3iT2cKGYQ6hK4sJWzZ6or1C5v6GAAAAAE=" + ] + } + ], + "result": { + "name": "getLedgerEntriesResult", + "value": { + "entries": [ + { + "key": "AAAAB+qfy4GuVKKfazvyk4R9P9fpo2n9HICsr+xqvVcTF+DC", + "xdr": "AAAABgAAAAAAAAABzAP+dP0PsNzYvFF1pv7a8RQXwH5eg3uZBbbWjE9PwAsAAAAQAAAAAQAAAAIAAAAPAAAAB0NvdW50ZXIAAAAAEgAAAAAAAAAAIOHWwMbBgBiAnwRt4k9nChmEOoSuLCVs2eqK9Qub+hgAAAABAAAAAwAAAAw=", + "lastModifiedLedgerSeq": "2552504" + } + ], + "latestLedger": "2552990" + } + } + }, + { + "name": "Retrieve a Token's Balance Entry for Contract", + "description": "Example request to the `getNetwork` method for a SAC balance ledger entry belonging to a contract.", + "params": [ + { + "name": "keys", + "summary": "ledger key for a contract's native XLM balance", + "description": "A ledger key that will request a ledger entry corresponding to a contract's balance on the native XLM Stellar Asset Contract.", + "value": [ + "AAAABgAAAAHXkotywnA8z+r365/0701QSlWouXn8m0UOoshCtNHOYQAAABAAAAABAAAAAgAAAA8AAAAHQmFsYW5jZQAAAAASAAAAAcwD/nT9D7Dc2LxRdab+2vEUF8B+XoN7mQW21oxPT8ALAAAAAQ==" + ] + } + ], + "result": { + "name": "getLedgerEntriesResult", + "value": { + "entries": [ + { + "key": "AAAABgAAAAHXkotywnA8z+r365/0701QSlWouXn8m0UOoshCtNHOYQAAABAAAAABAAAAAgAAAA8AAAAHQmFsYW5jZQAAAAASAAAAAcwD/nT9D7Dc2LxRdab+2vEUF8B+XoN7mQW21oxPT8ALAAAAAQ==", + "xdr": "AAAABgAAAAAAAAAB15KLcsJwPM/q9+uf9O9NUEpVqLl5/JtFDqLIQrTRzmEAAAAQAAAAAQAAAAIAAAAPAAAAB0JhbGFuY2UAAAAAEgAAAAHMA/50/Q+w3Ni8UXWm/trxFBfAfl6De5kFttaMT0/ACwAAAAEAAAARAAAAAQAAAAMAAAAPAAAABmFtb3VudAAAAAAACgAAAAAAAAAAAAAAAB3NZQAAAAAPAAAACmF1dGhvcml6ZWQAAAAAAAAAAAABAAAADwAAAAhjbGF3YmFjawAAAAAAAAAA", + "lastModifiedLedgerSeq": "2553612" + } + ], + "latestLedger": "2553713" + } + } + }, + { + "name": "Retrieve Multiple Ledger Entries from Different Contracts.", + "description": "Example request to the `getNetwork` method for a `Counter(Address)` ledger entry and a SAC balance ledger entry.", + "params": [ + { + "name": "keys", + "summary": "ledger keys for multiple ledger entries", + "description": "Two ledger keys: One for a counter entry, and one for a contract's native XLM balance.", + "value": [ + "AAAABgAAAAHMA/50/Q+w3Ni8UXWm/trxFBfAfl6De5kFttaMT0/ACwAAABAAAAABAAAAAgAAAA8AAAAHQ291bnRlcgAAAAASAAAAAAAAAAAg4dbAxsGAGICfBG3iT2cKGYQ6hK4sJWzZ6or1C5v6GAAAAAE=", + "AAAABgAAAAHXkotywnA8z+r365/0701QSlWouXn8m0UOoshCtNHOYQAAABAAAAABAAAAAgAAAA8AAAAHQmFsYW5jZQAAAAASAAAAAcwD/nT9D7Dc2LxRdab+2vEUF8B+XoN7mQW21oxPT8ALAAAAAQ==" + ] + } + ], + "result": { + "name": "getLedgerEntriesResult", + "value": { + "entries": [ + { + "key": "AAAABgAAAAHMA/50/Q+w3Ni8UXWm/trxFBfAfl6De5kFttaMT0/ACwAAABAAAAABAAAAAgAAAA8AAAAHQ291bnRlcgAAAAASAAAAAAAAAAAg4dbAxsGAGICfBG3iT2cKGYQ6hK4sJWzZ6or1C5v6GAAAAAE=", + "xdr": "AAAABgAAAAAAAAAB15KLcsJwPM/q9+uf9O9NUEpVqLl5/JtFDqLIQrTRzmEAAAAQAAAAAQAAAAIAAAAPAAAAB0JhbGFuY2UAAAAAEgAAAAHMA/50/Q+w3Ni8UXWm/trxFBfAfl6De5kFttaMT0/ACwAAAAEAAAARAAAAAQAAAAMAAAAPAAAABmFtb3VudAAAAAAACgAAAAAAAAAAAAAAAB3NZQAAAAAPAAAACmF1dGhvcml6ZWQAAAAAAAAAAAABAAAADwAAAAhjbGF3YmFjawAAAAAAAAAA", + "lastModifiedLedgerSeq": "2553612" + }, + { + "key": "AAAABgAAAAHXkotywnA8z+r365/0701QSlWouXn8m0UOoshCtNHOYQAAABAAAAABAAAAAgAAAA8AAAAHQmFsYW5jZQAAAAASAAAAAcwD/nT9D7Dc2LxRdab+2vEUF8B+XoN7mQW21oxPT8ALAAAAAQ==", + "xdr": "AAAABgAAAAAAAAABzAP+dP0PsNzYvFF1pv7a8RQXwH5eg3uZBbbWjE9PwAsAAAAQAAAAAQAAAAIAAAAPAAAAB0NvdW50ZXIAAAAAEgAAAAAAAAAAIOHWwMbBgBiAnwRt4k9nChmEOoSuLCVs2eqK9Qub+hgAAAABAAAAAwAAAAw=", + "lastModifiedLedgerSeq": "2552504" + } + ], + "latestLedger": "2553767" + } + } + } + ] + }, + { + "name": "getNetwork", + "summary": "returns network config", + "description": "General information about the currently configured network. This response will contain all the information needed to successfully submit transactions to the network this node serves.", + "externalDocs": { + "url": "https://soroban.stellar.org/api/methods/getNetwork" + }, + "paramStructure": "by-name", + "params": [], + "result": { + "name": "getNetworkResult", + "schema": { + "type": "object", + "required": [ + "passphrase", + "protocolVersion" + ], + "properties": { + "passphrase": { + "title": "networkPassphrase", + "description": "Network passphrase configured for this Soroban RPC node.", + "type": "string" + }, + "protocolVersion": { + "title": "protocolVersion", + "description": "Stellar Core protocol version associated with the latest ledger.", + "type": "string" + }, + "friendbotUrl": { + "type": "string", + "description": "(optional) The URL of this network's \"friendbot\" faucet" + } + } + } + }, + "examples": [ + { + "name": "Testnet Network Configuration", + "description": "Example request to the `getNetwork` method for a node connected to the Stellar Testnet network.", + "params": [], + "result": { + "name": "getNetworkResult", + "value": { + "friendbotUrl": "https://friendbot-testnet.stellar.org/", + "passphrase": "Test SDF Network ; September 2015", + "protocolVersion": "20" + } + } + }, + { + "name": "Futurenet Network Configuration", + "description": "Example request to the `getNetwork` method for a node connected to the Stellar Futurenet network.", + "params": [], + "result": { + "name": "getNetworkResult", + "value": { + "friendbotUrl": "https://friendbot-futurenet.stellar.org/", + "passphrase": "Test SDF Future Network ; October 2022", + "protocolVersion": "20" + } + } + } + ] + }, + { + "name": "getTransaction", + "summary": "returns transaction details", + "description": "The getTransaction method provides details about the specified transaction. Clients are expected to periodically query this method to ascertain when a transaction has been successfully recorded on the blockchain. The soroban-rpc system maintains a restricted history of recently processed transactions, with the default retention window set at 1440 ledgers, approximately equivalent to a 2-hour timeframe. For private soroban-rpc instances, it is possible to modify the retention window value by adjusting the transaction-retention-window configuration setting. For comprehensive debugging needs that extend beyond the 2-hour timeframe, it is advisable to retrieve transaction information from Horizon, as it provides a lasting and persistent record.", + "externalDocs": { + "url": "https://soroban.stellar.org/api/methods/getTransaction" + }, + "paramStructure": "by-name", + "params": [ + { + "name": "hash", + "summary": "transaction hash to query", + "description": "Transaction hash to query as a hex-encoded string. This transaction hash should correspond to transaction that has been previously submitted to the network.", + "required": true, + "schema": { + "title": "hash", + "type": "string", + "minLength": 64, + "maxLength": 64, + "pattern": "^[a-f\\d]{64}$", + "description": "Transaction hash (as a hex-encoded string)" + } + } + ], + "result": { + "name": "getTransactionResult", + "schema": { + "type": "object", + "required": [ + "status", + "latestLedger", + "latestLedgerCloseTime", + "oldestLedger", + "oldestLedgerCloseTime" + ], + "properties": { + "status": { + "type": "string", + "description": "The current status of the transaction by hash", + "enum": [ + "SUCCESS", + "NOT_FOUND", + "FAILED" + ] + }, + "latestLedger": { + "title": "latestLedger", + "description": "The latest ledger known to Soroban RPC at the time it handled the request.", + "type": "string" + }, + "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 oldest ledger ingested by Soroban RPC at the time it handled the request.", + "type": "string" + }, + "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" + }, + "ledger": { + "title": "ledger", + "description": "(optional) The sequence of the ledger which included the transaction. This field is only present if `status` is `SUCCESS` or `FAILED`.", + "type": "string" + }, + "createdAt": { + "title": "createdAt", + "description": "(optional) The unix timestamp of when the transaction was included in the ledger. This field is only present if `status` is `SUCCESS` or `FAILED`.", + "type": "string" + }, + "applicationOrder": { + "type": "number", + "description": "(optional) The index of the transaction among all transactions included in the ledger. This field is only present if `status` is `SUCCESS` or `FAILED`." + }, + "feeBump": { + "type": "boolean", + "description": "(optional) Indicates whether the transaction was fee bumped. This field is only present if `status` is `SUCCESS` or `FAILED`." + }, + "envelopeXdr": { + "type": "string", + "description": "(optional) A base64 encoded string of the raw TransactionEnvelope XDR struct for this transaction." + }, + "resultXdr": { + "type": "string", + "description": "(optional) A base64 encoded string of the raw TransactionResult XDR struct for this transaction. This field is only present if `status` is `SUCCESS` or `FAILED`." + }, + "resultMetaXdr": { + "type": "string", + "description": "(optional) A base64 encoded string of the raw TransactionResultMeta XDR struct for this transaction." + } + } + } + }, + "examples": [ + { + "name": "Successful Transaction", + "description": "Query for a transaction hash that returns `SUCCESS` from the RPC node.", + "params": [ + { + "name": "hash", + "summary": "a recent transaction hash", + "description": "Transaction hash that hit the network recently enough to still be visible through the RPC node.", + "value": "6bc97bddc21811c626839baf4ab574f4f9f7ddbebb44d286ae504396d4e752da" + } + ], + "result": { + "name": "getTransactionResult", + "value": { + "status": "SUCCESS", + "latestLedger": "2540076", + "latestLedgerCloseTime": "1700086333", + "oldestLedger": "2538637", + "oldestLedgerCloseTime": "1700078796", + "applicationOrder": 1, + "envelopeXdr": "AAAAAgAAAADGFY14/R1KD0VGtTbi5Yp4d7LuMW0iQbLM/AUiGKj5owCpsoQAJY3OAAAjqgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAGAAAAAAAAAABhhOwI+RL18Zpk7cqI5pRRf0L96jE8i+0x3ekhuBh2cUAAAARc2V0X2N1cnJlbmN5X3JhdGUAAAAAAAACAAAADwAAAANldXIAAAAACQAAAAAAAAAAAAAAAAARCz4AAAABAAAAAAAAAAAAAAABhhOwI+RL18Zpk7cqI5pRRf0L96jE8i+0x3ekhuBh2cUAAAARc2V0X2N1cnJlbmN5X3JhdGUAAAAAAAACAAAADwAAAANldXIAAAAACQAAAAAAAAAAAAAAAAARCz4AAAAAAAAAAQAAAAAAAAABAAAAB4408vVXuLU3mry897TfPpYjjsSN7n42REos241RddYdAAAAAQAAAAYAAAABhhOwI+RL18Zpk7cqI5pRRf0L96jE8i+0x3ekhuBh2cUAAAAUAAAAAQFvcYAAAImAAAAHxAAAAAAAAAACAAAAARio+aMAAABATbFMyom/TUz87wHex0LoYZA8jbNJkXbaDSgmOdk+wSBFJuMuta+/vSlro0e0vK2+1FqD/zWHZeYig4pKmM3rDA==", + "resultXdr": "AAAAAAARFy8AAAAAAAAAAQAAAAAAAAAYAAAAAMu8SHUN67hTUJOz3q+IrH9M/4dCVXaljeK6x1Ss20YWAAAAAA==", + "resultMetaXdr": "AAAAAwAAAAAAAAACAAAAAwAmwiAAAAAAAAAAAMYVjXj9HUoPRUa1NuLlinh3su4xbSJBssz8BSIYqPmjAAAAFUHZob0AJY3OAAAjqQAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAMAAAAAACbCHwAAAABlVUH3AAAAAAAAAAEAJsIgAAAAAAAAAADGFY14/R1KD0VGtTbi5Yp4d7LuMW0iQbLM/AUiGKj5owAAABVB2aG9ACWNzgAAI6oAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAADAAAAAAAmwiAAAAAAZVVB/AAAAAAAAAABAAAAAgAAAAMAJsIfAAAABgAAAAAAAAABhhOwI+RL18Zpk7cqI5pRRf0L96jE8i+0x3ekhuBh2cUAAAAUAAAAAQAAABMAAAAAjjTy9Ve4tTeavLz3tN8+liOOxI3ufjZESizbjVF11h0AAAABAAAABQAAABAAAAABAAAAAQAAAA8AAAAJQ29yZVN0YXRlAAAAAAAAEQAAAAEAAAAGAAAADwAAAAVhZG1pbgAAAAAAABIAAAAAAAAAADn1LT+CCK/HiHMChoEi/AtPrkos4XRR2E45Pr25lb3/AAAADwAAAAljb2xfdG9rZW4AAAAAAAASAAAAAdeSi3LCcDzP6vfrn/TvTVBKVai5efybRQ6iyEK00c5hAAAADwAAAAxvcmFjbGVfYWRtaW4AAAASAAAAAAAAAADGFY14/R1KD0VGtTbi5Yp4d7LuMW0iQbLM/AUiGKj5owAAAA8AAAAKcGFuaWNfbW9kZQAAAAAAAAAAAAAAAAAPAAAAEHByb3RvY29sX21hbmFnZXIAAAASAAAAAAAAAAAtSfyAwmj05lZ0WduHsQYQZgvahCNVtZyqS2HRC99kyQAAAA8AAAANc3RhYmxlX2lzc3VlcgAAAAAAABIAAAAAAAAAAEM5BlXva0R5UN6SCMY+6evwJa4mY/f062z0TKLnqN4wAAAAEAAAAAEAAAACAAAADwAAAAhDdXJyZW5jeQAAAA8AAAADZXVyAAAAABEAAAABAAAABQAAAA8AAAAGYWN0aXZlAAAAAAAAAAAAAQAAAA8AAAAIY29udHJhY3QAAAASAAAAAUGpebFxuPbvxZFzOxh8TWAxUwFgraPxPuJEY/8yhiYEAAAADwAAAAxkZW5vbWluYXRpb24AAAAPAAAAA2V1cgAAAAAPAAAAC2xhc3RfdXBkYXRlAAAAAAUAAAAAZVVBvgAAAA8AAAAEcmF0ZQAAAAkAAAAAAAAAAAAAAAAAEQb8AAAAEAAAAAEAAAACAAAADwAAAAhDdXJyZW5jeQAAAA8AAAADdXNkAAAAABEAAAABAAAABQAAAA8AAAAGYWN0aXZlAAAAAAAAAAAAAQAAAA8AAAAIY29udHJhY3QAAAASAAAAATUEqdkvrE2LnSiwOwed3v4VEaulOEiS1rxQw6rJkfxCAAAADwAAAAxkZW5vbWluYXRpb24AAAAPAAAAA3VzZAAAAAAPAAAAC2xhc3RfdXBkYXRlAAAAAAUAAAAAZVVB9wAAAA8AAAAEcmF0ZQAAAAkAAAAAAAAAAAAAAAAAEnzuAAAAEAAAAAEAAAACAAAADwAAAApWYXVsdHNJbmZvAAAAAAAPAAAAA2V1cgAAAAARAAAAAQAAAAgAAAAPAAAADGRlbm9taW5hdGlvbgAAAA8AAAADZXVyAAAAAA8AAAAKbG93ZXN0X2tleQAAAAAAEAAAAAEAAAACAAAADwAAAARTb21lAAAAEQAAAAEAAAADAAAADwAAAAdhY2NvdW50AAAAABIAAAAAAAAAAGKaH7iFUU2kfGOJGONeYuJ2U2QUeQ+zOEfYZvAoeHDsAAAADwAAAAxkZW5vbWluYXRpb24AAAAPAAAAA2V1cgAAAAAPAAAABWluZGV4AAAAAAAACQAAAAAAAAAAAAAAA7msoAAAAAAPAAAADG1pbl9jb2xfcmF0ZQAAAAkAAAAAAAAAAAAAAAAAp9jAAAAADwAAABFtaW5fZGVidF9jcmVhdGlvbgAAAAAAAAkAAAAAAAAAAAAAAAA7msoAAAAADwAAABBvcGVuaW5nX2NvbF9yYXRlAAAACQAAAAAAAAAAAAAAAACveeAAAAAPAAAACXRvdGFsX2NvbAAAAAAAAAkAAAAAAAAAAAAAAAlQL5AAAAAADwAAAAp0b3RhbF9kZWJ0AAAAAAAJAAAAAAAAAAAAAAAAlQL5AAAAAA8AAAAMdG90YWxfdmF1bHRzAAAABQAAAAAAAAABAAAAEAAAAAEAAAACAAAADwAAAApWYXVsdHNJbmZvAAAAAAAPAAAAA3VzZAAAAAARAAAAAQAAAAgAAAAPAAAADGRlbm9taW5hdGlvbgAAAA8AAAADdXNkAAAAAA8AAAAKbG93ZXN0X2tleQAAAAAAEAAAAAEAAAACAAAADwAAAARTb21lAAAAEQAAAAEAAAADAAAADwAAAAdhY2NvdW50AAAAABIAAAAAAAAAAGKaH7iFUU2kfGOJGONeYuJ2U2QUeQ+zOEfYZvAoeHDsAAAADwAAAAxkZW5vbWluYXRpb24AAAAPAAAAA3VzZAAAAAAPAAAABWluZGV4AAAAAAAACQAAAAAAAAAAAAAAA7msoAAAAAAPAAAADG1pbl9jb2xfcmF0ZQAAAAkAAAAAAAAAAAAAAAAAp9jAAAAADwAAABFtaW5fZGVidF9jcmVhdGlvbgAAAAAAAAkAAAAAAAAAAAAAAAA7msoAAAAADwAAABBvcGVuaW5nX2NvbF9yYXRlAAAACQAAAAAAAAAAAAAAAACveeAAAAAPAAAACXRvdGFsX2NvbAAAAAAAAAkAAAAAAAAAAAAAABF2WS4AAAAADwAAAAp0b3RhbF9kZWJ0AAAAAAAJAAAAAAAAAAAAAAAA7msoAAAAAA8AAAAMdG90YWxfdmF1bHRzAAAABQAAAAAAAAACAAAAAAAAAAEAJsIgAAAABgAAAAAAAAABhhOwI+RL18Zpk7cqI5pRRf0L96jE8i+0x3ekhuBh2cUAAAAUAAAAAQAAABMAAAAAjjTy9Ve4tTeavLz3tN8+liOOxI3ufjZESizbjVF11h0AAAABAAAABQAAABAAAAABAAAAAQAAAA8AAAAJQ29yZVN0YXRlAAAAAAAAEQAAAAEAAAAGAAAADwAAAAVhZG1pbgAAAAAAABIAAAAAAAAAADn1LT+CCK/HiHMChoEi/AtPrkos4XRR2E45Pr25lb3/AAAADwAAAAljb2xfdG9rZW4AAAAAAAASAAAAAdeSi3LCcDzP6vfrn/TvTVBKVai5efybRQ6iyEK00c5hAAAADwAAAAxvcmFjbGVfYWRtaW4AAAASAAAAAAAAAADGFY14/R1KD0VGtTbi5Yp4d7LuMW0iQbLM/AUiGKj5owAAAA8AAAAKcGFuaWNfbW9kZQAAAAAAAAAAAAAAAAAPAAAAEHByb3RvY29sX21hbmFnZXIAAAASAAAAAAAAAAAtSfyAwmj05lZ0WduHsQYQZgvahCNVtZyqS2HRC99kyQAAAA8AAAANc3RhYmxlX2lzc3VlcgAAAAAAABIAAAAAAAAAAEM5BlXva0R5UN6SCMY+6evwJa4mY/f062z0TKLnqN4wAAAAEAAAAAEAAAACAAAADwAAAAhDdXJyZW5jeQAAAA8AAAADZXVyAAAAABEAAAABAAAABQAAAA8AAAAGYWN0aXZlAAAAAAAAAAAAAQAAAA8AAAAIY29udHJhY3QAAAASAAAAAUGpebFxuPbvxZFzOxh8TWAxUwFgraPxPuJEY/8yhiYEAAAADwAAAAxkZW5vbWluYXRpb24AAAAPAAAAA2V1cgAAAAAPAAAAC2xhc3RfdXBkYXRlAAAAAAUAAAAAZVVB/AAAAA8AAAAEcmF0ZQAAAAkAAAAAAAAAAAAAAAAAEQs+AAAAEAAAAAEAAAACAAAADwAAAAhDdXJyZW5jeQAAAA8AAAADdXNkAAAAABEAAAABAAAABQAAAA8AAAAGYWN0aXZlAAAAAAAAAAAAAQAAAA8AAAAIY29udHJhY3QAAAASAAAAATUEqdkvrE2LnSiwOwed3v4VEaulOEiS1rxQw6rJkfxCAAAADwAAAAxkZW5vbWluYXRpb24AAAAPAAAAA3VzZAAAAAAPAAAAC2xhc3RfdXBkYXRlAAAAAAUAAAAAZVVB9wAAAA8AAAAEcmF0ZQAAAAkAAAAAAAAAAAAAAAAAEnzuAAAAEAAAAAEAAAACAAAADwAAAApWYXVsdHNJbmZvAAAAAAAPAAAAA2V1cgAAAAARAAAAAQAAAAgAAAAPAAAADGRlbm9taW5hdGlvbgAAAA8AAAADZXVyAAAAAA8AAAAKbG93ZXN0X2tleQAAAAAAEAAAAAEAAAACAAAADwAAAARTb21lAAAAEQAAAAEAAAADAAAADwAAAAdhY2NvdW50AAAAABIAAAAAAAAAAGKaH7iFUU2kfGOJGONeYuJ2U2QUeQ+zOEfYZvAoeHDsAAAADwAAAAxkZW5vbWluYXRpb24AAAAPAAAAA2V1cgAAAAAPAAAABWluZGV4AAAAAAAACQAAAAAAAAAAAAAAA7msoAAAAAAPAAAADG1pbl9jb2xfcmF0ZQAAAAkAAAAAAAAAAAAAAAAAp9jAAAAADwAAABFtaW5fZGVidF9jcmVhdGlvbgAAAAAAAAkAAAAAAAAAAAAAAAA7msoAAAAADwAAABBvcGVuaW5nX2NvbF9yYXRlAAAACQAAAAAAAAAAAAAAAACveeAAAAAPAAAACXRvdGFsX2NvbAAAAAAAAAkAAAAAAAAAAAAAAAlQL5AAAAAADwAAAAp0b3RhbF9kZWJ0AAAAAAAJAAAAAAAAAAAAAAAAlQL5AAAAAA8AAAAMdG90YWxfdmF1bHRzAAAABQAAAAAAAAABAAAAEAAAAAEAAAACAAAADwAAAApWYXVsdHNJbmZvAAAAAAAPAAAAA3VzZAAAAAARAAAAAQAAAAgAAAAPAAAADGRlbm9taW5hdGlvbgAAAA8AAAADdXNkAAAAAA8AAAAKbG93ZXN0X2tleQAAAAAAEAAAAAEAAAACAAAADwAAAARTb21lAAAAEQAAAAEAAAADAAAADwAAAAdhY2NvdW50AAAAABIAAAAAAAAAAGKaH7iFUU2kfGOJGONeYuJ2U2QUeQ+zOEfYZvAoeHDsAAAADwAAAAxkZW5vbWluYXRpb24AAAAPAAAAA3VzZAAAAAAPAAAABWluZGV4AAAAAAAACQAAAAAAAAAAAAAAA7msoAAAAAAPAAAADG1pbl9jb2xfcmF0ZQAAAAkAAAAAAAAAAAAAAAAAp9jAAAAADwAAABFtaW5fZGVidF9jcmVhdGlvbgAAAAAAAAkAAAAAAAAAAAAAAAA7msoAAAAADwAAABBvcGVuaW5nX2NvbF9yYXRlAAAACQAAAAAAAAAAAAAAAACveeAAAAAPAAAACXRvdGFsX2NvbAAAAAAAAAkAAAAAAAAAAAAAABF2WS4AAAAADwAAAAp0b3RhbF9kZWJ0AAAAAAAJAAAAAAAAAAAAAAAA7msoAAAAAA8AAAAMdG90YWxfdmF1bHRzAAAABQAAAAAAAAACAAAAAAAAAAAAAAABAAAAAAAAAAAAAAABAAAAFQAAAAEAAAAAAAAAAAAAAAIAAAAAAAAAAwAAAA8AAAAHZm5fY2FsbAAAAAANAAAAIIYTsCPkS9fGaZO3KiOaUUX9C/eoxPIvtMd3pIbgYdnFAAAADwAAABFzZXRfY3VycmVuY3lfcmF0ZQAAAAAAABAAAAABAAAAAgAAAA8AAAADZXVyAAAAAAkAAAAAAAAAAAAAAAAAEQs+AAAAAQAAAAAAAAABhhOwI+RL18Zpk7cqI5pRRf0L96jE8i+0x3ekhuBh2cUAAAACAAAAAAAAAAIAAAAPAAAACWZuX3JldHVybgAAAAAAAA8AAAARc2V0X2N1cnJlbmN5X3JhdGUAAAAAAAABAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAACAAAADwAAAAxjb3JlX21ldHJpY3MAAAAPAAAACnJlYWRfZW50cnkAAAAAAAUAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAgAAAA8AAAAMY29yZV9tZXRyaWNzAAAADwAAAAt3cml0ZV9lbnRyeQAAAAAFAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAIAAAAPAAAADGNvcmVfbWV0cmljcwAAAA8AAAAQbGVkZ2VyX3JlYWRfYnl0ZQAAAAUAAAAAAACJaAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAgAAAA8AAAAMY29yZV9tZXRyaWNzAAAADwAAABFsZWRnZXJfd3JpdGVfYnl0ZQAAAAAAAAUAAAAAAAAHxAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAgAAAA8AAAAMY29yZV9tZXRyaWNzAAAADwAAAA1yZWFkX2tleV9ieXRlAAAAAAAABQAAAAAAAABUAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAACAAAADwAAAAxjb3JlX21ldHJpY3MAAAAPAAAADndyaXRlX2tleV9ieXRlAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAIAAAAPAAAADGNvcmVfbWV0cmljcwAAAA8AAAAOcmVhZF9kYXRhX2J5dGUAAAAAAAUAAAAAAAAH6AAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAgAAAA8AAAAMY29yZV9tZXRyaWNzAAAADwAAAA93cml0ZV9kYXRhX2J5dGUAAAAABQAAAAAAAAfEAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAACAAAADwAAAAxjb3JlX21ldHJpY3MAAAAPAAAADnJlYWRfY29kZV9ieXRlAAAAAAAFAAAAAAAAgYAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAIAAAAPAAAADGNvcmVfbWV0cmljcwAAAA8AAAAPd3JpdGVfY29kZV9ieXRlAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAgAAAA8AAAAMY29yZV9tZXRyaWNzAAAADwAAAAplbWl0X2V2ZW50AAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAIAAAAPAAAADGNvcmVfbWV0cmljcwAAAA8AAAAPZW1pdF9ldmVudF9ieXRlAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAgAAAA8AAAAMY29yZV9tZXRyaWNzAAAADwAAAAhjcHVfaW5zbgAAAAUAAAAAATLTQAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAgAAAA8AAAAMY29yZV9tZXRyaWNzAAAADwAAAAhtZW1fYnl0ZQAAAAUAAAAAACqhewAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAgAAAA8AAAAMY29yZV9tZXRyaWNzAAAADwAAABFpbnZva2VfdGltZV9uc2VjcwAAAAAAAAUAAAAAABFfSQAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAgAAAA8AAAAMY29yZV9tZXRyaWNzAAAADwAAAA9tYXhfcndfa2V5X2J5dGUAAAAABQAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAACAAAADwAAAAxjb3JlX21ldHJpY3MAAAAPAAAAEG1heF9yd19kYXRhX2J5dGUAAAAFAAAAAAAAB+gAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAIAAAAPAAAADGNvcmVfbWV0cmljcwAAAA8AAAAQbWF4X3J3X2NvZGVfYnl0ZQAAAAUAAAAAAACBgAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAgAAAA8AAAAMY29yZV9tZXRyaWNzAAAADwAAABNtYXhfZW1pdF9ldmVudF9ieXRlAAAAAAUAAAAAAAAAAA==", + "ledger": "2540064", + "createdAt": "1700086268" + } + } + }, + { + "name": "Not Found Transaction", + "description": "Query for a transaction hash that returns `NOT_FOUND` from the RPC node.", + "params": [ + { + "name": "hash", + "summary": "an old transaction hash", + "description": "Transaction has that is old enough for the RPC node to have forgotten about it.", + "value": "85f7aa8bfda425b98c0e53ffe56796ffd8865ec2fcc3ad71abf120801e2a14e5" + } + ], + "result": { + "name": "getTransactionResult", + "value": { + "status": "NOT_FOUND", + "latestLedger": "2540099", + "latestLedgerCloseTime": "1700086455", + "oldestLedger": "2538660", + "oldestLedgerCloseTime": "1700078913" + } + } + }, + { + "name": "Failed Transaction", + "description": "Query for a transaction hash that returns `FAILED` from the RPC node.", + "params": [ + { + "name": "hash", + "summary": "a failed transaction hash", + "description": "Transaction hash that failed to be accepted into a ledger.", + "value": "2e4c699cbcb8ee83fffb857c9579bcc91f73f0df2a0444292f66e37563785929" + } + ], + "result": { + "name": "getTransactionResult", + "value": { + "status": "FAILED", + "latestLedger": "2540124", + "latestLedgerCloseTime": "1700086588", + "oldestLedger": "2538685", + "oldestLedgerCloseTime": "1700079044", + "applicationOrder": 2, + "envelopeXdr": "AAAAAgAAAABZvyflsZ5FumtSdS+t0/YnWWML3YWdzX1BGk/Qy786aQAAAG4AFyJfAABKvgAAAAIAAAAAAAAAAQAmwlEAJsK1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAE/fr1kk7lqP0srDPW4JExF1MWmpsG49FsRE3b0vMCmzAAAAAUVVUlMAAAAArPm4/+q9j4dl178h2JjrqjgRXnQ1WiGkyVy+nv3nGkEAAAAAAVjZQAAAAAAAAAABy786aQAAAEDybJBtG7V5NrRFpoboRUN/5ecys5wSUgag3CnTtWLmq3JDOxrEjK9noAnu/F5O0E8iXuVzX9BxZSO9JZ+Tw6kK", + "resultXdr": "AAAAAAAAAGT/////AAAAAQAAAAAAAAAB////+gAAAAA=", + "resultMetaXdr": "AAAAAwAAAAAAAAACAAAAAwAmwlIAAAAAAAAAAFm/J+WxnkW6a1J1L63T9idZYwvdhZ3NfUEaT9DLvzppAAAAF0g7NXsAFyJfAABKvQAAAAEAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAMAAAAAACbCSwAAAABlVULiAAAAAAAAAAEAJsJSAAAAAAAAAABZvyflsZ5FumtSdS+t0/YnWWML3YWdzX1BGk/Qy786aQAAABdIOzV7ABciXwAASr4AAAABAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAADAAAAAAAmwlIAAAAAZVVDBwAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAA==", + "ledger": "2540114", + "createdAt": "1700086535" + } + } + } + ] + }, + { + "name": "sendTransaction", + "summary": "submits a transaction", + "description": "Submit a real transaction to the Stellar network. This is the only way to make changes on-chain.\n\n Unlike Horizon, this does not wait for transaction completion. It simply validates and enqueues the transaction. Clients should call `getTransaction` to learn about transaction success/failure.\n\nThis supports all transactions, not only smart contract-related transactions.", + "externalDocs": { + "url": "https://soroban.stellar.org/api/methods/sendTransaction" + }, + "paramStructure": "by-name", + "params": [ + { + "name": "transaction", + "summary": "transaction to be submitted to the network", + "description": "The signed transaction to broadcast for inclusion in a ledger.", + "required": true, + "schema": { + "title": "transaction", + "description": "A Stellar transaction, serialized as a base64 string", + "type": "string" + } + } + ], + "result": { + "name": "sendTransactionResult", + "summary": "Transaction status and network state.", + "description": "Transaction status and network state. The result will include if the transaction was successfully enqueued, and information about the current ledger.", + "schema": { + "type": "object", + "required": [ + "hash", + "status", + "latestLedger", + "latestLedgerCloseTime" + ], + "properties": { + "hash": { + "title": "hash", + "type": "string", + "minLength": 64, + "maxLength": 64, + "pattern": "^[a-f\\d]{64}$", + "description": "Transaction hash (as a hex-encoded string)" + }, + "status": { + "type": "string", + "description": "The current status of the transaction by hash.", + "enum": [ + "PENDING", + "DUPLICATE", + "TRY_AGAIN_LATER", + "ERROR" + ] + }, + "latestLedger": { + "title": "latestLedger", + "description": "The latest ledger known to Soroban RPC at the time it handled the request.", + "type": "string" + }, + "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" + }, + "errorResultXdr": { + "type": "string", + "description": "(optional) If the transaction status is `ERROR`, this will be a base64 encoded string of the raw TransactionResult XDR struct containing details on why stellar-core rejected the transaction.", + "contentEncoding": "base64" + } + } + } + }, + "examples": [ + { + "name": "Pending Transaction", + "description": "Submitting a valid transaction using the `sendTransaction` method, resulting in a `PENDING` status.", + "params": [ + { + "name": "transaction", + "summary": "a valid transaction sent to the network", + "description": "A valid Stellar transaction that was sent to the network successfully.", + "value": "AAAAAgAAAAAg4dbAxsGAGICfBG3iT2cKGYQ6hK4sJWzZ6or1C5v6GAAAAGQAJsOiAAAADQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAACgAAAAVIZWxsbwAAAAAAAAEAAAAMU29yb2JhbiBEb2NzAAAAAAAAAAELm/oYAAAAQATr6Ghp/DNO7S6JjEFwcJ9a+dvI6NJr7I/2eQttvoovjQ8te4zKKaapC3mbmx6ld6YKL5T81mxs45TjzdG5zw0=" + } + ], + "result": { + "name": "sendTransactionResult", + "value": { + "status": "PENDING", + "hash": "d8ec9b68780314ffdfdfc2194b1b35dd27d7303c3bceaef6447e31631a1419dc", + "latestLedger": "2553978", + "latestLedgerCloseTime": "1700159337" + } + } + }, + { + "name": "Duplicate Transaction", + "description": "Submitting a valid, yet duplicate transaction using the `sendTransaction` method, resulting in a `DUPLICATE` status.", + "params": [ + { + "name": "transaction", + "summary": "a valid transaction sent to the network", + "description": "A valid Stellar transaction that was sent to the network successfully.", + "value": "AAAAAgAAAAAg4dbAxsGAGICfBG3iT2cKGYQ6hK4sJWzZ6or1C5v6GAAAAGQAJsOiAAAADQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAACgAAAAVIZWxsbwAAAAAAAAEAAAAMU29yb2JhbiBEb2NzAAAAAAAAAAELm/oYAAAAQATr6Ghp/DNO7S6JjEFwcJ9a+dvI6NJr7I/2eQttvoovjQ8te4zKKaapC3mbmx6ld6YKL5T81mxs45TjzdG5zw0=" + } + ], + "result": { + "name": "sendTransactionResult", + "value": { + "status": "DUPLICATE", + "hash": "d8ec9b68780314ffdfdfc2194b1b35dd27d7303c3bceaef6447e31631a1419dc", + "latestLedger": "2553978", + "latestLedgerCloseTime": "1700159337" + } + } + }, + { + "name": "Error Transaction", + "description": "Submitting an invalid transaction using the `sendTransaction` method, resulting in an `ERROR` status.", + "params": [ + { + "name": "transaction", + "summary": "an invalid transaction sent to the network", + "description": "An invalid Stellar transaction that was sent to the network, built with an incorrect sequence number.", + "value": "AAAAAgAAAAAg4dbAxsGAGICfBG3iT2cKGYQ6hK4sJWzZ6or1C5v6GAAAAGQAAAAAAAAACgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAACgAAAAVIZWxsbwAAAAAAAAEAAAAMU29yb2JhbiBEb2NzAAAAAAAAAAELm/oYAAAAQMQkfl8sdCYQIOdJB0TyazJ126y2TFRjL8yNHSb4TTsH5Ym6qM6gkTx1ENRZ0PFprVGusMTHISzdPHYJ4njBZAQ=" + } + ], + "result": { + "name": "sendTransactionResult", + "value": { + "errorResultXdr": "AAAAAAAAAGT////7AAAAAA==", + "status": "ERROR", + "hash": "84a5f62bff422581dda019811daed0868a3db41833ad6e90a12f0d7db1be8167", + "latestLedger": "2553978", + "latestLedgerCloseTime": "1700159337" + } + } + }, + { + "name": "Try Again Later Transaction", + "description": "Submitting a valid transaction before an account's previously submitted transaction has settled using the `sendTransaction` method, resulting in a `TRY_AGAIN_LATER` status.", + "params": [ + { + "name": "transaction", + "summary": "a valid transaction sent to the network", + "description": "A valid Stellar transaction that was sent to the network successfully.", + "value": "AAAAAgAAAAAg4dbAxsGAGICfBG3iT2cKGYQ6hK4sJWzZ6or1C5v6GAAAAGQAJsOiAAAADQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAACgAAAAVIZWxsbwAAAAAAAAEAAAAMU29yb2JhbiBEb2NzAAAAAAAAAAELm/oYAAAAQATr6Ghp/DNO7S6JjEFwcJ9a+dvI6NJr7I/2eQttvoovjQ8te4zKKaapC3mbmx6ld6YKL5T81mxs45TjzdG5zw0=" + } + ], + "result": { + "name": "sendTransactionResult", + "value": { + "status": "TRY_AGAIN_LATER", + "hash": "d8ec9b68780314ffdfdfc2194b1b35dd27d7303c3bceaef6447e31631a1419dc", + "latestLedger": "2553978", + "latestLedgerCloseTime": "1700159337" + } + } + } + ] + }, + { + "name": "simulateTransaction", + "summary": "submits a trial contract invocation transaction", + "description": "Submit a trial contract invocation to simulate how it would be executed by the network. This endpoint calculates the effective transaction data, required authorizations, and minimal resource fee. It provides a way to test and analyze the potential outcomes of a transaction without actually submitting it to the network.", + "externalDocs": { + "url": "https://soroban.stellar.org/api/methods/simulateTransaction" + }, + "paramStructure": "by-name", + "params": [ + { + "name": "transaction", + "summary": "transaction to be simulated", + "description": "In order for the RPC server to successfully simulate a Stellar transaction, the provided transaction must contain only a single operation of the type `invokeHostFunction`.", + "required": true, + "schema": { + "title": "transaction", + "description": "A Stellar transaction, serialized as a base64 string", + "type": "string" + } + } + ], + "result": { + "name": "simulateTransactionResult", + "summary": "anticipated affects of the transaction.", + "description": "The response will include the anticipated affects the given transaction will have on the network. Additionally, information needed to build, sign, and actually submit the transaction will be provided.", + "schema": { + "type": "object", + "required": [ + "latestLedger" + ], + "properties": { + "latestLedger": { + "title": "latestLedger", + "description": "The latest ledger known to Soroban RPC at the time it handled the request.", + "type": "string" + }, + "minResourceFee": { + "type": "string", + "description": "(optional) Stringified number - Recommended minimum resource fee to add when submitting the transaction. This fee is to be added on top of the [Stellar network fee](https://developers.stellar.org/docs/encyclopedia/fees-surge-pricing-fee-strategies#network-fees-on-stellar). Not present in case of error." + }, + "cost": { + "type": "object", + "description": "(optional) - Information about instructions used, etc. Not present in case of error.", + "required": [ + "cpuInsns", + "memBytes" + ], + "properties": { + "cpuInsns": { + "type": "string", + "description": "Stringified number - Total cpu instructions consumed by this transaction" + }, + "memBytes": { + "type": "string", + "description": "Stringified number - Total memory bytes allocated by this transaction" + } + } + }, + "results": { + "type": "array", + "description": "(optional) - This array will only have one element: the result for the Host Function invocation. Only present on successful simulation (i.e. no error) of `InvokeHostFunction` operations.", + "items": { + "type": "object", + "required": [ + "xdr", + "auth" + ], + "properties": { + "xdr": { + "type": "string", + "description": "Serialized base64 string - return value of the Host Function call." + }, + "auth": { + "type": "array", + "description": "Array of serialized base64 strings - Per-address authorizations recorded when simulating this Host Function call.", + "items": { + "type": "string" + } + } + } + } + }, + "transactionData": { + "type": "string", + "description": "(optional) Serialized base64 string - The recommended Soroban Transaction Data to use when submitting the simulated transaction. This data contains the refundable fee and resource usage information such as the ledger footprint and IO access data (serialized in a base64 string). Not present in case of error." + }, + "events": { + "type": "array", + "description": "(optional) Array of serialized base64 strings - Array of the events emitted during the contract invocation. The events are ordered by their emission time. (an array of serialized base64 strings). Only present when simulating of `InvokeHostFunction` operations, note that it can be present on error, providing extra context about what failed.", + "items": { + "type": "string" + } + }, + "restorePreamble": { + "type": "object", + "description": "(optional) - It can only be present on successful simulation (i.e. no error) of `InvokeHostFunction` operations. If present, it indicates that the simulation detected expired ledger entries which need to be restored before the submission of the `InvokeHostFunction` operation. The `minResourceFee` and `transactionData` fields should be used to submit a transaction containing a `RestoreFootprint` operation.", + "required": [ + "minResourceFee", + "transactionData" + ], + "properties": { + "minResourceFee": { + "type": "string", + "description": "Stringified number - Recommended minimum resource fee to add when submitting the `RestoreFootprint` operation. This fee is to be added on top of the [Stellar network fee](https://developers.stellar.org/docs/encyclopedia/fees-surge-pricing-fee-strategies#network-fees-on-stellar)." + }, + "transactionData": { + "type": "string", + "description": "Serialized base64 string - The recommended Soroban Transaction Data to use when submitting the `RestoreFootprint` operation." + } + } + }, + "error": { + "type": "string", + "description": "(optional) - This field will include details about why the invoke host function call failed. Only present if the transaction simulation failed." + } + } + } + }, + "examples": [ + { + "name": "Successful Transaction Simulation", + "description": "Transaction simulation that succeeds and returns the necessary information to prepare and submit the transaction.", + "params": [ + { + "name": "transaction", + "summary": "a valid transaction", + "description": "A transaction that will correctly invoke a contract function.", + "value": "AAAAAgAAAAAg4dbAxsGAGICfBG3iT2cKGYQ6hK4sJWzZ6or1C5v6GAAAAGQAJsOiAAAAEQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAGAAAAAAAAAABzAP+dP0PsNzYvFF1pv7a8RQXwH5eg3uZBbbWjE9PwAsAAAAJaW5jcmVtZW50AAAAAAAAAgAAABIAAAAAAAAAACDh1sDGwYAYgJ8EbeJPZwoZhDqEriwlbNnqivULm/oYAAAAAwAAAAMAAAAAAAAAAAAAAAA=" + } + ], + "result": { + "name": "simulateTransactionResult", + "value": { + "transactionData": "AAAAAAAAAAIAAAAGAAAAAcwD/nT9D7Dc2LxRdab+2vEUF8B+XoN7mQW21oxPT8ALAAAAFAAAAAEAAAAHy8vNUZ8vyZ2ybPHW0XbSrRtP7gEWsJ6zDzcfY9P8z88AAAABAAAABgAAAAHMA/50/Q+w3Ni8UXWm/trxFBfAfl6De5kFttaMT0/ACwAAABAAAAABAAAAAgAAAA8AAAAHQ291bnRlcgAAAAASAAAAAAAAAAAg4dbAxsGAGICfBG3iT2cKGYQ6hK4sJWzZ6or1C5v6GAAAAAEAHfKyAAAFiAAAAIgAAAAAAAAAAw==", + "minResourceFee": "90353", + "events": [ + "AAAAAQAAAAAAAAAAAAAAAgAAAAAAAAADAAAADwAAAAdmbl9jYWxsAAAAAA0AAAAgzAP+dP0PsNzYvFF1pv7a8RQXwH5eg3uZBbbWjE9PwAsAAAAPAAAACWluY3JlbWVudAAAAAAAABAAAAABAAAAAgAAABIAAAAAAAAAACDh1sDGwYAYgJ8EbeJPZwoZhDqEriwlbNnqivULm/oYAAAAAwAAAAM=", + "AAAAAQAAAAAAAAABzAP+dP0PsNzYvFF1pv7a8RQXwH5eg3uZBbbWjE9PwAsAAAACAAAAAAAAAAIAAAAPAAAACWZuX3JldHVybgAAAAAAAA8AAAAJaW5jcmVtZW50AAAAAAAAAwAAAAw=" + ], + "results": [ + { + "auth": [], + "xdr": "AAAAAwAAAAw=" + } + ], + "cost": { + "cpuInsns": "1635562", + "memBytes": "1295756" + }, + "latestLedger": "2552139" + } + } + }, + { + "name": "Failed Transaction Simulation", + "description": "Transaction simulation that fails due to the contract invocation being constructed with an improper number of arguments.", + "params": [ + { + "name": "transaction", + "summary": "an invalid transaction", + "description": "A transaction that attempts to invoke a contract function with the wrong number of arguments.", + "value": "AAAAAgAAAAAg4dbAxsGAGICfBG3iT2cKGYQ6hK4sJWzZ6or1C5v6GAAAAGQAJsOiAAAADwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAGAAAAAAAAAABzAP+dP0PsNzYvFF1pv7a8RQXwH5eg3uZBbbWjE9PwAsAAAAJaW5jcmVtZW50AAAAAAAAAQAAAAMAAAADAAAAAAAAAAAAAAAA" + } + ], + "result": { + "name": "simulateTransactionResult", + "value": { + "error": "host invocation failed\n\nCaused by:\n HostError: Error(WasmVm, InternalError)\n \n Event log (newest first):\n 0: [Diagnostic Event] contract:cc03fe74fd0fb0dcd8bc5175a6fedaf11417c07e5e837b9905b6d68c4f4fc00b, topics:[error, Error(WasmVm, InternalError)], data:[\"VM call failed: Func(MismatchingParameterLen)\", increment]\n 1: [Diagnostic Event] topics:[fn_call, Bytes(cc03fe74fd0fb0dcd8bc5175a6fedaf11417c07e5e837b9905b6d68c4f4fc00b), increment], data:3\n \n Backtrace (newest first):\n 0: soroban_env_host::vm::Vm::invoke_function_raw\n 1: soroban_env_host::host::frame::::with_frame\n 2: soroban_env_host::host::frame::::call_n_internal\n 3: soroban_env_host::host::frame::::invoke_function\n 4: preflight::preflight::preflight_invoke_hf_op\n 5: preflight::preflight_invoke_hf_op::{{closure}}\n 6: core::ops::function::FnOnce::call_once{{vtable.shim}}\n 7: preflight::catch_preflight_panic\n 8: _cgo_0b49d6ed4a0b_Cfunc_preflight_invoke_hf_op\n at tmp/go-build/cgo-gcc-prolog:103:11\n 9: runtime.asmcgocall\n at ./runtime/asm_amd64.s:848\n \n ", + "events": [ + "AAAAAAAAAAAAAAAAAAAAAgAAAAAAAAADAAAADwAAAAdmbl9jYWxsAAAAAA0AAAAgzAP+dP0PsNzYvFF1pv7a8RQXwH5eg3uZBbbWjE9PwAsAAAAPAAAACWluY3JlbWVudAAAAAAAAAMAAAAD", + "AAAAAAAAAAAAAAABzAP+dP0PsNzYvFF1pv7a8RQXwH5eg3uZBbbWjE9PwAsAAAACAAAAAAAAAAIAAAAPAAAABWVycm9yAAAAAAAAAgAAAAEAAAAHAAAAEAAAAAEAAAACAAAADgAAAC1WTSBjYWxsIGZhaWxlZDogRnVuYyhNaXNtYXRjaGluZ1BhcmFtZXRlckxlbikAAAAAAAAPAAAACWluY3JlbWVudAAAAA==" + ], + "cost": { + "cpuInsns": "0", + "memBytes": "0" + }, + "latestLedger": "2552013" + } + } + } + ] + } + ], + "components": {} +} \ No newline at end of file From 6a27a9f6d242d508d667b4e1b6a011d7b92a8373 Mon Sep 17 00:00:00 2001 From: Elliot Voris Date: Mon, 20 Nov 2023 10:27:38 -0600 Subject: [PATCH 048/133] Integrate a complete `openrpc.json` document (#647) * docs: move data providers page out of sdks directory * restarting effort to integrate a full openrpc.json spec file * more random stuff... some of it is good and works well * docs: put everything into one `openrpc.json` document - modify the metamask package to display things a little nicer - generate openrpc.json file from a compound schema (in another repo soon) - add more react components to the `` component * style: customize metamask style for examples select box * docs: remove examples from within the mdx pages * docs: add descriptions to each of the method pages * docs: including a description of the OpenRPC spec * docs: rename sidebar category to simply "Methods" --- api/methods/getLedgerEntries.mdx | 31 ++----------------------------- 1 file changed, 2 insertions(+), 29 deletions(-) diff --git a/api/methods/getLedgerEntries.mdx b/api/methods/getLedgerEntries.mdx index 20c2d3833..fab407d50 100644 --- a/api/methods/getLedgerEntries.mdx +++ b/api/methods/getLedgerEntries.mdx @@ -1,39 +1,12 @@ --- -sidebar_position: 4 hide_title: true +description: Returns ledger entries --- -import ExampleRequest from "@site/src/components/ExampleRequest"; -import {RpcMethod} from "@site/src/components/RpcMethod"; +import { RpcMethod } from "@site/src/components/RpcMethod"; -## Examples - -### Request - - - -### Response - -```json -{ - "jsonrpc": "2.0", - "id": 8675309, - "result": { - "entries":[ - { - "key": "AAAAB+qfy4GuVKKfazvyk4R9P9fpo2n9HICsr+xqvVcTF+DC", - "xdr": "AAAABwAAAADqn8uBrlSin2s78pOEfT/X6aNp/RyArK/sar1XExfgwgAAAAphIGNvbnRyYWN0AAA=", - "lastModifiedLedgerSeq": "13", - "liveUntilLedgerSeq": "95" - } - ], - "latestLedger": "179436" - } -} -``` - ### Generating `keys` Parameters The example above is querying a deployment of the [`increment` example contract] to find out what value is stored in the `COUNTER` ledger entry. This value can be derived using the following code snippets. You should be able to extrapolate from the provided examples how to get `keys` parameters for other types and values. From 4c5c05a40c5bf93901211669dc2d664be26f095d Mon Sep 17 00:00:00 2001 From: Elliot Voris Date: Mon, 20 Nov 2023 11:27:34 -0600 Subject: [PATCH 049/133] Fix openrpc playground urls (#649) * docs: use a github link for OpenRPC json file * docs: use gh url instead of static file --- api/json-rpc.mdx | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/api/json-rpc.mdx b/api/json-rpc.mdx index d76bd1ed2..af458a4c4 100644 --- a/api/json-rpc.mdx +++ b/api/json-rpc.mdx @@ -14,11 +14,12 @@ When XDR is passed as a parameter or returned, it is always a string encoded usi ## Open-RPC Specification -Soroban-RPC provides an [OpenRPC] specification document that can be used to mock, build, and/or validate both server and client software implementations. This document is used to generate all of our [methods] documentation pages. You can view the full [specification document here](/openrpc.json). Additionally, you can experiment with this specificaiton document in the [OpenRPC Playground]. +Soroban-RPC provides an [OpenRPC] specification document that can be used to mock, build, and/or validate both server and client software implementations. This document is used to generate all of our [methods] documentation pages. You can view the full [specification document here]. Additionally, you can experiment with this specificaiton document in the [OpenRPC Playground]. [JSON-RPC 2.0]: [jsonrpc error object]: [js-soroban-client]: [OpenRPC]: [methods]: <./methods> -[OpenRPC Playground]: +[specification document here]: +[OpenRPC Playground]: From 9201fac8d1227ae6f993f9489081160c3ca275f7 Mon Sep 17 00:00:00 2001 From: Elliot Voris Date: Wed, 29 Nov 2023 16:11:19 -0600 Subject: [PATCH 050/133] synchronize api example tabs across pages (#661) --- patches/@metamask+open-rpc-docs-react+0.1.2.patch | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/patches/@metamask+open-rpc-docs-react+0.1.2.patch b/patches/@metamask+open-rpc-docs-react+0.1.2.patch index efa7b5daa..e87c94c45 100644 --- a/patches/@metamask+open-rpc-docs-react+0.1.2.patch +++ b/patches/@metamask+open-rpc-docs-react+0.1.2.patch @@ -1,5 +1,5 @@ diff --git a/node_modules/@metamask/open-rpc-docs-react/dist/ExamplePairing/ExamplePairing.js b/node_modules/@metamask/open-rpc-docs-react/dist/ExamplePairing/ExamplePairing.js -index 354ce73..e113732 100644 +index 354ce73..5e07a7f 100644 --- a/node_modules/@metamask/open-rpc-docs-react/dist/ExamplePairing/ExamplePairing.js +++ b/node_modules/@metamask/open-rpc-docs-react/dist/ExamplePairing/ExamplePairing.js @@ -45,10 +45,37 @@ class ExamplePairing extends react_1.Component { @@ -47,7 +47,7 @@ index 354ce73..e113732 100644 react_1.default.createElement("div", null, - components && components.CodeBlock && react_1.default.createElement(components.CodeBlock, { className: "language-js" }, jsCode), + components && components.CodeBlock && components.Tabs && components.TabItem && -+ react_1.default.createElement(components.Tabs, null, ++ react_1.default.createElement(components.Tabs, { groupId: "rpc-examples" }, + react_1.default.createElement(components.TabItem, { value: "curl", label: "cURL" }, + react_1.default.createElement(components.CodeBlock, { className: "language-bash" }, curlCode)), + react_1.default.createElement(components.TabItem, { value: "js", label: "JavaScript" }, From 4ea110b4925d2eb228d55e9bd287ee9cffa71bf0 Mon Sep 17 00:00:00 2001 From: Garand Tyson Date: Mon, 11 Dec 2023 10:13:01 -0800 Subject: [PATCH 051/133] State archival refactor (#678) * State archival refactor * Small fixes --- static/openrpc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/static/openrpc.json b/static/openrpc.json index 2aae50a15..ff42548b3 100644 --- a/static/openrpc.json +++ b/static/openrpc.json @@ -1076,7 +1076,7 @@ }, "restorePreamble": { "type": "object", - "description": "(optional) - It can only be present on successful simulation (i.e. no error) of `InvokeHostFunction` operations. If present, it indicates that the simulation detected expired ledger entries which need to be restored before the submission of the `InvokeHostFunction` operation. The `minResourceFee` and `transactionData` fields should be used to submit a transaction containing a `RestoreFootprint` operation.", + "description": "(optional) - It can only be present on successful simulation (i.e. no error) of `InvokeHostFunction` operations. If present, it indicates that the simulation detected archived ledger entries which need to be restored before the submission of the `InvokeHostFunction` operation. The `minResourceFee` and `transactionData` fields should be used to submit a transaction containing a `RestoreFootprint` operation.", "required": [ "minResourceFee", "transactionData" From a09c14567d1a849f3bb804d3168def6d15b91402 Mon Sep 17 00:00:00 2001 From: Julian Martinez <73849597+Julian-dev28@users.noreply.github.com> Date: Mon, 18 Dec 2023 12:57:09 -0500 Subject: [PATCH 052/133] Add v20.0.0 (#668) * add P12 Release * formatting * Update releases.mdx * formatting * update horizon,stellar-base,cli * add stellar sdk + base, soroban-client, Quickstart, changelog * remove http from quickstart endpoint * v20.0.0-rc2 -> v20.0.0 * Preview 12 -> Stable v20.0.0 * update CLI, RPC, Core Versions * update stellar cor version * Content updates to go along with the preview 12 version updates (#682) * update the token interface to reflect the Rust SDK * feat: get Getting Started ready for v20.0.x I don't know what the exact version of the CLI will be out by next Monday. In the source here, I've guessed that maybe it will be `20.0.3`. * update `openrpc.json` file to reflect new updates * Update static/openrpc.json Co-authored-by: Alfonso Acosta --------- Co-authored-by: Chad Ostrowski <221614+chadoh@users.noreply.github.com> Co-authored-by: Molly Karcher Co-authored-by: Alfonso Acosta * Update token-interface.mdx * nit:formatting --------- Co-authored-by: Elliot Voris Co-authored-by: Chad Ostrowski <221614+chadoh@users.noreply.github.com> Co-authored-by: Molly Karcher Co-authored-by: Alfonso Acosta --- static/openrpc.json | 118 ++++++++++++++++++++++---------------------- 1 file changed, 59 insertions(+), 59 deletions(-) diff --git a/static/openrpc.json b/static/openrpc.json index ff42548b3..967e9c62d 100644 --- a/static/openrpc.json +++ b/static/openrpc.json @@ -13,7 +13,7 @@ "name": "Apache 2.0", "url": "https://www.apache.org/licenses/LICENSE-2.0.html" }, - "version": "v20.0.0-rc4" + "version": "20.0.2" }, "servers": [ { @@ -42,12 +42,12 @@ { "name": "startLedger", "summary": "ledger to begin searching from", - "description": "Stringified 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 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.", "required": true, "schema": { "title": "ledgerSequence", - "description": "Stringified sequence number of the ledger.", - "type": "string" + "description": "Sequence number of the ledger.", + "type": "number" } }, { @@ -69,7 +69,7 @@ "contractIds": { "title": "contractIds", "type": "array", - "description": "(optional) List of contract IDs to query for events. If omitted, return events for all contracts. Maximum 5 contract IDs are allowed per request.", + "description": "List of contract IDs to query for events. If omitted, return events for all contracts. Maximum 5 contract IDs are allowed per request.", "maxItems": 5, "items": { "title": "contractId", @@ -126,8 +126,8 @@ "properties": { "latestLedger": { "title": "latestLedger", - "description": "The latest ledger known to Soroban RPC at the time it handled the request.", - "type": "string" + "description": "The sequence number of the latest ledger known to Soroban RPC at the time it handled the request.", + "type": "number" }, "events": { "type": "array", @@ -146,8 +146,8 @@ }, "ledger": { "title": "ledgerSequence", - "description": "Stringified sequence number of the ledger in which this event was emitted.", - "type": "string" + "description": "Sequence number of the ledger in which this event was emitted.", + "type": "number" }, "ledgerClosedAt": { "type": "string", @@ -204,7 +204,7 @@ "params": [ { "name": "startLedger", - "value": "2530000" + "value": 2530000 }, { "name": "filters", @@ -238,7 +238,7 @@ "events": [ { "type": "contract", - "ledger": "2531021", + "ledger": 2531021, "ledgerClosedAt": "2023-11-15T08:58:25Z", "contractId": "CDLZFC3SYJYDZT7K67VZ75HPJVIEUVNIXF47ZG2FB2RMQQVU2HHGCYSC", "id": "0010870652420501504-0000000004", @@ -256,7 +256,7 @@ }, { "type": "contract", - "ledger": "2531273", + "ledger": 2531273, "ledgerClosedAt": "2023-11-15T09:20:38Z", "contractId": "CDLZFC3SYJYDZT7K67VZ75HPJVIEUVNIXF47ZG2FB2RMQQVU2HHGCYSC", "id": "0010871734752280576-0000000004", @@ -273,7 +273,7 @@ "inSuccessfulContractCall": true } ], - "latestLedger": "2539388" + "latestLedger": 2539388 } } }, @@ -283,7 +283,7 @@ "params": [ { "name": "startLedger", - "value": "2530000" + "value": 2530000 }, { "name": "pagination", @@ -298,7 +298,7 @@ "events": [ { "type": "diagnostic", - "ledger": "2530001", + "ledger": 2530001, "ledgerClosedAt": "2023-11-15T07:29:05Z", "contractId": "", "id": "0010866271553875968-0000000000", @@ -315,7 +315,7 @@ }, { "type": "diagnostic", - "ledger": "2530001", + "ledger": 2530001, "ledgerClosedAt": "2023-11-15T07:29:05Z", "contractId": "CCDBHMBD4RF5PRTJSO3SUI42KFC72C7XVDCPEL5UY532JBXAMHM4KOQ3", "id": "0010866271553875968-0000000001", @@ -330,7 +330,7 @@ "inSuccessfulContractCall": true } ], - "latestLedger": "2539529" + "latestLedger": 2539529 } } } @@ -396,11 +396,11 @@ "protocolVersion": { "title": "protocolVersion", "description": "Stellar Core protocol version associated with the latest ledger.", - "type": "string" + "type": "number" }, "sequence": { "title": "latestLedger", - "description": "The latest ledger known to Soroban RPC at the time it handled the request.", + "description": "The sequence number of the latest ledger known to Soroban RPC at the time it handled the request.", "type": "number" } } @@ -415,7 +415,7 @@ "name": "getLatestLedgerResult", "value": { "id": "c73c5eac58a441d4eb733c35253ae85f783e018f7be5ef974258fed067aabb36", - "protocolVersion": "20", + "protocolVersion": 20, "sequence": 2539605 } } @@ -456,8 +456,8 @@ "properties": { "latestLedger": { "title": "latestLedger", - "description": "The latest ledger known to Soroban RPC at the time it handled the request.", - "type": "string" + "description": "The sequence number of the latest ledger known to Soroban RPC at the time it handled the request.", + "type": "number" }, "entries": { "type": "array", @@ -477,12 +477,12 @@ "lastModifiedLedgerSeq": { "title": "ledgerSequence", "description": "The ledger sequence number of the last time this entry was updated.", - "type": "string" + "type": "number" }, "liveUntilLedgerSeq": { "title": "ledgerSequence", - "description": "Stringified sequence number of the ledger.", - "type": "string" + "description": "Sequence number of the ledger.", + "type": "number" } } } @@ -511,10 +511,10 @@ { "key": "AAAAB+qfy4GuVKKfazvyk4R9P9fpo2n9HICsr+xqvVcTF+DC", "xdr": "AAAABgAAAAAAAAABzAP+dP0PsNzYvFF1pv7a8RQXwH5eg3uZBbbWjE9PwAsAAAAQAAAAAQAAAAIAAAAPAAAAB0NvdW50ZXIAAAAAEgAAAAAAAAAAIOHWwMbBgBiAnwRt4k9nChmEOoSuLCVs2eqK9Qub+hgAAAABAAAAAwAAAAw=", - "lastModifiedLedgerSeq": "2552504" + "lastModifiedLedgerSeq": 2552504 } ], - "latestLedger": "2552990" + "latestLedger": 2552990 } } }, @@ -538,10 +538,10 @@ { "key": "AAAABgAAAAHXkotywnA8z+r365/0701QSlWouXn8m0UOoshCtNHOYQAAABAAAAABAAAAAgAAAA8AAAAHQmFsYW5jZQAAAAASAAAAAcwD/nT9D7Dc2LxRdab+2vEUF8B+XoN7mQW21oxPT8ALAAAAAQ==", "xdr": "AAAABgAAAAAAAAAB15KLcsJwPM/q9+uf9O9NUEpVqLl5/JtFDqLIQrTRzmEAAAAQAAAAAQAAAAIAAAAPAAAAB0JhbGFuY2UAAAAAEgAAAAHMA/50/Q+w3Ni8UXWm/trxFBfAfl6De5kFttaMT0/ACwAAAAEAAAARAAAAAQAAAAMAAAAPAAAABmFtb3VudAAAAAAACgAAAAAAAAAAAAAAAB3NZQAAAAAPAAAACmF1dGhvcml6ZWQAAAAAAAAAAAABAAAADwAAAAhjbGF3YmFjawAAAAAAAAAA", - "lastModifiedLedgerSeq": "2553612" + "lastModifiedLedgerSeq": 2553612 } ], - "latestLedger": "2553713" + "latestLedger": 2553713 } } }, @@ -566,15 +566,15 @@ { "key": "AAAABgAAAAHMA/50/Q+w3Ni8UXWm/trxFBfAfl6De5kFttaMT0/ACwAAABAAAAABAAAAAgAAAA8AAAAHQ291bnRlcgAAAAASAAAAAAAAAAAg4dbAxsGAGICfBG3iT2cKGYQ6hK4sJWzZ6or1C5v6GAAAAAE=", "xdr": "AAAABgAAAAAAAAAB15KLcsJwPM/q9+uf9O9NUEpVqLl5/JtFDqLIQrTRzmEAAAAQAAAAAQAAAAIAAAAPAAAAB0JhbGFuY2UAAAAAEgAAAAHMA/50/Q+w3Ni8UXWm/trxFBfAfl6De5kFttaMT0/ACwAAAAEAAAARAAAAAQAAAAMAAAAPAAAABmFtb3VudAAAAAAACgAAAAAAAAAAAAAAAB3NZQAAAAAPAAAACmF1dGhvcml6ZWQAAAAAAAAAAAABAAAADwAAAAhjbGF3YmFjawAAAAAAAAAA", - "lastModifiedLedgerSeq": "2553612" + "lastModifiedLedgerSeq": 2553612 }, { "key": "AAAABgAAAAHXkotywnA8z+r365/0701QSlWouXn8m0UOoshCtNHOYQAAABAAAAABAAAAAgAAAA8AAAAHQmFsYW5jZQAAAAASAAAAAcwD/nT9D7Dc2LxRdab+2vEUF8B+XoN7mQW21oxPT8ALAAAAAQ==", "xdr": "AAAABgAAAAAAAAABzAP+dP0PsNzYvFF1pv7a8RQXwH5eg3uZBbbWjE9PwAsAAAAQAAAAAQAAAAIAAAAPAAAAB0NvdW50ZXIAAAAAEgAAAAAAAAAAIOHWwMbBgBiAnwRt4k9nChmEOoSuLCVs2eqK9Qub+hgAAAABAAAAAwAAAAw=", - "lastModifiedLedgerSeq": "2552504" + "lastModifiedLedgerSeq": 2552504 } ], - "latestLedger": "2553767" + "latestLedger": 2553767 } } } @@ -606,7 +606,7 @@ "protocolVersion": { "title": "protocolVersion", "description": "Stellar Core protocol version associated with the latest ledger.", - "type": "string" + "type": "number" }, "friendbotUrl": { "type": "string", @@ -625,7 +625,7 @@ "value": { "friendbotUrl": "https://friendbot-testnet.stellar.org/", "passphrase": "Test SDF Network ; September 2015", - "protocolVersion": "20" + "protocolVersion": 20 } } }, @@ -638,7 +638,7 @@ "value": { "friendbotUrl": "https://friendbot-futurenet.stellar.org/", "passphrase": "Test SDF Future Network ; October 2022", - "protocolVersion": "20" + "protocolVersion": 20 } } } @@ -691,8 +691,8 @@ }, "latestLedger": { "title": "latestLedger", - "description": "The latest ledger known to Soroban RPC at the time it handled the request.", - "type": "string" + "description": "The sequence number of the latest ledger known to Soroban RPC at the time it handled the request.", + "type": "number" }, "latestLedgerCloseTime": { "title": "latestLedgerCloseTime", @@ -701,8 +701,8 @@ }, "oldestLedger": { "title": "oldestLedger", - "description": "The oldest ledger ingested by Soroban RPC at the time it handled the request.", - "type": "string" + "description": "The sequence number of the oldest ledger ingested by Soroban RPC at the time it handled the request.", + "type": "number" }, "oldestLedgerCloseTime": { "title": "oldestLedgerCloseTime", @@ -711,8 +711,8 @@ }, "ledger": { "title": "ledger", - "description": "(optional) The sequence of the ledger which included the transaction. This field is only present if `status` is `SUCCESS` or `FAILED`.", - "type": "string" + "description": "(optional) The sequence number of the ledger which included the transaction. This field is only present if `status` is `SUCCESS` or `FAILED`.", + "type": "number" }, "createdAt": { "title": "createdAt", @@ -758,15 +758,15 @@ "name": "getTransactionResult", "value": { "status": "SUCCESS", - "latestLedger": "2540076", + "latestLedger": 2540076, "latestLedgerCloseTime": "1700086333", - "oldestLedger": "2538637", + "oldestLedger": 2538637, "oldestLedgerCloseTime": "1700078796", "applicationOrder": 1, "envelopeXdr": "AAAAAgAAAADGFY14/R1KD0VGtTbi5Yp4d7LuMW0iQbLM/AUiGKj5owCpsoQAJY3OAAAjqgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAGAAAAAAAAAABhhOwI+RL18Zpk7cqI5pRRf0L96jE8i+0x3ekhuBh2cUAAAARc2V0X2N1cnJlbmN5X3JhdGUAAAAAAAACAAAADwAAAANldXIAAAAACQAAAAAAAAAAAAAAAAARCz4AAAABAAAAAAAAAAAAAAABhhOwI+RL18Zpk7cqI5pRRf0L96jE8i+0x3ekhuBh2cUAAAARc2V0X2N1cnJlbmN5X3JhdGUAAAAAAAACAAAADwAAAANldXIAAAAACQAAAAAAAAAAAAAAAAARCz4AAAAAAAAAAQAAAAAAAAABAAAAB4408vVXuLU3mry897TfPpYjjsSN7n42REos241RddYdAAAAAQAAAAYAAAABhhOwI+RL18Zpk7cqI5pRRf0L96jE8i+0x3ekhuBh2cUAAAAUAAAAAQFvcYAAAImAAAAHxAAAAAAAAAACAAAAARio+aMAAABATbFMyom/TUz87wHex0LoYZA8jbNJkXbaDSgmOdk+wSBFJuMuta+/vSlro0e0vK2+1FqD/zWHZeYig4pKmM3rDA==", "resultXdr": "AAAAAAARFy8AAAAAAAAAAQAAAAAAAAAYAAAAAMu8SHUN67hTUJOz3q+IrH9M/4dCVXaljeK6x1Ss20YWAAAAAA==", "resultMetaXdr": "AAAAAwAAAAAAAAACAAAAAwAmwiAAAAAAAAAAAMYVjXj9HUoPRUa1NuLlinh3su4xbSJBssz8BSIYqPmjAAAAFUHZob0AJY3OAAAjqQAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAMAAAAAACbCHwAAAABlVUH3AAAAAAAAAAEAJsIgAAAAAAAAAADGFY14/R1KD0VGtTbi5Yp4d7LuMW0iQbLM/AUiGKj5owAAABVB2aG9ACWNzgAAI6oAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAADAAAAAAAmwiAAAAAAZVVB/AAAAAAAAAABAAAAAgAAAAMAJsIfAAAABgAAAAAAAAABhhOwI+RL18Zpk7cqI5pRRf0L96jE8i+0x3ekhuBh2cUAAAAUAAAAAQAAABMAAAAAjjTy9Ve4tTeavLz3tN8+liOOxI3ufjZESizbjVF11h0AAAABAAAABQAAABAAAAABAAAAAQAAAA8AAAAJQ29yZVN0YXRlAAAAAAAAEQAAAAEAAAAGAAAADwAAAAVhZG1pbgAAAAAAABIAAAAAAAAAADn1LT+CCK/HiHMChoEi/AtPrkos4XRR2E45Pr25lb3/AAAADwAAAAljb2xfdG9rZW4AAAAAAAASAAAAAdeSi3LCcDzP6vfrn/TvTVBKVai5efybRQ6iyEK00c5hAAAADwAAAAxvcmFjbGVfYWRtaW4AAAASAAAAAAAAAADGFY14/R1KD0VGtTbi5Yp4d7LuMW0iQbLM/AUiGKj5owAAAA8AAAAKcGFuaWNfbW9kZQAAAAAAAAAAAAAAAAAPAAAAEHByb3RvY29sX21hbmFnZXIAAAASAAAAAAAAAAAtSfyAwmj05lZ0WduHsQYQZgvahCNVtZyqS2HRC99kyQAAAA8AAAANc3RhYmxlX2lzc3VlcgAAAAAAABIAAAAAAAAAAEM5BlXva0R5UN6SCMY+6evwJa4mY/f062z0TKLnqN4wAAAAEAAAAAEAAAACAAAADwAAAAhDdXJyZW5jeQAAAA8AAAADZXVyAAAAABEAAAABAAAABQAAAA8AAAAGYWN0aXZlAAAAAAAAAAAAAQAAAA8AAAAIY29udHJhY3QAAAASAAAAAUGpebFxuPbvxZFzOxh8TWAxUwFgraPxPuJEY/8yhiYEAAAADwAAAAxkZW5vbWluYXRpb24AAAAPAAAAA2V1cgAAAAAPAAAAC2xhc3RfdXBkYXRlAAAAAAUAAAAAZVVBvgAAAA8AAAAEcmF0ZQAAAAkAAAAAAAAAAAAAAAAAEQb8AAAAEAAAAAEAAAACAAAADwAAAAhDdXJyZW5jeQAAAA8AAAADdXNkAAAAABEAAAABAAAABQAAAA8AAAAGYWN0aXZlAAAAAAAAAAAAAQAAAA8AAAAIY29udHJhY3QAAAASAAAAATUEqdkvrE2LnSiwOwed3v4VEaulOEiS1rxQw6rJkfxCAAAADwAAAAxkZW5vbWluYXRpb24AAAAPAAAAA3VzZAAAAAAPAAAAC2xhc3RfdXBkYXRlAAAAAAUAAAAAZVVB9wAAAA8AAAAEcmF0ZQAAAAkAAAAAAAAAAAAAAAAAEnzuAAAAEAAAAAEAAAACAAAADwAAAApWYXVsdHNJbmZvAAAAAAAPAAAAA2V1cgAAAAARAAAAAQAAAAgAAAAPAAAADGRlbm9taW5hdGlvbgAAAA8AAAADZXVyAAAAAA8AAAAKbG93ZXN0X2tleQAAAAAAEAAAAAEAAAACAAAADwAAAARTb21lAAAAEQAAAAEAAAADAAAADwAAAAdhY2NvdW50AAAAABIAAAAAAAAAAGKaH7iFUU2kfGOJGONeYuJ2U2QUeQ+zOEfYZvAoeHDsAAAADwAAAAxkZW5vbWluYXRpb24AAAAPAAAAA2V1cgAAAAAPAAAABWluZGV4AAAAAAAACQAAAAAAAAAAAAAAA7msoAAAAAAPAAAADG1pbl9jb2xfcmF0ZQAAAAkAAAAAAAAAAAAAAAAAp9jAAAAADwAAABFtaW5fZGVidF9jcmVhdGlvbgAAAAAAAAkAAAAAAAAAAAAAAAA7msoAAAAADwAAABBvcGVuaW5nX2NvbF9yYXRlAAAACQAAAAAAAAAAAAAAAACveeAAAAAPAAAACXRvdGFsX2NvbAAAAAAAAAkAAAAAAAAAAAAAAAlQL5AAAAAADwAAAAp0b3RhbF9kZWJ0AAAAAAAJAAAAAAAAAAAAAAAAlQL5AAAAAA8AAAAMdG90YWxfdmF1bHRzAAAABQAAAAAAAAABAAAAEAAAAAEAAAACAAAADwAAAApWYXVsdHNJbmZvAAAAAAAPAAAAA3VzZAAAAAARAAAAAQAAAAgAAAAPAAAADGRlbm9taW5hdGlvbgAAAA8AAAADdXNkAAAAAA8AAAAKbG93ZXN0X2tleQAAAAAAEAAAAAEAAAACAAAADwAAAARTb21lAAAAEQAAAAEAAAADAAAADwAAAAdhY2NvdW50AAAAABIAAAAAAAAAAGKaH7iFUU2kfGOJGONeYuJ2U2QUeQ+zOEfYZvAoeHDsAAAADwAAAAxkZW5vbWluYXRpb24AAAAPAAAAA3VzZAAAAAAPAAAABWluZGV4AAAAAAAACQAAAAAAAAAAAAAAA7msoAAAAAAPAAAADG1pbl9jb2xfcmF0ZQAAAAkAAAAAAAAAAAAAAAAAp9jAAAAADwAAABFtaW5fZGVidF9jcmVhdGlvbgAAAAAAAAkAAAAAAAAAAAAAAAA7msoAAAAADwAAABBvcGVuaW5nX2NvbF9yYXRlAAAACQAAAAAAAAAAAAAAAACveeAAAAAPAAAACXRvdGFsX2NvbAAAAAAAAAkAAAAAAAAAAAAAABF2WS4AAAAADwAAAAp0b3RhbF9kZWJ0AAAAAAAJAAAAAAAAAAAAAAAA7msoAAAAAA8AAAAMdG90YWxfdmF1bHRzAAAABQAAAAAAAAACAAAAAAAAAAEAJsIgAAAABgAAAAAAAAABhhOwI+RL18Zpk7cqI5pRRf0L96jE8i+0x3ekhuBh2cUAAAAUAAAAAQAAABMAAAAAjjTy9Ve4tTeavLz3tN8+liOOxI3ufjZESizbjVF11h0AAAABAAAABQAAABAAAAABAAAAAQAAAA8AAAAJQ29yZVN0YXRlAAAAAAAAEQAAAAEAAAAGAAAADwAAAAVhZG1pbgAAAAAAABIAAAAAAAAAADn1LT+CCK/HiHMChoEi/AtPrkos4XRR2E45Pr25lb3/AAAADwAAAAljb2xfdG9rZW4AAAAAAAASAAAAAdeSi3LCcDzP6vfrn/TvTVBKVai5efybRQ6iyEK00c5hAAAADwAAAAxvcmFjbGVfYWRtaW4AAAASAAAAAAAAAADGFY14/R1KD0VGtTbi5Yp4d7LuMW0iQbLM/AUiGKj5owAAAA8AAAAKcGFuaWNfbW9kZQAAAAAAAAAAAAAAAAAPAAAAEHByb3RvY29sX21hbmFnZXIAAAASAAAAAAAAAAAtSfyAwmj05lZ0WduHsQYQZgvahCNVtZyqS2HRC99kyQAAAA8AAAANc3RhYmxlX2lzc3VlcgAAAAAAABIAAAAAAAAAAEM5BlXva0R5UN6SCMY+6evwJa4mY/f062z0TKLnqN4wAAAAEAAAAAEAAAACAAAADwAAAAhDdXJyZW5jeQAAAA8AAAADZXVyAAAAABEAAAABAAAABQAAAA8AAAAGYWN0aXZlAAAAAAAAAAAAAQAAAA8AAAAIY29udHJhY3QAAAASAAAAAUGpebFxuPbvxZFzOxh8TWAxUwFgraPxPuJEY/8yhiYEAAAADwAAAAxkZW5vbWluYXRpb24AAAAPAAAAA2V1cgAAAAAPAAAAC2xhc3RfdXBkYXRlAAAAAAUAAAAAZVVB/AAAAA8AAAAEcmF0ZQAAAAkAAAAAAAAAAAAAAAAAEQs+AAAAEAAAAAEAAAACAAAADwAAAAhDdXJyZW5jeQAAAA8AAAADdXNkAAAAABEAAAABAAAABQAAAA8AAAAGYWN0aXZlAAAAAAAAAAAAAQAAAA8AAAAIY29udHJhY3QAAAASAAAAATUEqdkvrE2LnSiwOwed3v4VEaulOEiS1rxQw6rJkfxCAAAADwAAAAxkZW5vbWluYXRpb24AAAAPAAAAA3VzZAAAAAAPAAAAC2xhc3RfdXBkYXRlAAAAAAUAAAAAZVVB9wAAAA8AAAAEcmF0ZQAAAAkAAAAAAAAAAAAAAAAAEnzuAAAAEAAAAAEAAAACAAAADwAAAApWYXVsdHNJbmZvAAAAAAAPAAAAA2V1cgAAAAARAAAAAQAAAAgAAAAPAAAADGRlbm9taW5hdGlvbgAAAA8AAAADZXVyAAAAAA8AAAAKbG93ZXN0X2tleQAAAAAAEAAAAAEAAAACAAAADwAAAARTb21lAAAAEQAAAAEAAAADAAAADwAAAAdhY2NvdW50AAAAABIAAAAAAAAAAGKaH7iFUU2kfGOJGONeYuJ2U2QUeQ+zOEfYZvAoeHDsAAAADwAAAAxkZW5vbWluYXRpb24AAAAPAAAAA2V1cgAAAAAPAAAABWluZGV4AAAAAAAACQAAAAAAAAAAAAAAA7msoAAAAAAPAAAADG1pbl9jb2xfcmF0ZQAAAAkAAAAAAAAAAAAAAAAAp9jAAAAADwAAABFtaW5fZGVidF9jcmVhdGlvbgAAAAAAAAkAAAAAAAAAAAAAAAA7msoAAAAADwAAABBvcGVuaW5nX2NvbF9yYXRlAAAACQAAAAAAAAAAAAAAAACveeAAAAAPAAAACXRvdGFsX2NvbAAAAAAAAAkAAAAAAAAAAAAAAAlQL5AAAAAADwAAAAp0b3RhbF9kZWJ0AAAAAAAJAAAAAAAAAAAAAAAAlQL5AAAAAA8AAAAMdG90YWxfdmF1bHRzAAAABQAAAAAAAAABAAAAEAAAAAEAAAACAAAADwAAAApWYXVsdHNJbmZvAAAAAAAPAAAAA3VzZAAAAAARAAAAAQAAAAgAAAAPAAAADGRlbm9taW5hdGlvbgAAAA8AAAADdXNkAAAAAA8AAAAKbG93ZXN0X2tleQAAAAAAEAAAAAEAAAACAAAADwAAAARTb21lAAAAEQAAAAEAAAADAAAADwAAAAdhY2NvdW50AAAAABIAAAAAAAAAAGKaH7iFUU2kfGOJGONeYuJ2U2QUeQ+zOEfYZvAoeHDsAAAADwAAAAxkZW5vbWluYXRpb24AAAAPAAAAA3VzZAAAAAAPAAAABWluZGV4AAAAAAAACQAAAAAAAAAAAAAAA7msoAAAAAAPAAAADG1pbl9jb2xfcmF0ZQAAAAkAAAAAAAAAAAAAAAAAp9jAAAAADwAAABFtaW5fZGVidF9jcmVhdGlvbgAAAAAAAAkAAAAAAAAAAAAAAAA7msoAAAAADwAAABBvcGVuaW5nX2NvbF9yYXRlAAAACQAAAAAAAAAAAAAAAACveeAAAAAPAAAACXRvdGFsX2NvbAAAAAAAAAkAAAAAAAAAAAAAABF2WS4AAAAADwAAAAp0b3RhbF9kZWJ0AAAAAAAJAAAAAAAAAAAAAAAA7msoAAAAAA8AAAAMdG90YWxfdmF1bHRzAAAABQAAAAAAAAACAAAAAAAAAAAAAAABAAAAAAAAAAAAAAABAAAAFQAAAAEAAAAAAAAAAAAAAAIAAAAAAAAAAwAAAA8AAAAHZm5fY2FsbAAAAAANAAAAIIYTsCPkS9fGaZO3KiOaUUX9C/eoxPIvtMd3pIbgYdnFAAAADwAAABFzZXRfY3VycmVuY3lfcmF0ZQAAAAAAABAAAAABAAAAAgAAAA8AAAADZXVyAAAAAAkAAAAAAAAAAAAAAAAAEQs+AAAAAQAAAAAAAAABhhOwI+RL18Zpk7cqI5pRRf0L96jE8i+0x3ekhuBh2cUAAAACAAAAAAAAAAIAAAAPAAAACWZuX3JldHVybgAAAAAAAA8AAAARc2V0X2N1cnJlbmN5X3JhdGUAAAAAAAABAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAACAAAADwAAAAxjb3JlX21ldHJpY3MAAAAPAAAACnJlYWRfZW50cnkAAAAAAAUAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAgAAAA8AAAAMY29yZV9tZXRyaWNzAAAADwAAAAt3cml0ZV9lbnRyeQAAAAAFAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAIAAAAPAAAADGNvcmVfbWV0cmljcwAAAA8AAAAQbGVkZ2VyX3JlYWRfYnl0ZQAAAAUAAAAAAACJaAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAgAAAA8AAAAMY29yZV9tZXRyaWNzAAAADwAAABFsZWRnZXJfd3JpdGVfYnl0ZQAAAAAAAAUAAAAAAAAHxAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAgAAAA8AAAAMY29yZV9tZXRyaWNzAAAADwAAAA1yZWFkX2tleV9ieXRlAAAAAAAABQAAAAAAAABUAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAACAAAADwAAAAxjb3JlX21ldHJpY3MAAAAPAAAADndyaXRlX2tleV9ieXRlAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAIAAAAPAAAADGNvcmVfbWV0cmljcwAAAA8AAAAOcmVhZF9kYXRhX2J5dGUAAAAAAAUAAAAAAAAH6AAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAgAAAA8AAAAMY29yZV9tZXRyaWNzAAAADwAAAA93cml0ZV9kYXRhX2J5dGUAAAAABQAAAAAAAAfEAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAACAAAADwAAAAxjb3JlX21ldHJpY3MAAAAPAAAADnJlYWRfY29kZV9ieXRlAAAAAAAFAAAAAAAAgYAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAIAAAAPAAAADGNvcmVfbWV0cmljcwAAAA8AAAAPd3JpdGVfY29kZV9ieXRlAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAgAAAA8AAAAMY29yZV9tZXRyaWNzAAAADwAAAAplbWl0X2V2ZW50AAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAIAAAAPAAAADGNvcmVfbWV0cmljcwAAAA8AAAAPZW1pdF9ldmVudF9ieXRlAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAgAAAA8AAAAMY29yZV9tZXRyaWNzAAAADwAAAAhjcHVfaW5zbgAAAAUAAAAAATLTQAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAgAAAA8AAAAMY29yZV9tZXRyaWNzAAAADwAAAAhtZW1fYnl0ZQAAAAUAAAAAACqhewAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAgAAAA8AAAAMY29yZV9tZXRyaWNzAAAADwAAABFpbnZva2VfdGltZV9uc2VjcwAAAAAAAAUAAAAAABFfSQAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAgAAAA8AAAAMY29yZV9tZXRyaWNzAAAADwAAAA9tYXhfcndfa2V5X2J5dGUAAAAABQAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAACAAAADwAAAAxjb3JlX21ldHJpY3MAAAAPAAAAEG1heF9yd19kYXRhX2J5dGUAAAAFAAAAAAAAB+gAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAIAAAAPAAAADGNvcmVfbWV0cmljcwAAAA8AAAAQbWF4X3J3X2NvZGVfYnl0ZQAAAAUAAAAAAACBgAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAgAAAA8AAAAMY29yZV9tZXRyaWNzAAAADwAAABNtYXhfZW1pdF9ldmVudF9ieXRlAAAAAAUAAAAAAAAAAA==", - "ledger": "2540064", + "ledger": 2540064, "createdAt": "1700086268" } } @@ -786,9 +786,9 @@ "name": "getTransactionResult", "value": { "status": "NOT_FOUND", - "latestLedger": "2540099", + "latestLedger": 2540099, "latestLedgerCloseTime": "1700086455", - "oldestLedger": "2538660", + "oldestLedger": 2538660, "oldestLedgerCloseTime": "1700078913" } } @@ -808,15 +808,15 @@ "name": "getTransactionResult", "value": { "status": "FAILED", - "latestLedger": "2540124", + "latestLedger": 2540124, "latestLedgerCloseTime": "1700086588", - "oldestLedger": "2538685", + "oldestLedger": 2538685, "oldestLedgerCloseTime": "1700079044", "applicationOrder": 2, "envelopeXdr": "AAAAAgAAAABZvyflsZ5FumtSdS+t0/YnWWML3YWdzX1BGk/Qy786aQAAAG4AFyJfAABKvgAAAAIAAAAAAAAAAQAmwlEAJsK1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAE/fr1kk7lqP0srDPW4JExF1MWmpsG49FsRE3b0vMCmzAAAAAUVVUlMAAAAArPm4/+q9j4dl178h2JjrqjgRXnQ1WiGkyVy+nv3nGkEAAAAAAVjZQAAAAAAAAAABy786aQAAAEDybJBtG7V5NrRFpoboRUN/5ecys5wSUgag3CnTtWLmq3JDOxrEjK9noAnu/F5O0E8iXuVzX9BxZSO9JZ+Tw6kK", "resultXdr": "AAAAAAAAAGT/////AAAAAQAAAAAAAAAB////+gAAAAA=", "resultMetaXdr": "AAAAAwAAAAAAAAACAAAAAwAmwlIAAAAAAAAAAFm/J+WxnkW6a1J1L63T9idZYwvdhZ3NfUEaT9DLvzppAAAAF0g7NXsAFyJfAABKvQAAAAEAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAMAAAAAACbCSwAAAABlVULiAAAAAAAAAAEAJsJSAAAAAAAAAABZvyflsZ5FumtSdS+t0/YnWWML3YWdzX1BGk/Qy786aQAAABdIOzV7ABciXwAASr4AAAABAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAADAAAAAAAmwlIAAAAAZVVDBwAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAA==", - "ledger": "2540114", + "ledger": 2540114, "createdAt": "1700086535" } } @@ -877,8 +877,8 @@ }, "latestLedger": { "title": "latestLedger", - "description": "The latest ledger known to Soroban RPC at the time it handled the request.", - "type": "string" + "description": "The sequence number of the latest ledger known to Soroban RPC at the time it handled the request.", + "type": "number" }, "latestLedgerCloseTime": { "title": "latestLedgerCloseTime", @@ -910,7 +910,7 @@ "value": { "status": "PENDING", "hash": "d8ec9b68780314ffdfdfc2194b1b35dd27d7303c3bceaef6447e31631a1419dc", - "latestLedger": "2553978", + "latestLedger": 2553978, "latestLedgerCloseTime": "1700159337" } } @@ -931,7 +931,7 @@ "value": { "status": "DUPLICATE", "hash": "d8ec9b68780314ffdfdfc2194b1b35dd27d7303c3bceaef6447e31631a1419dc", - "latestLedger": "2553978", + "latestLedger": 2553978, "latestLedgerCloseTime": "1700159337" } } @@ -953,7 +953,7 @@ "errorResultXdr": "AAAAAAAAAGT////7AAAAAA==", "status": "ERROR", "hash": "84a5f62bff422581dda019811daed0868a3db41833ad6e90a12f0d7db1be8167", - "latestLedger": "2553978", + "latestLedger": 2553978, "latestLedgerCloseTime": "1700159337" } } @@ -974,7 +974,7 @@ "value": { "status": "TRY_AGAIN_LATER", "hash": "d8ec9b68780314ffdfdfc2194b1b35dd27d7303c3bceaef6447e31631a1419dc", - "latestLedger": "2553978", + "latestLedger": 2553978, "latestLedgerCloseTime": "1700159337" } } @@ -1014,8 +1014,8 @@ "properties": { "latestLedger": { "title": "latestLedger", - "description": "The latest ledger known to Soroban RPC at the time it handled the request.", - "type": "string" + "description": "The sequence number of the latest ledger known to Soroban RPC at the time it handled the request.", + "type": "number" }, "minResourceFee": { "type": "string", @@ -1130,7 +1130,7 @@ "cpuInsns": "1635562", "memBytes": "1295756" }, - "latestLedger": "2552139" + "latestLedger": 2552139 } } }, @@ -1157,7 +1157,7 @@ "cpuInsns": "0", "memBytes": "0" }, - "latestLedger": "2552013" + "latestLedger": 2552013 } } } From 1f6badca3550af80464d59877ea3e8c8b0971aa9 Mon Sep 17 00:00:00 2001 From: stellarsaur <126507441+stellarsaur@users.noreply.github.com> Date: Thu, 21 Dec 2023 09:26:03 -0800 Subject: [PATCH 053/133] soroban-docs: Update simulateTransaction Docs With New resourceConfig Parameter (#683) * Update docs for new resourceConfig param in simulateTransaction * add examples for `resourceConfig` param --------- Co-authored-by: Elliot Voris --- static/openrpc.json | 38 ++++++++++++++++++++++++++++++++++++-- 1 file changed, 36 insertions(+), 2 deletions(-) diff --git a/static/openrpc.json b/static/openrpc.json index 967e9c62d..c345fe6ae 100644 --- a/static/openrpc.json +++ b/static/openrpc.json @@ -13,7 +13,7 @@ "name": "Apache 2.0", "url": "https://www.apache.org/licenses/LICENSE-2.0.html" }, - "version": "20.0.2" + "version": "20.1.0" }, "servers": [ { @@ -1000,6 +1000,24 @@ "description": "A Stellar transaction, serialized as a base64 string", "type": "string" } + }, + { + "name": "resourceConfig", + "summary": "configuration for how resources will be calculated", + "description": "Contains configuration for how resources will be calculated when simulating transactions.", + "required": false, + "schema": { + "title": "resourceConfig", + "description": "Configuration for how resources will be calculated.", + "type": "object", + "properties": { + "instructionLeeway": { + "title": "instructionLeeway", + "description": "Allow this many extra instructions when budgeting resources.", + "type": "number" + } + } + } } ], "result": { @@ -1109,6 +1127,14 @@ "summary": "a valid transaction", "description": "A transaction that will correctly invoke a contract function.", "value": "AAAAAgAAAAAg4dbAxsGAGICfBG3iT2cKGYQ6hK4sJWzZ6or1C5v6GAAAAGQAJsOiAAAAEQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAGAAAAAAAAAABzAP+dP0PsNzYvFF1pv7a8RQXwH5eg3uZBbbWjE9PwAsAAAAJaW5jcmVtZW50AAAAAAAAAgAAABIAAAAAAAAAACDh1sDGwYAYgJ8EbeJPZwoZhDqEriwlbNnqivULm/oYAAAAAwAAAAMAAAAAAAAAAAAAAAA=" + }, + { + "name": "resourceConfig", + "summary": "the default resource configuration", + "description": "The default value for the (optional) resource configuration object for transaction simulation.", + "value": { + "instructionLeeway": 3000000 + } } ], "result": { @@ -1143,6 +1169,14 @@ "summary": "an invalid transaction", "description": "A transaction that attempts to invoke a contract function with the wrong number of arguments.", "value": "AAAAAgAAAAAg4dbAxsGAGICfBG3iT2cKGYQ6hK4sJWzZ6or1C5v6GAAAAGQAJsOiAAAADwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAGAAAAAAAAAABzAP+dP0PsNzYvFF1pv7a8RQXwH5eg3uZBbbWjE9PwAsAAAAJaW5jcmVtZW50AAAAAAAAAQAAAAMAAAADAAAAAAAAAAAAAAAA" + }, + { + "name": "resourceConfig", + "summary": "the default resource configuration", + "description": "The default value for the (optional) resource configuration object for transaction simulation.", + "value": { + "instructionLeeway": 3000000 + } } ], "result": { @@ -1165,4 +1199,4 @@ } ], "components": {} -} \ No newline at end of file +} From 3e61b01ad1c88ac491e0f8ccb88d1c17f11e4f7c Mon Sep 17 00:00:00 2001 From: George Date: Fri, 22 Dec 2023 08:09:27 -0800 Subject: [PATCH 054/133] Update JavaScript SDK references to use the `@stellar/stellar-sdk` package (#687) * Upgrade js sdk dependencies to latest * Track down references to soroban-client and move them * Ran linter --- api/json-rpc.mdx | 4 ++-- api/methods/getLedgerEntries.mdx | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/api/json-rpc.mdx b/api/json-rpc.mdx index af458a4c4..01d7aed94 100644 --- a/api/json-rpc.mdx +++ b/api/json-rpc.mdx @@ -8,7 +8,7 @@ Soroban-RPC will accept HTTP POST requests using the [JSON-RPC 2.0] specificatio For production and other publicly-accessible instances, the JSON-RPC endpoint should be served over SSL on port 443, where possible, for security and ease of use. Though, soroban-rpc does not terminate ssl by itself, so will need a load-balancer or other service to terminate SSL for it. -To interact with soroban-rpc from inside a JavaScript application, use the [js-soroban-client] library, which gives a convenient interface for the RPC methods. +To interact with soroban-rpc from inside a JavaScript application, use the [JavaScript SDK] package, which gives a convenient interface for the RPC methods inside of its `SorobanRpc` module. When XDR is passed as a parameter or returned, it is always a string encoded using standard base64. @@ -18,7 +18,7 @@ Soroban-RPC provides an [OpenRPC] specification document that can be used to moc [JSON-RPC 2.0]: [jsonrpc error object]: -[js-soroban-client]: +[JavaScript SDK]: [OpenRPC]: [methods]: <./methods> [specification document here]: diff --git a/api/methods/getLedgerEntries.mdx b/api/methods/getLedgerEntries.mdx index fab407d50..f64df4dec 100644 --- a/api/methods/getLedgerEntries.mdx +++ b/api/methods/getLedgerEntries.mdx @@ -275,7 +275,7 @@ print( ##### JavaScript ```javascript -const { xdr } = require("soroban-client"); +const { xdr } = require("@stellar/stellar-sdk"); function getLedgerKeyWasmId(contractCodeLedgerEntryData) { const entry = xdr.LedgerEntryData.fromXDR( From b601ff0374ca3deaaf62bb145797420e544b0637 Mon Sep 17 00:00:00 2001 From: George Date: Fri, 22 Dec 2023 08:09:27 -0800 Subject: [PATCH 055/133] Update JavaScript SDK references to use the `@stellar/stellar-sdk` package (#687) * Upgrade js sdk dependencies to latest * Track down references to soroban-client and move them * Ran linter --- api/methods/getLedgerEntries.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/methods/getLedgerEntries.mdx b/api/methods/getLedgerEntries.mdx index fab407d50..f64df4dec 100644 --- a/api/methods/getLedgerEntries.mdx +++ b/api/methods/getLedgerEntries.mdx @@ -275,7 +275,7 @@ print( ##### JavaScript ```javascript -const { xdr } = require("soroban-client"); +const { xdr } = require("@stellar/stellar-sdk"); function getLedgerKeyWasmId(contractCodeLedgerEntryData) { const entry = xdr.LedgerEntryData.fromXDR( From b2353fab3a36d6ef5315e5efae1bfde6e330f0ee Mon Sep 17 00:00:00 2001 From: George Date: Wed, 3 Jan 2024 11:30:41 -0800 Subject: [PATCH 056/133] Update the state archival JavaScript tutorial (#698) --- api/methods/getLedgerEntries.mdx | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/api/methods/getLedgerEntries.mdx b/api/methods/getLedgerEntries.mdx index f64df4dec..4e9f9446c 100644 --- a/api/methods/getLedgerEntries.mdx +++ b/api/methods/getLedgerEntries.mdx @@ -15,10 +15,10 @@ The example above is querying a deployment of the [`increment` example contract] :::note -If you are using the [Python](https://stellar-sdk.readthedocs.io/en/9.0.0-beta0/) `stellar_sdk` to generate these keys, you will need to install the latest pre-release version of the SDK. This can be done like so: +If you are using the [Python](https://stellar-sdk.readthedocs.io/en/latest/) `stellar_sdk` to generate these keys, you will need to install the latest version of the SDK. This can be done like so: ```bash -pip install --upgrade --pre stellar-sdk +pip install --upgrade stellar-sdk ``` ::: @@ -51,11 +51,11 @@ print( If you are using the [JavaScript](https://stellar.github.io/js-stellar-sdk/) `stellar-sdk` to generate these keys, you will need to install the latest pre-release version of the SDK. This can be done like so: ```bash -yarn add stellar-sdk@beta +yarn add @stellar/stellar-sdk ``` ```js -import { xdr, StrKey } from 'stellar-sdk'; +import { xdr, StrKey } from '@stellar/stellar-sdk'; const getLedgerKeySymbol = (contractId, symbolText) => { const ledgerKey = xdr.LedgerKey.contractData( @@ -79,14 +79,14 @@ console.log( :::note -This functionality is included in the JavaScript [stellar-sdk](https://www.npmjs.com/package/stellar-sdk) package as `SorobanRpc.Server.getAccount(address)`. +This functionality is included in the JavaScript [`stellar-sdk`](https://www.npmjs.com/package/stellar-sdk) package as `SorobanRpc.Server.getAccount(address)`. ::: Accounts are stored as ledger entries, so we can use this method to look up an account along with it's current sequence number. ```js -import { xdr, Keypair, StrKey } from 'stellar-sdk' +import { xdr, Keypair, StrKey } from '@stellar/stellar-sdk' const getLedgerKeyAccount = (address) => { const publicKey = StrKey.decodeEd25519PublicKey(address) @@ -192,10 +192,10 @@ print( ##### JavaScript ```javascript -import { Address, xdr } from 'stellar-sdk'; +import { Address, xdr } from '@stellar/stellar-sdk'; function getLedgerKeyContractCode(contractId) { - const [ _, instance ] = new ContractId(contractId).getFootprint(); + const instance = new ContractId(contractId).getFootprint(); return instance.toXDR('base64'); } From aa6b0e65a00e1c009a38ef6ef665bf34162739ba Mon Sep 17 00:00:00 2001 From: George Date: Wed, 3 Jan 2024 11:30:41 -0800 Subject: [PATCH 057/133] Update the state archival JavaScript tutorial (#698) --- api/methods/getLedgerEntries.mdx | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/api/methods/getLedgerEntries.mdx b/api/methods/getLedgerEntries.mdx index f64df4dec..4e9f9446c 100644 --- a/api/methods/getLedgerEntries.mdx +++ b/api/methods/getLedgerEntries.mdx @@ -15,10 +15,10 @@ The example above is querying a deployment of the [`increment` example contract] :::note -If you are using the [Python](https://stellar-sdk.readthedocs.io/en/9.0.0-beta0/) `stellar_sdk` to generate these keys, you will need to install the latest pre-release version of the SDK. This can be done like so: +If you are using the [Python](https://stellar-sdk.readthedocs.io/en/latest/) `stellar_sdk` to generate these keys, you will need to install the latest version of the SDK. This can be done like so: ```bash -pip install --upgrade --pre stellar-sdk +pip install --upgrade stellar-sdk ``` ::: @@ -51,11 +51,11 @@ print( If you are using the [JavaScript](https://stellar.github.io/js-stellar-sdk/) `stellar-sdk` to generate these keys, you will need to install the latest pre-release version of the SDK. This can be done like so: ```bash -yarn add stellar-sdk@beta +yarn add @stellar/stellar-sdk ``` ```js -import { xdr, StrKey } from 'stellar-sdk'; +import { xdr, StrKey } from '@stellar/stellar-sdk'; const getLedgerKeySymbol = (contractId, symbolText) => { const ledgerKey = xdr.LedgerKey.contractData( @@ -79,14 +79,14 @@ console.log( :::note -This functionality is included in the JavaScript [stellar-sdk](https://www.npmjs.com/package/stellar-sdk) package as `SorobanRpc.Server.getAccount(address)`. +This functionality is included in the JavaScript [`stellar-sdk`](https://www.npmjs.com/package/stellar-sdk) package as `SorobanRpc.Server.getAccount(address)`. ::: Accounts are stored as ledger entries, so we can use this method to look up an account along with it's current sequence number. ```js -import { xdr, Keypair, StrKey } from 'stellar-sdk' +import { xdr, Keypair, StrKey } from '@stellar/stellar-sdk' const getLedgerKeyAccount = (address) => { const publicKey = StrKey.decodeEd25519PublicKey(address) @@ -192,10 +192,10 @@ print( ##### JavaScript ```javascript -import { Address, xdr } from 'stellar-sdk'; +import { Address, xdr } from '@stellar/stellar-sdk'; function getLedgerKeyContractCode(contractId) { - const [ _, instance ] = new ContractId(contractId).getFootprint(); + const instance = new ContractId(contractId).getFootprint(); return instance.toXDR('base64'); } From b68d1f0a231c12c9fa1337064538bb46db8b7a4c Mon Sep 17 00:00:00 2001 From: Alfonso Acosta Date: Tue, 9 Jan 2024 16:49:03 +0100 Subject: [PATCH 058/133] api: add new diagnosticEventsXdr field in sendTransaction response (#700) --- static/openrpc.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/static/openrpc.json b/static/openrpc.json index c345fe6ae..2716eb599 100644 --- a/static/openrpc.json +++ b/static/openrpc.json @@ -889,6 +889,11 @@ "type": "string", "description": "(optional) If the transaction status is `ERROR`, this will be a base64 encoded string of the raw TransactionResult XDR struct containing details on why stellar-core rejected the transaction.", "contentEncoding": "base64" + }, + "diagnosticEventsXdr": { + "type": "array", + "description": "(optional) If the transaction status is `ERROR`, this field may be present with an array of base64 encoded strings. Each string will decode to a raw DiagnosticEvent XDR struct containing details on why stellar-core rejected the transaction.", + "contentEncoding": "base64" } } } From 855b579336192b9919aea7191024b01a5578d9e1 Mon Sep 17 00:00:00 2001 From: Elliot Voris Date: Tue, 9 Jan 2024 11:25:08 -0600 Subject: [PATCH 059/133] Pre mainnet restructure (#644) * docs: rename "fundamentals and concepts" to "soroban internals" * docs: remove old "under the hood" section * docs: add tags to the various tutorials * docs: move tutorials into one main directory * fix broken links to old pages * docs: renaming soroban internals in category file * docs: remove old "command line reference" category * docs: add tokens directory, rearrange sidebars * docs: rearrange migration from evm guide * docs: remove unused reference/interfaces category * docs: move "reference" section to "resources" * docs: move "releases" page up a level * docs: move FAQ page up one level * docs: move dev tools into resources directory * docs: move testnet.mdx to networks.mdx * docs: rearrange items in resources directory * docs: collapse various SDK pages into two pages * docs: move data-providers up one level * docs: remove some empty categories, move the tutorial template * docs: add a new getting-started page, reorganize that section * docs: change sidebar position integers in soroban-internals * docs: shuffling contract interaction around in soroban-internals * style: fixing a couple small markdown nits in dapps directory * docs: fix a broken link * feat: start to the "guides" page(s) * style(lint): fixing a small linting error * remove guides placeholder * fixing broken links * work on guides listing. might revert this * formatting mdx * docs: fixing a broken link to tutorials * style: crack at making the tutorials filterable and hidden in the sidebar * customizing some components for the `/guides` pages and layouts * rename index page for guides to README * remove commented configuration option * remove some console logging in components * change name of index page in guides sidebar * remove commented sidebar generation code * remove comments and add description to sidebar generator * rename sidebar generator file * more work on how the 'guides' pages might look. * docs: adjusting sidebar positions of new getting started pages * fix some broken links in the getting-started section * prefer "README.mdx" files where possible * some more guides placeholder stubs * docs(guides): More placeholder stubs for guides and categories * feat: don't display "guides in category" page on `/guides` * build: check/fix MDX formatting in more directories than just docs * style: add a larger margin before more category guides * style: more selectively increase that top margin * docs(guides): a quick stab at a "publishing" events guide * docs(guides): first stab at the "publish events" guide * docs: updating tutorial descriptions * fix a few broken links * docs: add note about a tuple with one element * style: couple link changes and reformats * move fuzzing tutorial back * change to README file in contract interactions category * docs(guides): give a better title for the wasm metadata guide * fixing some broken markdown links * fix (another!) broken link * move the guides back into the main layout of the docs directory * add placeholder for testnet reset automation stuff * some initial content for some guides * markdown formatting and fixing broken links * moving "resources" back to "reference" to fit the definition better More like "technical reference" rather than a "reference encyclopedia" * change some styles of the tutorial list * removing most category pages * some more first-drafts of guides * fixing some category links * include a period at the end of each tutorial description * simplify tutorial search box placeholder text * better description for the tutorials page * making the pre-commit script executable * flesh out some of the state archival guides * first effort for some rpc ledger key guides * fix some broken links * add a guide on ingesting events into a db * first effort at storage type guides * Some more stubs, marking drafts, and a couple additions * make not a draft to fix a broken link * guides category descriptions in README.mdx files * marking incomplete chain migration docs as drafts * change some tutorial difficulty levels * fine-tune the tutorials component styling a bit * improving some guides organization * fix linting errors and broken links * include wrap instructions for native lumens * fix broken link in contract metadata guide * final changes to existing guides * moving developer tools into the main sidebar * create real redirects instead of just notes * fix broken links in a dapps challenge page * fix a redirect syntax error * fix a tutorials redirect --- api/README.mdx | 9 +++++ api/goals.mdx | 2 +- api/json-rpc.mdx | 14 ++++---- api/methods/getEvents.mdx | 2 +- api/methods/getHealth.mdx | 2 +- api/methods/getLatestLedger.mdx | 2 +- api/methods/getLedgerEntries.mdx | 56 ++++++++++++++--------------- api/methods/getNetwork.mdx | 2 +- api/methods/getTransaction.mdx | 2 +- api/methods/sendTransaction.mdx | 2 +- api/methods/simulateTransaction.mdx | 2 +- api/pagination.mdx | 10 ++---- 12 files changed, 53 insertions(+), 52 deletions(-) create mode 100644 api/README.mdx diff --git a/api/README.mdx b/api/README.mdx new file mode 100644 index 000000000..9d3998745 --- /dev/null +++ b/api/README.mdx @@ -0,0 +1,9 @@ +--- +title: Introduction +--- + +import DocCardList from "@theme/DocCardList"; + +A public discussion about the design of soroban-rpc. + + diff --git a/api/goals.mdx b/api/goals.mdx index 096b6ea48..1b88c326e 100644 --- a/api/goals.mdx +++ b/api/goals.mdx @@ -15,4 +15,4 @@ Soroban-RPC should provide all the basic data that a dapp developer would need, Soroban-RPC should support the developer from local testing (via the quickstart image), all the way through to production deployments. - This implies it should be easy to deploy, and easy to maintain; with low cost, and little "admin" needed. -- The developer should be able to simply run the quickstart docker image, and quickly be ready to serve requests without needing to set up or maintain dependent infrastructure. \ No newline at end of file +- The developer should be able to simply run the quickstart docker image, and quickly be ready to serve requests without needing to set up or maintain dependent infrastructure. diff --git a/api/json-rpc.mdx b/api/json-rpc.mdx index 01d7aed94..d2004ce38 100644 --- a/api/json-rpc.mdx +++ b/api/json-rpc.mdx @@ -16,10 +16,10 @@ When XDR is passed as a parameter or returned, it is always a string encoded usi Soroban-RPC provides an [OpenRPC] specification document that can be used to mock, build, and/or validate both server and client software implementations. This document is used to generate all of our [methods] documentation pages. You can view the full [specification document here]. Additionally, you can experiment with this specificaiton document in the [OpenRPC Playground]. -[JSON-RPC 2.0]: -[jsonrpc error object]: -[JavaScript SDK]: -[OpenRPC]: -[methods]: <./methods> -[specification document here]: -[OpenRPC Playground]: +[JSON-RPC 2.0]: https://www.jsonrpc.org/specification +[jsonrpc error object]: https://www.jsonrpc.org/specification#error_object +[JavaScript SDK]: https://github.com/stellar/js-stellar-sdk +[OpenRPC]: https://open-rpc.org/ +[methods]: ./methods +[specification document here]: https://raw.githubusercontent.com/stellar/soroban-docs/main/static/openrpc.json +[OpenRPC Playground]: https://playground.open-rpc.org/?schemaUrl=https://raw.githubusercontent.com/stellar/soroban-docs/main/static/openrpc.json diff --git a/api/methods/getEvents.mdx b/api/methods/getEvents.mdx index 6417fd758..e46cee2bc 100644 --- a/api/methods/getEvents.mdx +++ b/api/methods/getEvents.mdx @@ -5,4 +5,4 @@ description: Returns contract events import { RpcMethod } from "@site/src/components/RpcMethod"; - + diff --git a/api/methods/getHealth.mdx b/api/methods/getHealth.mdx index 826bef455..980418e9c 100644 --- a/api/methods/getHealth.mdx +++ b/api/methods/getHealth.mdx @@ -5,4 +5,4 @@ description: Returns node health import { RpcMethod } from "@site/src/components/RpcMethod"; - + diff --git a/api/methods/getLatestLedger.mdx b/api/methods/getLatestLedger.mdx index 825f8088b..6cc788c75 100644 --- a/api/methods/getLatestLedger.mdx +++ b/api/methods/getLatestLedger.mdx @@ -5,4 +5,4 @@ description: Returns latest known ledger import { RpcMethod } from "@site/src/components/RpcMethod"; - + diff --git a/api/methods/getLedgerEntries.mdx b/api/methods/getLedgerEntries.mdx index 4e9f9446c..2d5ae1e4e 100644 --- a/api/methods/getLedgerEntries.mdx +++ b/api/methods/getLedgerEntries.mdx @@ -5,7 +5,7 @@ description: Returns ledger entries import { RpcMethod } from "@site/src/components/RpcMethod"; - + ### Generating `keys` Parameters @@ -55,23 +55,23 @@ yarn add @stellar/stellar-sdk ``` ```js -import { xdr, StrKey } from '@stellar/stellar-sdk'; +import { xdr, StrKey } from "@stellar/stellar-sdk"; const getLedgerKeySymbol = (contractId, symbolText) => { const ledgerKey = xdr.LedgerKey.contractData( new xdr.LedgerKeyContractData({ contractId: StrKey.decodeContract(contractId), - key: xdr.ScVal.scvSymbol(symbolText) - }) + key: xdr.ScVal.scvSymbol(symbolText), + }), ); - return ledgerKey.toXDR('base64'); + return ledgerKey.toXDR("base64"); }; console.log( getLedgerKeySymbol( - 'CA3D5KRYM6CB7OWQ6TWYRR3Z4T7GNZLKERYNZGGA5SOAOPIFY6YQGAXE', - 'COUNTER' - ) + "CA3D5KRYM6CB7OWQ6TWYRR3Z4T7GNZLKERYNZGGA5SOAOPIFY6YQGAXE", + "COUNTER", + ), ); ``` @@ -105,7 +105,6 @@ console.log(getLedgerKeyAccount( # OUTPUT: AAAAAAAAAACp3BPIqFxM9XSnW6aHvavD3GWlJGfuylOt5tZL6CQtdQ== ``` - We then take our output from this function, and use it as the element in the `keys` array parameter in our call to the `getLedgerEntries` method. ```json @@ -126,7 +125,7 @@ And the response we get contains the `LedgerEntryData` with the current informat "jsonrpc": "2.0", "id": 8675309, "result": { - "entries":[ + "entries": [ { "key": "AAAAAAAAAACp3BPIqFxM9XSnW6aHvavD3GWlJGfuylOt5tZL6CQtdQ==", "xdr": "AAAAAAAAAACp3BPIqFxM9XSnW6aHvavD3GWlJGfuylOt5tZL6CQtdQAAABdIdugAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAA", @@ -142,9 +141,9 @@ We can then parse this result as an `xdr.LedgerEntryData` type. ```js const parsed = xdr.LedgerEntryData.fromXDR( - 'AAAAAAAAAACp3BPIqFxM9XSnW6aHvavD3GWlJGfuylOt5tZL6CQtdQAAABdIdugAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAA', - 'base64' -) + "AAAAAAAAAACp3BPIqFxM9XSnW6aHvavD3GWlJGfuylOt5tZL6CQtdQAAABdIdugAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAA", + "base64", +); console.log(parsed); ``` @@ -192,18 +191,18 @@ print( ##### JavaScript ```javascript -import { Address, xdr } from '@stellar/stellar-sdk'; +import { Address, xdr } from "@stellar/stellar-sdk"; function getLedgerKeyContractCode(contractId) { const instance = new ContractId(contractId).getFootprint(); - return instance.toXDR('base64'); + return instance.toXDR("base64"); } console.log( getLedgerKeyContractCode( - "CA3D5KRYM6CB7OWQ6TWYRR3Z4T7GNZLKERYNZGGA5SOAOPIFY6YQGAXE" - ) -) + "CA3D5KRYM6CB7OWQ6TWYRR3Z4T7GNZLKERYNZGGA5SOAOPIFY6YQGAXE", + ), +); // OUTPUT: AAAABq+aJSfjs7VXHWOwJGujK30xpTI3Zt98YN/As+O6b98jAAAAFA== ``` @@ -215,9 +214,7 @@ We then take our output from this function, and use it as the element in the `ke "id": 8675309, "method": "getLedgerEntries", "params": { - "keys": [ - "AAAABq+aJSfjs7VXHWOwJGujK30xpTI3Zt98YN/As+O6b98jAAAAFA==" - ] + "keys": ["AAAABq+aJSfjs7VXHWOwJGujK30xpTI3Zt98YN/As+O6b98jAAAAFA=="] } } ``` @@ -280,31 +277,30 @@ const { xdr } = require("@stellar/stellar-sdk"); function getLedgerKeyWasmId(contractCodeLedgerEntryData) { const entry = xdr.LedgerEntryData.fromXDR( contractCodeLedgerEntryData, - "base64" + "base64", ); const instance = entry.contractData().val().instance(); let ledgerKey = xdr.LedgerKey.contractCode( new xdr.LedgerKeyContractCode({ - hash: instance.wasmHash() - }) + hash: instance.wasmHash(), + }), ); - return ledgerKey.toXDR('base64'); + return ledgerKey.toXDR("base64"); } console.log( getLedgerKeyWasmId( - "AAAABq+aJSfjs7VXHWOwJGujK30xpTI3Zt98YN/As+O6b98jAAAAFAAAABIAAAAAZBYoEJT3IaPMMk3FoRmnEQHoDxewPZL+Uor+xWI4uII=" - ) -) + "AAAABq+aJSfjs7VXHWOwJGujK30xpTI3Zt98YN/As+O6b98jAAAAFAAAABIAAAAAZBYoEJT3IaPMMk3FoRmnEQHoDxewPZL+Uor+xWI4uII=", + ), +); // OUTPUT: AAAAB2QWKBCU9yGjzDJNxaEZpxEB6A8XsD2S/lKK/sViOLiC ``` Now, finally we have a `LedgerKey` that correspond to the Wasm byte-code that has been deployed under the `ContractId` we started out with so very long ago. This `LedgerKey` can be used in a final request to the Soroban-RPC endpoint. - ```json { "jsonrpc": "2.0", @@ -337,4 +333,4 @@ And the response we get contains (even more) `LedgerEntryData` that we can decod ``` [`increment` example contract]: /docs/getting-started/storing-data -["View XDR" page of the Stellar Laboratory]: +["View XDR" page of the Stellar Laboratory]: https://laboratory.stellar.org/#xdr-viewer?type=LedgerEntryData&network=testnet diff --git a/api/methods/getNetwork.mdx b/api/methods/getNetwork.mdx index d9de0e506..1d986434f 100644 --- a/api/methods/getNetwork.mdx +++ b/api/methods/getNetwork.mdx @@ -5,4 +5,4 @@ description: Returns network config import { RpcMethod } from "@site/src/components/RpcMethod"; - + diff --git a/api/methods/getTransaction.mdx b/api/methods/getTransaction.mdx index cceeec44c..d3ccda697 100644 --- a/api/methods/getTransaction.mdx +++ b/api/methods/getTransaction.mdx @@ -5,4 +5,4 @@ description: Returns transaction details import { RpcMethod } from "@site/src/components/RpcMethod"; - + diff --git a/api/methods/sendTransaction.mdx b/api/methods/sendTransaction.mdx index b16d93e6b..72549de23 100644 --- a/api/methods/sendTransaction.mdx +++ b/api/methods/sendTransaction.mdx @@ -5,4 +5,4 @@ description: Submits a transaction import { RpcMethod } from "@site/src/components/RpcMethod"; - + diff --git a/api/methods/simulateTransaction.mdx b/api/methods/simulateTransaction.mdx index 1e08d5e62..ba486f185 100644 --- a/api/methods/simulateTransaction.mdx +++ b/api/methods/simulateTransaction.mdx @@ -5,4 +5,4 @@ description: Submits a trial contract invocation transaction import { RpcMethod } from "@site/src/components/RpcMethod"; - + diff --git a/api/pagination.mdx b/api/pagination.mdx index 69023bb2a..4a9e0cfa0 100644 --- a/api/pagination.mdx +++ b/api/pagination.mdx @@ -8,8 +8,8 @@ Pagination in soroban-rpc is similar to pagination in Horizon. For methods which support it, the pagination arguments are passed as a final object argument with two values: -- `cursor`: string - (optional) 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. -- `limit`: number - (optional) The maximum number of records returned. The limit for [getEvents](methods/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. +- `cursor`: string - (optional) 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. +- `limit`: number - (optional) The maximum number of records returned. The limit for [getEvents](methods/getEvents.mdx) 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. For example, calling a method with pagination parameter set: @@ -18,10 +18,6 @@ For example, calling a method with pagination parameter set: "jsonrpc": "2.0", "Id": "1", "method": "exampleMethod", - "params": [ - "other", - "arguments", - { "cursor": "1234-1", "limit": 100 } - ] + "params": ["other", "arguments", { "cursor": "1234-1", "limit": 100 }] } ``` From 78dbe30eaf2eec469c56c498f593c0582d2d6a62 Mon Sep 17 00:00:00 2001 From: Elliot Voris Date: Tue, 9 Jan 2024 11:25:08 -0600 Subject: [PATCH 060/133] Pre mainnet restructure (#644) * docs: rename "fundamentals and concepts" to "soroban internals" * docs: remove old "under the hood" section * docs: add tags to the various tutorials * docs: move tutorials into one main directory * fix broken links to old pages * docs: renaming soroban internals in category file * docs: remove old "command line reference" category * docs: add tokens directory, rearrange sidebars * docs: rearrange migration from evm guide * docs: remove unused reference/interfaces category * docs: move "reference" section to "resources" * docs: move "releases" page up a level * docs: move FAQ page up one level * docs: move dev tools into resources directory * docs: move testnet.mdx to networks.mdx * docs: rearrange items in resources directory * docs: collapse various SDK pages into two pages * docs: move data-providers up one level * docs: remove some empty categories, move the tutorial template * docs: add a new getting-started page, reorganize that section * docs: change sidebar position integers in soroban-internals * docs: shuffling contract interaction around in soroban-internals * style: fixing a couple small markdown nits in dapps directory * docs: fix a broken link * feat: start to the "guides" page(s) * style(lint): fixing a small linting error * remove guides placeholder * fixing broken links * work on guides listing. might revert this * formatting mdx * docs: fixing a broken link to tutorials * style: crack at making the tutorials filterable and hidden in the sidebar * customizing some components for the `/guides` pages and layouts * rename index page for guides to README * remove commented configuration option * remove some console logging in components * change name of index page in guides sidebar * remove commented sidebar generation code * remove comments and add description to sidebar generator * rename sidebar generator file * more work on how the 'guides' pages might look. * docs: adjusting sidebar positions of new getting started pages * fix some broken links in the getting-started section * prefer "README.mdx" files where possible * some more guides placeholder stubs * docs(guides): More placeholder stubs for guides and categories * feat: don't display "guides in category" page on `/guides` * build: check/fix MDX formatting in more directories than just docs * style: add a larger margin before more category guides * style: more selectively increase that top margin * docs(guides): a quick stab at a "publishing" events guide * docs(guides): first stab at the "publish events" guide * docs: updating tutorial descriptions * fix a few broken links * docs: add note about a tuple with one element * style: couple link changes and reformats * move fuzzing tutorial back * change to README file in contract interactions category * docs(guides): give a better title for the wasm metadata guide * fixing some broken markdown links * fix (another!) broken link * move the guides back into the main layout of the docs directory * add placeholder for testnet reset automation stuff * some initial content for some guides * markdown formatting and fixing broken links * moving "resources" back to "reference" to fit the definition better More like "technical reference" rather than a "reference encyclopedia" * change some styles of the tutorial list * removing most category pages * some more first-drafts of guides * fixing some category links * include a period at the end of each tutorial description * simplify tutorial search box placeholder text * better description for the tutorials page * making the pre-commit script executable * flesh out some of the state archival guides * first effort for some rpc ledger key guides * fix some broken links * add a guide on ingesting events into a db * first effort at storage type guides * Some more stubs, marking drafts, and a couple additions * make not a draft to fix a broken link * guides category descriptions in README.mdx files * marking incomplete chain migration docs as drafts * change some tutorial difficulty levels * fine-tune the tutorials component styling a bit * improving some guides organization * fix linting errors and broken links * include wrap instructions for native lumens * fix broken link in contract metadata guide * final changes to existing guides * moving developer tools into the main sidebar * create real redirects instead of just notes * fix broken links in a dapps challenge page * fix a redirect syntax error * fix a tutorials redirect --- api/methods/getLedgerEntries.mdx | 56 +++++++++++++++----------------- 1 file changed, 26 insertions(+), 30 deletions(-) diff --git a/api/methods/getLedgerEntries.mdx b/api/methods/getLedgerEntries.mdx index 4e9f9446c..2d5ae1e4e 100644 --- a/api/methods/getLedgerEntries.mdx +++ b/api/methods/getLedgerEntries.mdx @@ -5,7 +5,7 @@ description: Returns ledger entries import { RpcMethod } from "@site/src/components/RpcMethod"; - + ### Generating `keys` Parameters @@ -55,23 +55,23 @@ yarn add @stellar/stellar-sdk ``` ```js -import { xdr, StrKey } from '@stellar/stellar-sdk'; +import { xdr, StrKey } from "@stellar/stellar-sdk"; const getLedgerKeySymbol = (contractId, symbolText) => { const ledgerKey = xdr.LedgerKey.contractData( new xdr.LedgerKeyContractData({ contractId: StrKey.decodeContract(contractId), - key: xdr.ScVal.scvSymbol(symbolText) - }) + key: xdr.ScVal.scvSymbol(symbolText), + }), ); - return ledgerKey.toXDR('base64'); + return ledgerKey.toXDR("base64"); }; console.log( getLedgerKeySymbol( - 'CA3D5KRYM6CB7OWQ6TWYRR3Z4T7GNZLKERYNZGGA5SOAOPIFY6YQGAXE', - 'COUNTER' - ) + "CA3D5KRYM6CB7OWQ6TWYRR3Z4T7GNZLKERYNZGGA5SOAOPIFY6YQGAXE", + "COUNTER", + ), ); ``` @@ -105,7 +105,6 @@ console.log(getLedgerKeyAccount( # OUTPUT: AAAAAAAAAACp3BPIqFxM9XSnW6aHvavD3GWlJGfuylOt5tZL6CQtdQ== ``` - We then take our output from this function, and use it as the element in the `keys` array parameter in our call to the `getLedgerEntries` method. ```json @@ -126,7 +125,7 @@ And the response we get contains the `LedgerEntryData` with the current informat "jsonrpc": "2.0", "id": 8675309, "result": { - "entries":[ + "entries": [ { "key": "AAAAAAAAAACp3BPIqFxM9XSnW6aHvavD3GWlJGfuylOt5tZL6CQtdQ==", "xdr": "AAAAAAAAAACp3BPIqFxM9XSnW6aHvavD3GWlJGfuylOt5tZL6CQtdQAAABdIdugAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAA", @@ -142,9 +141,9 @@ We can then parse this result as an `xdr.LedgerEntryData` type. ```js const parsed = xdr.LedgerEntryData.fromXDR( - 'AAAAAAAAAACp3BPIqFxM9XSnW6aHvavD3GWlJGfuylOt5tZL6CQtdQAAABdIdugAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAA', - 'base64' -) + "AAAAAAAAAACp3BPIqFxM9XSnW6aHvavD3GWlJGfuylOt5tZL6CQtdQAAABdIdugAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAA", + "base64", +); console.log(parsed); ``` @@ -192,18 +191,18 @@ print( ##### JavaScript ```javascript -import { Address, xdr } from '@stellar/stellar-sdk'; +import { Address, xdr } from "@stellar/stellar-sdk"; function getLedgerKeyContractCode(contractId) { const instance = new ContractId(contractId).getFootprint(); - return instance.toXDR('base64'); + return instance.toXDR("base64"); } console.log( getLedgerKeyContractCode( - "CA3D5KRYM6CB7OWQ6TWYRR3Z4T7GNZLKERYNZGGA5SOAOPIFY6YQGAXE" - ) -) + "CA3D5KRYM6CB7OWQ6TWYRR3Z4T7GNZLKERYNZGGA5SOAOPIFY6YQGAXE", + ), +); // OUTPUT: AAAABq+aJSfjs7VXHWOwJGujK30xpTI3Zt98YN/As+O6b98jAAAAFA== ``` @@ -215,9 +214,7 @@ We then take our output from this function, and use it as the element in the `ke "id": 8675309, "method": "getLedgerEntries", "params": { - "keys": [ - "AAAABq+aJSfjs7VXHWOwJGujK30xpTI3Zt98YN/As+O6b98jAAAAFA==" - ] + "keys": ["AAAABq+aJSfjs7VXHWOwJGujK30xpTI3Zt98YN/As+O6b98jAAAAFA=="] } } ``` @@ -280,31 +277,30 @@ const { xdr } = require("@stellar/stellar-sdk"); function getLedgerKeyWasmId(contractCodeLedgerEntryData) { const entry = xdr.LedgerEntryData.fromXDR( contractCodeLedgerEntryData, - "base64" + "base64", ); const instance = entry.contractData().val().instance(); let ledgerKey = xdr.LedgerKey.contractCode( new xdr.LedgerKeyContractCode({ - hash: instance.wasmHash() - }) + hash: instance.wasmHash(), + }), ); - return ledgerKey.toXDR('base64'); + return ledgerKey.toXDR("base64"); } console.log( getLedgerKeyWasmId( - "AAAABq+aJSfjs7VXHWOwJGujK30xpTI3Zt98YN/As+O6b98jAAAAFAAAABIAAAAAZBYoEJT3IaPMMk3FoRmnEQHoDxewPZL+Uor+xWI4uII=" - ) -) + "AAAABq+aJSfjs7VXHWOwJGujK30xpTI3Zt98YN/As+O6b98jAAAAFAAAABIAAAAAZBYoEJT3IaPMMk3FoRmnEQHoDxewPZL+Uor+xWI4uII=", + ), +); // OUTPUT: AAAAB2QWKBCU9yGjzDJNxaEZpxEB6A8XsD2S/lKK/sViOLiC ``` Now, finally we have a `LedgerKey` that correspond to the Wasm byte-code that has been deployed under the `ContractId` we started out with so very long ago. This `LedgerKey` can be used in a final request to the Soroban-RPC endpoint. - ```json { "jsonrpc": "2.0", @@ -337,4 +333,4 @@ And the response we get contains (even more) `LedgerEntryData` that we can decod ``` [`increment` example contract]: /docs/getting-started/storing-data -["View XDR" page of the Stellar Laboratory]: +["View XDR" page of the Stellar Laboratory]: https://laboratory.stellar.org/#xdr-viewer?type=LedgerEntryData&network=testnet From 4517d847cd8db9cdda5652d400a6da35201068e4 Mon Sep 17 00:00:00 2001 From: Elliot Voris Date: Wed, 10 Jan 2024 10:26:39 -0600 Subject: [PATCH 061/133] Generate the `openrpc.json` specification file in this repo (#692) * move specfile generation into this repo * add a readme to the openrpc directory, ignore transitional files * add spec generation to docker file * test change to `getEvents` method * Revert "test change to `getEvents` method" This reverts commit 978b8b0f54c794fe59b83f2f1e866794bfc7b917. * remove console statements in build script * add note about the build process at deploy time * updating build with newest fields --- openrpc/README.md | 138 ++++++++++++++++++ openrpc/scripts/build.mjs | 137 +++++++++++++++++ openrpc/scripts/validate.mjs | 27 ++++ .../src/contentDescriptors/EventFilters.json | 10 ++ .../src/contentDescriptors/LedgerKeys.json | 11 ++ .../src/contentDescriptors/Pagination.json | 11 ++ .../contentDescriptors/ResourceConfig.json | 11 ++ .../src/contentDescriptors/StartLedger.json | 11 ++ .../src/contentDescriptors/Transaction.json | 20 +++ .../contentDescriptors/TransactionHash.json | 11 ++ .../examplePairingObjects/EventsPairs.json | 25 ++++ .../GetTransactionPairs.json | 32 ++++ .../LedgerEntriesPairs.json | 32 ++++ .../examplePairingObjects/NetworkPairs.json | 28 ++++ .../SendTransactionPairs.json | 42 ++++++ .../SimulationPairs.json | 24 +++ openrpc/src/examples/Events.json | 113 ++++++++++++++ openrpc/src/examples/LedgerEntries.json | 71 +++++++++ openrpc/src/examples/Simulations.json | 59 ++++++++ openrpc/src/examples/Transactions.json | 111 ++++++++++++++ openrpc/src/methods/getEvents.json | 42 ++++++ openrpc/src/methods/getHealth.json | 35 +++++ openrpc/src/methods/getLatestLedger.json | 42 ++++++ openrpc/src/methods/getLedgerEntries.json | 38 +++++ openrpc/src/methods/getNetwork.json | 33 +++++ openrpc/src/methods/getTransaction.json | 79 ++++++++++ openrpc/src/methods/sendTransaction.json | 63 ++++++++ openrpc/src/methods/simulateTransaction.json | 105 +++++++++++++ openrpc/src/schemas/ContractIds.json | 16 ++ openrpc/src/schemas/Event.json | 64 ++++++++ openrpc/src/schemas/EventFilters.json | 52 +++++++ openrpc/src/schemas/Hash.json | 19 +++ openrpc/src/schemas/LedgerCloseTime.json | 17 +++ openrpc/src/schemas/LedgerEntries.json | 34 +++++ openrpc/src/schemas/LedgerSequence.json | 17 +++ openrpc/src/schemas/NetworkConfig.json | 12 ++ openrpc/src/schemas/Pagination.json | 16 ++ openrpc/src/schemas/ResourceConfig.json | 14 ++ openrpc/src/schemas/Transaction.json | 7 + static/openrpc.json | 7 +- 40 files changed, 1634 insertions(+), 2 deletions(-) create mode 100644 openrpc/README.md create mode 100644 openrpc/scripts/build.mjs create mode 100644 openrpc/scripts/validate.mjs create mode 100644 openrpc/src/contentDescriptors/EventFilters.json create mode 100644 openrpc/src/contentDescriptors/LedgerKeys.json create mode 100644 openrpc/src/contentDescriptors/Pagination.json create mode 100644 openrpc/src/contentDescriptors/ResourceConfig.json create mode 100644 openrpc/src/contentDescriptors/StartLedger.json create mode 100644 openrpc/src/contentDescriptors/Transaction.json create mode 100644 openrpc/src/contentDescriptors/TransactionHash.json create mode 100644 openrpc/src/examplePairingObjects/EventsPairs.json create mode 100644 openrpc/src/examplePairingObjects/GetTransactionPairs.json create mode 100644 openrpc/src/examplePairingObjects/LedgerEntriesPairs.json create mode 100644 openrpc/src/examplePairingObjects/NetworkPairs.json create mode 100644 openrpc/src/examplePairingObjects/SendTransactionPairs.json create mode 100644 openrpc/src/examplePairingObjects/SimulationPairs.json create mode 100644 openrpc/src/examples/Events.json create mode 100644 openrpc/src/examples/LedgerEntries.json create mode 100644 openrpc/src/examples/Simulations.json create mode 100644 openrpc/src/examples/Transactions.json create mode 100644 openrpc/src/methods/getEvents.json create mode 100644 openrpc/src/methods/getHealth.json create mode 100644 openrpc/src/methods/getLatestLedger.json create mode 100644 openrpc/src/methods/getLedgerEntries.json create mode 100644 openrpc/src/methods/getNetwork.json create mode 100644 openrpc/src/methods/getTransaction.json create mode 100644 openrpc/src/methods/sendTransaction.json create mode 100644 openrpc/src/methods/simulateTransaction.json create mode 100644 openrpc/src/schemas/ContractIds.json create mode 100644 openrpc/src/schemas/Event.json create mode 100644 openrpc/src/schemas/EventFilters.json create mode 100644 openrpc/src/schemas/Hash.json create mode 100644 openrpc/src/schemas/LedgerCloseTime.json create mode 100644 openrpc/src/schemas/LedgerEntries.json create mode 100644 openrpc/src/schemas/LedgerSequence.json create mode 100644 openrpc/src/schemas/NetworkConfig.json create mode 100644 openrpc/src/schemas/Pagination.json create mode 100644 openrpc/src/schemas/ResourceConfig.json create mode 100644 openrpc/src/schemas/Transaction.json diff --git a/openrpc/README.md b/openrpc/README.md new file mode 100644 index 000000000..72ccd712e --- /dev/null +++ b/openrpc/README.md @@ -0,0 +1,138 @@ +# Soroban RPC API Specification + +## Table of Contents + +- [JSON-RPC](#json-rpc) + - [Building](#building) + - [Testing](#testing) + - [JSON `$ref`s](#json-refs) +- [Keeping Things Up-to-Date](#keeping-things-up-to-date) + - [Methods (`/openrpc/src/methods/*`)](#methods-openrpcsrcmethods) + - [Content Descriptors (`/openrpc/src/contentDescriptors/*`)](#content-descriptors-openrpcsrccontentdescriptors) + - [Schemas (`/openrpc/src/schemas/*`)](#schemas-openrpcsrcschemas) + - [Examples (`/openrpc/src/examples/*`)](#examples-openrpcsrcexamples) + - [Example Pairings (`/openrpc/src/examplePairingObjects/*`)](#example-pairings-openrpcsrcexamplepairingobjects) + +## JSON-RPC + +This is a specification of the API presented by Soroban RPC. + +### Building + +> _Note:_ The build process will provide an output file at +> `/static/openrpc.json`. This file should be included in any commits. However, +> this build process is re-run as part of our docusaurus deployment. So, it's +> necessary to update the actual source JSON files, and not just this built file +> as it will be overwritten at deploy time. + +The specification is split into multiple files to improve readability. The +complete spec can be compiled into a single document as follows. (Run this +command from the root `soroban-docs` directory.) + +```bash +yarn rpcspec:build +# Build successful. +``` + +This will output the file to `/static/openrpc.json`. This file will have all +schema `$ref`s resolved. + +### Testing + +We have included a script which will test and validate the generated +specification file. + +```bash +yarn rpcspec:validate +# OpenRPC spec validated successfully. +``` + +### JSON `$ref`s + +These files make extensive use of `$ref` objects for improved readability and +maintainability. In the separate files, the references don't mean much, but when +things are generated they'll be resolved. If you are going to reference +something in the specification, you will need to use the following format: +`#/components/{schemas,examples,etc.}/NameOfComponentToReference`. + +The items broken out into objects that will be referenced are not held +individually in their own files. Instead, they are grouped into similar and +related files. For example: `/src/examples/Transactions.json` hold several +`example` components that are related to transactions, such as transaction +hashes, results from the `getTransaction` or `sendTransaction` methods, +transactions parameters that were sent using the `sendTransaction` method, etc. + +## Keeping Things Up-to-Date + +**Don't making any changes to `openrpc.json` or `refs-openrpc.json`!** Any +changes you make there, will not be actually reflected in the generated +specification file. Instead, any changes should be made in the files contained +in the `/openrpc/src` directory. + +This directory follows a structure similar to the schema defined in the OpenRPC +specification. Here are the pieces you'll need to know about: + +### Methods (`/openrpc/src/methods/*`) + +This collection of JSON files define the [method objects] that will go into the +generated specification file. The methods can be considered the container that +will ultimately hold _all_ of the details about how the method works (parameter +types, return types, examples, etc.). The following properties are required in +the method object: + +- `name` (string) - The canonical name for the method. The name MUST be unique + within the methods array +- `params` (list) - A list of parameters that are applicable for this method + +### Content Descriptors (`/openrpc/src/contentDescriptors/*`) + +This collection of JSON files define the [contentDescriptor objects] that will +go into the generated specification file. A content descriptor is a reusable way +of describing either parameters or results. (Though, I've found they're best +used as items in a method's `params` list). The following property are required +in the content descriptor object: + +- `name` (string) - Name of the content that is being described. If this object + is defining a parameter, the `name` field will define the parameter's key +- `schema` (object) - A schema that describes the content + +### Schemas (`/openrpc/src/schemas/*`) + +This collection of JSON files define the [schema objects] that will go into the +generated specification file. These schemas allow us to define input and output +data types. These schemas **MUST** follow the [JSON Schema Specification 7] + +### Examples (`/openrpc/src/examples/*`) + +This collection of JSON files define the [example objects] that will go into the +generated specification file. These objects define an example that is consistent +and matches the `schema` of a given content descriptor. These example objects +can act as either a parameter or result. The `value` property of the example +object allows us to embed a literal example of what the schema can look like. + +### Example Pairings (`/openrpc/src/examplePairingObjects/*`) + +This collection of JSON files define the [example pairing objects] that will go +into the generated specification file. The example pairing objects make up a +complete example request to the Soroban RPC service. This is where you can +specify a set of `params` that were supplied in the request, as well as the +value(s) returned in the `result` from the node. The following properties are +required in the example pairing objects: + +- `name` (string) - Name for the example pairing +- `params` (list) - A list of example parameters (or `$ref`s to example objects) +- `result` (example object) - Example result received from the node + +> _Note:_ The `result` property is not technically _required_ by the open-rpc +> specification if the method is to be represented as a notification. However, +> Soroban RPC doesn't make use of any methods as notifications, so we've listed +> it as required here. + +[method objects]: +[contentDescriptor objects]: + +[schema objects]: +[JSON Schema Specification 7]: + +[example objects]: +[example pairing objects]: diff --git a/openrpc/scripts/build.mjs b/openrpc/scripts/build.mjs new file mode 100644 index 000000000..844e0d8cc --- /dev/null +++ b/openrpc/scripts/build.mjs @@ -0,0 +1,137 @@ +import fs from "fs"; +import mergeAllOf from "json-schema-merge-allof"; +import { dereferenceDocument } from "@open-rpc/schema-utils-js"; +import defaultResolver from "@json-schema-tools/reference-resolver"; + +function sortByMethodName(methods) { + return methods.slice().sort((a, b) => { + if (a['name'] > b['name']) { + return 1; + } else if (a['name'] < b['name']) { + return -1; + } else { + return 0; + } + }) +} + +let methods = []; +let methodsBase = "openrpc/src/methods/"; +let methodFiles = fs.readdirSync(methodsBase); +methodFiles.forEach(file => { + let raw = fs.readFileSync(methodsBase + file); + let parsed = JSON.parse(raw); + methods = [ + ...methods, + parsed, + ]; +}); + +let contentDescriptors = {}; +let cdBase = "openrpc/src/contentDescriptors/"; +let cdFiles = fs.readdirSync(cdBase); +cdFiles.forEach(file => { + let raw = fs.readFileSync(cdBase + file); + let parsed = JSON.parse(raw); + contentDescriptors = { + ...contentDescriptors, + ...parsed, + }; +}); + +let schemas = {}; +let schemasBase = "openrpc/src/schemas/" +let schemaFiles = fs.readdirSync(schemasBase); +schemaFiles.forEach(file => { + let raw = fs.readFileSync(schemasBase + file); + let parsed = JSON.parse(raw); + schemas = { + ...schemas, + ...parsed, + }; +}); + +let examples = {} +let examplesBase = "openrpc/src/examples/" +let examplesFiles = fs.readdirSync(examplesBase) +examplesFiles.forEach(file => { + let raw = fs.readFileSync(examplesBase + file) + let parsed = JSON.parse(raw) + examples = { + ...examples, + ...parsed, + } +}) + +let examplePairingObjects = {} +let epoBase = "openrpc/src/examplePairingObjects/" +let epoFiles = fs.readdirSync(epoBase) +epoFiles.forEach(file => { + let raw = fs.readFileSync(epoBase + file) + let parsed = JSON.parse(raw) + examplePairingObjects = { + ...examplePairingObjects, + ...parsed, + } +}) + +const doc = { + openrpc: "1.2.4", + info: { + title: "Soroban RPC", + description: "Soroban-RPC allows you to communicate directly with Soroban via a JSON RPC interface.", + termsOfService: "https://stellar.org/terms-of-service", + contact: { + name: "Stellar Development Foundation", + url: "https://stellar.org/connect", + email: "hello@stellar.org" + }, + license: { + name: "Apache 2.0", + url: "https://www.apache.org/licenses/LICENSE-2.0.html" + }, + version: "20.1.0" + }, + servers: [ + { + name: "Testnet", + url: "https://soroban-testnet.stellar.org:443", + summary: "Publicly available RPC server maintained by SDF, operating on the Testnet test network.", + description: "Testnet is meant to be a stable network that runs a production (or near-production) version of the Stellar network." + }, + { + name: "Futurenet", + url: "https://rpc-futurenet.stellar.org:443", + summary: "Publicly available RPC server maintained by SDF, operating on the Futurenet test network.", + description: "Futurenet is meant to be a bleeding-edge, experimental network that runs an early, test version of the Stellar network." + } + ], + methods: sortByMethodName(methods), + components: { + contentDescriptors: contentDescriptors, + schemas: schemas, + examples: examples, + examplePairingObjects: examplePairingObjects, + }, +} + +fs.writeFileSync('openrpc/refs-openrpc.json', JSON.stringify(doc, null, 2)); + +let spec = await dereferenceDocument(doc, defaultResolver.default) + +spec.components = {}; + +// Merge instances of `allOf` in methods. +for (var i=0; i < spec.methods.length; i++) { + for (var j=0; j < spec.methods[i].params.length; j++) { + spec.methods[i].params[j].schema = mergeAllOf(spec.methods[i].params[j].schema); + } + spec.methods[i].result.schema = mergeAllOf(spec.methods[i].result.schema); +} + +let data = JSON.stringify(spec, null, 2); +fs.writeFileSync('openrpc/openrpc.json', data); +fs.writeFileSync('static/openrpc.json', data); + +console.log(); +console.log("Build successful."); diff --git a/openrpc/scripts/validate.mjs b/openrpc/scripts/validate.mjs new file mode 100644 index 000000000..d17ec4d88 --- /dev/null +++ b/openrpc/scripts/validate.mjs @@ -0,0 +1,27 @@ +import fs from "fs"; +import { + parseOpenRPCDocument, + validateOpenRPCDocument +} from "@open-rpc/schema-utils-js"; + +let rawdata = fs.readFileSync("openrpc/openrpc.json"); +let openrpc = JSON.parse(rawdata); + +const error = validateOpenRPCDocument(openrpc); +if (error != true) { + console.log(error.name); + console.log(error.message); + process.exit(1); +} + +try { + await Promise.resolve(parseOpenRPCDocument(openrpc)); +} catch(e) { + console.log(e.name); + let end = e.message.indexOf("schema in question"); + let msg = e.message.substring(0, end); + console.log(msg); + process.exit(1); +} + +console.log("OpenRPC spec validated successfully."); diff --git a/openrpc/src/contentDescriptors/EventFilters.json b/openrpc/src/contentDescriptors/EventFilters.json new file mode 100644 index 000000000..cfd59f48d --- /dev/null +++ b/openrpc/src/contentDescriptors/EventFilters.json @@ -0,0 +1,10 @@ +{ + "EventFilters": { + "name": "filters", + "summary": "filters to narrow events search", + "description": "List of filters for the returned events. Events matching any of the filters are included. To match a filter, an event must match both a contractId and a topic. Maximum 5 filters are allowed per request.", + "schema": { + "$ref": "#/components/schemas/EventFilters" + } + } +} diff --git a/openrpc/src/contentDescriptors/LedgerKeys.json b/openrpc/src/contentDescriptors/LedgerKeys.json new file mode 100644 index 000000000..f93faf97c --- /dev/null +++ b/openrpc/src/contentDescriptors/LedgerKeys.json @@ -0,0 +1,11 @@ +{ + "LedgerKeys": { + "name": "keys", + "summary": "array of ledger keys", + "description": "Array containing the keys of the ledger entries you wish to retrieve. (an array of serialized base64 strings)", + "required": true, + "schema": { + "$ref": "#/components/schemas/LedgerKeys" + } + } +} diff --git a/openrpc/src/contentDescriptors/Pagination.json b/openrpc/src/contentDescriptors/Pagination.json new file mode 100644 index 000000000..963267d1b --- /dev/null +++ b/openrpc/src/contentDescriptors/Pagination.json @@ -0,0 +1,11 @@ +{ + "Pagination": { + "name": "pagination", + "summary": "pagination options", + "description": "Pagination in soroban-rpc is similar to pagination in Horizon. See [Pagination](https://soroban.stellar.org/api/pagination).", + "required": false, + "schema": { + "$ref": "#/components/schemas/Pagination" + } + } +} diff --git a/openrpc/src/contentDescriptors/ResourceConfig.json b/openrpc/src/contentDescriptors/ResourceConfig.json new file mode 100644 index 000000000..85ff07dc0 --- /dev/null +++ b/openrpc/src/contentDescriptors/ResourceConfig.json @@ -0,0 +1,11 @@ +{ + "ResourceConfig": { + "name": "resourceConfig", + "summary": "configuration for how resources will be calculated", + "description": "Contains configuration for how resources will be calculated when simulating transactions.", + "required": false, + "schema": { + "$ref": "#/components/schemas/ResourceConfig" + } + } +} diff --git a/openrpc/src/contentDescriptors/StartLedger.json b/openrpc/src/contentDescriptors/StartLedger.json new file mode 100644 index 000000000..9da7c4b87 --- /dev/null +++ b/openrpc/src/contentDescriptors/StartLedger.json @@ -0,0 +1,11 @@ +{ + "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.", + "required": true, + "schema": { + "$ref": "#/components/schemas/LedgerSequence" + } + } +} diff --git a/openrpc/src/contentDescriptors/Transaction.json b/openrpc/src/contentDescriptors/Transaction.json new file mode 100644 index 000000000..c42baaae9 --- /dev/null +++ b/openrpc/src/contentDescriptors/Transaction.json @@ -0,0 +1,20 @@ +{ + "SignedTransaction": { + "name": "transaction", + "summary": "transaction to be submitted to the network", + "description": "The signed transaction to broadcast for inclusion in a ledger.", + "required": true, + "schema": { + "$ref": "#/components/schemas/Transaction" + } + }, + "UnsignedTransaction": { + "name": "transaction", + "summary": "transaction to be simulated", + "description": "In order for the RPC server to successfully simulate a Stellar transaction, the provided transaction must contain only a single operation of the type `invokeHostFunction`.", + "required": true, + "schema": { + "$ref": "#/components/schemas/Transaction" + } + } +} diff --git a/openrpc/src/contentDescriptors/TransactionHash.json b/openrpc/src/contentDescriptors/TransactionHash.json new file mode 100644 index 000000000..90cc538cd --- /dev/null +++ b/openrpc/src/contentDescriptors/TransactionHash.json @@ -0,0 +1,11 @@ +{ + "TransactionHash": { + "name": "hash", + "summary": "transaction hash to query", + "description": "Transaction hash to query as a hex-encoded string. This transaction hash should correspond to transaction that has been previously submitted to the network.", + "required": true, + "schema": { + "$ref": "#/components/schemas/TransactionHash" + } + } +} diff --git a/openrpc/src/examplePairingObjects/EventsPairs.json b/openrpc/src/examplePairingObjects/EventsPairs.json new file mode 100644 index 000000000..56b0dac95 --- /dev/null +++ b/openrpc/src/examplePairingObjects/EventsPairs.json @@ -0,0 +1,25 @@ +{ + "NativeTransferEventsExample": { + "name": "Native XLM Transfer Events", + "description": "Example request to the `getEvents` method, filtering for `transfer` events for native Lumens, and limiting the number of returned events to 2.", + "params": [ + { "$ref": "#/components/examples/StartLedger" }, + { "$ref": "#/components/examples/NativeTransfersFilter" }, + { "$ref": "#/components/examples/PaginationLimitTwo" } + ], + "result": { + "$ref": "#/components/examples/TwoNativeTransferEvents" + } + }, + "AnyEventsExample": { + "name": "All Events", + "description": "Example request to the `getEvents` method, filtering for all events of all types for any and all contracts.", + "params": [ + { "$ref": "#/components/examples/StartLedger" }, + { "$ref": "#/components/examples/PaginationLimitTwo" } + ], + "result": { + "$ref": "#/components/examples/AnyTwoEvents" + } + } +} diff --git a/openrpc/src/examplePairingObjects/GetTransactionPairs.json b/openrpc/src/examplePairingObjects/GetTransactionPairs.json new file mode 100644 index 000000000..8e35a604f --- /dev/null +++ b/openrpc/src/examplePairingObjects/GetTransactionPairs.json @@ -0,0 +1,32 @@ +{ + "SuccessfulTransaction": { + "name": "Successful Transaction", + "description": "Query for a transaction hash that returns `SUCCESS` from the RPC node.", + "params": [ + { "$ref": "#/components/examples/RecentTransactionHash" } + ], + "result": { + "$ref": "#/components/examples/SuccessTransactionResult" + } + }, + "NotFoundTransaction": { + "name": "Not Found Transaction", + "description": "Query for a transaction hash that returns `NOT_FOUND` from the RPC node.", + "params": [ + { "$ref": "#/components/examples/TooOldTransactionHash" } + ], + "result": { + "$ref": "#/components/examples/NotFoundTransactionResult" + } + }, + "FailedTransaction": { + "name": "Failed Transaction", + "description": "Query for a transaction hash that returns `FAILED` from the RPC node.", + "params": [ + { "$ref": "#/components/examples/FailedTransactionHash" } + ], + "result": { + "$ref": "#/components/examples/FailedTransactionResult" + } + } +} diff --git a/openrpc/src/examplePairingObjects/LedgerEntriesPairs.json b/openrpc/src/examplePairingObjects/LedgerEntriesPairs.json new file mode 100644 index 000000000..f66d45e8b --- /dev/null +++ b/openrpc/src/examplePairingObjects/LedgerEntriesPairs.json @@ -0,0 +1,32 @@ +{ + "CounterLedgerEntryExample": { + "name": "Retrieve a Contract's Counter Entry for an Address", + "description": "Example request to the `getNetwork` method for a `Counter(Address)` ledger entry.", + "params": [ + { "$ref": "#/components/examples/LedgerKeyCounterAddress" } + ], + "result": { + "$ref": "#/components/examples/LedgerEntryCounterAddressResult" + } + }, + "ContractBalanceLedgerEntryExample": { + "name": "Retrieve a Token's Balance Entry for Contract", + "description": "Example request to the `getNetwork` method for a SAC balance ledger entry belonging to a contract.", + "params": [ + { "$ref": "#/components/examples/LedgerKeyContractBalance" } + ], + "result": { + "$ref": "#/components/examples/LedgerEntryContractBalanceResult" + } + }, + "CombinedLedgerEntryExample": { + "name": "Retrieve Multiple Ledger Entries from Different Contracts.", + "description": "Example request to the `getNetwork` method for a `Counter(Address)` ledger entry and a SAC balance ledger entry.", + "params": [ + { "$ref": "#/components/examples/CombinedLedgerKeys" } + ], + "result": { + "$ref": "#/components/examples/CombinedLedgerEntryResult" + } + } +} diff --git a/openrpc/src/examplePairingObjects/NetworkPairs.json b/openrpc/src/examplePairingObjects/NetworkPairs.json new file mode 100644 index 000000000..4f452ff2f --- /dev/null +++ b/openrpc/src/examplePairingObjects/NetworkPairs.json @@ -0,0 +1,28 @@ +{ + "TestnetNetworkConfig": { + "name": "Testnet Network Configuration", + "description": "Example request to the `getNetwork` method for a node connected to the Stellar Testnet network.", + "params": [], + "result": { + "name": "getNetworkResult", + "value": { + "friendbotUrl": "https://friendbot-testnet.stellar.org/", + "passphrase": "Test SDF Network ; September 2015", + "protocolVersion": 20 + } + } + }, + "FuturenetNetworkConfig": { + "name": "Futurenet Network Configuration", + "description": "Example request to the `getNetwork` method for a node connected to the Stellar Futurenet network.", + "params": [], + "result": { + "name": "getNetworkResult", + "value": { + "friendbotUrl": "https://friendbot-futurenet.stellar.org/", + "passphrase": "Test SDF Future Network ; October 2022", + "protocolVersion": 20 + } + } + } +} diff --git a/openrpc/src/examplePairingObjects/SendTransactionPairs.json b/openrpc/src/examplePairingObjects/SendTransactionPairs.json new file mode 100644 index 000000000..5c22066b6 --- /dev/null +++ b/openrpc/src/examplePairingObjects/SendTransactionPairs.json @@ -0,0 +1,42 @@ +{ + "PendingTransaction": { + "name": "Pending Transaction", + "description": "Submitting a valid transaction using the `sendTransaction` method, resulting in a `PENDING` status.", + "params": [ + { "$ref": "#/components/examples/ValidSentTransaction" } + ], + "result": { + "$ref": "#/components/examples/PendingTransactionResult" + } + }, + "DuplicateTransaction": { + "name": "Duplicate Transaction", + "description": "Submitting a valid, yet duplicate transaction using the `sendTransaction` method, resulting in a `DUPLICATE` status.", + "params": [ + { "$ref": "#/components/examples/ValidSentTransaction" } + ], + "result": { + "$ref": "#/components/examples/DuplicateTransactionResult" + } + }, + "ErrorTransaction": { + "name": "Error Transaction", + "description": "Submitting an invalid transaction using the `sendTransaction` method, resulting in an `ERROR` status.", + "params": [ + { "$ref": "#/components/examples/InvalidSentTransaction" } + ], + "result": { + "$ref": "#/components/examples/ErrorTransactionResult" + } + }, + "TryAgainLaterTransaction": { + "name": "Try Again Later Transaction", + "description": "Submitting a valid transaction before an account's previously submitted transaction has settled using the `sendTransaction` method, resulting in a `TRY_AGAIN_LATER` status.", + "params": [ + { "$ref": "#/components/examples/ValidSentTransaction" } + ], + "result": { + "$ref": "#/components/examples/TryAgainLaterTransactionResult" + } + } +} diff --git a/openrpc/src/examplePairingObjects/SimulationPairs.json b/openrpc/src/examplePairingObjects/SimulationPairs.json new file mode 100644 index 000000000..3df5d03ee --- /dev/null +++ b/openrpc/src/examplePairingObjects/SimulationPairs.json @@ -0,0 +1,24 @@ +{ + "SuccessfulTransactionSimulation": { + "name": "Successful Transaction Simulation", + "description": "Transaction simulation that succeeds and returns the necessary information to prepare and submit the transaction.", + "params": [ + { "$ref": "#/components/examples/ValidContractTransaction" }, + { "$ref": "#/components/examples/DefaultResourceConfig" } + ], + "result": { + "$ref": "#/components/examples/SuccessfulSimulationResult" + } + }, + "FailedTransactionSimulation": { + "name": "Failed Transaction Simulation", + "description": "Transaction simulation that fails due to the contract invocation being constructed with an improper number of arguments.", + "params": [ + { "$ref": "#/components/examples/InvalidContractTransaction" }, + { "$ref": "#/components/examples/DefaultResourceConfig" } + ], + "result": { + "$ref": "#/components/examples/FailedSimulationResult" + } + } +} diff --git a/openrpc/src/examples/Events.json b/openrpc/src/examples/Events.json new file mode 100644 index 000000000..1422f07d8 --- /dev/null +++ b/openrpc/src/examples/Events.json @@ -0,0 +1,113 @@ +{ + "StartLedger": { + "name": "startLedger", + "value": 2530000 + }, + "NativeTransfersFilter": { + "name": "filters", + "value": [ + { + "type": "contract", + "contractIds": [ "CDLZFC3SYJYDZT7K67VZ75HPJVIEUVNIXF47ZG2FB2RMQQVU2HHGCYSC" ], + "topics": [ + [ "AAAADwAAAAh0cmFuc2Zlcg==", "*", "*", "*" ] + ] + } + ] + }, + "EmptyFilters": { + "name": "filters", + "value": [] + }, + "PaginationLimitTwo": { + "name": "pagination", + "value": { + "limit": 2 + } + }, + "TwoNativeTransferEvents": { + "name": "getEventsResult", + "value": { + "events": [ + { + "type": "contract", + "ledger": 2531021, + "ledgerClosedAt": "2023-11-15T08:58:25Z", + "contractId": "CDLZFC3SYJYDZT7K67VZ75HPJVIEUVNIXF47ZG2FB2RMQQVU2HHGCYSC", + "id": "0010870652420501504-0000000004", + "pagingToken": "0010870652420501504-0000000004", + "topic": [ + "AAAADwAAAAh0cmFuc2Zlcg==", + "AAAAEgAAAAAAAAAAjt5DlR5mhneFx/1Lct0ToW555OFzg/Y28++28cJXU+I=", + "AAAAEgAAAAAAAAAA33Fu/fnobL8/u8tyLCIZzpMXbsRWRBlfAuEv7fBvTwM=", + "AAAADgAAAAZuYXRpdmUAAA==" + ], + "value": { + "xdr": "AAAACgAAAAAAAAAAAAAAAAAAAJY=" + }, + "inSuccessfulContractCall": true + }, + { + "type": "contract", + "ledger": 2531273, + "ledgerClosedAt": "2023-11-15T09:20:38Z", + "contractId": "CDLZFC3SYJYDZT7K67VZ75HPJVIEUVNIXF47ZG2FB2RMQQVU2HHGCYSC", + "id": "0010871734752280576-0000000004", + "pagingToken": "0010871734752280576-0000000004", + "topic": [ + "AAAADwAAAAh0cmFuc2Zlcg==", + "AAAAEgAAAAAAAAAA+YQ+FM83vUUwQ6P3gKCMVTyC3/jO+DERXTWJDKEjagU=", + "AAAAEgAAAAAAAAAAwl0UMLLKYqMEedoowz8VnwbRywjcKEeQegoMmU6C9/0=", + "AAAADgAAAAZuYXRpdmUAAA==" + ], + "value": { + "xdr": "AAAACgAAAAAAAAAAAAAAAAAAAJY=" + }, + "inSuccessfulContractCall": true + } + ], + "latestLedger": 2539388 + } + }, + "AnyTwoEvents": { + "name": "getEventsResult", + "value": { + "events": [ + { + "type": "diagnostic", + "ledger": 2530001, + "ledgerClosedAt": "2023-11-15T07:29:05Z", + "contractId": "", + "id": "0010866271553875968-0000000000", + "pagingToken": "0010866271553875968-0000000000", + "topic": [ + "AAAADwAAAAdmbl9jYWxsAA==", + "AAAADQAAACCGE7Aj5EvXxmmTtyojmlFF/Qv3qMTyL7THd6SG4GHZxQ==", + "AAAADwAAABFzZXRfY3VycmVuY3lfcmF0ZQAAAA==" + ], + "value": { + "xdr": "AAAAEAAAAAEAAAACAAAADwAAAAN1c2QAAAAACQAAAAAAAAAAAAAAAAASHQg=" + }, + "inSuccessfulContractCall": true + }, + { + "type": "diagnostic", + "ledger": 2530001, + "ledgerClosedAt": "2023-11-15T07:29:05Z", + "contractId": "CCDBHMBD4RF5PRTJSO3SUI42KFC72C7XVDCPEL5UY532JBXAMHM4KOQ3", + "id": "0010866271553875968-0000000001", + "pagingToken": "0010866271553875968-0000000001", + "topic": [ + "AAAADwAAAAlmbl9yZXR1cm4AAAA=", + "AAAADwAAABFzZXRfY3VycmVuY3lfcmF0ZQAAAA==" + ], + "value": { + "xdr": "AAAAAQ==" + }, + "inSuccessfulContractCall": true + } + ], + "latestLedger": 2539529 + } + } +} diff --git a/openrpc/src/examples/LedgerEntries.json b/openrpc/src/examples/LedgerEntries.json new file mode 100644 index 000000000..c92d0f4e3 --- /dev/null +++ b/openrpc/src/examples/LedgerEntries.json @@ -0,0 +1,71 @@ +{ + "LedgerKeyCounterAddress": { + "name": "keys", + "summary": "ledger key for an address' counter entry", + "description": "A ledger key that will request a ledger entry defined using a tuple variant enum in a contract: `Counter(Address)`", + "value": [ + "AAAABgAAAAHMA/50/Q+w3Ni8UXWm/trxFBfAfl6De5kFttaMT0/ACwAAABAAAAABAAAAAgAAAA8AAAAHQ291bnRlcgAAAAASAAAAAAAAAAAg4dbAxsGAGICfBG3iT2cKGYQ6hK4sJWzZ6or1C5v6GAAAAAE=" + ] + }, + "LedgerEntryCounterAddressResult": { + "name": "getLedgerEntriesResult", + "value": { + "entries": [ + { + "key": "AAAAB+qfy4GuVKKfazvyk4R9P9fpo2n9HICsr+xqvVcTF+DC", + "xdr": "AAAABgAAAAAAAAABzAP+dP0PsNzYvFF1pv7a8RQXwH5eg3uZBbbWjE9PwAsAAAAQAAAAAQAAAAIAAAAPAAAAB0NvdW50ZXIAAAAAEgAAAAAAAAAAIOHWwMbBgBiAnwRt4k9nChmEOoSuLCVs2eqK9Qub+hgAAAABAAAAAwAAAAw=", + "lastModifiedLedgerSeq": 2552504 + } + ], + "latestLedger": 2552990 + } + }, + "LedgerKeyContractBalance": { + "name": "keys", + "summary": "ledger key for a contract's native XLM balance", + "description": "A ledger key that will request a ledger entry corresponding to a contract's balance on the native XLM Stellar Asset Contract.", + "value": [ + "AAAABgAAAAHXkotywnA8z+r365/0701QSlWouXn8m0UOoshCtNHOYQAAABAAAAABAAAAAgAAAA8AAAAHQmFsYW5jZQAAAAASAAAAAcwD/nT9D7Dc2LxRdab+2vEUF8B+XoN7mQW21oxPT8ALAAAAAQ==" + ] + }, + "LedgerEntryContractBalanceResult": { + "name": "getLedgerEntriesResult", + "value": { + "entries": [ + { + "key": "AAAABgAAAAHXkotywnA8z+r365/0701QSlWouXn8m0UOoshCtNHOYQAAABAAAAABAAAAAgAAAA8AAAAHQmFsYW5jZQAAAAASAAAAAcwD/nT9D7Dc2LxRdab+2vEUF8B+XoN7mQW21oxPT8ALAAAAAQ==", + "xdr": "AAAABgAAAAAAAAAB15KLcsJwPM/q9+uf9O9NUEpVqLl5/JtFDqLIQrTRzmEAAAAQAAAAAQAAAAIAAAAPAAAAB0JhbGFuY2UAAAAAEgAAAAHMA/50/Q+w3Ni8UXWm/trxFBfAfl6De5kFttaMT0/ACwAAAAEAAAARAAAAAQAAAAMAAAAPAAAABmFtb3VudAAAAAAACgAAAAAAAAAAAAAAAB3NZQAAAAAPAAAACmF1dGhvcml6ZWQAAAAAAAAAAAABAAAADwAAAAhjbGF3YmFjawAAAAAAAAAA", + "lastModifiedLedgerSeq": 2553612 + } + ], + "latestLedger": 2553713 + } + }, + "CombinedLedgerKeys": { + "name": "keys", + "summary": "ledger keys for multiple ledger entries", + "description": "Two ledger keys: One for a counter entry, and one for a contract's native XLM balance.", + "value": [ + "AAAABgAAAAHMA/50/Q+w3Ni8UXWm/trxFBfAfl6De5kFttaMT0/ACwAAABAAAAABAAAAAgAAAA8AAAAHQ291bnRlcgAAAAASAAAAAAAAAAAg4dbAxsGAGICfBG3iT2cKGYQ6hK4sJWzZ6or1C5v6GAAAAAE=", + "AAAABgAAAAHXkotywnA8z+r365/0701QSlWouXn8m0UOoshCtNHOYQAAABAAAAABAAAAAgAAAA8AAAAHQmFsYW5jZQAAAAASAAAAAcwD/nT9D7Dc2LxRdab+2vEUF8B+XoN7mQW21oxPT8ALAAAAAQ==" + ] + }, + "CombinedLedgerEntryResult": { + "name": "getLedgerEntriesResult", + "value": { + "entries": [ + { + "key": "AAAABgAAAAHMA/50/Q+w3Ni8UXWm/trxFBfAfl6De5kFttaMT0/ACwAAABAAAAABAAAAAgAAAA8AAAAHQ291bnRlcgAAAAASAAAAAAAAAAAg4dbAxsGAGICfBG3iT2cKGYQ6hK4sJWzZ6or1C5v6GAAAAAE=", + "xdr": "AAAABgAAAAAAAAAB15KLcsJwPM/q9+uf9O9NUEpVqLl5/JtFDqLIQrTRzmEAAAAQAAAAAQAAAAIAAAAPAAAAB0JhbGFuY2UAAAAAEgAAAAHMA/50/Q+w3Ni8UXWm/trxFBfAfl6De5kFttaMT0/ACwAAAAEAAAARAAAAAQAAAAMAAAAPAAAABmFtb3VudAAAAAAACgAAAAAAAAAAAAAAAB3NZQAAAAAPAAAACmF1dGhvcml6ZWQAAAAAAAAAAAABAAAADwAAAAhjbGF3YmFjawAAAAAAAAAA", + "lastModifiedLedgerSeq": 2553612 + }, + { + "key": "AAAABgAAAAHXkotywnA8z+r365/0701QSlWouXn8m0UOoshCtNHOYQAAABAAAAABAAAAAgAAAA8AAAAHQmFsYW5jZQAAAAASAAAAAcwD/nT9D7Dc2LxRdab+2vEUF8B+XoN7mQW21oxPT8ALAAAAAQ==", + "xdr": "AAAABgAAAAAAAAABzAP+dP0PsNzYvFF1pv7a8RQXwH5eg3uZBbbWjE9PwAsAAAAQAAAAAQAAAAIAAAAPAAAAB0NvdW50ZXIAAAAAEgAAAAAAAAAAIOHWwMbBgBiAnwRt4k9nChmEOoSuLCVs2eqK9Qub+hgAAAABAAAAAwAAAAw=", + "lastModifiedLedgerSeq": 2552504 + } + ], + "latestLedger": 2553767 + } + } +} diff --git a/openrpc/src/examples/Simulations.json b/openrpc/src/examples/Simulations.json new file mode 100644 index 000000000..522574cc3 --- /dev/null +++ b/openrpc/src/examples/Simulations.json @@ -0,0 +1,59 @@ +{ + "ValidContractTransaction": { + "name": "transaction", + "summary": "a valid transaction", + "description": "A transaction that will correctly invoke a contract function.", + "value": "AAAAAgAAAAAg4dbAxsGAGICfBG3iT2cKGYQ6hK4sJWzZ6or1C5v6GAAAAGQAJsOiAAAAEQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAGAAAAAAAAAABzAP+dP0PsNzYvFF1pv7a8RQXwH5eg3uZBbbWjE9PwAsAAAAJaW5jcmVtZW50AAAAAAAAAgAAABIAAAAAAAAAACDh1sDGwYAYgJ8EbeJPZwoZhDqEriwlbNnqivULm/oYAAAAAwAAAAMAAAAAAAAAAAAAAAA=" + }, + "SuccessfulSimulationResult": { + "name": "simulateTransactionResult", + "value": { + "transactionData": "AAAAAAAAAAIAAAAGAAAAAcwD/nT9D7Dc2LxRdab+2vEUF8B+XoN7mQW21oxPT8ALAAAAFAAAAAEAAAAHy8vNUZ8vyZ2ybPHW0XbSrRtP7gEWsJ6zDzcfY9P8z88AAAABAAAABgAAAAHMA/50/Q+w3Ni8UXWm/trxFBfAfl6De5kFttaMT0/ACwAAABAAAAABAAAAAgAAAA8AAAAHQ291bnRlcgAAAAASAAAAAAAAAAAg4dbAxsGAGICfBG3iT2cKGYQ6hK4sJWzZ6or1C5v6GAAAAAEAHfKyAAAFiAAAAIgAAAAAAAAAAw==", + "minResourceFee": "90353", + "events": [ + "AAAAAQAAAAAAAAAAAAAAAgAAAAAAAAADAAAADwAAAAdmbl9jYWxsAAAAAA0AAAAgzAP+dP0PsNzYvFF1pv7a8RQXwH5eg3uZBbbWjE9PwAsAAAAPAAAACWluY3JlbWVudAAAAAAAABAAAAABAAAAAgAAABIAAAAAAAAAACDh1sDGwYAYgJ8EbeJPZwoZhDqEriwlbNnqivULm/oYAAAAAwAAAAM=", + "AAAAAQAAAAAAAAABzAP+dP0PsNzYvFF1pv7a8RQXwH5eg3uZBbbWjE9PwAsAAAACAAAAAAAAAAIAAAAPAAAACWZuX3JldHVybgAAAAAAAA8AAAAJaW5jcmVtZW50AAAAAAAAAwAAAAw=" + ], + "results": [ + { + "auth": [], + "xdr": "AAAAAwAAAAw=" + } + ], + "cost": { + "cpuInsns": "1635562", + "memBytes": "1295756" + }, + "latestLedger": 2552139 + } + }, + "InvalidContractTransaction": { + "name": "transaction", + "summary": "an invalid transaction", + "description": "A transaction that attempts to invoke a contract function with the wrong number of arguments.", + "value": "AAAAAgAAAAAg4dbAxsGAGICfBG3iT2cKGYQ6hK4sJWzZ6or1C5v6GAAAAGQAJsOiAAAADwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAGAAAAAAAAAABzAP+dP0PsNzYvFF1pv7a8RQXwH5eg3uZBbbWjE9PwAsAAAAJaW5jcmVtZW50AAAAAAAAAQAAAAMAAAADAAAAAAAAAAAAAAAA" + }, + "FailedSimulationResult": { + "name": "simulateTransactionResult", + "value": { + "error": "host invocation failed\n\nCaused by:\n HostError: Error(WasmVm, InternalError)\n \n Event log (newest first):\n 0: [Diagnostic Event] contract:cc03fe74fd0fb0dcd8bc5175a6fedaf11417c07e5e837b9905b6d68c4f4fc00b, topics:[error, Error(WasmVm, InternalError)], data:[\"VM call failed: Func(MismatchingParameterLen)\", increment]\n 1: [Diagnostic Event] topics:[fn_call, Bytes(cc03fe74fd0fb0dcd8bc5175a6fedaf11417c07e5e837b9905b6d68c4f4fc00b), increment], data:3\n \n Backtrace (newest first):\n 0: soroban_env_host::vm::Vm::invoke_function_raw\n 1: soroban_env_host::host::frame::::with_frame\n 2: soroban_env_host::host::frame::::call_n_internal\n 3: soroban_env_host::host::frame::::invoke_function\n 4: preflight::preflight::preflight_invoke_hf_op\n 5: preflight::preflight_invoke_hf_op::{{closure}}\n 6: core::ops::function::FnOnce::call_once{{vtable.shim}}\n 7: preflight::catch_preflight_panic\n 8: _cgo_0b49d6ed4a0b_Cfunc_preflight_invoke_hf_op\n at tmp/go-build/cgo-gcc-prolog:103:11\n 9: runtime.asmcgocall\n at ./runtime/asm_amd64.s:848\n \n ", + "events": [ + "AAAAAAAAAAAAAAAAAAAAAgAAAAAAAAADAAAADwAAAAdmbl9jYWxsAAAAAA0AAAAgzAP+dP0PsNzYvFF1pv7a8RQXwH5eg3uZBbbWjE9PwAsAAAAPAAAACWluY3JlbWVudAAAAAAAAAMAAAAD", + "AAAAAAAAAAAAAAABzAP+dP0PsNzYvFF1pv7a8RQXwH5eg3uZBbbWjE9PwAsAAAACAAAAAAAAAAIAAAAPAAAABWVycm9yAAAAAAAAAgAAAAEAAAAHAAAAEAAAAAEAAAACAAAADgAAAC1WTSBjYWxsIGZhaWxlZDogRnVuYyhNaXNtYXRjaGluZ1BhcmFtZXRlckxlbikAAAAAAAAPAAAACWluY3JlbWVudAAAAA==" + ], + "cost": { + "cpuInsns": "0", + "memBytes": "0" + }, + "latestLedger": 2552013 + } + }, + "DefaultResourceConfig": { + "name": "resourceConfig", + "summary": "the default resource configuration", + "description": "The default value for the (optional) resource configuration object for transaction simulation.", + "value": { + "instructionLeeway": 3000000 + } + } +} diff --git a/openrpc/src/examples/Transactions.json b/openrpc/src/examples/Transactions.json new file mode 100644 index 000000000..6e3721bd8 --- /dev/null +++ b/openrpc/src/examples/Transactions.json @@ -0,0 +1,111 @@ +{ + "RecentTransactionHash": { + "name": "hash", + "summary": "a recent transaction hash", + "description": "Transaction hash that hit the network recently enough to still be visible through the RPC node.", + "value": "6bc97bddc21811c626839baf4ab574f4f9f7ddbebb44d286ae504396d4e752da" + }, + "TooOldTransactionHash": { + "name": "hash", + "summary": "an old transaction hash", + "description": "Transaction has that is old enough for the RPC node to have forgotten about it.", + "value": "85f7aa8bfda425b98c0e53ffe56796ffd8865ec2fcc3ad71abf120801e2a14e5" + }, + "FailedTransactionHash": { + "name": "hash", + "summary": "a failed transaction hash", + "description": "Transaction hash that failed to be accepted into a ledger.", + "value": "2e4c699cbcb8ee83fffb857c9579bcc91f73f0df2a0444292f66e37563785929" + }, + "SuccessTransactionResult": { + "name": "getTransactionResult", + "value": { + "status": "SUCCESS", + "latestLedger": 2540076, + "latestLedgerCloseTime": "1700086333", + "oldestLedger": 2538637, + "oldestLedgerCloseTime": "1700078796", + "applicationOrder": 1, + "envelopeXdr": "AAAAAgAAAADGFY14/R1KD0VGtTbi5Yp4d7LuMW0iQbLM/AUiGKj5owCpsoQAJY3OAAAjqgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAGAAAAAAAAAABhhOwI+RL18Zpk7cqI5pRRf0L96jE8i+0x3ekhuBh2cUAAAARc2V0X2N1cnJlbmN5X3JhdGUAAAAAAAACAAAADwAAAANldXIAAAAACQAAAAAAAAAAAAAAAAARCz4AAAABAAAAAAAAAAAAAAABhhOwI+RL18Zpk7cqI5pRRf0L96jE8i+0x3ekhuBh2cUAAAARc2V0X2N1cnJlbmN5X3JhdGUAAAAAAAACAAAADwAAAANldXIAAAAACQAAAAAAAAAAAAAAAAARCz4AAAAAAAAAAQAAAAAAAAABAAAAB4408vVXuLU3mry897TfPpYjjsSN7n42REos241RddYdAAAAAQAAAAYAAAABhhOwI+RL18Zpk7cqI5pRRf0L96jE8i+0x3ekhuBh2cUAAAAUAAAAAQFvcYAAAImAAAAHxAAAAAAAAAACAAAAARio+aMAAABATbFMyom/TUz87wHex0LoYZA8jbNJkXbaDSgmOdk+wSBFJuMuta+/vSlro0e0vK2+1FqD/zWHZeYig4pKmM3rDA==", + "resultXdr": "AAAAAAARFy8AAAAAAAAAAQAAAAAAAAAYAAAAAMu8SHUN67hTUJOz3q+IrH9M/4dCVXaljeK6x1Ss20YWAAAAAA==", + "resultMetaXdr": "AAAAAwAAAAAAAAACAAAAAwAmwiAAAAAAAAAAAMYVjXj9HUoPRUa1NuLlinh3su4xbSJBssz8BSIYqPmjAAAAFUHZob0AJY3OAAAjqQAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAMAAAAAACbCHwAAAABlVUH3AAAAAAAAAAEAJsIgAAAAAAAAAADGFY14/R1KD0VGtTbi5Yp4d7LuMW0iQbLM/AUiGKj5owAAABVB2aG9ACWNzgAAI6oAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAADAAAAAAAmwiAAAAAAZVVB/AAAAAAAAAABAAAAAgAAAAMAJsIfAAAABgAAAAAAAAABhhOwI+RL18Zpk7cqI5pRRf0L96jE8i+0x3ekhuBh2cUAAAAUAAAAAQAAABMAAAAAjjTy9Ve4tTeavLz3tN8+liOOxI3ufjZESizbjVF11h0AAAABAAAABQAAABAAAAABAAAAAQAAAA8AAAAJQ29yZVN0YXRlAAAAAAAAEQAAAAEAAAAGAAAADwAAAAVhZG1pbgAAAAAAABIAAAAAAAAAADn1LT+CCK/HiHMChoEi/AtPrkos4XRR2E45Pr25lb3/AAAADwAAAAljb2xfdG9rZW4AAAAAAAASAAAAAdeSi3LCcDzP6vfrn/TvTVBKVai5efybRQ6iyEK00c5hAAAADwAAAAxvcmFjbGVfYWRtaW4AAAASAAAAAAAAAADGFY14/R1KD0VGtTbi5Yp4d7LuMW0iQbLM/AUiGKj5owAAAA8AAAAKcGFuaWNfbW9kZQAAAAAAAAAAAAAAAAAPAAAAEHByb3RvY29sX21hbmFnZXIAAAASAAAAAAAAAAAtSfyAwmj05lZ0WduHsQYQZgvahCNVtZyqS2HRC99kyQAAAA8AAAANc3RhYmxlX2lzc3VlcgAAAAAAABIAAAAAAAAAAEM5BlXva0R5UN6SCMY+6evwJa4mY/f062z0TKLnqN4wAAAAEAAAAAEAAAACAAAADwAAAAhDdXJyZW5jeQAAAA8AAAADZXVyAAAAABEAAAABAAAABQAAAA8AAAAGYWN0aXZlAAAAAAAAAAAAAQAAAA8AAAAIY29udHJhY3QAAAASAAAAAUGpebFxuPbvxZFzOxh8TWAxUwFgraPxPuJEY/8yhiYEAAAADwAAAAxkZW5vbWluYXRpb24AAAAPAAAAA2V1cgAAAAAPAAAAC2xhc3RfdXBkYXRlAAAAAAUAAAAAZVVBvgAAAA8AAAAEcmF0ZQAAAAkAAAAAAAAAAAAAAAAAEQb8AAAAEAAAAAEAAAACAAAADwAAAAhDdXJyZW5jeQAAAA8AAAADdXNkAAAAABEAAAABAAAABQAAAA8AAAAGYWN0aXZlAAAAAAAAAAAAAQAAAA8AAAAIY29udHJhY3QAAAASAAAAATUEqdkvrE2LnSiwOwed3v4VEaulOEiS1rxQw6rJkfxCAAAADwAAAAxkZW5vbWluYXRpb24AAAAPAAAAA3VzZAAAAAAPAAAAC2xhc3RfdXBkYXRlAAAAAAUAAAAAZVVB9wAAAA8AAAAEcmF0ZQAAAAkAAAAAAAAAAAAAAAAAEnzuAAAAEAAAAAEAAAACAAAADwAAAApWYXVsdHNJbmZvAAAAAAAPAAAAA2V1cgAAAAARAAAAAQAAAAgAAAAPAAAADGRlbm9taW5hdGlvbgAAAA8AAAADZXVyAAAAAA8AAAAKbG93ZXN0X2tleQAAAAAAEAAAAAEAAAACAAAADwAAAARTb21lAAAAEQAAAAEAAAADAAAADwAAAAdhY2NvdW50AAAAABIAAAAAAAAAAGKaH7iFUU2kfGOJGONeYuJ2U2QUeQ+zOEfYZvAoeHDsAAAADwAAAAxkZW5vbWluYXRpb24AAAAPAAAAA2V1cgAAAAAPAAAABWluZGV4AAAAAAAACQAAAAAAAAAAAAAAA7msoAAAAAAPAAAADG1pbl9jb2xfcmF0ZQAAAAkAAAAAAAAAAAAAAAAAp9jAAAAADwAAABFtaW5fZGVidF9jcmVhdGlvbgAAAAAAAAkAAAAAAAAAAAAAAAA7msoAAAAADwAAABBvcGVuaW5nX2NvbF9yYXRlAAAACQAAAAAAAAAAAAAAAACveeAAAAAPAAAACXRvdGFsX2NvbAAAAAAAAAkAAAAAAAAAAAAAAAlQL5AAAAAADwAAAAp0b3RhbF9kZWJ0AAAAAAAJAAAAAAAAAAAAAAAAlQL5AAAAAA8AAAAMdG90YWxfdmF1bHRzAAAABQAAAAAAAAABAAAAEAAAAAEAAAACAAAADwAAAApWYXVsdHNJbmZvAAAAAAAPAAAAA3VzZAAAAAARAAAAAQAAAAgAAAAPAAAADGRlbm9taW5hdGlvbgAAAA8AAAADdXNkAAAAAA8AAAAKbG93ZXN0X2tleQAAAAAAEAAAAAEAAAACAAAADwAAAARTb21lAAAAEQAAAAEAAAADAAAADwAAAAdhY2NvdW50AAAAABIAAAAAAAAAAGKaH7iFUU2kfGOJGONeYuJ2U2QUeQ+zOEfYZvAoeHDsAAAADwAAAAxkZW5vbWluYXRpb24AAAAPAAAAA3VzZAAAAAAPAAAABWluZGV4AAAAAAAACQAAAAAAAAAAAAAAA7msoAAAAAAPAAAADG1pbl9jb2xfcmF0ZQAAAAkAAAAAAAAAAAAAAAAAp9jAAAAADwAAABFtaW5fZGVidF9jcmVhdGlvbgAAAAAAAAkAAAAAAAAAAAAAAAA7msoAAAAADwAAABBvcGVuaW5nX2NvbF9yYXRlAAAACQAAAAAAAAAAAAAAAACveeAAAAAPAAAACXRvdGFsX2NvbAAAAAAAAAkAAAAAAAAAAAAAABF2WS4AAAAADwAAAAp0b3RhbF9kZWJ0AAAAAAAJAAAAAAAAAAAAAAAA7msoAAAAAA8AAAAMdG90YWxfdmF1bHRzAAAABQAAAAAAAAACAAAAAAAAAAEAJsIgAAAABgAAAAAAAAABhhOwI+RL18Zpk7cqI5pRRf0L96jE8i+0x3ekhuBh2cUAAAAUAAAAAQAAABMAAAAAjjTy9Ve4tTeavLz3tN8+liOOxI3ufjZESizbjVF11h0AAAABAAAABQAAABAAAAABAAAAAQAAAA8AAAAJQ29yZVN0YXRlAAAAAAAAEQAAAAEAAAAGAAAADwAAAAVhZG1pbgAAAAAAABIAAAAAAAAAADn1LT+CCK/HiHMChoEi/AtPrkos4XRR2E45Pr25lb3/AAAADwAAAAljb2xfdG9rZW4AAAAAAAASAAAAAdeSi3LCcDzP6vfrn/TvTVBKVai5efybRQ6iyEK00c5hAAAADwAAAAxvcmFjbGVfYWRtaW4AAAASAAAAAAAAAADGFY14/R1KD0VGtTbi5Yp4d7LuMW0iQbLM/AUiGKj5owAAAA8AAAAKcGFuaWNfbW9kZQAAAAAAAAAAAAAAAAAPAAAAEHByb3RvY29sX21hbmFnZXIAAAASAAAAAAAAAAAtSfyAwmj05lZ0WduHsQYQZgvahCNVtZyqS2HRC99kyQAAAA8AAAANc3RhYmxlX2lzc3VlcgAAAAAAABIAAAAAAAAAAEM5BlXva0R5UN6SCMY+6evwJa4mY/f062z0TKLnqN4wAAAAEAAAAAEAAAACAAAADwAAAAhDdXJyZW5jeQAAAA8AAAADZXVyAAAAABEAAAABAAAABQAAAA8AAAAGYWN0aXZlAAAAAAAAAAAAAQAAAA8AAAAIY29udHJhY3QAAAASAAAAAUGpebFxuPbvxZFzOxh8TWAxUwFgraPxPuJEY/8yhiYEAAAADwAAAAxkZW5vbWluYXRpb24AAAAPAAAAA2V1cgAAAAAPAAAAC2xhc3RfdXBkYXRlAAAAAAUAAAAAZVVB/AAAAA8AAAAEcmF0ZQAAAAkAAAAAAAAAAAAAAAAAEQs+AAAAEAAAAAEAAAACAAAADwAAAAhDdXJyZW5jeQAAAA8AAAADdXNkAAAAABEAAAABAAAABQAAAA8AAAAGYWN0aXZlAAAAAAAAAAAAAQAAAA8AAAAIY29udHJhY3QAAAASAAAAATUEqdkvrE2LnSiwOwed3v4VEaulOEiS1rxQw6rJkfxCAAAADwAAAAxkZW5vbWluYXRpb24AAAAPAAAAA3VzZAAAAAAPAAAAC2xhc3RfdXBkYXRlAAAAAAUAAAAAZVVB9wAAAA8AAAAEcmF0ZQAAAAkAAAAAAAAAAAAAAAAAEnzuAAAAEAAAAAEAAAACAAAADwAAAApWYXVsdHNJbmZvAAAAAAAPAAAAA2V1cgAAAAARAAAAAQAAAAgAAAAPAAAADGRlbm9taW5hdGlvbgAAAA8AAAADZXVyAAAAAA8AAAAKbG93ZXN0X2tleQAAAAAAEAAAAAEAAAACAAAADwAAAARTb21lAAAAEQAAAAEAAAADAAAADwAAAAdhY2NvdW50AAAAABIAAAAAAAAAAGKaH7iFUU2kfGOJGONeYuJ2U2QUeQ+zOEfYZvAoeHDsAAAADwAAAAxkZW5vbWluYXRpb24AAAAPAAAAA2V1cgAAAAAPAAAABWluZGV4AAAAAAAACQAAAAAAAAAAAAAAA7msoAAAAAAPAAAADG1pbl9jb2xfcmF0ZQAAAAkAAAAAAAAAAAAAAAAAp9jAAAAADwAAABFtaW5fZGVidF9jcmVhdGlvbgAAAAAAAAkAAAAAAAAAAAAAAAA7msoAAAAADwAAABBvcGVuaW5nX2NvbF9yYXRlAAAACQAAAAAAAAAAAAAAAACveeAAAAAPAAAACXRvdGFsX2NvbAAAAAAAAAkAAAAAAAAAAAAAAAlQL5AAAAAADwAAAAp0b3RhbF9kZWJ0AAAAAAAJAAAAAAAAAAAAAAAAlQL5AAAAAA8AAAAMdG90YWxfdmF1bHRzAAAABQAAAAAAAAABAAAAEAAAAAEAAAACAAAADwAAAApWYXVsdHNJbmZvAAAAAAAPAAAAA3VzZAAAAAARAAAAAQAAAAgAAAAPAAAADGRlbm9taW5hdGlvbgAAAA8AAAADdXNkAAAAAA8AAAAKbG93ZXN0X2tleQAAAAAAEAAAAAEAAAACAAAADwAAAARTb21lAAAAEQAAAAEAAAADAAAADwAAAAdhY2NvdW50AAAAABIAAAAAAAAAAGKaH7iFUU2kfGOJGONeYuJ2U2QUeQ+zOEfYZvAoeHDsAAAADwAAAAxkZW5vbWluYXRpb24AAAAPAAAAA3VzZAAAAAAPAAAABWluZGV4AAAAAAAACQAAAAAAAAAAAAAAA7msoAAAAAAPAAAADG1pbl9jb2xfcmF0ZQAAAAkAAAAAAAAAAAAAAAAAp9jAAAAADwAAABFtaW5fZGVidF9jcmVhdGlvbgAAAAAAAAkAAAAAAAAAAAAAAAA7msoAAAAADwAAABBvcGVuaW5nX2NvbF9yYXRlAAAACQAAAAAAAAAAAAAAAACveeAAAAAPAAAACXRvdGFsX2NvbAAAAAAAAAkAAAAAAAAAAAAAABF2WS4AAAAADwAAAAp0b3RhbF9kZWJ0AAAAAAAJAAAAAAAAAAAAAAAA7msoAAAAAA8AAAAMdG90YWxfdmF1bHRzAAAABQAAAAAAAAACAAAAAAAAAAAAAAABAAAAAAAAAAAAAAABAAAAFQAAAAEAAAAAAAAAAAAAAAIAAAAAAAAAAwAAAA8AAAAHZm5fY2FsbAAAAAANAAAAIIYTsCPkS9fGaZO3KiOaUUX9C/eoxPIvtMd3pIbgYdnFAAAADwAAABFzZXRfY3VycmVuY3lfcmF0ZQAAAAAAABAAAAABAAAAAgAAAA8AAAADZXVyAAAAAAkAAAAAAAAAAAAAAAAAEQs+AAAAAQAAAAAAAAABhhOwI+RL18Zpk7cqI5pRRf0L96jE8i+0x3ekhuBh2cUAAAACAAAAAAAAAAIAAAAPAAAACWZuX3JldHVybgAAAAAAAA8AAAARc2V0X2N1cnJlbmN5X3JhdGUAAAAAAAABAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAACAAAADwAAAAxjb3JlX21ldHJpY3MAAAAPAAAACnJlYWRfZW50cnkAAAAAAAUAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAgAAAA8AAAAMY29yZV9tZXRyaWNzAAAADwAAAAt3cml0ZV9lbnRyeQAAAAAFAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAIAAAAPAAAADGNvcmVfbWV0cmljcwAAAA8AAAAQbGVkZ2VyX3JlYWRfYnl0ZQAAAAUAAAAAAACJaAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAgAAAA8AAAAMY29yZV9tZXRyaWNzAAAADwAAABFsZWRnZXJfd3JpdGVfYnl0ZQAAAAAAAAUAAAAAAAAHxAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAgAAAA8AAAAMY29yZV9tZXRyaWNzAAAADwAAAA1yZWFkX2tleV9ieXRlAAAAAAAABQAAAAAAAABUAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAACAAAADwAAAAxjb3JlX21ldHJpY3MAAAAPAAAADndyaXRlX2tleV9ieXRlAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAIAAAAPAAAADGNvcmVfbWV0cmljcwAAAA8AAAAOcmVhZF9kYXRhX2J5dGUAAAAAAAUAAAAAAAAH6AAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAgAAAA8AAAAMY29yZV9tZXRyaWNzAAAADwAAAA93cml0ZV9kYXRhX2J5dGUAAAAABQAAAAAAAAfEAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAACAAAADwAAAAxjb3JlX21ldHJpY3MAAAAPAAAADnJlYWRfY29kZV9ieXRlAAAAAAAFAAAAAAAAgYAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAIAAAAPAAAADGNvcmVfbWV0cmljcwAAAA8AAAAPd3JpdGVfY29kZV9ieXRlAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAgAAAA8AAAAMY29yZV9tZXRyaWNzAAAADwAAAAplbWl0X2V2ZW50AAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAIAAAAPAAAADGNvcmVfbWV0cmljcwAAAA8AAAAPZW1pdF9ldmVudF9ieXRlAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAgAAAA8AAAAMY29yZV9tZXRyaWNzAAAADwAAAAhjcHVfaW5zbgAAAAUAAAAAATLTQAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAgAAAA8AAAAMY29yZV9tZXRyaWNzAAAADwAAAAhtZW1fYnl0ZQAAAAUAAAAAACqhewAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAgAAAA8AAAAMY29yZV9tZXRyaWNzAAAADwAAABFpbnZva2VfdGltZV9uc2VjcwAAAAAAAAUAAAAAABFfSQAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAgAAAA8AAAAMY29yZV9tZXRyaWNzAAAADwAAAA9tYXhfcndfa2V5X2J5dGUAAAAABQAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAACAAAADwAAAAxjb3JlX21ldHJpY3MAAAAPAAAAEG1heF9yd19kYXRhX2J5dGUAAAAFAAAAAAAAB+gAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAIAAAAPAAAADGNvcmVfbWV0cmljcwAAAA8AAAAQbWF4X3J3X2NvZGVfYnl0ZQAAAAUAAAAAAACBgAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAgAAAA8AAAAMY29yZV9tZXRyaWNzAAAADwAAABNtYXhfZW1pdF9ldmVudF9ieXRlAAAAAAUAAAAAAAAAAA==", + "ledger": 2540064, + "createdAt": "1700086268" + } + }, + "NotFoundTransactionResult": { + "name": "getTransactionResult", + "value": { + "status": "NOT_FOUND", + "latestLedger": 2540099, + "latestLedgerCloseTime": "1700086455", + "oldestLedger": 2538660, + "oldestLedgerCloseTime": "1700078913" + } + }, + "FailedTransactionResult": { + "name": "getTransactionResult", + "value": { + "status": "FAILED", + "latestLedger": 2540124, + "latestLedgerCloseTime": "1700086588", + "oldestLedger": 2538685, + "oldestLedgerCloseTime": "1700079044", + "applicationOrder": 2, + "envelopeXdr": "AAAAAgAAAABZvyflsZ5FumtSdS+t0/YnWWML3YWdzX1BGk/Qy786aQAAAG4AFyJfAABKvgAAAAIAAAAAAAAAAQAmwlEAJsK1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAE/fr1kk7lqP0srDPW4JExF1MWmpsG49FsRE3b0vMCmzAAAAAUVVUlMAAAAArPm4/+q9j4dl178h2JjrqjgRXnQ1WiGkyVy+nv3nGkEAAAAAAVjZQAAAAAAAAAABy786aQAAAEDybJBtG7V5NrRFpoboRUN/5ecys5wSUgag3CnTtWLmq3JDOxrEjK9noAnu/F5O0E8iXuVzX9BxZSO9JZ+Tw6kK", + "resultXdr": "AAAAAAAAAGT/////AAAAAQAAAAAAAAAB////+gAAAAA=", + "resultMetaXdr": "AAAAAwAAAAAAAAACAAAAAwAmwlIAAAAAAAAAAFm/J+WxnkW6a1J1L63T9idZYwvdhZ3NfUEaT9DLvzppAAAAF0g7NXsAFyJfAABKvQAAAAEAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAMAAAAAACbCSwAAAABlVULiAAAAAAAAAAEAJsJSAAAAAAAAAABZvyflsZ5FumtSdS+t0/YnWWML3YWdzX1BGk/Qy786aQAAABdIOzV7ABciXwAASr4AAAABAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAADAAAAAAAmwlIAAAAAZVVDBwAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAA==", + "ledger": 2540114, + "createdAt": "1700086535" + } + }, + "ValidSentTransaction": { + "name": "transaction", + "summary": "a valid transaction sent to the network", + "description": "A valid Stellar transaction that was sent to the network successfully.", + "value": "AAAAAgAAAAAg4dbAxsGAGICfBG3iT2cKGYQ6hK4sJWzZ6or1C5v6GAAAAGQAJsOiAAAADQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAACgAAAAVIZWxsbwAAAAAAAAEAAAAMU29yb2JhbiBEb2NzAAAAAAAAAAELm/oYAAAAQATr6Ghp/DNO7S6JjEFwcJ9a+dvI6NJr7I/2eQttvoovjQ8te4zKKaapC3mbmx6ld6YKL5T81mxs45TjzdG5zw0=" + }, + "InvalidSentTransaction": { + "name": "transaction", + "summary": "an invalid transaction sent to the network", + "description": "An invalid Stellar transaction that was sent to the network, built with an incorrect sequence number.", + "value": "AAAAAgAAAAAg4dbAxsGAGICfBG3iT2cKGYQ6hK4sJWzZ6or1C5v6GAAAAGQAAAAAAAAACgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAACgAAAAVIZWxsbwAAAAAAAAEAAAAMU29yb2JhbiBEb2NzAAAAAAAAAAELm/oYAAAAQMQkfl8sdCYQIOdJB0TyazJ126y2TFRjL8yNHSb4TTsH5Ym6qM6gkTx1ENRZ0PFprVGusMTHISzdPHYJ4njBZAQ=" + }, + "PendingTransactionResult": { + "name": "sendTransactionResult", + "value": { + "status": "PENDING", + "hash": "d8ec9b68780314ffdfdfc2194b1b35dd27d7303c3bceaef6447e31631a1419dc", + "latestLedger": 2553978, + "latestLedgerCloseTime": "1700159337" + } + }, + "DuplicateTransactionResult": { + "name": "sendTransactionResult", + "value": { + "status": "DUPLICATE", + "hash": "d8ec9b68780314ffdfdfc2194b1b35dd27d7303c3bceaef6447e31631a1419dc", + "latestLedger": 2553978, + "latestLedgerCloseTime": "1700159337" + } + }, + "ErrorTransactionResult": { + "name": "sendTransactionResult", + "value": { + "errorResultXdr": "AAAAAAAAAGT////7AAAAAA==", + "status": "ERROR", + "hash": "84a5f62bff422581dda019811daed0868a3db41833ad6e90a12f0d7db1be8167", + "latestLedger": 2553978, + "latestLedgerCloseTime": "1700159337" + } + }, + "TryAgainLaterTransactionResult": { + "name": "sendTransactionResult", + "value": { + "status": "TRY_AGAIN_LATER", + "hash": "d8ec9b68780314ffdfdfc2194b1b35dd27d7303c3bceaef6447e31631a1419dc", + "latestLedger": 2553978, + "latestLedgerCloseTime": "1700159337" + } + } +} diff --git a/openrpc/src/methods/getEvents.json b/openrpc/src/methods/getEvents.json new file mode 100644 index 000000000..558b1d847 --- /dev/null +++ b/openrpc/src/methods/getEvents.json @@ -0,0 +1,42 @@ +{ + "name": "getEvents", + "summary": "returns contract events", + "description": "Clients can request a filtered list of events emitted by a given ledger range.\n\nSoroban-RPC will support querying within a maximum 24 hours of recent ledgers.\n\nNote, this could be used by the client to only prompt a refresh when there is a new ledger with relevant events. It should also be used by backend Dapp components to \"ingest\" events into their own database for querying and serving.\n\nIf making multiple requests, clients should deduplicate any events received, based on the event's unique id field. This prevents double-processing in the case of duplicate events being received.\n\nBy default soroban-rpc retains the most recent 24 hours of events.", + "externalDocs": { + "url": "https://soroban.stellar.org/api/methods/getEvents" + }, + "paramStructure": "by-name", + "params": [ + { + "$ref": "#/components/contentDescriptors/StartLedger" + }, + { + "$ref": "#/components/contentDescriptors/EventFilters" + }, + { + "$ref": "#/components/contentDescriptors/Pagination" + } + ], + "result": { + "name": "getEventsResult", + "schema": { + "type": "object", + "properties": { + "latestLedger": { + "$ref": "#/components/schemas/LatestLedger" + }, + "events": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event" + } + } + } + } + }, + "examples": [ + { "$ref": "#/components/examplePairingObjects/NativeTransferEventsExample" }, + { "$ref": "#/components/examplePairingObjects/AnyEventsExample" } + ] +} + diff --git a/openrpc/src/methods/getHealth.json b/openrpc/src/methods/getHealth.json new file mode 100644 index 000000000..a83c063b9 --- /dev/null +++ b/openrpc/src/methods/getHealth.json @@ -0,0 +1,35 @@ +{ + "name": "getHealth", + "summary": "returns node health", + "description": "General node health check.", + "externalDocs": { + "url": "https://soroban.stellar.org/api/methods/getHealth" + }, + "paramStructure": "by-name", + "params": [], + "result": { + "name": "getHealthResult", + "schema": { + "type": "object", + "properties": { + "status": { + "type": "string", + "description": "\"healthy\"" + } + } + } + }, + "examples": [ + { + "name": "Current node health", + "description": "Example request to the `getHealth` method", + "params": [], + "result": { + "name": "getHealthResult", + "value": { + "status": "healthy" + } + } + } + ] +} diff --git a/openrpc/src/methods/getLatestLedger.json b/openrpc/src/methods/getLatestLedger.json new file mode 100644 index 000000000..6c19e5f9f --- /dev/null +++ b/openrpc/src/methods/getLatestLedger.json @@ -0,0 +1,42 @@ +{ + "name": "getLatestLedger", + "summary": "returns latest known ledger", + "description": "For finding out the current latest known ledger of this node. This is a subset of the ledger info from Horizon.", + "externalDocs": { + "url": "https://soroban.stellar.org/api/methods/getLatestLedger" + }, + "paramStructure": "by-name", + "params": [], + "result": { + "name": "getLatestLedgerResult", + "schema": { + "type": "object", + "properties": { + "id": { + "$ref": "#/components/schemas/LedgerHash" + }, + "protocolVersion": { + "$ref": "#/components/schemas/ProtocolVersion" + }, + "sequence": { + "$ref": "#/components/schemas/LatestLedger" + } + } + } + }, + "examples": [ + { + "name": "Details of the Current Ledger", + "description": "Example request to the `getLatestLedger` method.", + "params": [], + "result": { + "name": "getLatestLedgerResult", + "value": { + "id": "c73c5eac58a441d4eb733c35253ae85f783e018f7be5ef974258fed067aabb36", + "protocolVersion": 20, + "sequence": 2539605 + } + } + } + ] +} diff --git a/openrpc/src/methods/getLedgerEntries.json b/openrpc/src/methods/getLedgerEntries.json new file mode 100644 index 000000000..e4741c1b7 --- /dev/null +++ b/openrpc/src/methods/getLedgerEntries.json @@ -0,0 +1,38 @@ +{ + "name": "getLedgerEntries", + "summary": "returns ledger entries", + "description": "For reading the current value of ledger entries directly.\n\nAllows you to directly inspect the current state of a contract, a contract's code, or any other ledger entry. This is a backup way to access your contract data which may not be available via events or `simulateTransaction`.\n\nTo fetch contract wasm byte-code, use the ContractCode ledger entry key.", + "externalDocs": { + "url": "https://soroban.stellar.org/api/methods/getLedgerEntries" + }, + "paramStructure": "by-name", + "params": [ + { + "$ref": "#/components/contentDescriptors/LedgerKeys" + } + ], + "result": { + "name": "getLedgerEntriesResult", + "schema": { + "type": "object", + "properties": { + "latestLedger": { + "$ref": "#/components/schemas/LatestLedger" + }, + "entries": { + "type": "array", + "description": "Array of objects containing all found ledger entries", + "items": { + "$ref": "#/components/schemas/LedgerEntry" + } + } + }, + "required": [ "latestLedger" ] + } + }, + "examples": [ + { "$ref": "#/components/examplePairingObjects/CounterLedgerEntryExample" }, + { "$ref": "#/components/examplePairingObjects/ContractBalanceLedgerEntryExample" }, + { "$ref": "#/components/examplePairingObjects/CombinedLedgerEntryExample" } + ] +} diff --git a/openrpc/src/methods/getNetwork.json b/openrpc/src/methods/getNetwork.json new file mode 100644 index 000000000..e8e58d2ad --- /dev/null +++ b/openrpc/src/methods/getNetwork.json @@ -0,0 +1,33 @@ +{ + "name": "getNetwork", + "summary": "returns network config", + "description": "General information about the currently configured network. This response will contain all the information needed to successfully submit transactions to the network this node serves.", + "externalDocs": { + "url": "https://soroban.stellar.org/api/methods/getNetwork" + }, + "paramStructure": "by-name", + "params": [], + "result": { + "name": "getNetworkResult", + "schema": { + "type": "object", + "properties": { + "passphrase": { + "$ref": "#/components/schemas/NetworkPassphrase" + }, + "protocolVersion": { + "$ref": "#/components/schemas/ProtocolVersion" + }, + "friendbotUrl": { + "type": "string", + "description": "(optional) The URL of this network's \"friendbot\" faucet" + } + }, + "required": [ "passphrase", "protocolVersion" ] + } + }, + "examples": [ + { "$ref": "#/components/examplePairingObjects/TestnetNetworkConfig" }, + { "$ref": "#/components/examplePairingObjects/FuturenetNetworkConfig" } + ] +} diff --git a/openrpc/src/methods/getTransaction.json b/openrpc/src/methods/getTransaction.json new file mode 100644 index 000000000..db5150fad --- /dev/null +++ b/openrpc/src/methods/getTransaction.json @@ -0,0 +1,79 @@ +{ + "name": "getTransaction", + "summary": "returns transaction details", + "description": "The getTransaction method provides details about the specified transaction. Clients are expected to periodically query this method to ascertain when a transaction has been successfully recorded on the blockchain. The soroban-rpc system maintains a restricted history of recently processed transactions, with the default retention window set at 1440 ledgers, approximately equivalent to a 2-hour timeframe. For private soroban-rpc instances, it is possible to modify the retention window value by adjusting the transaction-retention-window configuration setting. For comprehensive debugging needs that extend beyond the 2-hour timeframe, it is advisable to retrieve transaction information from Horizon, as it provides a lasting and persistent record.", + "externalDocs": { + "url": "https://soroban.stellar.org/api/methods/getTransaction" + }, + "paramStructure": "by-name", + "params": [ + { + "$ref": "#/components/contentDescriptors/TransactionHash" + } + ], + "result": { + "name": "getTransactionResult", + "schema": { + "type": "object", + "properties": { + "status": { + "type": "string", + "description": "The current status of the transaction by hash", + "enum": [ + "SUCCESS", + "NOT_FOUND", + "FAILED" + ] + }, + "latestLedger": { + "$ref": "#/components/schemas/LatestLedger" + }, + "latestLedgerCloseTime": { + "$ref": "#/components/schemas/LatestLedgerCloseTime" + }, + "oldestLedger": { + "$ref": "#/components/schemas/OldestLedger" + }, + "oldestLedgerCloseTime": { + "$ref": "#/components/schemas/OldestLedgerCloseTime" + }, + "ledger": { + "title": "ledger", + "description": "(optional) The sequence number of the ledger which included the transaction. This field is only present if `status` is `SUCCESS` or `FAILED`.", + "$ref": "#/components/schemas/LedgerSequence" + }, + "createdAt": { + "title": "createdAt", + "description": "(optional) The unix timestamp of when the transaction was included in the ledger. This field is only present if `status` is `SUCCESS` or `FAILED`.", + "$ref": "#/components/schemas/LedgerCloseTime" + }, + "applicationOrder": { + "type": "number", + "description": "(optional) The index of the transaction among all transactions included in the ledger. This field is only present if `status` is `SUCCESS` or `FAILED`." + }, + "feeBump": { + "type": "boolean", + "description": "(optional) Indicates whether the transaction was fee bumped. This field is only present if `status` is `SUCCESS` or `FAILED`." + }, + "envelopeXdr": { + "type": "string", + "description": "(optional) A base64 encoded string of the raw TransactionEnvelope XDR struct for this transaction." + }, + "resultXdr": { + "type": "string", + "description": "(optional) A base64 encoded string of the raw TransactionResult XDR struct for this transaction. This field is only present if `status` is `SUCCESS` or `FAILED`." + }, + "resultMetaXdr": { + "type": "string", + "description": "(optional) A base64 encoded string of the raw TransactionResultMeta XDR struct for this transaction." + } + }, + "required": [ "status", "latestLedger", "latestLedgerCloseTime", "oldestLedger", "oldestLedgerCloseTime" ] + } + }, + "examples": [ + { "$ref": "#/components/examplePairingObjects/SuccessfulTransaction" }, + { "$ref": "#/components/examplePairingObjects/NotFoundTransaction" }, + { "$ref": "#/components/examplePairingObjects/FailedTransaction" } + ] +} diff --git a/openrpc/src/methods/sendTransaction.json b/openrpc/src/methods/sendTransaction.json new file mode 100644 index 000000000..7239d2b2a --- /dev/null +++ b/openrpc/src/methods/sendTransaction.json @@ -0,0 +1,63 @@ +{ + "name": "sendTransaction", + "summary": "submits a transaction", + "description": "Submit a real transaction to the Stellar network. This is the only way to make changes on-chain.\n\n Unlike Horizon, this does not wait for transaction completion. It simply validates and enqueues the transaction. Clients should call `getTransaction` to learn about transaction success/failure.\n\nThis supports all transactions, not only smart contract-related transactions.", + "externalDocs": { + "url": "https://soroban.stellar.org/api/methods/sendTransaction" + }, + "paramStructure": "by-name", + "params": [ + { + "$ref": "#/components/contentDescriptors/SignedTransaction" + } + ], + "result": { + "name": "sendTransactionResult", + "summary": "Transaction status and network state.", + "description": "Transaction status and network state. The result will include if the transaction was successfully enqueued, and information about the current ledger.", + "schema": { + "type": "object", + "properties": { + "hash": { + "$ref": "#/components/schemas/TransactionHash" + }, + "status": { + "type": "string", + "description": "The current status of the transaction by hash.", + "enum": [ + "PENDING", + "DUPLICATE", + "TRY_AGAIN_LATER", + "ERROR" + ] + }, + "latestLedger": { + "$ref": "#/components/schemas/LatestLedger" + }, + "latestLedgerCloseTime": { + "$ref": "#/components/schemas/LatestLedgerCloseTime" + }, + "errorResultXdr": { + "type": "string", + "description": "(optional) If the transaction status is `ERROR`, this will be a base64 encoded string of the raw TransactionResult XDR struct containing details on why stellar-core rejected the transaction.", + "contentEncoding": "base64" + }, + "diagnosticEventsXdr": { + "type": "array", + "description": "(optional) If the transaction status is `ERROR`, this field may be present with an array of base64 encoded strings. Each string will decode to a raw DiagnosticEvent XDR struct containing details on why stellar-core rejected the transaction.", + "contentEncoding": "base64", + "items": { + "type": "string" + } + } + }, + "required": [ "hash", "status", "latestLedger", "latestLedgerCloseTime" ] + } + }, + "examples": [ + { "$ref": "#/components/examplePairingObjects/PendingTransaction" }, + { "$ref": "#/components/examplePairingObjects/DuplicateTransaction" }, + { "$ref": "#/components/examplePairingObjects/ErrorTransaction" }, + { "$ref": "#/components/examplePairingObjects/TryAgainLaterTransaction" } + ] +} diff --git a/openrpc/src/methods/simulateTransaction.json b/openrpc/src/methods/simulateTransaction.json new file mode 100644 index 000000000..0265feb8c --- /dev/null +++ b/openrpc/src/methods/simulateTransaction.json @@ -0,0 +1,105 @@ +{ + "name": "simulateTransaction", + "summary": "submits a trial contract invocation transaction", + "description": "Submit a trial contract invocation to simulate how it would be executed by the network. This endpoint calculates the effective transaction data, required authorizations, and minimal resource fee. It provides a way to test and analyze the potential outcomes of a transaction without actually submitting it to the network.", + "externalDocs": { + "url": "https://soroban.stellar.org/api/methods/simulateTransaction" + }, + "paramStructure": "by-name", + "params": [ + { + "$ref": "#/components/contentDescriptors/UnsignedTransaction" + }, + { + "$ref": "#/components/contentDescriptors/ResourceConfig" + } + ], + "result": { + "name": "simulateTransactionResult", + "summary": "anticipated affects of the transaction.", + "description": "The response will include the anticipated affects the given transaction will have on the network. Additionally, information needed to build, sign, and actually submit the transaction will be provided.", + "schema": { + "type": "object", + "properties": { + "latestLedger": { + "$ref": "#/components/schemas/LatestLedger" + }, + "minResourceFee": { + "type": "string", + "description": "(optional) Stringified number - Recommended minimum resource fee to add when submitting the transaction. This fee is to be added on top of the [Stellar network fee](https://developers.stellar.org/docs/encyclopedia/fees-surge-pricing-fee-strategies#network-fees-on-stellar). Not present in case of error." + }, + "cost": { + "type": "object", + "description": "(optional) - Information about instructions used, etc. Not present in case of error.", + "properties": { + "cpuInsns": { + "type": "string", + "description": "Stringified number - Total cpu instructions consumed by this transaction" + }, + "memBytes": { + "type": "string", + "description": "Stringified number - Total memory bytes allocated by this transaction" + } + }, + "required": [ "cpuInsns", "memBytes" ] + }, + "results": { + "type": "array", + "description": "(optional) - This array will only have one element: the result for the Host Function invocation. Only present on successful simulation (i.e. no error) of `InvokeHostFunction` operations.", + "items": { + "type": "object", + "properties": { + "xdr": { + "type": "string", + "description": "Serialized base64 string - return value of the Host Function call." + }, + "auth": { + "type": "array", + "description": "Array of serialized base64 strings - Per-address authorizations recorded when simulating this Host Function call.", + "items": { + "type": "string" + } + } + }, + "required": [ "xdr", "auth" ] + } + }, + "transactionData": { + "type": "string", + "description": "(optional) Serialized base64 string - The recommended Soroban Transaction Data to use when submitting the simulated transaction. This data contains the refundable fee and resource usage information such as the ledger footprint and IO access data (serialized in a base64 string). Not present in case of error." + }, + "events": { + "type": "array", + "description": "(optional) Array of serialized base64 strings - Array of the events emitted during the contract invocation. The events are ordered by their emission time. (an array of serialized base64 strings). Only present when simulating of `InvokeHostFunction` operations, note that it can be present on error, providing extra context about what failed.", + "items": { + "type": "string" + } + }, + "restorePreamble": { + "type": "object", + "description": "(optional) - It can only be present on successful simulation (i.e. no error) of `InvokeHostFunction` operations. If present, it indicates that the simulation detected archived ledger entries which need to be restored before the submission of the `InvokeHostFunction` operation. The `minResourceFee` and `transactionData` fields should be used to submit a transaction containing a `RestoreFootprint` operation.", + "properties": { + "minResourceFee": { + "type": "string", + "description": "Stringified number - Recommended minimum resource fee to add when submitting the `RestoreFootprint` operation. This fee is to be added on top of the [Stellar network fee](https://developers.stellar.org/docs/encyclopedia/fees-surge-pricing-fee-strategies#network-fees-on-stellar)." + }, + "transactionData": { + "type": "string", + "description": "Serialized base64 string - The recommended Soroban Transaction Data to use when submitting the `RestoreFootprint` operation." + } + }, + "required": [ "minResourceFee", "transactionData" ] + }, + "error": { + "type": "string", + "description": "(optional) - This field will include details about why the invoke host function call failed. Only present if the transaction simulation failed." + } + }, + "required": [ "latestLedger" ] + } + }, + "examples": [ + { "$ref": "#/components/examplePairingObjects/SuccessfulTransactionSimulation" }, + { "$ref": "#/components/examplePairingObjects/FailedTransactionSimulation" } + ] +} diff --git a/openrpc/src/schemas/ContractIds.json b/openrpc/src/schemas/ContractIds.json new file mode 100644 index 000000000..ed3f6b236 --- /dev/null +++ b/openrpc/src/schemas/ContractIds.json @@ -0,0 +1,16 @@ +{ + "ContractId": { + "title": "contractId", + "description": "A StrKey representation of a contract address (`C...`). ([SEP-23](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0023.md#specification)).", + "type": "string" + }, + "ContractIds": { + "title": "contractIds", + "type": "array", + "description": "List of contract IDs to query for events. If omitted, return events for all contracts. Maximum 5 contract IDs are allowed per request.", + "maxItems": 5, + "items": { + "$ref": "#/components/schemas/ContractId" + } + } +} diff --git a/openrpc/src/schemas/Event.json b/openrpc/src/schemas/Event.json new file mode 100644 index 000000000..3d208490a --- /dev/null +++ b/openrpc/src/schemas/Event.json @@ -0,0 +1,64 @@ +{ + "Event": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/EventType" + }, + "ledger": { + "description": "Sequence number of the ledger in which this event was emitted.", + "$ref": "#/components/schemas/LedgerSequence" + }, + "ledgerClosedAt": { + "type": "string", + "description": "[ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) timestamp of the ledger closing time" + }, + "contractId": { + "description": "StrKey representation of the contract address that emitted this event.", + "$ref": "#/components/schemas/ContractId" + }, + "id": { + "$ref": "#/components/schemas/EventId" + }, + "pagingToken": { + "description": "Duplicate of `id` field, but in the standard place for pagination tokens.", + "$ref": "#/components/schemas/EventId" + }, + "inSuccessfulContractCall": { + "description": "If true the event was emitted during a successful contract call.", + "type": "boolean" + }, + "topic": { + "type": "array", + "description": "List containing the topic this event was emitted with.", + "$ref": "#/components/schemas/TopicFilter" + }, + "value": { + "$ref": "#/components/schemas/EventValue" + } + } + }, + "EventType": { + "title": "type", + "description": "The type of event emission.", + "type": "string", + "enum": [ "contract", "diagnostic", "system" ] + }, + "EventId": { + "description": "Unique identifier for this event.\n\n- The event's unique id field is based on a [`toid` from Horizon](https://github.com/stellar/go/blob/master/toid/main.go) as used in Horizon's /effects endpoint.\n\n- https://github.com/stellar/go/blob/master/services/horizon/internal/db2/history/effect.go#L58\n\n- Specifically, it is a string containing:\n\n- bigint(32 bit ledger sequence + 20 bit txn number + 12 bit operation) + `` + number for the event within the operation.\n\n- For example: `1234-1`", + "type": "string" + }, + "EventXdr": { + "description": "The emitted body value of the event (serialized in a base64 string).", + "type": "string" + }, + "EventValue": { + "description": "The data the event was broadcasting in the emitted event.", + "type": "object", + "properties": { + "xdr": { + "$ref": "#/components/schemas/EventXdr" + } + } + } +} diff --git a/openrpc/src/schemas/EventFilters.json b/openrpc/src/schemas/EventFilters.json new file mode 100644 index 000000000..193b93cf8 --- /dev/null +++ b/openrpc/src/schemas/EventFilters.json @@ -0,0 +1,52 @@ +{ + "EventFilters": { + "type": "array", + "maxItems": 5, + "items": { + "$ref": "#/components/schemas/EventFilter" + } + }, + "EventFilter": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/EventFilterType" + }, + "contractIds": { + "$ref": "#/components/schemas/ContractIds" + }, + "topics": { + "$ref": "#/components/schemas/TopicFilters" + } + }, + "required": [] + }, + "EventFilterType": { + "title": "type", + "type": "string", + "description": "A comma separated list of event types (system, contract, or diagnostic) used to filter events. If omitted, all event types are included." + }, + "TopicFilters": { + "title": "topics", + "type": "array", + "description": "List of topic filters. If omitted, query for all events. If multiple filters are specified, events will be included if they match any of the filters. Maximum 5 filters are allowed per request.", + "maxItems": 5, + "items": { + "$ref": "#/components/schemas/TopicFilter" + } + }, + "SegmentMatcher": { + "title": "SegmentMatcher", + "type": "string", + "description": "A `SegmentMatcher` is one of the following:\n\n- For an exact segment match, a string containing a base64-encoded ScVal\n\n- For a wildcard single-segment match, the string \"*\", matches exactly one segment." + }, + "TopicFilter": { + "type": "array", + "description": "A `TopicFilter` is `SegmentMatcher[]`\n\n- The list can be 1-4 `SegmentMatchers` long.", + "minItems": 1, + "maxItems": 4, + "items": { + "$ref": "#/components/schemas/SegmentMatcher" + } + } +} diff --git a/openrpc/src/schemas/Hash.json b/openrpc/src/schemas/Hash.json new file mode 100644 index 000000000..f12fe2cfc --- /dev/null +++ b/openrpc/src/schemas/Hash.json @@ -0,0 +1,19 @@ +{ + "Hash": { + "title": "hash", + "type": "string", + "minLength": 64, + "maxLength": 64, + "pattern": "^[a-f\\d]{64}$" + }, + "TransactionHash": { + "title": "hash", + "description": "Transaction hash (as a hex-encoded string)", + "$ref": "#/components/schemas/Hash" + }, + "LedgerHash": { + "title": "id", + "description": "Hash identifier of the latest ledger (as a hex-encoded string) known to Soroban RPC at the time it handled the request.", + "$ref": "#/components/schemas/Hash" + } +} diff --git a/openrpc/src/schemas/LedgerCloseTime.json b/openrpc/src/schemas/LedgerCloseTime.json new file mode 100644 index 000000000..ba6df7fea --- /dev/null +++ b/openrpc/src/schemas/LedgerCloseTime.json @@ -0,0 +1,17 @@ +{ + "LedgerCloseTime": { + "title": "ledgerCloseTime", + "description": "The unix timestamp of the close time of the ledger.", + "type": "string" + }, + "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.", + "$ref": "#/components/schemas/LedgerCloseTime" + }, + "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.", + "$ref": "#/components/schemas/LedgerCloseTime" + } +} diff --git a/openrpc/src/schemas/LedgerEntries.json b/openrpc/src/schemas/LedgerEntries.json new file mode 100644 index 000000000..dc9b98efb --- /dev/null +++ b/openrpc/src/schemas/LedgerEntries.json @@ -0,0 +1,34 @@ +{ + "LedgerKey": { + "type": "string", + "description": "Ledger key, serialized as a base64 string, corresponding to an existing ledger entry you wish to retrieve." + }, + "LedgerKeys": { + "description": "Array containing ledger keys.", + "type": "array", + "items": { + "$ref": "#/components/schemas/LedgerKey" + } + }, + "LedgerEntry": { + "type": "object", + "description": "Object containing information about an existing ledger entry.", + "properties": { + "key": { + "type": "string", + "description": "The key of the ledger entry (serialized in a base64 string)." + }, + "xdr": { + "type": "string", + "description": "The current value of the given ledger entry (serialized in a base64 string)." + }, + "lastModifiedLedgerSeq": { + "description": "The ledger sequence number of the last time this entry was updated.", + "$ref": "#/components/schemas/LedgerSequence" + }, + "liveUntilLedgerSeq": { + "$ref": "#/components/schemas/LedgerSequence" + } + } + } +} diff --git a/openrpc/src/schemas/LedgerSequence.json b/openrpc/src/schemas/LedgerSequence.json new file mode 100644 index 000000000..bd097ba91 --- /dev/null +++ b/openrpc/src/schemas/LedgerSequence.json @@ -0,0 +1,17 @@ +{ + "LedgerSequence": { + "title": "ledgerSequence", + "description": "Sequence number of the ledger.", + "type": "number" + }, + "LatestLedger": { + "title": "latestLedger", + "description": "The sequence number of the latest ledger known to Soroban RPC at the time it handled the request.", + "$ref": "#/components/schemas/LedgerSequence" + }, + "OldestLedger": { + "title": "oldestLedger", + "description": "The sequence number of the oldest ledger ingested by Soroban RPC at the time it handled the request.", + "$ref": "#/components/schemas/LedgerSequence" + } +} diff --git a/openrpc/src/schemas/NetworkConfig.json b/openrpc/src/schemas/NetworkConfig.json new file mode 100644 index 000000000..fdcf3a990 --- /dev/null +++ b/openrpc/src/schemas/NetworkConfig.json @@ -0,0 +1,12 @@ +{ + "ProtocolVersion": { + "title": "protocolVersion", + "description": "Stellar Core protocol version associated with the latest ledger.", + "type": "number" + }, + "NetworkPassphrase": { + "title": "networkPassphrase", + "description": "Network passphrase configured for this Soroban RPC node.", + "type": "string" + } +} diff --git a/openrpc/src/schemas/Pagination.json b/openrpc/src/schemas/Pagination.json new file mode 100644 index 000000000..0ccf4843a --- /dev/null +++ b/openrpc/src/schemas/Pagination.json @@ -0,0 +1,16 @@ +{ + "Pagination": { + "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." + }, + "limit": { + "type": "number", + "description": "The maximum number of records returned. The limit for [getEvents](https://soroban.stellar.org/api/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": [] + } +} diff --git a/openrpc/src/schemas/ResourceConfig.json b/openrpc/src/schemas/ResourceConfig.json new file mode 100644 index 000000000..92cfd4b42 --- /dev/null +++ b/openrpc/src/schemas/ResourceConfig.json @@ -0,0 +1,14 @@ +{ + "ResourceConfig": { + "title": "resourceConfig", + "description": "Configuration for how resources will be calculated.", + "type": "object", + "properties": { + "instructionLeeway": { + "title": "instructionLeeway", + "description": "Allow this many extra instructions when budgeting resources.", + "type": "number" + } + } + } +} diff --git a/openrpc/src/schemas/Transaction.json b/openrpc/src/schemas/Transaction.json new file mode 100644 index 000000000..730936cc5 --- /dev/null +++ b/openrpc/src/schemas/Transaction.json @@ -0,0 +1,7 @@ +{ + "Transaction": { + "title": "transaction", + "description": "A Stellar transaction, serialized as a base64 string", + "type": "string" + } +} diff --git a/static/openrpc.json b/static/openrpc.json index 2716eb599..dd91ba16d 100644 --- a/static/openrpc.json +++ b/static/openrpc.json @@ -893,7 +893,10 @@ "diagnosticEventsXdr": { "type": "array", "description": "(optional) If the transaction status is `ERROR`, this field may be present with an array of base64 encoded strings. Each string will decode to a raw DiagnosticEvent XDR struct containing details on why stellar-core rejected the transaction.", - "contentEncoding": "base64" + "contentEncoding": "base64", + "items": { + "type": "string" + } } } } @@ -1204,4 +1207,4 @@ } ], "components": {} -} +} \ No newline at end of file From afd88d4e2472d93d75810246e05a3c08a16e4582 Mon Sep 17 00:00:00 2001 From: Jane Wang Date: Thu, 15 Feb 2024 12:08:01 -0500 Subject: [PATCH 062/133] Update RPC docs for clarify on deprecation of postional array and costs (#721) * Update RPC docs for clarify on deprecation of postional array and costs * Update description on costs * Update in JSON-RPC info * Update transaction desc * Add build file * remove an extra file * modify the patch for the openrpc react package this will display our custom note following the parameters heading and before any of the named parameters are listed * remove the notes about by-name parameters in transaction params * add `deprecated` to the `cost` object in the tx simulation result * add the built `openrpc.json` file --------- Co-authored-by: Jane Wang Co-authored-by: Elliot Voris --- api/json-rpc.mdx | 8 ++++ openrpc/src/methods/simulateTransaction.json | 3 +- .../@metamask+open-rpc-docs-react+0.1.2.patch | 38 ++++++++++++++++++- static/openrpc.json | 3 +- 4 files changed, 49 insertions(+), 3 deletions(-) diff --git a/api/json-rpc.mdx b/api/json-rpc.mdx index d2004ce38..d78265a83 100644 --- a/api/json-rpc.mdx +++ b/api/json-rpc.mdx @@ -12,6 +12,14 @@ To interact with soroban-rpc from inside a JavaScript application, use the [Java When XDR is passed as a parameter or returned, it is always a string encoded using standard base64. +:::info + +Please note that parameter structure must contain named parameters as a by-name +object, and not as positional arguments as a by-position array. Positional +arguments as a by-position array will be deprecated in future RPC releases. + +::: + ## Open-RPC Specification Soroban-RPC provides an [OpenRPC] specification document that can be used to mock, build, and/or validate both server and client software implementations. This document is used to generate all of our [methods] documentation pages. You can view the full [specification document here]. Additionally, you can experiment with this specificaiton document in the [OpenRPC Playground]. diff --git a/openrpc/src/methods/simulateTransaction.json b/openrpc/src/methods/simulateTransaction.json index 0265feb8c..cdf2bbc68 100644 --- a/openrpc/src/methods/simulateTransaction.json +++ b/openrpc/src/methods/simulateTransaction.json @@ -30,7 +30,8 @@ }, "cost": { "type": "object", - "description": "(optional) - Information about instructions used, etc. Not present in case of error.", + "description": "(optional) - The cost object is legacy, inaccurate, and will be deprecated in future RPC releases. Please decode transactionData XDR to retrieve the correct resources.", + "deprecated": true, "properties": { "cpuInsns": { "type": "string", diff --git a/patches/@metamask+open-rpc-docs-react+0.1.2.patch b/patches/@metamask+open-rpc-docs-react+0.1.2.patch index e87c94c45..61e8f0de8 100644 --- a/patches/@metamask+open-rpc-docs-react+0.1.2.patch +++ b/patches/@metamask+open-rpc-docs-react+0.1.2.patch @@ -1,5 +1,5 @@ diff --git a/node_modules/@metamask/open-rpc-docs-react/dist/ExamplePairing/ExamplePairing.js b/node_modules/@metamask/open-rpc-docs-react/dist/ExamplePairing/ExamplePairing.js -index 354ce73..5e07a7f 100644 +index 354ce73..129371f 100644 --- a/node_modules/@metamask/open-rpc-docs-react/dist/ExamplePairing/ExamplePairing.js +++ b/node_modules/@metamask/open-rpc-docs-react/dist/ExamplePairing/ExamplePairing.js @@ -45,10 +45,37 @@ class ExamplePairing extends react_1.Component { @@ -93,3 +93,39 @@ index b8b0f3d..9a49549 100644 }; onExamplePairingChange?: (examplePairing: ExamplePairingObject | undefined) => void; reactJsonOptions?: object; +diff --git a/node_modules/@metamask/open-rpc-docs-react/dist/Params/Params.js b/node_modules/@metamask/open-rpc-docs-react/dist/Params/Params.js +index 4b059a6..b5dafce 100644 +--- a/node_modules/@metamask/open-rpc-docs-react/dist/Params/Params.js ++++ b/node_modules/@metamask/open-rpc-docs-react/dist/Params/Params.js +@@ -34,17 +34,20 @@ class Params extends react_1.Component { + if (!params || params.length === 0) { + return null; + } +- return (params.map((row, i) => react_1.default.createElement("section", null, +- react_1.default.createElement("h3", null, +- i + 1, +- ". ", +- row.name, +- (row.required === undefined || +- row.required === true) && +- react_1.default.createElement("span", { className: "content-descriptor-summary" }, +- react_1.default.createElement("i", null, +- react_1.default.createElement("small", null, " (required)")))), +- react_1.default.createElement(ContentDescriptor_1.default, { key: row.name, contentDescriptor: row, uiSchema: uiSchema })))); ++ return ( ++ [react_1.default.createElement("p", { key: "param-structure", className: "param-structure-requirement" }, "Please note that parameter structure within the request must contain named parameters as a by-name object, and not as positional arguments in a by-position array"), ++ ...params.map((row, i) => react_1.default.createElement("section", null, ++ react_1.default.createElement("h3", null, ++ i + 1, ++ ". ", ++ row.name, ++ (row.required === undefined || ++ row.required === true) && ++ react_1.default.createElement("span", { className: "content-descriptor-summary" }, ++ react_1.default.createElement("i", null, ++ react_1.default.createElement("small", null, " (required)")))), ++ react_1.default.createElement(ContentDescriptor_1.default, { key: row.name, contentDescriptor: row, uiSchema: uiSchema })))] ++ ); + } + } + exports.default = Params; diff --git a/static/openrpc.json b/static/openrpc.json index dd91ba16d..64f863895 100644 --- a/static/openrpc.json +++ b/static/openrpc.json @@ -1049,7 +1049,8 @@ }, "cost": { "type": "object", - "description": "(optional) - Information about instructions used, etc. Not present in case of error.", + "description": "(optional) - The cost object is legacy, inaccurate, and will be deprecated in future RPC releases. Please decode transactionData XDR to retrieve the correct resources.", + "deprecated": true, "required": [ "cpuInsns", "memBytes" From 286a97988c413d132768e4961d3cd2f991cce09e Mon Sep 17 00:00:00 2001 From: Leigh McCulloch <351529+leighmcculloch@users.noreply.github.com> Date: Fri, 16 Feb 2024 07:06:54 -0800 Subject: [PATCH 063/133] Fix case of parameter (#727) --- api/pagination.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/pagination.mdx b/api/pagination.mdx index 4a9e0cfa0..3ac52f5a4 100644 --- a/api/pagination.mdx +++ b/api/pagination.mdx @@ -16,7 +16,7 @@ For example, calling a method with pagination parameter set: ```json { "jsonrpc": "2.0", - "Id": "1", + "id": "1", "method": "exampleMethod", "params": ["other", "arguments", { "cursor": "1234-1", "limit": 100 }] } From da8c3f02c08ccd5299e38e52fa730623851e5ff2 Mon Sep 17 00:00:00 2001 From: Elliot Voris Date: Thu, 22 Feb 2024 15:02:07 -0600 Subject: [PATCH 064/133] use by-name params in pagination example (#743) Refs: #728 --- api/pagination.mdx | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/api/pagination.mdx b/api/pagination.mdx index 3ac52f5a4..3da84ce15 100644 --- a/api/pagination.mdx +++ b/api/pagination.mdx @@ -18,6 +18,12 @@ For example, calling a method with pagination parameter set: "jsonrpc": "2.0", "id": "1", "method": "exampleMethod", - "params": ["other", "arguments", { "cursor": "1234-1", "limit": 100 }] + "params": { + "some": "argument", + "pagination": { + "cursor": "1234-1", + "limit": 100 + } + } } ``` From d71f64d0c6ef614e05e7125b5759172517dd25a6 Mon Sep 17 00:00:00 2001 From: Elliot Voris Date: Wed, 28 Feb 2024 09:30:28 -0600 Subject: [PATCH 065/133] create platforms section of docs - move a `/api` directory to be `/platforms` - move admin guides for horizon, anchor platform, sdp into their respective "platform" sections --- {api => platforms}/READ_FIRST.md | 0 {api => platforms}/anchor-platform/callbacks/_category_.json | 0 {api => platforms}/anchor-platform/callbacks/customer/index.mdx | 0 {api => platforms}/anchor-platform/callbacks/del-customer.api.mdx | 0 {api => platforms}/anchor-platform/callbacks/event/index.mdx | 0 {api => platforms}/anchor-platform/callbacks/fee/index.mdx | 0 {api => platforms}/anchor-platform/callbacks/gen-address.api.mdx | 0 {api => platforms}/anchor-platform/callbacks/get-customer.api.mdx | 0 {api => platforms}/anchor-platform/callbacks/get-fee.api.mdx | 0 {api => platforms}/anchor-platform/callbacks/get-rates.api.mdx | 0 {api => platforms}/anchor-platform/callbacks/index.mdx | 0 {api => platforms}/anchor-platform/callbacks/post-event.api.mdx | 0 {api => platforms}/anchor-platform/callbacks/put-customer.api.mdx | 0 {api => platforms}/anchor-platform/callbacks/rate/index.mdx | 0 {api => platforms}/anchor-platform/callbacks/sidebar.js | 0 .../anchor-platform/callbacks/unique-address/index.mdx | 0 {api => platforms}/anchor-platform/custody-server/_category_.json | 0 .../custody-server/create-custody-transaction.api.mdx | 0 .../anchor-platform/custody-server/custody-transactions/index.mdx | 0 .../custody-server/generate-unique-address.api.mdx | 0 {api => platforms}/anchor-platform/custody-server/index.mdx | 0 .../anchor-platform/custody-server/payments/index.mdx | 0 .../anchor-platform/custody-server/refunds/index.mdx | 0 .../anchor-platform/custody-server/send-payment.api.mdx | 0 .../anchor-platform/custody-server/send-refund.api.mdx | 0 {api => platforms}/anchor-platform/custody-server/sidebar.js | 0 .../anchor-platform/custody-server/unique-address/index.mdx | 0 {api => platforms}/anchor-platform/introduction/_category_.json | 0 {api => platforms}/anchor-platform/introduction/index.mdx | 0 {api => platforms}/anchor-platform/resources/_category_.json | 0 .../anchor-platform/resources/get-transaction.api.mdx | 0 .../anchor-platform/resources/get-transactions.api.mdx | 0 {api => platforms}/anchor-platform/resources/index.mdx | 0 {api => platforms}/anchor-platform/resources/sidebar.js | 0 .../anchor-platform/resources/transactions/index.mdx | 0 {api => platforms}/anchor-platform/rpc/_category_.json | 0 {api => platforms}/anchor-platform/rpc/index.mdx | 0 .../anchor-platform/rpc/methods/do_stellar_payment/index.mdx | 0 .../anchor-platform/rpc/methods/do_stellar_refund/index.mdx | 0 {api => platforms}/anchor-platform/rpc/methods/index.mdx | 0 .../anchor-platform/rpc/methods/notify_amounts_updated/index.mdx | 0 .../rpc/methods/notify_customer_info_updated/index.mdx | 0 .../rpc/methods/notify_interactive_flow_completed/index.mdx | 0 .../rpc/methods/notify_offchain_funds_available/index.mdx | 0 .../rpc/methods/notify_offchain_funds_pending/index.mdx | 0 .../rpc/methods/notify_offchain_funds_received/index.mdx | 0 .../rpc/methods/notify_offchain_funds_sent/index.mdx | 0 .../rpc/methods/notify_onchain_funds_received/index.mdx | 0 .../rpc/methods/notify_onchain_funds_sent/index.mdx | 0 .../anchor-platform/rpc/methods/notify_refund_pending/index.mdx | 0 .../anchor-platform/rpc/methods/notify_refund_sent/index.mdx | 0 .../rpc/methods/notify_transaction_error/index.mdx | 0 .../rpc/methods/notify_transaction_expired/index.mdx | 0 .../rpc/methods/notify_transaction_recovery/index.mdx | 0 .../anchor-platform/rpc/methods/notify_trust_set/index.mdx | 0 .../rpc/methods/request_customer_info_update/index.mdx | 0 .../anchor-platform/rpc/methods/request_offchain_funds/index.mdx | 0 .../anchor-platform/rpc/methods/request_onchain_funds/index.mdx | 0 .../anchor-platform/rpc/methods/request_trust/index.mdx | 0 .../anchor-platform/rpc/notify_interactive_flow_completed.api.mdx | 0 {api => platforms}/anchor-platform/rpc/sidebar.js | 0 .../anchor-platform/run-anchor-platform}/_category_.json | 0 .../anchor-platform/run-anchor-platform}/architecture.mdx | 0 .../run-anchor-platform}/component/observer/observer.mdx | 0 .../anchor-platform/run-anchor-platform}/component/rpc/error.mdx | 0 .../run-anchor-platform}/component/rpc/request.mdx | 0 .../run-anchor-platform}/component/rpc/response.mdx | 0 .../anchor-platform/run-anchor-platform}/component/rpc/rpc.mdx | 0 .../run-anchor-platform}/component/security/api_key.mdx | 0 .../run-anchor-platform}/component/security/jwt.mdx | 0 .../run-anchor-platform}/component/security/security.mdx | 0 .../run-anchor-platform}/custody-services/_category_.json | 0 .../run-anchor-platform}/custody-services/configuration.mdx | 0 .../custody-services/fireblocks/_category_.json | 0 .../custody-services/fireblocks/configuration.mdx | 0 .../run-anchor-platform}/custody-services/fireblocks/example.mdx | 0 .../anchor-platform/run-anchor-platform}/getting_started.mdx | 0 .../anchor-platform/run-anchor-platform}/index.mdx | 0 .../anchor-platform/run-anchor-platform}/sep1/_category_.json | 0 .../anchor-platform/run-anchor-platform}/sep1/configuration.mdx | 0 .../anchor-platform/run-anchor-platform}/sep10/_category_.json | 0 .../anchor-platform/run-anchor-platform}/sep10/configuration.mdx | 0 .../anchor-platform/run-anchor-platform}/sep24/_category_.json | 0 .../anchor-platform/run-anchor-platform}/sep24/configuration.mdx | 0 .../anchor-platform/run-anchor-platform}/sep24/example.mdx | 0 .../anchor-platform/run-anchor-platform}/sep24/faq.mdx | 0 .../anchor-platform/run-anchor-platform}/sep24/index.mdx | 0 .../anchor-platform/run-anchor-platform}/sep24/integration.mdx | 0 .../run-anchor-platform}/sep24/setting-up-production-server.mdx | 0 .../anchor-platform/run-anchor-platform}/sep31/_category_.json | 0 .../anchor-platform/run-anchor-platform}/sep31/configuration.mdx | 0 .../anchor-platform/run-anchor-platform}/sep31/index.mdx | 0 .../anchor-platform/run-anchor-platform}/sep31/integration.mdx | 0 .../anchor-platform/run-anchor-platform}/sep6/_category_.json | 0 .../anchor-platform/run-anchor-platform}/sep6/configuration.mdx | 0 .../anchor-platform/run-anchor-platform}/sep6/index.mdx | 0 .../anchor-platform/run-anchor-platform}/sep6/integration.mdx | 0 {api => platforms}/horizon/aggregations/_category_.json | 0 {api => platforms}/horizon/aggregations/fee-stats/_category_.json | 0 {api => platforms}/horizon/aggregations/fee-stats/index.mdx | 0 {api => platforms}/horizon/aggregations/fee-stats/object.mdx | 0 {api => platforms}/horizon/aggregations/fee-stats/single.mdx | 0 {api => platforms}/horizon/aggregations/index.mdx | 0 .../horizon/aggregations/order-books/_category_.json | 0 {api => platforms}/horizon/aggregations/order-books/index.mdx | 0 {api => platforms}/horizon/aggregations/order-books/object.mdx | 0 {api => platforms}/horizon/aggregations/order-books/single.mdx | 0 {api => platforms}/horizon/aggregations/paths/_category_.json | 0 {api => platforms}/horizon/aggregations/paths/index.mdx | 0 {api => platforms}/horizon/aggregations/paths/object.mdx | 0 {api => platforms}/horizon/aggregations/paths/strict-receive.mdx | 0 {api => platforms}/horizon/aggregations/paths/strict-send.mdx | 0 .../horizon/aggregations/trade-aggregations/_category_.json | 0 .../horizon/aggregations/trade-aggregations/index.mdx | 0 .../horizon/aggregations/trade-aggregations/list.mdx | 0 .../horizon/aggregations/trade-aggregations/object.mdx | 0 {api => platforms}/horizon/errors/_category_.json | 0 .../horizon/errors/http-status-codes/_category_.json | 0 .../errors/http-status-codes/horizon-specific/before-history.mdx | 0 .../horizon/errors/http-status-codes/horizon-specific/index.mdx | 0 .../errors/http-status-codes/horizon-specific/stale-history.mdx | 0 .../horizon/errors/http-status-codes/horizon-specific/timeout.mdx | 0 .../http-status-codes/horizon-specific/transaction-failed.mdx | 0 .../http-status-codes/horizon-specific/transaction-malformed.mdx | 0 {api => platforms}/horizon/errors/http-status-codes/index.mdx | 0 {api => platforms}/horizon/errors/http-status-codes/standard.mdx | 0 {api => platforms}/horizon/errors/index.mdx | 0 {api => platforms}/horizon/errors/response.mdx | 0 {api => platforms}/horizon/errors/result-codes/_category_.json | 0 {api => platforms}/horizon/errors/result-codes/index.mdx | 0 .../errors/result-codes/operation-specific/account-merge.mdx | 0 .../errors/result-codes/operation-specific/allow-trust.mdx | 0 .../errors/result-codes/operation-specific/bump-sequence.mdx | 0 .../horizon/errors/result-codes/operation-specific/category.json | 0 .../errors/result-codes/operation-specific/change-trust.mdx | 0 .../errors/result-codes/operation-specific/create-account.mdx | 0 .../result-codes/operation-specific/create-passive-sell-offer.mdx | 0 .../horizon/errors/result-codes/operation-specific/index.mdx | 0 .../errors/result-codes/operation-specific/manage-buy-offer.mdx | 0 .../errors/result-codes/operation-specific/manage-data.mdx | 0 .../errors/result-codes/operation-specific/manage-sell-offer.mdx | 0 .../operation-specific/path-payment-strict-receive.mdx | 0 .../result-codes/operation-specific/path-payment-strict-send.mdx | 0 .../horizon/errors/result-codes/operation-specific/payment.mdx | 0 .../errors/result-codes/operation-specific/set-options.mdx | 0 {api => platforms}/horizon/errors/result-codes/operations.mdx | 0 {api => platforms}/horizon/errors/result-codes/transactions.mdx | 0 {api => platforms}/horizon/introduction/_category_.json | 0 {api => platforms}/horizon/introduction/index.mdx | 0 .../horizon/introduction/pagination/_category_.json | 0 {api => platforms}/horizon/introduction/pagination/index.mdx | 0 .../horizon/introduction/pagination/page-arguments.mdx | 0 {api => platforms}/horizon/introduction/rate-limiting.mdx | 0 {api => platforms}/horizon/introduction/response-format.mdx | 0 {api => platforms}/horizon/introduction/streaming.mdx | 0 {api => platforms}/horizon/introduction/xdr.mdx | 0 {api => platforms}/horizon/resources/_category_.json | 0 {api => platforms}/horizon/resources/accounts/index.mdx | 0 {api => platforms}/horizon/resources/accounts/object.mdx | 0 {api => platforms}/horizon/resources/assets/index.mdx | 0 {api => platforms}/horizon/resources/assets/object.mdx | 0 .../horizon/resources/cb-retrieve-related-operations.api.mdx | 0 .../horizon/resources/cb-retrieve-related-transactions.api.mdx | 0 {api => platforms}/horizon/resources/claimablebalances/index.mdx | 0 {api => platforms}/horizon/resources/claimablebalances/object.mdx | 0 {api => platforms}/horizon/resources/effects/index.mdx | 0 {api => platforms}/horizon/resources/effects/types.mdx | 0 {api => platforms}/horizon/resources/get-all-offers.api.mdx | 0 {api => platforms}/horizon/resources/get-all-trades.api.mdx | 0 .../horizon/resources/get-data-by-account-id.api.mdx | 0 .../horizon/resources/get-effects-by-account-id.api.mdx | 0 .../horizon/resources/get-offer-by-offer-id.api.mdx | 0 .../horizon/resources/get-offers-by-account-id.api.mdx | 0 .../horizon/resources/get-operations-by-account-id.api.mdx | 0 .../horizon/resources/get-payments-by-account-id.api.mdx | 0 .../horizon/resources/get-trades-by-account-id.api.mdx | 0 .../horizon/resources/get-trades-by-offer-id.api.mdx | 0 .../horizon/resources/get-transactions-by-account-id.api.mdx | 0 {api => platforms}/horizon/resources/index.mdx | 0 {api => platforms}/horizon/resources/ledgers/index.mdx | 0 {api => platforms}/horizon/resources/ledgers/object.mdx | 0 {api => platforms}/horizon/resources/liquiditypools/index.mdx | 0 {api => platforms}/horizon/resources/list-all-accounts.api.mdx | 0 {api => platforms}/horizon/resources/list-all-assets.api.mdx | 0 .../horizon/resources/list-all-claimable-balances.api.mdx | 0 {api => platforms}/horizon/resources/list-all-effects.api.mdx | 0 {api => platforms}/horizon/resources/list-all-ledgers.api.mdx | 0 {api => platforms}/horizon/resources/list-all-operations.api.mdx | 0 {api => platforms}/horizon/resources/list-all-payments.api.mdx | 0 .../horizon/resources/list-all-transactions.api.mdx | 0 {api => platforms}/horizon/resources/list-liquidity-pools.api.mdx | 0 .../horizon/resources/list-strict-receive-payment-paths.api.mdx | 0 .../horizon/resources/list-strict-send-payment-paths.api.mdx | 0 .../horizon/resources/list-trade-aggregations.api.mdx | 0 .../horizon/resources/lp-retrieve-related-operations.api.mdx | 0 .../horizon/resources/lp-retrieve-related-transactions.api.mdx | 0 {api => platforms}/horizon/resources/offers/index.mdx | 0 {api => platforms}/horizon/resources/offers/object.mdx | 0 {api => platforms}/horizon/resources/operations/index.mdx | 0 .../horizon/resources/operations/object/account-merge.mdx | 0 .../horizon/resources/operations/object/allow-trust.mdx | 0 .../operations/object/begin-sponsoring-future-reserves.mdx | 0 .../horizon/resources/operations/object/bump-sequence.mdx | 0 .../horizon/resources/operations/object/buy-offer.mdx | 0 .../horizon/resources/operations/object/change-trust.mdx | 0 .../resources/operations/object/claim-claimable-balance.mdx | 0 .../horizon/resources/operations/object/create-account.mdx | 0 .../resources/operations/object/create-claimable-balance.mdx | 0 .../operations/object/end-sponsoring-future-reserves.mdx | 0 {api => platforms}/horizon/resources/operations/object/index.mdx | 0 .../resources/operations/object/liquidity-pool-deposit.mdx | 0 .../resources/operations/object/liquidity-pool-withdraw.mdx | 0 .../horizon/resources/operations/object/manage-data.mdx | 0 .../horizon/resources/operations/object/passive-sell-offer.mdx | 0 .../resources/operations/object/path-payment-strict-receive.mdx | 0 .../resources/operations/object/path-payment-strict-send.mdx | 0 .../horizon/resources/operations/object/payment.mdx | 0 .../horizon/resources/operations/object/revoke-sponsorship.mdx | 0 .../horizon/resources/operations/object/sell-offer.mdx | 0 .../horizon/resources/operations/object/set-options.mdx | 0 .../horizon/resources/retrieve-a-claimable-balance.api.mdx | 0 {api => platforms}/horizon/resources/retrieve-a-ledger.api.mdx | 0 .../horizon/resources/retrieve-a-ledgers-effects.api.mdx | 0 .../horizon/resources/retrieve-a-ledgers-operations.api.mdx | 0 .../horizon/resources/retrieve-a-ledgers-payments.api.mdx | 0 .../horizon/resources/retrieve-a-ledgers-transactions.api.mdx | 0 .../horizon/resources/retrieve-a-liquidity-pool.api.mdx | 0 .../horizon/resources/retrieve-a-transaction.api.mdx | 0 .../horizon/resources/retrieve-a-transactions-effects.api.mdx | 0 .../horizon/resources/retrieve-a-transactions-operations.api.mdx | 0 {api => platforms}/horizon/resources/retrieve-an-account.api.mdx | 0 .../horizon/resources/retrieve-an-operation.api.mdx | 0 .../horizon/resources/retrieve-an-operations-effects.api.mdx | 0 .../horizon/resources/retrieve-an-order-book.api.mdx | 0 {api => platforms}/horizon/resources/retrieve-fee-stats.api.mdx | 0 .../horizon/resources/retrieve-related-effects.api.mdx | 0 .../horizon/resources/retrieve-related-trades.api.mdx | 0 {api => platforms}/horizon/resources/sidebar.js | 0 {api => platforms}/horizon/resources/submit-a-transaction.api.mdx | 0 {api => platforms}/horizon/resources/trades/index.mdx | 0 {api => platforms}/horizon/resources/trades/object.mdx | 0 {api => platforms}/horizon/resources/transactions/index.mdx | 0 {api => platforms}/horizon/resources/transactions/object.mdx | 0 {docs => platforms/horizon}/run-platform-server/_category_.json | 0 {docs => platforms/horizon}/run-platform-server/configuring.mdx | 0 {docs => platforms/horizon}/run-platform-server/index.mdx | 0 .../horizon}/run-platform-server/ingestion-filtering.mdx | 0 {docs => platforms/horizon}/run-platform-server/ingestion.mdx | 0 {docs => platforms/horizon}/run-platform-server/installing.mdx | 0 {docs => platforms/horizon}/run-platform-server/monitoring.mdx | 0 {docs => platforms/horizon}/run-platform-server/prerequisites.mdx | 0 {docs => platforms/horizon}/run-platform-server/running.mdx | 0 {docs => platforms/horizon}/run-platform-server/scaling.mdx | 0 {docs => platforms/horizon}/run-platform-server/upgrading.mdx | 0 {api => platforms}/index.mdx | 0 .../stellar-disbursement-platform/introduction/_category_.json | 0 .../stellar-disbursement-platform/introduction/index.mdx | 0 .../stellar-disbursement-platform/resources/_category_.json | 0 .../stellar-disbursement-platform/resources/auth/index.mdx | 0 .../resources/authenticate-mfa.api.mdx | 0 .../stellar-disbursement-platform/resources/create-asset.api.mdx | 0 .../resources/create-disbursement.api.mdx | 0 .../stellar-disbursement-platform/resources/create-user.api.mdx | 0 .../stellar-disbursement-platform/resources/delete-asset.api.mdx | 0 .../resources/disbursements/index.mdx | 0 .../resources/download-disbursement-instructions.api.mdx | 0 .../resources/forgot-password.api.mdx | 0 .../resources/get-all-assets.api.mdx | 0 .../resources/get-all-countries.api.mdx | 0 .../stellar-disbursement-platform/resources/get-all-roles.api.mdx | 0 .../stellar-disbursement-platform/resources/get-all-users.api.mdx | 0 .../resources/get-all-wallets.api.mdx | 0 .../resources/get-organization-info.api.mdx | 0 .../resources/get-organization-logo.api.mdx | 0 .../stellar-disbursement-platform/resources/get-profile.api.mdx | 0 .../stellar-disbursement-platform/resources/index.mdx | 0 .../resources/list-all-disbursement-receivers.api.mdx | 0 .../resources/list-all-disbursements.api.mdx | 0 .../resources/list-all-payments.api.mdx | 0 .../resources/list-all-receivers.api.mdx | 0 .../stellar-disbursement-platform/resources/log-in.api.mdx | 0 .../resources/organization/index.mdx | 0 .../stellar-disbursement-platform/resources/payments/index.mdx | 0 .../stellar-disbursement-platform/resources/profile/index.mdx | 0 .../resources/provide-signed-challenge-transaction.api.mdx | 0 .../stellar-disbursement-platform/resources/receivers/index.mdx | 0 .../stellar-disbursement-platform/resources/refresh-token.api.mdx | 0 .../resources/registration/index.mdx | 0 .../resources/request-challenge-transaction.api.mdx | 0 .../resources/request-registration-url.api.mdx | 0 .../resources/reset-password.api.mdx | 0 .../resources/retrieve-a-disbursement.api.mdx | 0 .../resources/retrieve-a-payment.api.mdx | 0 .../resources/retrieve-a-receiver.api.mdx | 0 .../resources/retrieve-all-statistics.api.mdx | 0 .../resources/retrieve-disbursement-statistics.api.mdx | 0 .../resources/retrieve-stellar-info-file.api.mdx | 0 .../resources/send-one-time-passcode.api.mdx | 0 .../stellar-disbursement-platform/resources/sidebar.js | 0 .../resources/start-wallet-registration.api.mdx | 0 .../stellar-disbursement-platform/resources/statistics/index.mdx | 0 .../resources/update-a-disbursement-status.api.mdx | 0 .../resources/update-a-receiver.api.mdx | 0 .../resources/update-organization-profile.api.mdx | 0 .../resources/update-user-activation-status.api.mdx | 0 .../resources/update-user-profile.api.mdx | 0 .../resources/update-user-role.api.mdx | 0 .../resources/upload-disbursement-instructions.api.mdx | 0 .../stellar-disbursement-platform/resources/users/index.mdx | 0 .../resources/verify-receiver-registration.api.mdx | 0 .../run-stellar-disburement-platform}/_category_.json | 0 .../anchor-platform-integration-points.mdx | 0 .../run-stellar-disburement-platform}/deploy-the-sdp.mdx | 0 .../run-stellar-disburement-platform}/design-and-architecture.mdx | 0 .../run-stellar-disburement-platform}/getting-started.mdx | 0 .../making-your-wallet-sdp-ready.mdx | 0 .../run-stellar-disburement-platform}/overview.mdx | 0 .../run-stellar-disburement-platform}/secure-operation-manual.mdx | 0 .../user-interface/_category_.json | 0 .../user-interface/analytics.mdx | 0 .../user-interface/dashboard-home.mdx | 0 .../user-interface/disbursements.mdx | 0 .../run-stellar-disburement-platform}/user-interface/payments.mdx | 0 .../user-interface/receivers.mdx | 0 .../run-stellar-disburement-platform}/user-interface/wallets.mdx | 0 325 files changed, 0 insertions(+), 0 deletions(-) rename {api => platforms}/READ_FIRST.md (100%) rename {api => platforms}/anchor-platform/callbacks/_category_.json (100%) rename {api => platforms}/anchor-platform/callbacks/customer/index.mdx (100%) rename {api => platforms}/anchor-platform/callbacks/del-customer.api.mdx (100%) rename {api => platforms}/anchor-platform/callbacks/event/index.mdx (100%) rename {api => platforms}/anchor-platform/callbacks/fee/index.mdx (100%) rename {api => platforms}/anchor-platform/callbacks/gen-address.api.mdx (100%) rename {api => platforms}/anchor-platform/callbacks/get-customer.api.mdx (100%) rename {api => platforms}/anchor-platform/callbacks/get-fee.api.mdx (100%) rename {api => platforms}/anchor-platform/callbacks/get-rates.api.mdx (100%) rename {api => platforms}/anchor-platform/callbacks/index.mdx (100%) rename {api => platforms}/anchor-platform/callbacks/post-event.api.mdx (100%) rename {api => platforms}/anchor-platform/callbacks/put-customer.api.mdx (100%) rename {api => platforms}/anchor-platform/callbacks/rate/index.mdx (100%) rename {api => platforms}/anchor-platform/callbacks/sidebar.js (100%) rename {api => platforms}/anchor-platform/callbacks/unique-address/index.mdx (100%) rename {api => platforms}/anchor-platform/custody-server/_category_.json (100%) rename {api => platforms}/anchor-platform/custody-server/create-custody-transaction.api.mdx (100%) rename {api => platforms}/anchor-platform/custody-server/custody-transactions/index.mdx (100%) rename {api => platforms}/anchor-platform/custody-server/generate-unique-address.api.mdx (100%) rename {api => platforms}/anchor-platform/custody-server/index.mdx (100%) rename {api => platforms}/anchor-platform/custody-server/payments/index.mdx (100%) rename {api => platforms}/anchor-platform/custody-server/refunds/index.mdx (100%) rename {api => platforms}/anchor-platform/custody-server/send-payment.api.mdx (100%) rename {api => platforms}/anchor-platform/custody-server/send-refund.api.mdx (100%) rename {api => platforms}/anchor-platform/custody-server/sidebar.js (100%) rename {api => platforms}/anchor-platform/custody-server/unique-address/index.mdx (100%) rename {api => platforms}/anchor-platform/introduction/_category_.json (100%) rename {api => platforms}/anchor-platform/introduction/index.mdx (100%) rename {api => platforms}/anchor-platform/resources/_category_.json (100%) rename {api => platforms}/anchor-platform/resources/get-transaction.api.mdx (100%) rename {api => platforms}/anchor-platform/resources/get-transactions.api.mdx (100%) rename {api => platforms}/anchor-platform/resources/index.mdx (100%) rename {api => platforms}/anchor-platform/resources/sidebar.js (100%) rename {api => platforms}/anchor-platform/resources/transactions/index.mdx (100%) rename {api => platforms}/anchor-platform/rpc/_category_.json (100%) rename {api => platforms}/anchor-platform/rpc/index.mdx (100%) rename {api => platforms}/anchor-platform/rpc/methods/do_stellar_payment/index.mdx (100%) rename {api => platforms}/anchor-platform/rpc/methods/do_stellar_refund/index.mdx (100%) rename {api => platforms}/anchor-platform/rpc/methods/index.mdx (100%) rename {api => platforms}/anchor-platform/rpc/methods/notify_amounts_updated/index.mdx (100%) rename {api => platforms}/anchor-platform/rpc/methods/notify_customer_info_updated/index.mdx (100%) rename {api => platforms}/anchor-platform/rpc/methods/notify_interactive_flow_completed/index.mdx (100%) rename {api => platforms}/anchor-platform/rpc/methods/notify_offchain_funds_available/index.mdx (100%) rename {api => platforms}/anchor-platform/rpc/methods/notify_offchain_funds_pending/index.mdx (100%) rename {api => platforms}/anchor-platform/rpc/methods/notify_offchain_funds_received/index.mdx (100%) rename {api => platforms}/anchor-platform/rpc/methods/notify_offchain_funds_sent/index.mdx (100%) rename {api => platforms}/anchor-platform/rpc/methods/notify_onchain_funds_received/index.mdx (100%) rename {api => platforms}/anchor-platform/rpc/methods/notify_onchain_funds_sent/index.mdx (100%) rename {api => platforms}/anchor-platform/rpc/methods/notify_refund_pending/index.mdx (100%) rename {api => platforms}/anchor-platform/rpc/methods/notify_refund_sent/index.mdx (100%) rename {api => platforms}/anchor-platform/rpc/methods/notify_transaction_error/index.mdx (100%) rename {api => platforms}/anchor-platform/rpc/methods/notify_transaction_expired/index.mdx (100%) rename {api => platforms}/anchor-platform/rpc/methods/notify_transaction_recovery/index.mdx (100%) rename {api => platforms}/anchor-platform/rpc/methods/notify_trust_set/index.mdx (100%) rename {api => platforms}/anchor-platform/rpc/methods/request_customer_info_update/index.mdx (100%) rename {api => platforms}/anchor-platform/rpc/methods/request_offchain_funds/index.mdx (100%) rename {api => platforms}/anchor-platform/rpc/methods/request_onchain_funds/index.mdx (100%) rename {api => platforms}/anchor-platform/rpc/methods/request_trust/index.mdx (100%) rename {api => platforms}/anchor-platform/rpc/notify_interactive_flow_completed.api.mdx (100%) rename {api => platforms}/anchor-platform/rpc/sidebar.js (100%) rename {docs/anchoring-assets/anchor-platform => platforms/anchor-platform/run-anchor-platform}/_category_.json (100%) rename {docs/anchoring-assets/anchor-platform => platforms/anchor-platform/run-anchor-platform}/architecture.mdx (100%) rename {docs/anchoring-assets/anchor-platform => platforms/anchor-platform/run-anchor-platform}/component/observer/observer.mdx (100%) rename {docs/anchoring-assets/anchor-platform => platforms/anchor-platform/run-anchor-platform}/component/rpc/error.mdx (100%) rename {docs/anchoring-assets/anchor-platform => platforms/anchor-platform/run-anchor-platform}/component/rpc/request.mdx (100%) rename {docs/anchoring-assets/anchor-platform => platforms/anchor-platform/run-anchor-platform}/component/rpc/response.mdx (100%) rename {docs/anchoring-assets/anchor-platform => platforms/anchor-platform/run-anchor-platform}/component/rpc/rpc.mdx (100%) rename {docs/anchoring-assets/anchor-platform => platforms/anchor-platform/run-anchor-platform}/component/security/api_key.mdx (100%) rename {docs/anchoring-assets/anchor-platform => platforms/anchor-platform/run-anchor-platform}/component/security/jwt.mdx (100%) rename {docs/anchoring-assets/anchor-platform => platforms/anchor-platform/run-anchor-platform}/component/security/security.mdx (100%) rename {docs/anchoring-assets/anchor-platform => platforms/anchor-platform/run-anchor-platform}/custody-services/_category_.json (100%) rename {docs/anchoring-assets/anchor-platform => platforms/anchor-platform/run-anchor-platform}/custody-services/configuration.mdx (100%) rename {docs/anchoring-assets/anchor-platform => platforms/anchor-platform/run-anchor-platform}/custody-services/fireblocks/_category_.json (100%) rename {docs/anchoring-assets/anchor-platform => platforms/anchor-platform/run-anchor-platform}/custody-services/fireblocks/configuration.mdx (100%) rename {docs/anchoring-assets/anchor-platform => platforms/anchor-platform/run-anchor-platform}/custody-services/fireblocks/example.mdx (100%) rename {docs/anchoring-assets/anchor-platform => platforms/anchor-platform/run-anchor-platform}/getting_started.mdx (100%) rename {docs/anchoring-assets/anchor-platform => platforms/anchor-platform/run-anchor-platform}/index.mdx (100%) rename {docs/anchoring-assets/anchor-platform => platforms/anchor-platform/run-anchor-platform}/sep1/_category_.json (100%) rename {docs/anchoring-assets/anchor-platform => platforms/anchor-platform/run-anchor-platform}/sep1/configuration.mdx (100%) rename {docs/anchoring-assets/anchor-platform => platforms/anchor-platform/run-anchor-platform}/sep10/_category_.json (100%) rename {docs/anchoring-assets/anchor-platform => platforms/anchor-platform/run-anchor-platform}/sep10/configuration.mdx (100%) rename {docs/anchoring-assets/anchor-platform => platforms/anchor-platform/run-anchor-platform}/sep24/_category_.json (100%) rename {docs/anchoring-assets/anchor-platform => platforms/anchor-platform/run-anchor-platform}/sep24/configuration.mdx (100%) rename {docs/anchoring-assets/anchor-platform => platforms/anchor-platform/run-anchor-platform}/sep24/example.mdx (100%) rename {docs/anchoring-assets/anchor-platform => platforms/anchor-platform/run-anchor-platform}/sep24/faq.mdx (100%) rename {docs/anchoring-assets/anchor-platform => platforms/anchor-platform/run-anchor-platform}/sep24/index.mdx (100%) rename {docs/anchoring-assets/anchor-platform => platforms/anchor-platform/run-anchor-platform}/sep24/integration.mdx (100%) rename {docs/anchoring-assets/anchor-platform => platforms/anchor-platform/run-anchor-platform}/sep24/setting-up-production-server.mdx (100%) rename {docs/anchoring-assets/anchor-platform => platforms/anchor-platform/run-anchor-platform}/sep31/_category_.json (100%) rename {docs/anchoring-assets/anchor-platform => platforms/anchor-platform/run-anchor-platform}/sep31/configuration.mdx (100%) rename {docs/anchoring-assets/anchor-platform => platforms/anchor-platform/run-anchor-platform}/sep31/index.mdx (100%) rename {docs/anchoring-assets/anchor-platform => platforms/anchor-platform/run-anchor-platform}/sep31/integration.mdx (100%) rename {docs/anchoring-assets/anchor-platform => platforms/anchor-platform/run-anchor-platform}/sep6/_category_.json (100%) rename {docs/anchoring-assets/anchor-platform => platforms/anchor-platform/run-anchor-platform}/sep6/configuration.mdx (100%) rename {docs/anchoring-assets/anchor-platform => platforms/anchor-platform/run-anchor-platform}/sep6/index.mdx (100%) rename {docs/anchoring-assets/anchor-platform => platforms/anchor-platform/run-anchor-platform}/sep6/integration.mdx (100%) rename {api => platforms}/horizon/aggregations/_category_.json (100%) rename {api => platforms}/horizon/aggregations/fee-stats/_category_.json (100%) rename {api => platforms}/horizon/aggregations/fee-stats/index.mdx (100%) rename {api => platforms}/horizon/aggregations/fee-stats/object.mdx (100%) rename {api => platforms}/horizon/aggregations/fee-stats/single.mdx (100%) rename {api => platforms}/horizon/aggregations/index.mdx (100%) rename {api => platforms}/horizon/aggregations/order-books/_category_.json (100%) rename {api => platforms}/horizon/aggregations/order-books/index.mdx (100%) rename {api => platforms}/horizon/aggregations/order-books/object.mdx (100%) rename {api => platforms}/horizon/aggregations/order-books/single.mdx (100%) rename {api => platforms}/horizon/aggregations/paths/_category_.json (100%) rename {api => platforms}/horizon/aggregations/paths/index.mdx (100%) rename {api => platforms}/horizon/aggregations/paths/object.mdx (100%) rename {api => platforms}/horizon/aggregations/paths/strict-receive.mdx (100%) rename {api => platforms}/horizon/aggregations/paths/strict-send.mdx (100%) rename {api => platforms}/horizon/aggregations/trade-aggregations/_category_.json (100%) rename {api => platforms}/horizon/aggregations/trade-aggregations/index.mdx (100%) rename {api => platforms}/horizon/aggregations/trade-aggregations/list.mdx (100%) rename {api => platforms}/horizon/aggregations/trade-aggregations/object.mdx (100%) rename {api => platforms}/horizon/errors/_category_.json (100%) rename {api => platforms}/horizon/errors/http-status-codes/_category_.json (100%) rename {api => platforms}/horizon/errors/http-status-codes/horizon-specific/before-history.mdx (100%) rename {api => platforms}/horizon/errors/http-status-codes/horizon-specific/index.mdx (100%) rename {api => platforms}/horizon/errors/http-status-codes/horizon-specific/stale-history.mdx (100%) rename {api => platforms}/horizon/errors/http-status-codes/horizon-specific/timeout.mdx (100%) rename {api => platforms}/horizon/errors/http-status-codes/horizon-specific/transaction-failed.mdx (100%) rename {api => platforms}/horizon/errors/http-status-codes/horizon-specific/transaction-malformed.mdx (100%) rename {api => platforms}/horizon/errors/http-status-codes/index.mdx (100%) rename {api => platforms}/horizon/errors/http-status-codes/standard.mdx (100%) rename {api => platforms}/horizon/errors/index.mdx (100%) rename {api => platforms}/horizon/errors/response.mdx (100%) rename {api => platforms}/horizon/errors/result-codes/_category_.json (100%) rename {api => platforms}/horizon/errors/result-codes/index.mdx (100%) rename {api => platforms}/horizon/errors/result-codes/operation-specific/account-merge.mdx (100%) rename {api => platforms}/horizon/errors/result-codes/operation-specific/allow-trust.mdx (100%) rename {api => platforms}/horizon/errors/result-codes/operation-specific/bump-sequence.mdx (100%) rename {api => platforms}/horizon/errors/result-codes/operation-specific/category.json (100%) rename {api => platforms}/horizon/errors/result-codes/operation-specific/change-trust.mdx (100%) rename {api => platforms}/horizon/errors/result-codes/operation-specific/create-account.mdx (100%) rename {api => platforms}/horizon/errors/result-codes/operation-specific/create-passive-sell-offer.mdx (100%) rename {api => platforms}/horizon/errors/result-codes/operation-specific/index.mdx (100%) rename {api => platforms}/horizon/errors/result-codes/operation-specific/manage-buy-offer.mdx (100%) rename {api => platforms}/horizon/errors/result-codes/operation-specific/manage-data.mdx (100%) rename {api => platforms}/horizon/errors/result-codes/operation-specific/manage-sell-offer.mdx (100%) rename {api => platforms}/horizon/errors/result-codes/operation-specific/path-payment-strict-receive.mdx (100%) rename {api => platforms}/horizon/errors/result-codes/operation-specific/path-payment-strict-send.mdx (100%) rename {api => platforms}/horizon/errors/result-codes/operation-specific/payment.mdx (100%) rename {api => platforms}/horizon/errors/result-codes/operation-specific/set-options.mdx (100%) rename {api => platforms}/horizon/errors/result-codes/operations.mdx (100%) rename {api => platforms}/horizon/errors/result-codes/transactions.mdx (100%) rename {api => platforms}/horizon/introduction/_category_.json (100%) rename {api => platforms}/horizon/introduction/index.mdx (100%) rename {api => platforms}/horizon/introduction/pagination/_category_.json (100%) rename {api => platforms}/horizon/introduction/pagination/index.mdx (100%) rename {api => platforms}/horizon/introduction/pagination/page-arguments.mdx (100%) rename {api => platforms}/horizon/introduction/rate-limiting.mdx (100%) rename {api => platforms}/horizon/introduction/response-format.mdx (100%) rename {api => platforms}/horizon/introduction/streaming.mdx (100%) rename {api => platforms}/horizon/introduction/xdr.mdx (100%) rename {api => platforms}/horizon/resources/_category_.json (100%) rename {api => platforms}/horizon/resources/accounts/index.mdx (100%) rename {api => platforms}/horizon/resources/accounts/object.mdx (100%) rename {api => platforms}/horizon/resources/assets/index.mdx (100%) rename {api => platforms}/horizon/resources/assets/object.mdx (100%) rename {api => platforms}/horizon/resources/cb-retrieve-related-operations.api.mdx (100%) rename {api => platforms}/horizon/resources/cb-retrieve-related-transactions.api.mdx (100%) rename {api => platforms}/horizon/resources/claimablebalances/index.mdx (100%) rename {api => platforms}/horizon/resources/claimablebalances/object.mdx (100%) rename {api => platforms}/horizon/resources/effects/index.mdx (100%) rename {api => platforms}/horizon/resources/effects/types.mdx (100%) rename {api => platforms}/horizon/resources/get-all-offers.api.mdx (100%) rename {api => platforms}/horizon/resources/get-all-trades.api.mdx (100%) rename {api => platforms}/horizon/resources/get-data-by-account-id.api.mdx (100%) rename {api => platforms}/horizon/resources/get-effects-by-account-id.api.mdx (100%) rename {api => platforms}/horizon/resources/get-offer-by-offer-id.api.mdx (100%) rename {api => platforms}/horizon/resources/get-offers-by-account-id.api.mdx (100%) rename {api => platforms}/horizon/resources/get-operations-by-account-id.api.mdx (100%) rename {api => platforms}/horizon/resources/get-payments-by-account-id.api.mdx (100%) rename {api => platforms}/horizon/resources/get-trades-by-account-id.api.mdx (100%) rename {api => platforms}/horizon/resources/get-trades-by-offer-id.api.mdx (100%) rename {api => platforms}/horizon/resources/get-transactions-by-account-id.api.mdx (100%) rename {api => platforms}/horizon/resources/index.mdx (100%) rename {api => platforms}/horizon/resources/ledgers/index.mdx (100%) rename {api => platforms}/horizon/resources/ledgers/object.mdx (100%) rename {api => platforms}/horizon/resources/liquiditypools/index.mdx (100%) rename {api => platforms}/horizon/resources/list-all-accounts.api.mdx (100%) rename {api => platforms}/horizon/resources/list-all-assets.api.mdx (100%) rename {api => platforms}/horizon/resources/list-all-claimable-balances.api.mdx (100%) rename {api => platforms}/horizon/resources/list-all-effects.api.mdx (100%) rename {api => platforms}/horizon/resources/list-all-ledgers.api.mdx (100%) rename {api => platforms}/horizon/resources/list-all-operations.api.mdx (100%) rename {api => platforms}/horizon/resources/list-all-payments.api.mdx (100%) rename {api => platforms}/horizon/resources/list-all-transactions.api.mdx (100%) rename {api => platforms}/horizon/resources/list-liquidity-pools.api.mdx (100%) rename {api => platforms}/horizon/resources/list-strict-receive-payment-paths.api.mdx (100%) rename {api => platforms}/horizon/resources/list-strict-send-payment-paths.api.mdx (100%) rename {api => platforms}/horizon/resources/list-trade-aggregations.api.mdx (100%) rename {api => platforms}/horizon/resources/lp-retrieve-related-operations.api.mdx (100%) rename {api => platforms}/horizon/resources/lp-retrieve-related-transactions.api.mdx (100%) rename {api => platforms}/horizon/resources/offers/index.mdx (100%) rename {api => platforms}/horizon/resources/offers/object.mdx (100%) rename {api => platforms}/horizon/resources/operations/index.mdx (100%) rename {api => platforms}/horizon/resources/operations/object/account-merge.mdx (100%) rename {api => platforms}/horizon/resources/operations/object/allow-trust.mdx (100%) rename {api => platforms}/horizon/resources/operations/object/begin-sponsoring-future-reserves.mdx (100%) rename {api => platforms}/horizon/resources/operations/object/bump-sequence.mdx (100%) rename {api => platforms}/horizon/resources/operations/object/buy-offer.mdx (100%) rename {api => platforms}/horizon/resources/operations/object/change-trust.mdx (100%) rename {api => platforms}/horizon/resources/operations/object/claim-claimable-balance.mdx (100%) rename {api => platforms}/horizon/resources/operations/object/create-account.mdx (100%) rename {api => platforms}/horizon/resources/operations/object/create-claimable-balance.mdx (100%) rename {api => platforms}/horizon/resources/operations/object/end-sponsoring-future-reserves.mdx (100%) rename {api => platforms}/horizon/resources/operations/object/index.mdx (100%) rename {api => platforms}/horizon/resources/operations/object/liquidity-pool-deposit.mdx (100%) rename {api => platforms}/horizon/resources/operations/object/liquidity-pool-withdraw.mdx (100%) rename {api => platforms}/horizon/resources/operations/object/manage-data.mdx (100%) rename {api => platforms}/horizon/resources/operations/object/passive-sell-offer.mdx (100%) rename {api => platforms}/horizon/resources/operations/object/path-payment-strict-receive.mdx (100%) rename {api => platforms}/horizon/resources/operations/object/path-payment-strict-send.mdx (100%) rename {api => platforms}/horizon/resources/operations/object/payment.mdx (100%) rename {api => platforms}/horizon/resources/operations/object/revoke-sponsorship.mdx (100%) rename {api => platforms}/horizon/resources/operations/object/sell-offer.mdx (100%) rename {api => platforms}/horizon/resources/operations/object/set-options.mdx (100%) rename {api => platforms}/horizon/resources/retrieve-a-claimable-balance.api.mdx (100%) rename {api => platforms}/horizon/resources/retrieve-a-ledger.api.mdx (100%) rename {api => platforms}/horizon/resources/retrieve-a-ledgers-effects.api.mdx (100%) rename {api => platforms}/horizon/resources/retrieve-a-ledgers-operations.api.mdx (100%) rename {api => platforms}/horizon/resources/retrieve-a-ledgers-payments.api.mdx (100%) rename {api => platforms}/horizon/resources/retrieve-a-ledgers-transactions.api.mdx (100%) rename {api => platforms}/horizon/resources/retrieve-a-liquidity-pool.api.mdx (100%) rename {api => platforms}/horizon/resources/retrieve-a-transaction.api.mdx (100%) rename {api => platforms}/horizon/resources/retrieve-a-transactions-effects.api.mdx (100%) rename {api => platforms}/horizon/resources/retrieve-a-transactions-operations.api.mdx (100%) rename {api => platforms}/horizon/resources/retrieve-an-account.api.mdx (100%) rename {api => platforms}/horizon/resources/retrieve-an-operation.api.mdx (100%) rename {api => platforms}/horizon/resources/retrieve-an-operations-effects.api.mdx (100%) rename {api => platforms}/horizon/resources/retrieve-an-order-book.api.mdx (100%) rename {api => platforms}/horizon/resources/retrieve-fee-stats.api.mdx (100%) rename {api => platforms}/horizon/resources/retrieve-related-effects.api.mdx (100%) rename {api => platforms}/horizon/resources/retrieve-related-trades.api.mdx (100%) rename {api => platforms}/horizon/resources/sidebar.js (100%) rename {api => platforms}/horizon/resources/submit-a-transaction.api.mdx (100%) rename {api => platforms}/horizon/resources/trades/index.mdx (100%) rename {api => platforms}/horizon/resources/trades/object.mdx (100%) rename {api => platforms}/horizon/resources/transactions/index.mdx (100%) rename {api => platforms}/horizon/resources/transactions/object.mdx (100%) rename {docs => platforms/horizon}/run-platform-server/_category_.json (100%) rename {docs => platforms/horizon}/run-platform-server/configuring.mdx (100%) rename {docs => platforms/horizon}/run-platform-server/index.mdx (100%) rename {docs => platforms/horizon}/run-platform-server/ingestion-filtering.mdx (100%) rename {docs => platforms/horizon}/run-platform-server/ingestion.mdx (100%) rename {docs => platforms/horizon}/run-platform-server/installing.mdx (100%) rename {docs => platforms/horizon}/run-platform-server/monitoring.mdx (100%) rename {docs => platforms/horizon}/run-platform-server/prerequisites.mdx (100%) rename {docs => platforms/horizon}/run-platform-server/running.mdx (100%) rename {docs => platforms/horizon}/run-platform-server/scaling.mdx (100%) rename {docs => platforms/horizon}/run-platform-server/upgrading.mdx (100%) rename {api => platforms}/index.mdx (100%) rename {api => platforms}/stellar-disbursement-platform/introduction/_category_.json (100%) rename {api => platforms}/stellar-disbursement-platform/introduction/index.mdx (100%) rename {api => platforms}/stellar-disbursement-platform/resources/_category_.json (100%) rename {api => platforms}/stellar-disbursement-platform/resources/auth/index.mdx (100%) rename {api => platforms}/stellar-disbursement-platform/resources/authenticate-mfa.api.mdx (100%) rename {api => platforms}/stellar-disbursement-platform/resources/create-asset.api.mdx (100%) rename {api => platforms}/stellar-disbursement-platform/resources/create-disbursement.api.mdx (100%) rename {api => platforms}/stellar-disbursement-platform/resources/create-user.api.mdx (100%) rename {api => platforms}/stellar-disbursement-platform/resources/delete-asset.api.mdx (100%) rename {api => platforms}/stellar-disbursement-platform/resources/disbursements/index.mdx (100%) rename {api => platforms}/stellar-disbursement-platform/resources/download-disbursement-instructions.api.mdx (100%) rename {api => platforms}/stellar-disbursement-platform/resources/forgot-password.api.mdx (100%) rename {api => platforms}/stellar-disbursement-platform/resources/get-all-assets.api.mdx (100%) rename {api => platforms}/stellar-disbursement-platform/resources/get-all-countries.api.mdx (100%) rename {api => platforms}/stellar-disbursement-platform/resources/get-all-roles.api.mdx (100%) rename {api => platforms}/stellar-disbursement-platform/resources/get-all-users.api.mdx (100%) rename {api => platforms}/stellar-disbursement-platform/resources/get-all-wallets.api.mdx (100%) rename {api => platforms}/stellar-disbursement-platform/resources/get-organization-info.api.mdx (100%) rename {api => platforms}/stellar-disbursement-platform/resources/get-organization-logo.api.mdx (100%) rename {api => platforms}/stellar-disbursement-platform/resources/get-profile.api.mdx (100%) rename {api => platforms}/stellar-disbursement-platform/resources/index.mdx (100%) rename {api => platforms}/stellar-disbursement-platform/resources/list-all-disbursement-receivers.api.mdx (100%) rename {api => platforms}/stellar-disbursement-platform/resources/list-all-disbursements.api.mdx (100%) rename {api => platforms}/stellar-disbursement-platform/resources/list-all-payments.api.mdx (100%) rename {api => platforms}/stellar-disbursement-platform/resources/list-all-receivers.api.mdx (100%) rename {api => platforms}/stellar-disbursement-platform/resources/log-in.api.mdx (100%) rename {api => platforms}/stellar-disbursement-platform/resources/organization/index.mdx (100%) rename {api => platforms}/stellar-disbursement-platform/resources/payments/index.mdx (100%) rename {api => platforms}/stellar-disbursement-platform/resources/profile/index.mdx (100%) rename {api => platforms}/stellar-disbursement-platform/resources/provide-signed-challenge-transaction.api.mdx (100%) rename {api => platforms}/stellar-disbursement-platform/resources/receivers/index.mdx (100%) rename {api => platforms}/stellar-disbursement-platform/resources/refresh-token.api.mdx (100%) rename {api => platforms}/stellar-disbursement-platform/resources/registration/index.mdx (100%) rename {api => platforms}/stellar-disbursement-platform/resources/request-challenge-transaction.api.mdx (100%) rename {api => platforms}/stellar-disbursement-platform/resources/request-registration-url.api.mdx (100%) rename {api => platforms}/stellar-disbursement-platform/resources/reset-password.api.mdx (100%) rename {api => platforms}/stellar-disbursement-platform/resources/retrieve-a-disbursement.api.mdx (100%) rename {api => platforms}/stellar-disbursement-platform/resources/retrieve-a-payment.api.mdx (100%) rename {api => platforms}/stellar-disbursement-platform/resources/retrieve-a-receiver.api.mdx (100%) rename {api => platforms}/stellar-disbursement-platform/resources/retrieve-all-statistics.api.mdx (100%) rename {api => platforms}/stellar-disbursement-platform/resources/retrieve-disbursement-statistics.api.mdx (100%) rename {api => platforms}/stellar-disbursement-platform/resources/retrieve-stellar-info-file.api.mdx (100%) rename {api => platforms}/stellar-disbursement-platform/resources/send-one-time-passcode.api.mdx (100%) rename {api => platforms}/stellar-disbursement-platform/resources/sidebar.js (100%) rename {api => platforms}/stellar-disbursement-platform/resources/start-wallet-registration.api.mdx (100%) rename {api => platforms}/stellar-disbursement-platform/resources/statistics/index.mdx (100%) rename {api => platforms}/stellar-disbursement-platform/resources/update-a-disbursement-status.api.mdx (100%) rename {api => platforms}/stellar-disbursement-platform/resources/update-a-receiver.api.mdx (100%) rename {api => platforms}/stellar-disbursement-platform/resources/update-organization-profile.api.mdx (100%) rename {api => platforms}/stellar-disbursement-platform/resources/update-user-activation-status.api.mdx (100%) rename {api => platforms}/stellar-disbursement-platform/resources/update-user-profile.api.mdx (100%) rename {api => platforms}/stellar-disbursement-platform/resources/update-user-role.api.mdx (100%) rename {api => platforms}/stellar-disbursement-platform/resources/upload-disbursement-instructions.api.mdx (100%) rename {api => platforms}/stellar-disbursement-platform/resources/users/index.mdx (100%) rename {api => platforms}/stellar-disbursement-platform/resources/verify-receiver-registration.api.mdx (100%) rename {docs/stellar-disbursement-platform => platforms/stellar-disbursement-platform/run-stellar-disburement-platform}/_category_.json (100%) rename {docs/stellar-disbursement-platform => platforms/stellar-disbursement-platform/run-stellar-disburement-platform}/anchor-platform-integration-points.mdx (100%) rename {docs/stellar-disbursement-platform => platforms/stellar-disbursement-platform/run-stellar-disburement-platform}/deploy-the-sdp.mdx (100%) rename {docs/stellar-disbursement-platform => platforms/stellar-disbursement-platform/run-stellar-disburement-platform}/design-and-architecture.mdx (100%) rename {docs/stellar-disbursement-platform => platforms/stellar-disbursement-platform/run-stellar-disburement-platform}/getting-started.mdx (100%) rename {docs/stellar-disbursement-platform => platforms/stellar-disbursement-platform/run-stellar-disburement-platform}/making-your-wallet-sdp-ready.mdx (100%) rename {docs/stellar-disbursement-platform => platforms/stellar-disbursement-platform/run-stellar-disburement-platform}/overview.mdx (100%) rename {docs/stellar-disbursement-platform => platforms/stellar-disbursement-platform/run-stellar-disburement-platform}/secure-operation-manual.mdx (100%) rename {docs/stellar-disbursement-platform => platforms/stellar-disbursement-platform/run-stellar-disburement-platform}/user-interface/_category_.json (100%) rename {docs/stellar-disbursement-platform => platforms/stellar-disbursement-platform/run-stellar-disburement-platform}/user-interface/analytics.mdx (100%) rename {docs/stellar-disbursement-platform => platforms/stellar-disbursement-platform/run-stellar-disburement-platform}/user-interface/dashboard-home.mdx (100%) rename {docs/stellar-disbursement-platform => platforms/stellar-disbursement-platform/run-stellar-disburement-platform}/user-interface/disbursements.mdx (100%) rename {docs/stellar-disbursement-platform => platforms/stellar-disbursement-platform/run-stellar-disburement-platform}/user-interface/payments.mdx (100%) rename {docs/stellar-disbursement-platform => platforms/stellar-disbursement-platform/run-stellar-disburement-platform}/user-interface/receivers.mdx (100%) rename {docs/stellar-disbursement-platform => platforms/stellar-disbursement-platform/run-stellar-disburement-platform}/user-interface/wallets.mdx (100%) diff --git a/api/READ_FIRST.md b/platforms/READ_FIRST.md similarity index 100% rename from api/READ_FIRST.md rename to platforms/READ_FIRST.md diff --git a/api/anchor-platform/callbacks/_category_.json b/platforms/anchor-platform/callbacks/_category_.json similarity index 100% rename from api/anchor-platform/callbacks/_category_.json rename to platforms/anchor-platform/callbacks/_category_.json diff --git a/api/anchor-platform/callbacks/customer/index.mdx b/platforms/anchor-platform/callbacks/customer/index.mdx similarity index 100% rename from api/anchor-platform/callbacks/customer/index.mdx rename to platforms/anchor-platform/callbacks/customer/index.mdx diff --git a/api/anchor-platform/callbacks/del-customer.api.mdx b/platforms/anchor-platform/callbacks/del-customer.api.mdx similarity index 100% rename from api/anchor-platform/callbacks/del-customer.api.mdx rename to platforms/anchor-platform/callbacks/del-customer.api.mdx diff --git a/api/anchor-platform/callbacks/event/index.mdx b/platforms/anchor-platform/callbacks/event/index.mdx similarity index 100% rename from api/anchor-platform/callbacks/event/index.mdx rename to platforms/anchor-platform/callbacks/event/index.mdx diff --git a/api/anchor-platform/callbacks/fee/index.mdx b/platforms/anchor-platform/callbacks/fee/index.mdx similarity index 100% rename from api/anchor-platform/callbacks/fee/index.mdx rename to platforms/anchor-platform/callbacks/fee/index.mdx diff --git a/api/anchor-platform/callbacks/gen-address.api.mdx b/platforms/anchor-platform/callbacks/gen-address.api.mdx similarity index 100% rename from api/anchor-platform/callbacks/gen-address.api.mdx rename to platforms/anchor-platform/callbacks/gen-address.api.mdx diff --git a/api/anchor-platform/callbacks/get-customer.api.mdx b/platforms/anchor-platform/callbacks/get-customer.api.mdx similarity index 100% rename from api/anchor-platform/callbacks/get-customer.api.mdx rename to platforms/anchor-platform/callbacks/get-customer.api.mdx diff --git a/api/anchor-platform/callbacks/get-fee.api.mdx b/platforms/anchor-platform/callbacks/get-fee.api.mdx similarity index 100% rename from api/anchor-platform/callbacks/get-fee.api.mdx rename to platforms/anchor-platform/callbacks/get-fee.api.mdx diff --git a/api/anchor-platform/callbacks/get-rates.api.mdx b/platforms/anchor-platform/callbacks/get-rates.api.mdx similarity index 100% rename from api/anchor-platform/callbacks/get-rates.api.mdx rename to platforms/anchor-platform/callbacks/get-rates.api.mdx diff --git a/api/anchor-platform/callbacks/index.mdx b/platforms/anchor-platform/callbacks/index.mdx similarity index 100% rename from api/anchor-platform/callbacks/index.mdx rename to platforms/anchor-platform/callbacks/index.mdx diff --git a/api/anchor-platform/callbacks/post-event.api.mdx b/platforms/anchor-platform/callbacks/post-event.api.mdx similarity index 100% rename from api/anchor-platform/callbacks/post-event.api.mdx rename to platforms/anchor-platform/callbacks/post-event.api.mdx diff --git a/api/anchor-platform/callbacks/put-customer.api.mdx b/platforms/anchor-platform/callbacks/put-customer.api.mdx similarity index 100% rename from api/anchor-platform/callbacks/put-customer.api.mdx rename to platforms/anchor-platform/callbacks/put-customer.api.mdx diff --git a/api/anchor-platform/callbacks/rate/index.mdx b/platforms/anchor-platform/callbacks/rate/index.mdx similarity index 100% rename from api/anchor-platform/callbacks/rate/index.mdx rename to platforms/anchor-platform/callbacks/rate/index.mdx diff --git a/api/anchor-platform/callbacks/sidebar.js b/platforms/anchor-platform/callbacks/sidebar.js similarity index 100% rename from api/anchor-platform/callbacks/sidebar.js rename to platforms/anchor-platform/callbacks/sidebar.js diff --git a/api/anchor-platform/callbacks/unique-address/index.mdx b/platforms/anchor-platform/callbacks/unique-address/index.mdx similarity index 100% rename from api/anchor-platform/callbacks/unique-address/index.mdx rename to platforms/anchor-platform/callbacks/unique-address/index.mdx diff --git a/api/anchor-platform/custody-server/_category_.json b/platforms/anchor-platform/custody-server/_category_.json similarity index 100% rename from api/anchor-platform/custody-server/_category_.json rename to platforms/anchor-platform/custody-server/_category_.json diff --git a/api/anchor-platform/custody-server/create-custody-transaction.api.mdx b/platforms/anchor-platform/custody-server/create-custody-transaction.api.mdx similarity index 100% rename from api/anchor-platform/custody-server/create-custody-transaction.api.mdx rename to platforms/anchor-platform/custody-server/create-custody-transaction.api.mdx diff --git a/api/anchor-platform/custody-server/custody-transactions/index.mdx b/platforms/anchor-platform/custody-server/custody-transactions/index.mdx similarity index 100% rename from api/anchor-platform/custody-server/custody-transactions/index.mdx rename to platforms/anchor-platform/custody-server/custody-transactions/index.mdx diff --git a/api/anchor-platform/custody-server/generate-unique-address.api.mdx b/platforms/anchor-platform/custody-server/generate-unique-address.api.mdx similarity index 100% rename from api/anchor-platform/custody-server/generate-unique-address.api.mdx rename to platforms/anchor-platform/custody-server/generate-unique-address.api.mdx diff --git a/api/anchor-platform/custody-server/index.mdx b/platforms/anchor-platform/custody-server/index.mdx similarity index 100% rename from api/anchor-platform/custody-server/index.mdx rename to platforms/anchor-platform/custody-server/index.mdx diff --git a/api/anchor-platform/custody-server/payments/index.mdx b/platforms/anchor-platform/custody-server/payments/index.mdx similarity index 100% rename from api/anchor-platform/custody-server/payments/index.mdx rename to platforms/anchor-platform/custody-server/payments/index.mdx diff --git a/api/anchor-platform/custody-server/refunds/index.mdx b/platforms/anchor-platform/custody-server/refunds/index.mdx similarity index 100% rename from api/anchor-platform/custody-server/refunds/index.mdx rename to platforms/anchor-platform/custody-server/refunds/index.mdx diff --git a/api/anchor-platform/custody-server/send-payment.api.mdx b/platforms/anchor-platform/custody-server/send-payment.api.mdx similarity index 100% rename from api/anchor-platform/custody-server/send-payment.api.mdx rename to platforms/anchor-platform/custody-server/send-payment.api.mdx diff --git a/api/anchor-platform/custody-server/send-refund.api.mdx b/platforms/anchor-platform/custody-server/send-refund.api.mdx similarity index 100% rename from api/anchor-platform/custody-server/send-refund.api.mdx rename to platforms/anchor-platform/custody-server/send-refund.api.mdx diff --git a/api/anchor-platform/custody-server/sidebar.js b/platforms/anchor-platform/custody-server/sidebar.js similarity index 100% rename from api/anchor-platform/custody-server/sidebar.js rename to platforms/anchor-platform/custody-server/sidebar.js diff --git a/api/anchor-platform/custody-server/unique-address/index.mdx b/platforms/anchor-platform/custody-server/unique-address/index.mdx similarity index 100% rename from api/anchor-platform/custody-server/unique-address/index.mdx rename to platforms/anchor-platform/custody-server/unique-address/index.mdx diff --git a/api/anchor-platform/introduction/_category_.json b/platforms/anchor-platform/introduction/_category_.json similarity index 100% rename from api/anchor-platform/introduction/_category_.json rename to platforms/anchor-platform/introduction/_category_.json diff --git a/api/anchor-platform/introduction/index.mdx b/platforms/anchor-platform/introduction/index.mdx similarity index 100% rename from api/anchor-platform/introduction/index.mdx rename to platforms/anchor-platform/introduction/index.mdx diff --git a/api/anchor-platform/resources/_category_.json b/platforms/anchor-platform/resources/_category_.json similarity index 100% rename from api/anchor-platform/resources/_category_.json rename to platforms/anchor-platform/resources/_category_.json diff --git a/api/anchor-platform/resources/get-transaction.api.mdx b/platforms/anchor-platform/resources/get-transaction.api.mdx similarity index 100% rename from api/anchor-platform/resources/get-transaction.api.mdx rename to platforms/anchor-platform/resources/get-transaction.api.mdx diff --git a/api/anchor-platform/resources/get-transactions.api.mdx b/platforms/anchor-platform/resources/get-transactions.api.mdx similarity index 100% rename from api/anchor-platform/resources/get-transactions.api.mdx rename to platforms/anchor-platform/resources/get-transactions.api.mdx diff --git a/api/anchor-platform/resources/index.mdx b/platforms/anchor-platform/resources/index.mdx similarity index 100% rename from api/anchor-platform/resources/index.mdx rename to platforms/anchor-platform/resources/index.mdx diff --git a/api/anchor-platform/resources/sidebar.js b/platforms/anchor-platform/resources/sidebar.js similarity index 100% rename from api/anchor-platform/resources/sidebar.js rename to platforms/anchor-platform/resources/sidebar.js diff --git a/api/anchor-platform/resources/transactions/index.mdx b/platforms/anchor-platform/resources/transactions/index.mdx similarity index 100% rename from api/anchor-platform/resources/transactions/index.mdx rename to platforms/anchor-platform/resources/transactions/index.mdx diff --git a/api/anchor-platform/rpc/_category_.json b/platforms/anchor-platform/rpc/_category_.json similarity index 100% rename from api/anchor-platform/rpc/_category_.json rename to platforms/anchor-platform/rpc/_category_.json diff --git a/api/anchor-platform/rpc/index.mdx b/platforms/anchor-platform/rpc/index.mdx similarity index 100% rename from api/anchor-platform/rpc/index.mdx rename to platforms/anchor-platform/rpc/index.mdx diff --git a/api/anchor-platform/rpc/methods/do_stellar_payment/index.mdx b/platforms/anchor-platform/rpc/methods/do_stellar_payment/index.mdx similarity index 100% rename from api/anchor-platform/rpc/methods/do_stellar_payment/index.mdx rename to platforms/anchor-platform/rpc/methods/do_stellar_payment/index.mdx diff --git a/api/anchor-platform/rpc/methods/do_stellar_refund/index.mdx b/platforms/anchor-platform/rpc/methods/do_stellar_refund/index.mdx similarity index 100% rename from api/anchor-platform/rpc/methods/do_stellar_refund/index.mdx rename to platforms/anchor-platform/rpc/methods/do_stellar_refund/index.mdx diff --git a/api/anchor-platform/rpc/methods/index.mdx b/platforms/anchor-platform/rpc/methods/index.mdx similarity index 100% rename from api/anchor-platform/rpc/methods/index.mdx rename to platforms/anchor-platform/rpc/methods/index.mdx diff --git a/api/anchor-platform/rpc/methods/notify_amounts_updated/index.mdx b/platforms/anchor-platform/rpc/methods/notify_amounts_updated/index.mdx similarity index 100% rename from api/anchor-platform/rpc/methods/notify_amounts_updated/index.mdx rename to platforms/anchor-platform/rpc/methods/notify_amounts_updated/index.mdx diff --git a/api/anchor-platform/rpc/methods/notify_customer_info_updated/index.mdx b/platforms/anchor-platform/rpc/methods/notify_customer_info_updated/index.mdx similarity index 100% rename from api/anchor-platform/rpc/methods/notify_customer_info_updated/index.mdx rename to platforms/anchor-platform/rpc/methods/notify_customer_info_updated/index.mdx diff --git a/api/anchor-platform/rpc/methods/notify_interactive_flow_completed/index.mdx b/platforms/anchor-platform/rpc/methods/notify_interactive_flow_completed/index.mdx similarity index 100% rename from api/anchor-platform/rpc/methods/notify_interactive_flow_completed/index.mdx rename to platforms/anchor-platform/rpc/methods/notify_interactive_flow_completed/index.mdx diff --git a/api/anchor-platform/rpc/methods/notify_offchain_funds_available/index.mdx b/platforms/anchor-platform/rpc/methods/notify_offchain_funds_available/index.mdx similarity index 100% rename from api/anchor-platform/rpc/methods/notify_offchain_funds_available/index.mdx rename to platforms/anchor-platform/rpc/methods/notify_offchain_funds_available/index.mdx diff --git a/api/anchor-platform/rpc/methods/notify_offchain_funds_pending/index.mdx b/platforms/anchor-platform/rpc/methods/notify_offchain_funds_pending/index.mdx similarity index 100% rename from api/anchor-platform/rpc/methods/notify_offchain_funds_pending/index.mdx rename to platforms/anchor-platform/rpc/methods/notify_offchain_funds_pending/index.mdx diff --git a/api/anchor-platform/rpc/methods/notify_offchain_funds_received/index.mdx b/platforms/anchor-platform/rpc/methods/notify_offchain_funds_received/index.mdx similarity index 100% rename from api/anchor-platform/rpc/methods/notify_offchain_funds_received/index.mdx rename to platforms/anchor-platform/rpc/methods/notify_offchain_funds_received/index.mdx diff --git a/api/anchor-platform/rpc/methods/notify_offchain_funds_sent/index.mdx b/platforms/anchor-platform/rpc/methods/notify_offchain_funds_sent/index.mdx similarity index 100% rename from api/anchor-platform/rpc/methods/notify_offchain_funds_sent/index.mdx rename to platforms/anchor-platform/rpc/methods/notify_offchain_funds_sent/index.mdx diff --git a/api/anchor-platform/rpc/methods/notify_onchain_funds_received/index.mdx b/platforms/anchor-platform/rpc/methods/notify_onchain_funds_received/index.mdx similarity index 100% rename from api/anchor-platform/rpc/methods/notify_onchain_funds_received/index.mdx rename to platforms/anchor-platform/rpc/methods/notify_onchain_funds_received/index.mdx diff --git a/api/anchor-platform/rpc/methods/notify_onchain_funds_sent/index.mdx b/platforms/anchor-platform/rpc/methods/notify_onchain_funds_sent/index.mdx similarity index 100% rename from api/anchor-platform/rpc/methods/notify_onchain_funds_sent/index.mdx rename to platforms/anchor-platform/rpc/methods/notify_onchain_funds_sent/index.mdx diff --git a/api/anchor-platform/rpc/methods/notify_refund_pending/index.mdx b/platforms/anchor-platform/rpc/methods/notify_refund_pending/index.mdx similarity index 100% rename from api/anchor-platform/rpc/methods/notify_refund_pending/index.mdx rename to platforms/anchor-platform/rpc/methods/notify_refund_pending/index.mdx diff --git a/api/anchor-platform/rpc/methods/notify_refund_sent/index.mdx b/platforms/anchor-platform/rpc/methods/notify_refund_sent/index.mdx similarity index 100% rename from api/anchor-platform/rpc/methods/notify_refund_sent/index.mdx rename to platforms/anchor-platform/rpc/methods/notify_refund_sent/index.mdx diff --git a/api/anchor-platform/rpc/methods/notify_transaction_error/index.mdx b/platforms/anchor-platform/rpc/methods/notify_transaction_error/index.mdx similarity index 100% rename from api/anchor-platform/rpc/methods/notify_transaction_error/index.mdx rename to platforms/anchor-platform/rpc/methods/notify_transaction_error/index.mdx diff --git a/api/anchor-platform/rpc/methods/notify_transaction_expired/index.mdx b/platforms/anchor-platform/rpc/methods/notify_transaction_expired/index.mdx similarity index 100% rename from api/anchor-platform/rpc/methods/notify_transaction_expired/index.mdx rename to platforms/anchor-platform/rpc/methods/notify_transaction_expired/index.mdx diff --git a/api/anchor-platform/rpc/methods/notify_transaction_recovery/index.mdx b/platforms/anchor-platform/rpc/methods/notify_transaction_recovery/index.mdx similarity index 100% rename from api/anchor-platform/rpc/methods/notify_transaction_recovery/index.mdx rename to platforms/anchor-platform/rpc/methods/notify_transaction_recovery/index.mdx diff --git a/api/anchor-platform/rpc/methods/notify_trust_set/index.mdx b/platforms/anchor-platform/rpc/methods/notify_trust_set/index.mdx similarity index 100% rename from api/anchor-platform/rpc/methods/notify_trust_set/index.mdx rename to platforms/anchor-platform/rpc/methods/notify_trust_set/index.mdx diff --git a/api/anchor-platform/rpc/methods/request_customer_info_update/index.mdx b/platforms/anchor-platform/rpc/methods/request_customer_info_update/index.mdx similarity index 100% rename from api/anchor-platform/rpc/methods/request_customer_info_update/index.mdx rename to platforms/anchor-platform/rpc/methods/request_customer_info_update/index.mdx diff --git a/api/anchor-platform/rpc/methods/request_offchain_funds/index.mdx b/platforms/anchor-platform/rpc/methods/request_offchain_funds/index.mdx similarity index 100% rename from api/anchor-platform/rpc/methods/request_offchain_funds/index.mdx rename to platforms/anchor-platform/rpc/methods/request_offchain_funds/index.mdx diff --git a/api/anchor-platform/rpc/methods/request_onchain_funds/index.mdx b/platforms/anchor-platform/rpc/methods/request_onchain_funds/index.mdx similarity index 100% rename from api/anchor-platform/rpc/methods/request_onchain_funds/index.mdx rename to platforms/anchor-platform/rpc/methods/request_onchain_funds/index.mdx diff --git a/api/anchor-platform/rpc/methods/request_trust/index.mdx b/platforms/anchor-platform/rpc/methods/request_trust/index.mdx similarity index 100% rename from api/anchor-platform/rpc/methods/request_trust/index.mdx rename to platforms/anchor-platform/rpc/methods/request_trust/index.mdx diff --git a/api/anchor-platform/rpc/notify_interactive_flow_completed.api.mdx b/platforms/anchor-platform/rpc/notify_interactive_flow_completed.api.mdx similarity index 100% rename from api/anchor-platform/rpc/notify_interactive_flow_completed.api.mdx rename to platforms/anchor-platform/rpc/notify_interactive_flow_completed.api.mdx diff --git a/api/anchor-platform/rpc/sidebar.js b/platforms/anchor-platform/rpc/sidebar.js similarity index 100% rename from api/anchor-platform/rpc/sidebar.js rename to platforms/anchor-platform/rpc/sidebar.js diff --git a/docs/anchoring-assets/anchor-platform/_category_.json b/platforms/anchor-platform/run-anchor-platform/_category_.json similarity index 100% rename from docs/anchoring-assets/anchor-platform/_category_.json rename to platforms/anchor-platform/run-anchor-platform/_category_.json diff --git a/docs/anchoring-assets/anchor-platform/architecture.mdx b/platforms/anchor-platform/run-anchor-platform/architecture.mdx similarity index 100% rename from docs/anchoring-assets/anchor-platform/architecture.mdx rename to platforms/anchor-platform/run-anchor-platform/architecture.mdx diff --git a/docs/anchoring-assets/anchor-platform/component/observer/observer.mdx b/platforms/anchor-platform/run-anchor-platform/component/observer/observer.mdx similarity index 100% rename from docs/anchoring-assets/anchor-platform/component/observer/observer.mdx rename to platforms/anchor-platform/run-anchor-platform/component/observer/observer.mdx diff --git a/docs/anchoring-assets/anchor-platform/component/rpc/error.mdx b/platforms/anchor-platform/run-anchor-platform/component/rpc/error.mdx similarity index 100% rename from docs/anchoring-assets/anchor-platform/component/rpc/error.mdx rename to platforms/anchor-platform/run-anchor-platform/component/rpc/error.mdx diff --git a/docs/anchoring-assets/anchor-platform/component/rpc/request.mdx b/platforms/anchor-platform/run-anchor-platform/component/rpc/request.mdx similarity index 100% rename from docs/anchoring-assets/anchor-platform/component/rpc/request.mdx rename to platforms/anchor-platform/run-anchor-platform/component/rpc/request.mdx diff --git a/docs/anchoring-assets/anchor-platform/component/rpc/response.mdx b/platforms/anchor-platform/run-anchor-platform/component/rpc/response.mdx similarity index 100% rename from docs/anchoring-assets/anchor-platform/component/rpc/response.mdx rename to platforms/anchor-platform/run-anchor-platform/component/rpc/response.mdx diff --git a/docs/anchoring-assets/anchor-platform/component/rpc/rpc.mdx b/platforms/anchor-platform/run-anchor-platform/component/rpc/rpc.mdx similarity index 100% rename from docs/anchoring-assets/anchor-platform/component/rpc/rpc.mdx rename to platforms/anchor-platform/run-anchor-platform/component/rpc/rpc.mdx diff --git a/docs/anchoring-assets/anchor-platform/component/security/api_key.mdx b/platforms/anchor-platform/run-anchor-platform/component/security/api_key.mdx similarity index 100% rename from docs/anchoring-assets/anchor-platform/component/security/api_key.mdx rename to platforms/anchor-platform/run-anchor-platform/component/security/api_key.mdx diff --git a/docs/anchoring-assets/anchor-platform/component/security/jwt.mdx b/platforms/anchor-platform/run-anchor-platform/component/security/jwt.mdx similarity index 100% rename from docs/anchoring-assets/anchor-platform/component/security/jwt.mdx rename to platforms/anchor-platform/run-anchor-platform/component/security/jwt.mdx diff --git a/docs/anchoring-assets/anchor-platform/component/security/security.mdx b/platforms/anchor-platform/run-anchor-platform/component/security/security.mdx similarity index 100% rename from docs/anchoring-assets/anchor-platform/component/security/security.mdx rename to platforms/anchor-platform/run-anchor-platform/component/security/security.mdx diff --git a/docs/anchoring-assets/anchor-platform/custody-services/_category_.json b/platforms/anchor-platform/run-anchor-platform/custody-services/_category_.json similarity index 100% rename from docs/anchoring-assets/anchor-platform/custody-services/_category_.json rename to platforms/anchor-platform/run-anchor-platform/custody-services/_category_.json diff --git a/docs/anchoring-assets/anchor-platform/custody-services/configuration.mdx b/platforms/anchor-platform/run-anchor-platform/custody-services/configuration.mdx similarity index 100% rename from docs/anchoring-assets/anchor-platform/custody-services/configuration.mdx rename to platforms/anchor-platform/run-anchor-platform/custody-services/configuration.mdx diff --git a/docs/anchoring-assets/anchor-platform/custody-services/fireblocks/_category_.json b/platforms/anchor-platform/run-anchor-platform/custody-services/fireblocks/_category_.json similarity index 100% rename from docs/anchoring-assets/anchor-platform/custody-services/fireblocks/_category_.json rename to platforms/anchor-platform/run-anchor-platform/custody-services/fireblocks/_category_.json diff --git a/docs/anchoring-assets/anchor-platform/custody-services/fireblocks/configuration.mdx b/platforms/anchor-platform/run-anchor-platform/custody-services/fireblocks/configuration.mdx similarity index 100% rename from docs/anchoring-assets/anchor-platform/custody-services/fireblocks/configuration.mdx rename to platforms/anchor-platform/run-anchor-platform/custody-services/fireblocks/configuration.mdx diff --git a/docs/anchoring-assets/anchor-platform/custody-services/fireblocks/example.mdx b/platforms/anchor-platform/run-anchor-platform/custody-services/fireblocks/example.mdx similarity index 100% rename from docs/anchoring-assets/anchor-platform/custody-services/fireblocks/example.mdx rename to platforms/anchor-platform/run-anchor-platform/custody-services/fireblocks/example.mdx diff --git a/docs/anchoring-assets/anchor-platform/getting_started.mdx b/platforms/anchor-platform/run-anchor-platform/getting_started.mdx similarity index 100% rename from docs/anchoring-assets/anchor-platform/getting_started.mdx rename to platforms/anchor-platform/run-anchor-platform/getting_started.mdx diff --git a/docs/anchoring-assets/anchor-platform/index.mdx b/platforms/anchor-platform/run-anchor-platform/index.mdx similarity index 100% rename from docs/anchoring-assets/anchor-platform/index.mdx rename to platforms/anchor-platform/run-anchor-platform/index.mdx diff --git a/docs/anchoring-assets/anchor-platform/sep1/_category_.json b/platforms/anchor-platform/run-anchor-platform/sep1/_category_.json similarity index 100% rename from docs/anchoring-assets/anchor-platform/sep1/_category_.json rename to platforms/anchor-platform/run-anchor-platform/sep1/_category_.json diff --git a/docs/anchoring-assets/anchor-platform/sep1/configuration.mdx b/platforms/anchor-platform/run-anchor-platform/sep1/configuration.mdx similarity index 100% rename from docs/anchoring-assets/anchor-platform/sep1/configuration.mdx rename to platforms/anchor-platform/run-anchor-platform/sep1/configuration.mdx diff --git a/docs/anchoring-assets/anchor-platform/sep10/_category_.json b/platforms/anchor-platform/run-anchor-platform/sep10/_category_.json similarity index 100% rename from docs/anchoring-assets/anchor-platform/sep10/_category_.json rename to platforms/anchor-platform/run-anchor-platform/sep10/_category_.json diff --git a/docs/anchoring-assets/anchor-platform/sep10/configuration.mdx b/platforms/anchor-platform/run-anchor-platform/sep10/configuration.mdx similarity index 100% rename from docs/anchoring-assets/anchor-platform/sep10/configuration.mdx rename to platforms/anchor-platform/run-anchor-platform/sep10/configuration.mdx diff --git a/docs/anchoring-assets/anchor-platform/sep24/_category_.json b/platforms/anchor-platform/run-anchor-platform/sep24/_category_.json similarity index 100% rename from docs/anchoring-assets/anchor-platform/sep24/_category_.json rename to platforms/anchor-platform/run-anchor-platform/sep24/_category_.json diff --git a/docs/anchoring-assets/anchor-platform/sep24/configuration.mdx b/platforms/anchor-platform/run-anchor-platform/sep24/configuration.mdx similarity index 100% rename from docs/anchoring-assets/anchor-platform/sep24/configuration.mdx rename to platforms/anchor-platform/run-anchor-platform/sep24/configuration.mdx diff --git a/docs/anchoring-assets/anchor-platform/sep24/example.mdx b/platforms/anchor-platform/run-anchor-platform/sep24/example.mdx similarity index 100% rename from docs/anchoring-assets/anchor-platform/sep24/example.mdx rename to platforms/anchor-platform/run-anchor-platform/sep24/example.mdx diff --git a/docs/anchoring-assets/anchor-platform/sep24/faq.mdx b/platforms/anchor-platform/run-anchor-platform/sep24/faq.mdx similarity index 100% rename from docs/anchoring-assets/anchor-platform/sep24/faq.mdx rename to platforms/anchor-platform/run-anchor-platform/sep24/faq.mdx diff --git a/docs/anchoring-assets/anchor-platform/sep24/index.mdx b/platforms/anchor-platform/run-anchor-platform/sep24/index.mdx similarity index 100% rename from docs/anchoring-assets/anchor-platform/sep24/index.mdx rename to platforms/anchor-platform/run-anchor-platform/sep24/index.mdx diff --git a/docs/anchoring-assets/anchor-platform/sep24/integration.mdx b/platforms/anchor-platform/run-anchor-platform/sep24/integration.mdx similarity index 100% rename from docs/anchoring-assets/anchor-platform/sep24/integration.mdx rename to platforms/anchor-platform/run-anchor-platform/sep24/integration.mdx diff --git a/docs/anchoring-assets/anchor-platform/sep24/setting-up-production-server.mdx b/platforms/anchor-platform/run-anchor-platform/sep24/setting-up-production-server.mdx similarity index 100% rename from docs/anchoring-assets/anchor-platform/sep24/setting-up-production-server.mdx rename to platforms/anchor-platform/run-anchor-platform/sep24/setting-up-production-server.mdx diff --git a/docs/anchoring-assets/anchor-platform/sep31/_category_.json b/platforms/anchor-platform/run-anchor-platform/sep31/_category_.json similarity index 100% rename from docs/anchoring-assets/anchor-platform/sep31/_category_.json rename to platforms/anchor-platform/run-anchor-platform/sep31/_category_.json diff --git a/docs/anchoring-assets/anchor-platform/sep31/configuration.mdx b/platforms/anchor-platform/run-anchor-platform/sep31/configuration.mdx similarity index 100% rename from docs/anchoring-assets/anchor-platform/sep31/configuration.mdx rename to platforms/anchor-platform/run-anchor-platform/sep31/configuration.mdx diff --git a/docs/anchoring-assets/anchor-platform/sep31/index.mdx b/platforms/anchor-platform/run-anchor-platform/sep31/index.mdx similarity index 100% rename from docs/anchoring-assets/anchor-platform/sep31/index.mdx rename to platforms/anchor-platform/run-anchor-platform/sep31/index.mdx diff --git a/docs/anchoring-assets/anchor-platform/sep31/integration.mdx b/platforms/anchor-platform/run-anchor-platform/sep31/integration.mdx similarity index 100% rename from docs/anchoring-assets/anchor-platform/sep31/integration.mdx rename to platforms/anchor-platform/run-anchor-platform/sep31/integration.mdx diff --git a/docs/anchoring-assets/anchor-platform/sep6/_category_.json b/platforms/anchor-platform/run-anchor-platform/sep6/_category_.json similarity index 100% rename from docs/anchoring-assets/anchor-platform/sep6/_category_.json rename to platforms/anchor-platform/run-anchor-platform/sep6/_category_.json diff --git a/docs/anchoring-assets/anchor-platform/sep6/configuration.mdx b/platforms/anchor-platform/run-anchor-platform/sep6/configuration.mdx similarity index 100% rename from docs/anchoring-assets/anchor-platform/sep6/configuration.mdx rename to platforms/anchor-platform/run-anchor-platform/sep6/configuration.mdx diff --git a/docs/anchoring-assets/anchor-platform/sep6/index.mdx b/platforms/anchor-platform/run-anchor-platform/sep6/index.mdx similarity index 100% rename from docs/anchoring-assets/anchor-platform/sep6/index.mdx rename to platforms/anchor-platform/run-anchor-platform/sep6/index.mdx diff --git a/docs/anchoring-assets/anchor-platform/sep6/integration.mdx b/platforms/anchor-platform/run-anchor-platform/sep6/integration.mdx similarity index 100% rename from docs/anchoring-assets/anchor-platform/sep6/integration.mdx rename to platforms/anchor-platform/run-anchor-platform/sep6/integration.mdx diff --git a/api/horizon/aggregations/_category_.json b/platforms/horizon/aggregations/_category_.json similarity index 100% rename from api/horizon/aggregations/_category_.json rename to platforms/horizon/aggregations/_category_.json diff --git a/api/horizon/aggregations/fee-stats/_category_.json b/platforms/horizon/aggregations/fee-stats/_category_.json similarity index 100% rename from api/horizon/aggregations/fee-stats/_category_.json rename to platforms/horizon/aggregations/fee-stats/_category_.json diff --git a/api/horizon/aggregations/fee-stats/index.mdx b/platforms/horizon/aggregations/fee-stats/index.mdx similarity index 100% rename from api/horizon/aggregations/fee-stats/index.mdx rename to platforms/horizon/aggregations/fee-stats/index.mdx diff --git a/api/horizon/aggregations/fee-stats/object.mdx b/platforms/horizon/aggregations/fee-stats/object.mdx similarity index 100% rename from api/horizon/aggregations/fee-stats/object.mdx rename to platforms/horizon/aggregations/fee-stats/object.mdx diff --git a/api/horizon/aggregations/fee-stats/single.mdx b/platforms/horizon/aggregations/fee-stats/single.mdx similarity index 100% rename from api/horizon/aggregations/fee-stats/single.mdx rename to platforms/horizon/aggregations/fee-stats/single.mdx diff --git a/api/horizon/aggregations/index.mdx b/platforms/horizon/aggregations/index.mdx similarity index 100% rename from api/horizon/aggregations/index.mdx rename to platforms/horizon/aggregations/index.mdx diff --git a/api/horizon/aggregations/order-books/_category_.json b/platforms/horizon/aggregations/order-books/_category_.json similarity index 100% rename from api/horizon/aggregations/order-books/_category_.json rename to platforms/horizon/aggregations/order-books/_category_.json diff --git a/api/horizon/aggregations/order-books/index.mdx b/platforms/horizon/aggregations/order-books/index.mdx similarity index 100% rename from api/horizon/aggregations/order-books/index.mdx rename to platforms/horizon/aggregations/order-books/index.mdx diff --git a/api/horizon/aggregations/order-books/object.mdx b/platforms/horizon/aggregations/order-books/object.mdx similarity index 100% rename from api/horizon/aggregations/order-books/object.mdx rename to platforms/horizon/aggregations/order-books/object.mdx diff --git a/api/horizon/aggregations/order-books/single.mdx b/platforms/horizon/aggregations/order-books/single.mdx similarity index 100% rename from api/horizon/aggregations/order-books/single.mdx rename to platforms/horizon/aggregations/order-books/single.mdx diff --git a/api/horizon/aggregations/paths/_category_.json b/platforms/horizon/aggregations/paths/_category_.json similarity index 100% rename from api/horizon/aggregations/paths/_category_.json rename to platforms/horizon/aggregations/paths/_category_.json diff --git a/api/horizon/aggregations/paths/index.mdx b/platforms/horizon/aggregations/paths/index.mdx similarity index 100% rename from api/horizon/aggregations/paths/index.mdx rename to platforms/horizon/aggregations/paths/index.mdx diff --git a/api/horizon/aggregations/paths/object.mdx b/platforms/horizon/aggregations/paths/object.mdx similarity index 100% rename from api/horizon/aggregations/paths/object.mdx rename to platforms/horizon/aggregations/paths/object.mdx diff --git a/api/horizon/aggregations/paths/strict-receive.mdx b/platforms/horizon/aggregations/paths/strict-receive.mdx similarity index 100% rename from api/horizon/aggregations/paths/strict-receive.mdx rename to platforms/horizon/aggregations/paths/strict-receive.mdx diff --git a/api/horizon/aggregations/paths/strict-send.mdx b/platforms/horizon/aggregations/paths/strict-send.mdx similarity index 100% rename from api/horizon/aggregations/paths/strict-send.mdx rename to platforms/horizon/aggregations/paths/strict-send.mdx diff --git a/api/horizon/aggregations/trade-aggregations/_category_.json b/platforms/horizon/aggregations/trade-aggregations/_category_.json similarity index 100% rename from api/horizon/aggregations/trade-aggregations/_category_.json rename to platforms/horizon/aggregations/trade-aggregations/_category_.json diff --git a/api/horizon/aggregations/trade-aggregations/index.mdx b/platforms/horizon/aggregations/trade-aggregations/index.mdx similarity index 100% rename from api/horizon/aggregations/trade-aggregations/index.mdx rename to platforms/horizon/aggregations/trade-aggregations/index.mdx diff --git a/api/horizon/aggregations/trade-aggregations/list.mdx b/platforms/horizon/aggregations/trade-aggregations/list.mdx similarity index 100% rename from api/horizon/aggregations/trade-aggregations/list.mdx rename to platforms/horizon/aggregations/trade-aggregations/list.mdx diff --git a/api/horizon/aggregations/trade-aggregations/object.mdx b/platforms/horizon/aggregations/trade-aggregations/object.mdx similarity index 100% rename from api/horizon/aggregations/trade-aggregations/object.mdx rename to platforms/horizon/aggregations/trade-aggregations/object.mdx diff --git a/api/horizon/errors/_category_.json b/platforms/horizon/errors/_category_.json similarity index 100% rename from api/horizon/errors/_category_.json rename to platforms/horizon/errors/_category_.json diff --git a/api/horizon/errors/http-status-codes/_category_.json b/platforms/horizon/errors/http-status-codes/_category_.json similarity index 100% rename from api/horizon/errors/http-status-codes/_category_.json rename to platforms/horizon/errors/http-status-codes/_category_.json diff --git a/api/horizon/errors/http-status-codes/horizon-specific/before-history.mdx b/platforms/horizon/errors/http-status-codes/horizon-specific/before-history.mdx similarity index 100% rename from api/horizon/errors/http-status-codes/horizon-specific/before-history.mdx rename to platforms/horizon/errors/http-status-codes/horizon-specific/before-history.mdx diff --git a/api/horizon/errors/http-status-codes/horizon-specific/index.mdx b/platforms/horizon/errors/http-status-codes/horizon-specific/index.mdx similarity index 100% rename from api/horizon/errors/http-status-codes/horizon-specific/index.mdx rename to platforms/horizon/errors/http-status-codes/horizon-specific/index.mdx diff --git a/api/horizon/errors/http-status-codes/horizon-specific/stale-history.mdx b/platforms/horizon/errors/http-status-codes/horizon-specific/stale-history.mdx similarity index 100% rename from api/horizon/errors/http-status-codes/horizon-specific/stale-history.mdx rename to platforms/horizon/errors/http-status-codes/horizon-specific/stale-history.mdx diff --git a/api/horizon/errors/http-status-codes/horizon-specific/timeout.mdx b/platforms/horizon/errors/http-status-codes/horizon-specific/timeout.mdx similarity index 100% rename from api/horizon/errors/http-status-codes/horizon-specific/timeout.mdx rename to platforms/horizon/errors/http-status-codes/horizon-specific/timeout.mdx diff --git a/api/horizon/errors/http-status-codes/horizon-specific/transaction-failed.mdx b/platforms/horizon/errors/http-status-codes/horizon-specific/transaction-failed.mdx similarity index 100% rename from api/horizon/errors/http-status-codes/horizon-specific/transaction-failed.mdx rename to platforms/horizon/errors/http-status-codes/horizon-specific/transaction-failed.mdx diff --git a/api/horizon/errors/http-status-codes/horizon-specific/transaction-malformed.mdx b/platforms/horizon/errors/http-status-codes/horizon-specific/transaction-malformed.mdx similarity index 100% rename from api/horizon/errors/http-status-codes/horizon-specific/transaction-malformed.mdx rename to platforms/horizon/errors/http-status-codes/horizon-specific/transaction-malformed.mdx diff --git a/api/horizon/errors/http-status-codes/index.mdx b/platforms/horizon/errors/http-status-codes/index.mdx similarity index 100% rename from api/horizon/errors/http-status-codes/index.mdx rename to platforms/horizon/errors/http-status-codes/index.mdx diff --git a/api/horizon/errors/http-status-codes/standard.mdx b/platforms/horizon/errors/http-status-codes/standard.mdx similarity index 100% rename from api/horizon/errors/http-status-codes/standard.mdx rename to platforms/horizon/errors/http-status-codes/standard.mdx diff --git a/api/horizon/errors/index.mdx b/platforms/horizon/errors/index.mdx similarity index 100% rename from api/horizon/errors/index.mdx rename to platforms/horizon/errors/index.mdx diff --git a/api/horizon/errors/response.mdx b/platforms/horizon/errors/response.mdx similarity index 100% rename from api/horizon/errors/response.mdx rename to platforms/horizon/errors/response.mdx diff --git a/api/horizon/errors/result-codes/_category_.json b/platforms/horizon/errors/result-codes/_category_.json similarity index 100% rename from api/horizon/errors/result-codes/_category_.json rename to platforms/horizon/errors/result-codes/_category_.json diff --git a/api/horizon/errors/result-codes/index.mdx b/platforms/horizon/errors/result-codes/index.mdx similarity index 100% rename from api/horizon/errors/result-codes/index.mdx rename to platforms/horizon/errors/result-codes/index.mdx diff --git a/api/horizon/errors/result-codes/operation-specific/account-merge.mdx b/platforms/horizon/errors/result-codes/operation-specific/account-merge.mdx similarity index 100% rename from api/horizon/errors/result-codes/operation-specific/account-merge.mdx rename to platforms/horizon/errors/result-codes/operation-specific/account-merge.mdx diff --git a/api/horizon/errors/result-codes/operation-specific/allow-trust.mdx b/platforms/horizon/errors/result-codes/operation-specific/allow-trust.mdx similarity index 100% rename from api/horizon/errors/result-codes/operation-specific/allow-trust.mdx rename to platforms/horizon/errors/result-codes/operation-specific/allow-trust.mdx diff --git a/api/horizon/errors/result-codes/operation-specific/bump-sequence.mdx b/platforms/horizon/errors/result-codes/operation-specific/bump-sequence.mdx similarity index 100% rename from api/horizon/errors/result-codes/operation-specific/bump-sequence.mdx rename to platforms/horizon/errors/result-codes/operation-specific/bump-sequence.mdx diff --git a/api/horizon/errors/result-codes/operation-specific/category.json b/platforms/horizon/errors/result-codes/operation-specific/category.json similarity index 100% rename from api/horizon/errors/result-codes/operation-specific/category.json rename to platforms/horizon/errors/result-codes/operation-specific/category.json diff --git a/api/horizon/errors/result-codes/operation-specific/change-trust.mdx b/platforms/horizon/errors/result-codes/operation-specific/change-trust.mdx similarity index 100% rename from api/horizon/errors/result-codes/operation-specific/change-trust.mdx rename to platforms/horizon/errors/result-codes/operation-specific/change-trust.mdx diff --git a/api/horizon/errors/result-codes/operation-specific/create-account.mdx b/platforms/horizon/errors/result-codes/operation-specific/create-account.mdx similarity index 100% rename from api/horizon/errors/result-codes/operation-specific/create-account.mdx rename to platforms/horizon/errors/result-codes/operation-specific/create-account.mdx diff --git a/api/horizon/errors/result-codes/operation-specific/create-passive-sell-offer.mdx b/platforms/horizon/errors/result-codes/operation-specific/create-passive-sell-offer.mdx similarity index 100% rename from api/horizon/errors/result-codes/operation-specific/create-passive-sell-offer.mdx rename to platforms/horizon/errors/result-codes/operation-specific/create-passive-sell-offer.mdx diff --git a/api/horizon/errors/result-codes/operation-specific/index.mdx b/platforms/horizon/errors/result-codes/operation-specific/index.mdx similarity index 100% rename from api/horizon/errors/result-codes/operation-specific/index.mdx rename to platforms/horizon/errors/result-codes/operation-specific/index.mdx diff --git a/api/horizon/errors/result-codes/operation-specific/manage-buy-offer.mdx b/platforms/horizon/errors/result-codes/operation-specific/manage-buy-offer.mdx similarity index 100% rename from api/horizon/errors/result-codes/operation-specific/manage-buy-offer.mdx rename to platforms/horizon/errors/result-codes/operation-specific/manage-buy-offer.mdx diff --git a/api/horizon/errors/result-codes/operation-specific/manage-data.mdx b/platforms/horizon/errors/result-codes/operation-specific/manage-data.mdx similarity index 100% rename from api/horizon/errors/result-codes/operation-specific/manage-data.mdx rename to platforms/horizon/errors/result-codes/operation-specific/manage-data.mdx diff --git a/api/horizon/errors/result-codes/operation-specific/manage-sell-offer.mdx b/platforms/horizon/errors/result-codes/operation-specific/manage-sell-offer.mdx similarity index 100% rename from api/horizon/errors/result-codes/operation-specific/manage-sell-offer.mdx rename to platforms/horizon/errors/result-codes/operation-specific/manage-sell-offer.mdx diff --git a/api/horizon/errors/result-codes/operation-specific/path-payment-strict-receive.mdx b/platforms/horizon/errors/result-codes/operation-specific/path-payment-strict-receive.mdx similarity index 100% rename from api/horizon/errors/result-codes/operation-specific/path-payment-strict-receive.mdx rename to platforms/horizon/errors/result-codes/operation-specific/path-payment-strict-receive.mdx diff --git a/api/horizon/errors/result-codes/operation-specific/path-payment-strict-send.mdx b/platforms/horizon/errors/result-codes/operation-specific/path-payment-strict-send.mdx similarity index 100% rename from api/horizon/errors/result-codes/operation-specific/path-payment-strict-send.mdx rename to platforms/horizon/errors/result-codes/operation-specific/path-payment-strict-send.mdx diff --git a/api/horizon/errors/result-codes/operation-specific/payment.mdx b/platforms/horizon/errors/result-codes/operation-specific/payment.mdx similarity index 100% rename from api/horizon/errors/result-codes/operation-specific/payment.mdx rename to platforms/horizon/errors/result-codes/operation-specific/payment.mdx diff --git a/api/horizon/errors/result-codes/operation-specific/set-options.mdx b/platforms/horizon/errors/result-codes/operation-specific/set-options.mdx similarity index 100% rename from api/horizon/errors/result-codes/operation-specific/set-options.mdx rename to platforms/horizon/errors/result-codes/operation-specific/set-options.mdx diff --git a/api/horizon/errors/result-codes/operations.mdx b/platforms/horizon/errors/result-codes/operations.mdx similarity index 100% rename from api/horizon/errors/result-codes/operations.mdx rename to platforms/horizon/errors/result-codes/operations.mdx diff --git a/api/horizon/errors/result-codes/transactions.mdx b/platforms/horizon/errors/result-codes/transactions.mdx similarity index 100% rename from api/horizon/errors/result-codes/transactions.mdx rename to platforms/horizon/errors/result-codes/transactions.mdx diff --git a/api/horizon/introduction/_category_.json b/platforms/horizon/introduction/_category_.json similarity index 100% rename from api/horizon/introduction/_category_.json rename to platforms/horizon/introduction/_category_.json diff --git a/api/horizon/introduction/index.mdx b/platforms/horizon/introduction/index.mdx similarity index 100% rename from api/horizon/introduction/index.mdx rename to platforms/horizon/introduction/index.mdx diff --git a/api/horizon/introduction/pagination/_category_.json b/platforms/horizon/introduction/pagination/_category_.json similarity index 100% rename from api/horizon/introduction/pagination/_category_.json rename to platforms/horizon/introduction/pagination/_category_.json diff --git a/api/horizon/introduction/pagination/index.mdx b/platforms/horizon/introduction/pagination/index.mdx similarity index 100% rename from api/horizon/introduction/pagination/index.mdx rename to platforms/horizon/introduction/pagination/index.mdx diff --git a/api/horizon/introduction/pagination/page-arguments.mdx b/platforms/horizon/introduction/pagination/page-arguments.mdx similarity index 100% rename from api/horizon/introduction/pagination/page-arguments.mdx rename to platforms/horizon/introduction/pagination/page-arguments.mdx diff --git a/api/horizon/introduction/rate-limiting.mdx b/platforms/horizon/introduction/rate-limiting.mdx similarity index 100% rename from api/horizon/introduction/rate-limiting.mdx rename to platforms/horizon/introduction/rate-limiting.mdx diff --git a/api/horizon/introduction/response-format.mdx b/platforms/horizon/introduction/response-format.mdx similarity index 100% rename from api/horizon/introduction/response-format.mdx rename to platforms/horizon/introduction/response-format.mdx diff --git a/api/horizon/introduction/streaming.mdx b/platforms/horizon/introduction/streaming.mdx similarity index 100% rename from api/horizon/introduction/streaming.mdx rename to platforms/horizon/introduction/streaming.mdx diff --git a/api/horizon/introduction/xdr.mdx b/platforms/horizon/introduction/xdr.mdx similarity index 100% rename from api/horizon/introduction/xdr.mdx rename to platforms/horizon/introduction/xdr.mdx diff --git a/api/horizon/resources/_category_.json b/platforms/horizon/resources/_category_.json similarity index 100% rename from api/horizon/resources/_category_.json rename to platforms/horizon/resources/_category_.json diff --git a/api/horizon/resources/accounts/index.mdx b/platforms/horizon/resources/accounts/index.mdx similarity index 100% rename from api/horizon/resources/accounts/index.mdx rename to platforms/horizon/resources/accounts/index.mdx diff --git a/api/horizon/resources/accounts/object.mdx b/platforms/horizon/resources/accounts/object.mdx similarity index 100% rename from api/horizon/resources/accounts/object.mdx rename to platforms/horizon/resources/accounts/object.mdx diff --git a/api/horizon/resources/assets/index.mdx b/platforms/horizon/resources/assets/index.mdx similarity index 100% rename from api/horizon/resources/assets/index.mdx rename to platforms/horizon/resources/assets/index.mdx diff --git a/api/horizon/resources/assets/object.mdx b/platforms/horizon/resources/assets/object.mdx similarity index 100% rename from api/horizon/resources/assets/object.mdx rename to platforms/horizon/resources/assets/object.mdx diff --git a/api/horizon/resources/cb-retrieve-related-operations.api.mdx b/platforms/horizon/resources/cb-retrieve-related-operations.api.mdx similarity index 100% rename from api/horizon/resources/cb-retrieve-related-operations.api.mdx rename to platforms/horizon/resources/cb-retrieve-related-operations.api.mdx diff --git a/api/horizon/resources/cb-retrieve-related-transactions.api.mdx b/platforms/horizon/resources/cb-retrieve-related-transactions.api.mdx similarity index 100% rename from api/horizon/resources/cb-retrieve-related-transactions.api.mdx rename to platforms/horizon/resources/cb-retrieve-related-transactions.api.mdx diff --git a/api/horizon/resources/claimablebalances/index.mdx b/platforms/horizon/resources/claimablebalances/index.mdx similarity index 100% rename from api/horizon/resources/claimablebalances/index.mdx rename to platforms/horizon/resources/claimablebalances/index.mdx diff --git a/api/horizon/resources/claimablebalances/object.mdx b/platforms/horizon/resources/claimablebalances/object.mdx similarity index 100% rename from api/horizon/resources/claimablebalances/object.mdx rename to platforms/horizon/resources/claimablebalances/object.mdx diff --git a/api/horizon/resources/effects/index.mdx b/platforms/horizon/resources/effects/index.mdx similarity index 100% rename from api/horizon/resources/effects/index.mdx rename to platforms/horizon/resources/effects/index.mdx diff --git a/api/horizon/resources/effects/types.mdx b/platforms/horizon/resources/effects/types.mdx similarity index 100% rename from api/horizon/resources/effects/types.mdx rename to platforms/horizon/resources/effects/types.mdx diff --git a/api/horizon/resources/get-all-offers.api.mdx b/platforms/horizon/resources/get-all-offers.api.mdx similarity index 100% rename from api/horizon/resources/get-all-offers.api.mdx rename to platforms/horizon/resources/get-all-offers.api.mdx diff --git a/api/horizon/resources/get-all-trades.api.mdx b/platforms/horizon/resources/get-all-trades.api.mdx similarity index 100% rename from api/horizon/resources/get-all-trades.api.mdx rename to platforms/horizon/resources/get-all-trades.api.mdx diff --git a/api/horizon/resources/get-data-by-account-id.api.mdx b/platforms/horizon/resources/get-data-by-account-id.api.mdx similarity index 100% rename from api/horizon/resources/get-data-by-account-id.api.mdx rename to platforms/horizon/resources/get-data-by-account-id.api.mdx diff --git a/api/horizon/resources/get-effects-by-account-id.api.mdx b/platforms/horizon/resources/get-effects-by-account-id.api.mdx similarity index 100% rename from api/horizon/resources/get-effects-by-account-id.api.mdx rename to platforms/horizon/resources/get-effects-by-account-id.api.mdx diff --git a/api/horizon/resources/get-offer-by-offer-id.api.mdx b/platforms/horizon/resources/get-offer-by-offer-id.api.mdx similarity index 100% rename from api/horizon/resources/get-offer-by-offer-id.api.mdx rename to platforms/horizon/resources/get-offer-by-offer-id.api.mdx diff --git a/api/horizon/resources/get-offers-by-account-id.api.mdx b/platforms/horizon/resources/get-offers-by-account-id.api.mdx similarity index 100% rename from api/horizon/resources/get-offers-by-account-id.api.mdx rename to platforms/horizon/resources/get-offers-by-account-id.api.mdx diff --git a/api/horizon/resources/get-operations-by-account-id.api.mdx b/platforms/horizon/resources/get-operations-by-account-id.api.mdx similarity index 100% rename from api/horizon/resources/get-operations-by-account-id.api.mdx rename to platforms/horizon/resources/get-operations-by-account-id.api.mdx diff --git a/api/horizon/resources/get-payments-by-account-id.api.mdx b/platforms/horizon/resources/get-payments-by-account-id.api.mdx similarity index 100% rename from api/horizon/resources/get-payments-by-account-id.api.mdx rename to platforms/horizon/resources/get-payments-by-account-id.api.mdx diff --git a/api/horizon/resources/get-trades-by-account-id.api.mdx b/platforms/horizon/resources/get-trades-by-account-id.api.mdx similarity index 100% rename from api/horizon/resources/get-trades-by-account-id.api.mdx rename to platforms/horizon/resources/get-trades-by-account-id.api.mdx diff --git a/api/horizon/resources/get-trades-by-offer-id.api.mdx b/platforms/horizon/resources/get-trades-by-offer-id.api.mdx similarity index 100% rename from api/horizon/resources/get-trades-by-offer-id.api.mdx rename to platforms/horizon/resources/get-trades-by-offer-id.api.mdx diff --git a/api/horizon/resources/get-transactions-by-account-id.api.mdx b/platforms/horizon/resources/get-transactions-by-account-id.api.mdx similarity index 100% rename from api/horizon/resources/get-transactions-by-account-id.api.mdx rename to platforms/horizon/resources/get-transactions-by-account-id.api.mdx diff --git a/api/horizon/resources/index.mdx b/platforms/horizon/resources/index.mdx similarity index 100% rename from api/horizon/resources/index.mdx rename to platforms/horizon/resources/index.mdx diff --git a/api/horizon/resources/ledgers/index.mdx b/platforms/horizon/resources/ledgers/index.mdx similarity index 100% rename from api/horizon/resources/ledgers/index.mdx rename to platforms/horizon/resources/ledgers/index.mdx diff --git a/api/horizon/resources/ledgers/object.mdx b/platforms/horizon/resources/ledgers/object.mdx similarity index 100% rename from api/horizon/resources/ledgers/object.mdx rename to platforms/horizon/resources/ledgers/object.mdx diff --git a/api/horizon/resources/liquiditypools/index.mdx b/platforms/horizon/resources/liquiditypools/index.mdx similarity index 100% rename from api/horizon/resources/liquiditypools/index.mdx rename to platforms/horizon/resources/liquiditypools/index.mdx diff --git a/api/horizon/resources/list-all-accounts.api.mdx b/platforms/horizon/resources/list-all-accounts.api.mdx similarity index 100% rename from api/horizon/resources/list-all-accounts.api.mdx rename to platforms/horizon/resources/list-all-accounts.api.mdx diff --git a/api/horizon/resources/list-all-assets.api.mdx b/platforms/horizon/resources/list-all-assets.api.mdx similarity index 100% rename from api/horizon/resources/list-all-assets.api.mdx rename to platforms/horizon/resources/list-all-assets.api.mdx diff --git a/api/horizon/resources/list-all-claimable-balances.api.mdx b/platforms/horizon/resources/list-all-claimable-balances.api.mdx similarity index 100% rename from api/horizon/resources/list-all-claimable-balances.api.mdx rename to platforms/horizon/resources/list-all-claimable-balances.api.mdx diff --git a/api/horizon/resources/list-all-effects.api.mdx b/platforms/horizon/resources/list-all-effects.api.mdx similarity index 100% rename from api/horizon/resources/list-all-effects.api.mdx rename to platforms/horizon/resources/list-all-effects.api.mdx diff --git a/api/horizon/resources/list-all-ledgers.api.mdx b/platforms/horizon/resources/list-all-ledgers.api.mdx similarity index 100% rename from api/horizon/resources/list-all-ledgers.api.mdx rename to platforms/horizon/resources/list-all-ledgers.api.mdx diff --git a/api/horizon/resources/list-all-operations.api.mdx b/platforms/horizon/resources/list-all-operations.api.mdx similarity index 100% rename from api/horizon/resources/list-all-operations.api.mdx rename to platforms/horizon/resources/list-all-operations.api.mdx diff --git a/api/horizon/resources/list-all-payments.api.mdx b/platforms/horizon/resources/list-all-payments.api.mdx similarity index 100% rename from api/horizon/resources/list-all-payments.api.mdx rename to platforms/horizon/resources/list-all-payments.api.mdx diff --git a/api/horizon/resources/list-all-transactions.api.mdx b/platforms/horizon/resources/list-all-transactions.api.mdx similarity index 100% rename from api/horizon/resources/list-all-transactions.api.mdx rename to platforms/horizon/resources/list-all-transactions.api.mdx diff --git a/api/horizon/resources/list-liquidity-pools.api.mdx b/platforms/horizon/resources/list-liquidity-pools.api.mdx similarity index 100% rename from api/horizon/resources/list-liquidity-pools.api.mdx rename to platforms/horizon/resources/list-liquidity-pools.api.mdx diff --git a/api/horizon/resources/list-strict-receive-payment-paths.api.mdx b/platforms/horizon/resources/list-strict-receive-payment-paths.api.mdx similarity index 100% rename from api/horizon/resources/list-strict-receive-payment-paths.api.mdx rename to platforms/horizon/resources/list-strict-receive-payment-paths.api.mdx diff --git a/api/horizon/resources/list-strict-send-payment-paths.api.mdx b/platforms/horizon/resources/list-strict-send-payment-paths.api.mdx similarity index 100% rename from api/horizon/resources/list-strict-send-payment-paths.api.mdx rename to platforms/horizon/resources/list-strict-send-payment-paths.api.mdx diff --git a/api/horizon/resources/list-trade-aggregations.api.mdx b/platforms/horizon/resources/list-trade-aggregations.api.mdx similarity index 100% rename from api/horizon/resources/list-trade-aggregations.api.mdx rename to platforms/horizon/resources/list-trade-aggregations.api.mdx diff --git a/api/horizon/resources/lp-retrieve-related-operations.api.mdx b/platforms/horizon/resources/lp-retrieve-related-operations.api.mdx similarity index 100% rename from api/horizon/resources/lp-retrieve-related-operations.api.mdx rename to platforms/horizon/resources/lp-retrieve-related-operations.api.mdx diff --git a/api/horizon/resources/lp-retrieve-related-transactions.api.mdx b/platforms/horizon/resources/lp-retrieve-related-transactions.api.mdx similarity index 100% rename from api/horizon/resources/lp-retrieve-related-transactions.api.mdx rename to platforms/horizon/resources/lp-retrieve-related-transactions.api.mdx diff --git a/api/horizon/resources/offers/index.mdx b/platforms/horizon/resources/offers/index.mdx similarity index 100% rename from api/horizon/resources/offers/index.mdx rename to platforms/horizon/resources/offers/index.mdx diff --git a/api/horizon/resources/offers/object.mdx b/platforms/horizon/resources/offers/object.mdx similarity index 100% rename from api/horizon/resources/offers/object.mdx rename to platforms/horizon/resources/offers/object.mdx diff --git a/api/horizon/resources/operations/index.mdx b/platforms/horizon/resources/operations/index.mdx similarity index 100% rename from api/horizon/resources/operations/index.mdx rename to platforms/horizon/resources/operations/index.mdx diff --git a/api/horizon/resources/operations/object/account-merge.mdx b/platforms/horizon/resources/operations/object/account-merge.mdx similarity index 100% rename from api/horizon/resources/operations/object/account-merge.mdx rename to platforms/horizon/resources/operations/object/account-merge.mdx diff --git a/api/horizon/resources/operations/object/allow-trust.mdx b/platforms/horizon/resources/operations/object/allow-trust.mdx similarity index 100% rename from api/horizon/resources/operations/object/allow-trust.mdx rename to platforms/horizon/resources/operations/object/allow-trust.mdx diff --git a/api/horizon/resources/operations/object/begin-sponsoring-future-reserves.mdx b/platforms/horizon/resources/operations/object/begin-sponsoring-future-reserves.mdx similarity index 100% rename from api/horizon/resources/operations/object/begin-sponsoring-future-reserves.mdx rename to platforms/horizon/resources/operations/object/begin-sponsoring-future-reserves.mdx diff --git a/api/horizon/resources/operations/object/bump-sequence.mdx b/platforms/horizon/resources/operations/object/bump-sequence.mdx similarity index 100% rename from api/horizon/resources/operations/object/bump-sequence.mdx rename to platforms/horizon/resources/operations/object/bump-sequence.mdx diff --git a/api/horizon/resources/operations/object/buy-offer.mdx b/platforms/horizon/resources/operations/object/buy-offer.mdx similarity index 100% rename from api/horizon/resources/operations/object/buy-offer.mdx rename to platforms/horizon/resources/operations/object/buy-offer.mdx diff --git a/api/horizon/resources/operations/object/change-trust.mdx b/platforms/horizon/resources/operations/object/change-trust.mdx similarity index 100% rename from api/horizon/resources/operations/object/change-trust.mdx rename to platforms/horizon/resources/operations/object/change-trust.mdx diff --git a/api/horizon/resources/operations/object/claim-claimable-balance.mdx b/platforms/horizon/resources/operations/object/claim-claimable-balance.mdx similarity index 100% rename from api/horizon/resources/operations/object/claim-claimable-balance.mdx rename to platforms/horizon/resources/operations/object/claim-claimable-balance.mdx diff --git a/api/horizon/resources/operations/object/create-account.mdx b/platforms/horizon/resources/operations/object/create-account.mdx similarity index 100% rename from api/horizon/resources/operations/object/create-account.mdx rename to platforms/horizon/resources/operations/object/create-account.mdx diff --git a/api/horizon/resources/operations/object/create-claimable-balance.mdx b/platforms/horizon/resources/operations/object/create-claimable-balance.mdx similarity index 100% rename from api/horizon/resources/operations/object/create-claimable-balance.mdx rename to platforms/horizon/resources/operations/object/create-claimable-balance.mdx diff --git a/api/horizon/resources/operations/object/end-sponsoring-future-reserves.mdx b/platforms/horizon/resources/operations/object/end-sponsoring-future-reserves.mdx similarity index 100% rename from api/horizon/resources/operations/object/end-sponsoring-future-reserves.mdx rename to platforms/horizon/resources/operations/object/end-sponsoring-future-reserves.mdx diff --git a/api/horizon/resources/operations/object/index.mdx b/platforms/horizon/resources/operations/object/index.mdx similarity index 100% rename from api/horizon/resources/operations/object/index.mdx rename to platforms/horizon/resources/operations/object/index.mdx diff --git a/api/horizon/resources/operations/object/liquidity-pool-deposit.mdx b/platforms/horizon/resources/operations/object/liquidity-pool-deposit.mdx similarity index 100% rename from api/horizon/resources/operations/object/liquidity-pool-deposit.mdx rename to platforms/horizon/resources/operations/object/liquidity-pool-deposit.mdx diff --git a/api/horizon/resources/operations/object/liquidity-pool-withdraw.mdx b/platforms/horizon/resources/operations/object/liquidity-pool-withdraw.mdx similarity index 100% rename from api/horizon/resources/operations/object/liquidity-pool-withdraw.mdx rename to platforms/horizon/resources/operations/object/liquidity-pool-withdraw.mdx diff --git a/api/horizon/resources/operations/object/manage-data.mdx b/platforms/horizon/resources/operations/object/manage-data.mdx similarity index 100% rename from api/horizon/resources/operations/object/manage-data.mdx rename to platforms/horizon/resources/operations/object/manage-data.mdx diff --git a/api/horizon/resources/operations/object/passive-sell-offer.mdx b/platforms/horizon/resources/operations/object/passive-sell-offer.mdx similarity index 100% rename from api/horizon/resources/operations/object/passive-sell-offer.mdx rename to platforms/horizon/resources/operations/object/passive-sell-offer.mdx diff --git a/api/horizon/resources/operations/object/path-payment-strict-receive.mdx b/platforms/horizon/resources/operations/object/path-payment-strict-receive.mdx similarity index 100% rename from api/horizon/resources/operations/object/path-payment-strict-receive.mdx rename to platforms/horizon/resources/operations/object/path-payment-strict-receive.mdx diff --git a/api/horizon/resources/operations/object/path-payment-strict-send.mdx b/platforms/horizon/resources/operations/object/path-payment-strict-send.mdx similarity index 100% rename from api/horizon/resources/operations/object/path-payment-strict-send.mdx rename to platforms/horizon/resources/operations/object/path-payment-strict-send.mdx diff --git a/api/horizon/resources/operations/object/payment.mdx b/platforms/horizon/resources/operations/object/payment.mdx similarity index 100% rename from api/horizon/resources/operations/object/payment.mdx rename to platforms/horizon/resources/operations/object/payment.mdx diff --git a/api/horizon/resources/operations/object/revoke-sponsorship.mdx b/platforms/horizon/resources/operations/object/revoke-sponsorship.mdx similarity index 100% rename from api/horizon/resources/operations/object/revoke-sponsorship.mdx rename to platforms/horizon/resources/operations/object/revoke-sponsorship.mdx diff --git a/api/horizon/resources/operations/object/sell-offer.mdx b/platforms/horizon/resources/operations/object/sell-offer.mdx similarity index 100% rename from api/horizon/resources/operations/object/sell-offer.mdx rename to platforms/horizon/resources/operations/object/sell-offer.mdx diff --git a/api/horizon/resources/operations/object/set-options.mdx b/platforms/horizon/resources/operations/object/set-options.mdx similarity index 100% rename from api/horizon/resources/operations/object/set-options.mdx rename to platforms/horizon/resources/operations/object/set-options.mdx diff --git a/api/horizon/resources/retrieve-a-claimable-balance.api.mdx b/platforms/horizon/resources/retrieve-a-claimable-balance.api.mdx similarity index 100% rename from api/horizon/resources/retrieve-a-claimable-balance.api.mdx rename to platforms/horizon/resources/retrieve-a-claimable-balance.api.mdx diff --git a/api/horizon/resources/retrieve-a-ledger.api.mdx b/platforms/horizon/resources/retrieve-a-ledger.api.mdx similarity index 100% rename from api/horizon/resources/retrieve-a-ledger.api.mdx rename to platforms/horizon/resources/retrieve-a-ledger.api.mdx diff --git a/api/horizon/resources/retrieve-a-ledgers-effects.api.mdx b/platforms/horizon/resources/retrieve-a-ledgers-effects.api.mdx similarity index 100% rename from api/horizon/resources/retrieve-a-ledgers-effects.api.mdx rename to platforms/horizon/resources/retrieve-a-ledgers-effects.api.mdx diff --git a/api/horizon/resources/retrieve-a-ledgers-operations.api.mdx b/platforms/horizon/resources/retrieve-a-ledgers-operations.api.mdx similarity index 100% rename from api/horizon/resources/retrieve-a-ledgers-operations.api.mdx rename to platforms/horizon/resources/retrieve-a-ledgers-operations.api.mdx diff --git a/api/horizon/resources/retrieve-a-ledgers-payments.api.mdx b/platforms/horizon/resources/retrieve-a-ledgers-payments.api.mdx similarity index 100% rename from api/horizon/resources/retrieve-a-ledgers-payments.api.mdx rename to platforms/horizon/resources/retrieve-a-ledgers-payments.api.mdx diff --git a/api/horizon/resources/retrieve-a-ledgers-transactions.api.mdx b/platforms/horizon/resources/retrieve-a-ledgers-transactions.api.mdx similarity index 100% rename from api/horizon/resources/retrieve-a-ledgers-transactions.api.mdx rename to platforms/horizon/resources/retrieve-a-ledgers-transactions.api.mdx diff --git a/api/horizon/resources/retrieve-a-liquidity-pool.api.mdx b/platforms/horizon/resources/retrieve-a-liquidity-pool.api.mdx similarity index 100% rename from api/horizon/resources/retrieve-a-liquidity-pool.api.mdx rename to platforms/horizon/resources/retrieve-a-liquidity-pool.api.mdx diff --git a/api/horizon/resources/retrieve-a-transaction.api.mdx b/platforms/horizon/resources/retrieve-a-transaction.api.mdx similarity index 100% rename from api/horizon/resources/retrieve-a-transaction.api.mdx rename to platforms/horizon/resources/retrieve-a-transaction.api.mdx diff --git a/api/horizon/resources/retrieve-a-transactions-effects.api.mdx b/platforms/horizon/resources/retrieve-a-transactions-effects.api.mdx similarity index 100% rename from api/horizon/resources/retrieve-a-transactions-effects.api.mdx rename to platforms/horizon/resources/retrieve-a-transactions-effects.api.mdx diff --git a/api/horizon/resources/retrieve-a-transactions-operations.api.mdx b/platforms/horizon/resources/retrieve-a-transactions-operations.api.mdx similarity index 100% rename from api/horizon/resources/retrieve-a-transactions-operations.api.mdx rename to platforms/horizon/resources/retrieve-a-transactions-operations.api.mdx diff --git a/api/horizon/resources/retrieve-an-account.api.mdx b/platforms/horizon/resources/retrieve-an-account.api.mdx similarity index 100% rename from api/horizon/resources/retrieve-an-account.api.mdx rename to platforms/horizon/resources/retrieve-an-account.api.mdx diff --git a/api/horizon/resources/retrieve-an-operation.api.mdx b/platforms/horizon/resources/retrieve-an-operation.api.mdx similarity index 100% rename from api/horizon/resources/retrieve-an-operation.api.mdx rename to platforms/horizon/resources/retrieve-an-operation.api.mdx diff --git a/api/horizon/resources/retrieve-an-operations-effects.api.mdx b/platforms/horizon/resources/retrieve-an-operations-effects.api.mdx similarity index 100% rename from api/horizon/resources/retrieve-an-operations-effects.api.mdx rename to platforms/horizon/resources/retrieve-an-operations-effects.api.mdx diff --git a/api/horizon/resources/retrieve-an-order-book.api.mdx b/platforms/horizon/resources/retrieve-an-order-book.api.mdx similarity index 100% rename from api/horizon/resources/retrieve-an-order-book.api.mdx rename to platforms/horizon/resources/retrieve-an-order-book.api.mdx diff --git a/api/horizon/resources/retrieve-fee-stats.api.mdx b/platforms/horizon/resources/retrieve-fee-stats.api.mdx similarity index 100% rename from api/horizon/resources/retrieve-fee-stats.api.mdx rename to platforms/horizon/resources/retrieve-fee-stats.api.mdx diff --git a/api/horizon/resources/retrieve-related-effects.api.mdx b/platforms/horizon/resources/retrieve-related-effects.api.mdx similarity index 100% rename from api/horizon/resources/retrieve-related-effects.api.mdx rename to platforms/horizon/resources/retrieve-related-effects.api.mdx diff --git a/api/horizon/resources/retrieve-related-trades.api.mdx b/platforms/horizon/resources/retrieve-related-trades.api.mdx similarity index 100% rename from api/horizon/resources/retrieve-related-trades.api.mdx rename to platforms/horizon/resources/retrieve-related-trades.api.mdx diff --git a/api/horizon/resources/sidebar.js b/platforms/horizon/resources/sidebar.js similarity index 100% rename from api/horizon/resources/sidebar.js rename to platforms/horizon/resources/sidebar.js diff --git a/api/horizon/resources/submit-a-transaction.api.mdx b/platforms/horizon/resources/submit-a-transaction.api.mdx similarity index 100% rename from api/horizon/resources/submit-a-transaction.api.mdx rename to platforms/horizon/resources/submit-a-transaction.api.mdx diff --git a/api/horizon/resources/trades/index.mdx b/platforms/horizon/resources/trades/index.mdx similarity index 100% rename from api/horizon/resources/trades/index.mdx rename to platforms/horizon/resources/trades/index.mdx diff --git a/api/horizon/resources/trades/object.mdx b/platforms/horizon/resources/trades/object.mdx similarity index 100% rename from api/horizon/resources/trades/object.mdx rename to platforms/horizon/resources/trades/object.mdx diff --git a/api/horizon/resources/transactions/index.mdx b/platforms/horizon/resources/transactions/index.mdx similarity index 100% rename from api/horizon/resources/transactions/index.mdx rename to platforms/horizon/resources/transactions/index.mdx diff --git a/api/horizon/resources/transactions/object.mdx b/platforms/horizon/resources/transactions/object.mdx similarity index 100% rename from api/horizon/resources/transactions/object.mdx rename to platforms/horizon/resources/transactions/object.mdx diff --git a/docs/run-platform-server/_category_.json b/platforms/horizon/run-platform-server/_category_.json similarity index 100% rename from docs/run-platform-server/_category_.json rename to platforms/horizon/run-platform-server/_category_.json diff --git a/docs/run-platform-server/configuring.mdx b/platforms/horizon/run-platform-server/configuring.mdx similarity index 100% rename from docs/run-platform-server/configuring.mdx rename to platforms/horizon/run-platform-server/configuring.mdx diff --git a/docs/run-platform-server/index.mdx b/platforms/horizon/run-platform-server/index.mdx similarity index 100% rename from docs/run-platform-server/index.mdx rename to platforms/horizon/run-platform-server/index.mdx diff --git a/docs/run-platform-server/ingestion-filtering.mdx b/platforms/horizon/run-platform-server/ingestion-filtering.mdx similarity index 100% rename from docs/run-platform-server/ingestion-filtering.mdx rename to platforms/horizon/run-platform-server/ingestion-filtering.mdx diff --git a/docs/run-platform-server/ingestion.mdx b/platforms/horizon/run-platform-server/ingestion.mdx similarity index 100% rename from docs/run-platform-server/ingestion.mdx rename to platforms/horizon/run-platform-server/ingestion.mdx diff --git a/docs/run-platform-server/installing.mdx b/platforms/horizon/run-platform-server/installing.mdx similarity index 100% rename from docs/run-platform-server/installing.mdx rename to platforms/horizon/run-platform-server/installing.mdx diff --git a/docs/run-platform-server/monitoring.mdx b/platforms/horizon/run-platform-server/monitoring.mdx similarity index 100% rename from docs/run-platform-server/monitoring.mdx rename to platforms/horizon/run-platform-server/monitoring.mdx diff --git a/docs/run-platform-server/prerequisites.mdx b/platforms/horizon/run-platform-server/prerequisites.mdx similarity index 100% rename from docs/run-platform-server/prerequisites.mdx rename to platforms/horizon/run-platform-server/prerequisites.mdx diff --git a/docs/run-platform-server/running.mdx b/platforms/horizon/run-platform-server/running.mdx similarity index 100% rename from docs/run-platform-server/running.mdx rename to platforms/horizon/run-platform-server/running.mdx diff --git a/docs/run-platform-server/scaling.mdx b/platforms/horizon/run-platform-server/scaling.mdx similarity index 100% rename from docs/run-platform-server/scaling.mdx rename to platforms/horizon/run-platform-server/scaling.mdx diff --git a/docs/run-platform-server/upgrading.mdx b/platforms/horizon/run-platform-server/upgrading.mdx similarity index 100% rename from docs/run-platform-server/upgrading.mdx rename to platforms/horizon/run-platform-server/upgrading.mdx diff --git a/api/index.mdx b/platforms/index.mdx similarity index 100% rename from api/index.mdx rename to platforms/index.mdx diff --git a/api/stellar-disbursement-platform/introduction/_category_.json b/platforms/stellar-disbursement-platform/introduction/_category_.json similarity index 100% rename from api/stellar-disbursement-platform/introduction/_category_.json rename to platforms/stellar-disbursement-platform/introduction/_category_.json diff --git a/api/stellar-disbursement-platform/introduction/index.mdx b/platforms/stellar-disbursement-platform/introduction/index.mdx similarity index 100% rename from api/stellar-disbursement-platform/introduction/index.mdx rename to platforms/stellar-disbursement-platform/introduction/index.mdx diff --git a/api/stellar-disbursement-platform/resources/_category_.json b/platforms/stellar-disbursement-platform/resources/_category_.json similarity index 100% rename from api/stellar-disbursement-platform/resources/_category_.json rename to platforms/stellar-disbursement-platform/resources/_category_.json diff --git a/api/stellar-disbursement-platform/resources/auth/index.mdx b/platforms/stellar-disbursement-platform/resources/auth/index.mdx similarity index 100% rename from api/stellar-disbursement-platform/resources/auth/index.mdx rename to platforms/stellar-disbursement-platform/resources/auth/index.mdx diff --git a/api/stellar-disbursement-platform/resources/authenticate-mfa.api.mdx b/platforms/stellar-disbursement-platform/resources/authenticate-mfa.api.mdx similarity index 100% rename from api/stellar-disbursement-platform/resources/authenticate-mfa.api.mdx rename to platforms/stellar-disbursement-platform/resources/authenticate-mfa.api.mdx diff --git a/api/stellar-disbursement-platform/resources/create-asset.api.mdx b/platforms/stellar-disbursement-platform/resources/create-asset.api.mdx similarity index 100% rename from api/stellar-disbursement-platform/resources/create-asset.api.mdx rename to platforms/stellar-disbursement-platform/resources/create-asset.api.mdx diff --git a/api/stellar-disbursement-platform/resources/create-disbursement.api.mdx b/platforms/stellar-disbursement-platform/resources/create-disbursement.api.mdx similarity index 100% rename from api/stellar-disbursement-platform/resources/create-disbursement.api.mdx rename to platforms/stellar-disbursement-platform/resources/create-disbursement.api.mdx diff --git a/api/stellar-disbursement-platform/resources/create-user.api.mdx b/platforms/stellar-disbursement-platform/resources/create-user.api.mdx similarity index 100% rename from api/stellar-disbursement-platform/resources/create-user.api.mdx rename to platforms/stellar-disbursement-platform/resources/create-user.api.mdx diff --git a/api/stellar-disbursement-platform/resources/delete-asset.api.mdx b/platforms/stellar-disbursement-platform/resources/delete-asset.api.mdx similarity index 100% rename from api/stellar-disbursement-platform/resources/delete-asset.api.mdx rename to platforms/stellar-disbursement-platform/resources/delete-asset.api.mdx diff --git a/api/stellar-disbursement-platform/resources/disbursements/index.mdx b/platforms/stellar-disbursement-platform/resources/disbursements/index.mdx similarity index 100% rename from api/stellar-disbursement-platform/resources/disbursements/index.mdx rename to platforms/stellar-disbursement-platform/resources/disbursements/index.mdx diff --git a/api/stellar-disbursement-platform/resources/download-disbursement-instructions.api.mdx b/platforms/stellar-disbursement-platform/resources/download-disbursement-instructions.api.mdx similarity index 100% rename from api/stellar-disbursement-platform/resources/download-disbursement-instructions.api.mdx rename to platforms/stellar-disbursement-platform/resources/download-disbursement-instructions.api.mdx diff --git a/api/stellar-disbursement-platform/resources/forgot-password.api.mdx b/platforms/stellar-disbursement-platform/resources/forgot-password.api.mdx similarity index 100% rename from api/stellar-disbursement-platform/resources/forgot-password.api.mdx rename to platforms/stellar-disbursement-platform/resources/forgot-password.api.mdx diff --git a/api/stellar-disbursement-platform/resources/get-all-assets.api.mdx b/platforms/stellar-disbursement-platform/resources/get-all-assets.api.mdx similarity index 100% rename from api/stellar-disbursement-platform/resources/get-all-assets.api.mdx rename to platforms/stellar-disbursement-platform/resources/get-all-assets.api.mdx diff --git a/api/stellar-disbursement-platform/resources/get-all-countries.api.mdx b/platforms/stellar-disbursement-platform/resources/get-all-countries.api.mdx similarity index 100% rename from api/stellar-disbursement-platform/resources/get-all-countries.api.mdx rename to platforms/stellar-disbursement-platform/resources/get-all-countries.api.mdx diff --git a/api/stellar-disbursement-platform/resources/get-all-roles.api.mdx b/platforms/stellar-disbursement-platform/resources/get-all-roles.api.mdx similarity index 100% rename from api/stellar-disbursement-platform/resources/get-all-roles.api.mdx rename to platforms/stellar-disbursement-platform/resources/get-all-roles.api.mdx diff --git a/api/stellar-disbursement-platform/resources/get-all-users.api.mdx b/platforms/stellar-disbursement-platform/resources/get-all-users.api.mdx similarity index 100% rename from api/stellar-disbursement-platform/resources/get-all-users.api.mdx rename to platforms/stellar-disbursement-platform/resources/get-all-users.api.mdx diff --git a/api/stellar-disbursement-platform/resources/get-all-wallets.api.mdx b/platforms/stellar-disbursement-platform/resources/get-all-wallets.api.mdx similarity index 100% rename from api/stellar-disbursement-platform/resources/get-all-wallets.api.mdx rename to platforms/stellar-disbursement-platform/resources/get-all-wallets.api.mdx diff --git a/api/stellar-disbursement-platform/resources/get-organization-info.api.mdx b/platforms/stellar-disbursement-platform/resources/get-organization-info.api.mdx similarity index 100% rename from api/stellar-disbursement-platform/resources/get-organization-info.api.mdx rename to platforms/stellar-disbursement-platform/resources/get-organization-info.api.mdx diff --git a/api/stellar-disbursement-platform/resources/get-organization-logo.api.mdx b/platforms/stellar-disbursement-platform/resources/get-organization-logo.api.mdx similarity index 100% rename from api/stellar-disbursement-platform/resources/get-organization-logo.api.mdx rename to platforms/stellar-disbursement-platform/resources/get-organization-logo.api.mdx diff --git a/api/stellar-disbursement-platform/resources/get-profile.api.mdx b/platforms/stellar-disbursement-platform/resources/get-profile.api.mdx similarity index 100% rename from api/stellar-disbursement-platform/resources/get-profile.api.mdx rename to platforms/stellar-disbursement-platform/resources/get-profile.api.mdx diff --git a/api/stellar-disbursement-platform/resources/index.mdx b/platforms/stellar-disbursement-platform/resources/index.mdx similarity index 100% rename from api/stellar-disbursement-platform/resources/index.mdx rename to platforms/stellar-disbursement-platform/resources/index.mdx diff --git a/api/stellar-disbursement-platform/resources/list-all-disbursement-receivers.api.mdx b/platforms/stellar-disbursement-platform/resources/list-all-disbursement-receivers.api.mdx similarity index 100% rename from api/stellar-disbursement-platform/resources/list-all-disbursement-receivers.api.mdx rename to platforms/stellar-disbursement-platform/resources/list-all-disbursement-receivers.api.mdx diff --git a/api/stellar-disbursement-platform/resources/list-all-disbursements.api.mdx b/platforms/stellar-disbursement-platform/resources/list-all-disbursements.api.mdx similarity index 100% rename from api/stellar-disbursement-platform/resources/list-all-disbursements.api.mdx rename to platforms/stellar-disbursement-platform/resources/list-all-disbursements.api.mdx diff --git a/api/stellar-disbursement-platform/resources/list-all-payments.api.mdx b/platforms/stellar-disbursement-platform/resources/list-all-payments.api.mdx similarity index 100% rename from api/stellar-disbursement-platform/resources/list-all-payments.api.mdx rename to platforms/stellar-disbursement-platform/resources/list-all-payments.api.mdx diff --git a/api/stellar-disbursement-platform/resources/list-all-receivers.api.mdx b/platforms/stellar-disbursement-platform/resources/list-all-receivers.api.mdx similarity index 100% rename from api/stellar-disbursement-platform/resources/list-all-receivers.api.mdx rename to platforms/stellar-disbursement-platform/resources/list-all-receivers.api.mdx diff --git a/api/stellar-disbursement-platform/resources/log-in.api.mdx b/platforms/stellar-disbursement-platform/resources/log-in.api.mdx similarity index 100% rename from api/stellar-disbursement-platform/resources/log-in.api.mdx rename to platforms/stellar-disbursement-platform/resources/log-in.api.mdx diff --git a/api/stellar-disbursement-platform/resources/organization/index.mdx b/platforms/stellar-disbursement-platform/resources/organization/index.mdx similarity index 100% rename from api/stellar-disbursement-platform/resources/organization/index.mdx rename to platforms/stellar-disbursement-platform/resources/organization/index.mdx diff --git a/api/stellar-disbursement-platform/resources/payments/index.mdx b/platforms/stellar-disbursement-platform/resources/payments/index.mdx similarity index 100% rename from api/stellar-disbursement-platform/resources/payments/index.mdx rename to platforms/stellar-disbursement-platform/resources/payments/index.mdx diff --git a/api/stellar-disbursement-platform/resources/profile/index.mdx b/platforms/stellar-disbursement-platform/resources/profile/index.mdx similarity index 100% rename from api/stellar-disbursement-platform/resources/profile/index.mdx rename to platforms/stellar-disbursement-platform/resources/profile/index.mdx diff --git a/api/stellar-disbursement-platform/resources/provide-signed-challenge-transaction.api.mdx b/platforms/stellar-disbursement-platform/resources/provide-signed-challenge-transaction.api.mdx similarity index 100% rename from api/stellar-disbursement-platform/resources/provide-signed-challenge-transaction.api.mdx rename to platforms/stellar-disbursement-platform/resources/provide-signed-challenge-transaction.api.mdx diff --git a/api/stellar-disbursement-platform/resources/receivers/index.mdx b/platforms/stellar-disbursement-platform/resources/receivers/index.mdx similarity index 100% rename from api/stellar-disbursement-platform/resources/receivers/index.mdx rename to platforms/stellar-disbursement-platform/resources/receivers/index.mdx diff --git a/api/stellar-disbursement-platform/resources/refresh-token.api.mdx b/platforms/stellar-disbursement-platform/resources/refresh-token.api.mdx similarity index 100% rename from api/stellar-disbursement-platform/resources/refresh-token.api.mdx rename to platforms/stellar-disbursement-platform/resources/refresh-token.api.mdx diff --git a/api/stellar-disbursement-platform/resources/registration/index.mdx b/platforms/stellar-disbursement-platform/resources/registration/index.mdx similarity index 100% rename from api/stellar-disbursement-platform/resources/registration/index.mdx rename to platforms/stellar-disbursement-platform/resources/registration/index.mdx diff --git a/api/stellar-disbursement-platform/resources/request-challenge-transaction.api.mdx b/platforms/stellar-disbursement-platform/resources/request-challenge-transaction.api.mdx similarity index 100% rename from api/stellar-disbursement-platform/resources/request-challenge-transaction.api.mdx rename to platforms/stellar-disbursement-platform/resources/request-challenge-transaction.api.mdx diff --git a/api/stellar-disbursement-platform/resources/request-registration-url.api.mdx b/platforms/stellar-disbursement-platform/resources/request-registration-url.api.mdx similarity index 100% rename from api/stellar-disbursement-platform/resources/request-registration-url.api.mdx rename to platforms/stellar-disbursement-platform/resources/request-registration-url.api.mdx diff --git a/api/stellar-disbursement-platform/resources/reset-password.api.mdx b/platforms/stellar-disbursement-platform/resources/reset-password.api.mdx similarity index 100% rename from api/stellar-disbursement-platform/resources/reset-password.api.mdx rename to platforms/stellar-disbursement-platform/resources/reset-password.api.mdx diff --git a/api/stellar-disbursement-platform/resources/retrieve-a-disbursement.api.mdx b/platforms/stellar-disbursement-platform/resources/retrieve-a-disbursement.api.mdx similarity index 100% rename from api/stellar-disbursement-platform/resources/retrieve-a-disbursement.api.mdx rename to platforms/stellar-disbursement-platform/resources/retrieve-a-disbursement.api.mdx diff --git a/api/stellar-disbursement-platform/resources/retrieve-a-payment.api.mdx b/platforms/stellar-disbursement-platform/resources/retrieve-a-payment.api.mdx similarity index 100% rename from api/stellar-disbursement-platform/resources/retrieve-a-payment.api.mdx rename to platforms/stellar-disbursement-platform/resources/retrieve-a-payment.api.mdx diff --git a/api/stellar-disbursement-platform/resources/retrieve-a-receiver.api.mdx b/platforms/stellar-disbursement-platform/resources/retrieve-a-receiver.api.mdx similarity index 100% rename from api/stellar-disbursement-platform/resources/retrieve-a-receiver.api.mdx rename to platforms/stellar-disbursement-platform/resources/retrieve-a-receiver.api.mdx diff --git a/api/stellar-disbursement-platform/resources/retrieve-all-statistics.api.mdx b/platforms/stellar-disbursement-platform/resources/retrieve-all-statistics.api.mdx similarity index 100% rename from api/stellar-disbursement-platform/resources/retrieve-all-statistics.api.mdx rename to platforms/stellar-disbursement-platform/resources/retrieve-all-statistics.api.mdx diff --git a/api/stellar-disbursement-platform/resources/retrieve-disbursement-statistics.api.mdx b/platforms/stellar-disbursement-platform/resources/retrieve-disbursement-statistics.api.mdx similarity index 100% rename from api/stellar-disbursement-platform/resources/retrieve-disbursement-statistics.api.mdx rename to platforms/stellar-disbursement-platform/resources/retrieve-disbursement-statistics.api.mdx diff --git a/api/stellar-disbursement-platform/resources/retrieve-stellar-info-file.api.mdx b/platforms/stellar-disbursement-platform/resources/retrieve-stellar-info-file.api.mdx similarity index 100% rename from api/stellar-disbursement-platform/resources/retrieve-stellar-info-file.api.mdx rename to platforms/stellar-disbursement-platform/resources/retrieve-stellar-info-file.api.mdx diff --git a/api/stellar-disbursement-platform/resources/send-one-time-passcode.api.mdx b/platforms/stellar-disbursement-platform/resources/send-one-time-passcode.api.mdx similarity index 100% rename from api/stellar-disbursement-platform/resources/send-one-time-passcode.api.mdx rename to platforms/stellar-disbursement-platform/resources/send-one-time-passcode.api.mdx diff --git a/api/stellar-disbursement-platform/resources/sidebar.js b/platforms/stellar-disbursement-platform/resources/sidebar.js similarity index 100% rename from api/stellar-disbursement-platform/resources/sidebar.js rename to platforms/stellar-disbursement-platform/resources/sidebar.js diff --git a/api/stellar-disbursement-platform/resources/start-wallet-registration.api.mdx b/platforms/stellar-disbursement-platform/resources/start-wallet-registration.api.mdx similarity index 100% rename from api/stellar-disbursement-platform/resources/start-wallet-registration.api.mdx rename to platforms/stellar-disbursement-platform/resources/start-wallet-registration.api.mdx diff --git a/api/stellar-disbursement-platform/resources/statistics/index.mdx b/platforms/stellar-disbursement-platform/resources/statistics/index.mdx similarity index 100% rename from api/stellar-disbursement-platform/resources/statistics/index.mdx rename to platforms/stellar-disbursement-platform/resources/statistics/index.mdx diff --git a/api/stellar-disbursement-platform/resources/update-a-disbursement-status.api.mdx b/platforms/stellar-disbursement-platform/resources/update-a-disbursement-status.api.mdx similarity index 100% rename from api/stellar-disbursement-platform/resources/update-a-disbursement-status.api.mdx rename to platforms/stellar-disbursement-platform/resources/update-a-disbursement-status.api.mdx diff --git a/api/stellar-disbursement-platform/resources/update-a-receiver.api.mdx b/platforms/stellar-disbursement-platform/resources/update-a-receiver.api.mdx similarity index 100% rename from api/stellar-disbursement-platform/resources/update-a-receiver.api.mdx rename to platforms/stellar-disbursement-platform/resources/update-a-receiver.api.mdx diff --git a/api/stellar-disbursement-platform/resources/update-organization-profile.api.mdx b/platforms/stellar-disbursement-platform/resources/update-organization-profile.api.mdx similarity index 100% rename from api/stellar-disbursement-platform/resources/update-organization-profile.api.mdx rename to platforms/stellar-disbursement-platform/resources/update-organization-profile.api.mdx diff --git a/api/stellar-disbursement-platform/resources/update-user-activation-status.api.mdx b/platforms/stellar-disbursement-platform/resources/update-user-activation-status.api.mdx similarity index 100% rename from api/stellar-disbursement-platform/resources/update-user-activation-status.api.mdx rename to platforms/stellar-disbursement-platform/resources/update-user-activation-status.api.mdx diff --git a/api/stellar-disbursement-platform/resources/update-user-profile.api.mdx b/platforms/stellar-disbursement-platform/resources/update-user-profile.api.mdx similarity index 100% rename from api/stellar-disbursement-platform/resources/update-user-profile.api.mdx rename to platforms/stellar-disbursement-platform/resources/update-user-profile.api.mdx diff --git a/api/stellar-disbursement-platform/resources/update-user-role.api.mdx b/platforms/stellar-disbursement-platform/resources/update-user-role.api.mdx similarity index 100% rename from api/stellar-disbursement-platform/resources/update-user-role.api.mdx rename to platforms/stellar-disbursement-platform/resources/update-user-role.api.mdx diff --git a/api/stellar-disbursement-platform/resources/upload-disbursement-instructions.api.mdx b/platforms/stellar-disbursement-platform/resources/upload-disbursement-instructions.api.mdx similarity index 100% rename from api/stellar-disbursement-platform/resources/upload-disbursement-instructions.api.mdx rename to platforms/stellar-disbursement-platform/resources/upload-disbursement-instructions.api.mdx diff --git a/api/stellar-disbursement-platform/resources/users/index.mdx b/platforms/stellar-disbursement-platform/resources/users/index.mdx similarity index 100% rename from api/stellar-disbursement-platform/resources/users/index.mdx rename to platforms/stellar-disbursement-platform/resources/users/index.mdx diff --git a/api/stellar-disbursement-platform/resources/verify-receiver-registration.api.mdx b/platforms/stellar-disbursement-platform/resources/verify-receiver-registration.api.mdx similarity index 100% rename from api/stellar-disbursement-platform/resources/verify-receiver-registration.api.mdx rename to platforms/stellar-disbursement-platform/resources/verify-receiver-registration.api.mdx diff --git a/docs/stellar-disbursement-platform/_category_.json b/platforms/stellar-disbursement-platform/run-stellar-disburement-platform/_category_.json similarity index 100% rename from docs/stellar-disbursement-platform/_category_.json rename to platforms/stellar-disbursement-platform/run-stellar-disburement-platform/_category_.json diff --git a/docs/stellar-disbursement-platform/anchor-platform-integration-points.mdx b/platforms/stellar-disbursement-platform/run-stellar-disburement-platform/anchor-platform-integration-points.mdx similarity index 100% rename from docs/stellar-disbursement-platform/anchor-platform-integration-points.mdx rename to platforms/stellar-disbursement-platform/run-stellar-disburement-platform/anchor-platform-integration-points.mdx diff --git a/docs/stellar-disbursement-platform/deploy-the-sdp.mdx b/platforms/stellar-disbursement-platform/run-stellar-disburement-platform/deploy-the-sdp.mdx similarity index 100% rename from docs/stellar-disbursement-platform/deploy-the-sdp.mdx rename to platforms/stellar-disbursement-platform/run-stellar-disburement-platform/deploy-the-sdp.mdx diff --git a/docs/stellar-disbursement-platform/design-and-architecture.mdx b/platforms/stellar-disbursement-platform/run-stellar-disburement-platform/design-and-architecture.mdx similarity index 100% rename from docs/stellar-disbursement-platform/design-and-architecture.mdx rename to platforms/stellar-disbursement-platform/run-stellar-disburement-platform/design-and-architecture.mdx diff --git a/docs/stellar-disbursement-platform/getting-started.mdx b/platforms/stellar-disbursement-platform/run-stellar-disburement-platform/getting-started.mdx similarity index 100% rename from docs/stellar-disbursement-platform/getting-started.mdx rename to platforms/stellar-disbursement-platform/run-stellar-disburement-platform/getting-started.mdx diff --git a/docs/stellar-disbursement-platform/making-your-wallet-sdp-ready.mdx b/platforms/stellar-disbursement-platform/run-stellar-disburement-platform/making-your-wallet-sdp-ready.mdx similarity index 100% rename from docs/stellar-disbursement-platform/making-your-wallet-sdp-ready.mdx rename to platforms/stellar-disbursement-platform/run-stellar-disburement-platform/making-your-wallet-sdp-ready.mdx diff --git a/docs/stellar-disbursement-platform/overview.mdx b/platforms/stellar-disbursement-platform/run-stellar-disburement-platform/overview.mdx similarity index 100% rename from docs/stellar-disbursement-platform/overview.mdx rename to platforms/stellar-disbursement-platform/run-stellar-disburement-platform/overview.mdx diff --git a/docs/stellar-disbursement-platform/secure-operation-manual.mdx b/platforms/stellar-disbursement-platform/run-stellar-disburement-platform/secure-operation-manual.mdx similarity index 100% rename from docs/stellar-disbursement-platform/secure-operation-manual.mdx rename to platforms/stellar-disbursement-platform/run-stellar-disburement-platform/secure-operation-manual.mdx diff --git a/docs/stellar-disbursement-platform/user-interface/_category_.json b/platforms/stellar-disbursement-platform/run-stellar-disburement-platform/user-interface/_category_.json similarity index 100% rename from docs/stellar-disbursement-platform/user-interface/_category_.json rename to platforms/stellar-disbursement-platform/run-stellar-disburement-platform/user-interface/_category_.json diff --git a/docs/stellar-disbursement-platform/user-interface/analytics.mdx b/platforms/stellar-disbursement-platform/run-stellar-disburement-platform/user-interface/analytics.mdx similarity index 100% rename from docs/stellar-disbursement-platform/user-interface/analytics.mdx rename to platforms/stellar-disbursement-platform/run-stellar-disburement-platform/user-interface/analytics.mdx diff --git a/docs/stellar-disbursement-platform/user-interface/dashboard-home.mdx b/platforms/stellar-disbursement-platform/run-stellar-disburement-platform/user-interface/dashboard-home.mdx similarity index 100% rename from docs/stellar-disbursement-platform/user-interface/dashboard-home.mdx rename to platforms/stellar-disbursement-platform/run-stellar-disburement-platform/user-interface/dashboard-home.mdx diff --git a/docs/stellar-disbursement-platform/user-interface/disbursements.mdx b/platforms/stellar-disbursement-platform/run-stellar-disburement-platform/user-interface/disbursements.mdx similarity index 100% rename from docs/stellar-disbursement-platform/user-interface/disbursements.mdx rename to platforms/stellar-disbursement-platform/run-stellar-disburement-platform/user-interface/disbursements.mdx diff --git a/docs/stellar-disbursement-platform/user-interface/payments.mdx b/platforms/stellar-disbursement-platform/run-stellar-disburement-platform/user-interface/payments.mdx similarity index 100% rename from docs/stellar-disbursement-platform/user-interface/payments.mdx rename to platforms/stellar-disbursement-platform/run-stellar-disburement-platform/user-interface/payments.mdx diff --git a/docs/stellar-disbursement-platform/user-interface/receivers.mdx b/platforms/stellar-disbursement-platform/run-stellar-disburement-platform/user-interface/receivers.mdx similarity index 100% rename from docs/stellar-disbursement-platform/user-interface/receivers.mdx rename to platforms/stellar-disbursement-platform/run-stellar-disburement-platform/user-interface/receivers.mdx diff --git a/docs/stellar-disbursement-platform/user-interface/wallets.mdx b/platforms/stellar-disbursement-platform/run-stellar-disburement-platform/user-interface/wallets.mdx similarity index 100% rename from docs/stellar-disbursement-platform/user-interface/wallets.mdx rename to platforms/stellar-disbursement-platform/run-stellar-disburement-platform/user-interface/wallets.mdx From 0951d822c4f715621b4ed47cd9f7804bd0d37ada Mon Sep 17 00:00:00 2001 From: Elliot Voris Date: Wed, 28 Feb 2024 09:32:53 -0600 Subject: [PATCH 066/133] modify sidebars --- sidebars.js | 21 --------------------- sidebarsApi.js => sidebarsPlatforms.js | 6 +++--- 2 files changed, 3 insertions(+), 24 deletions(-) rename sidebarsApi.js => sidebarsPlatforms.js (86%) diff --git a/sidebars.js b/sidebars.js index 22e20f0f8..3003c8c28 100644 --- a/sidebars.js +++ b/sidebars.js @@ -83,27 +83,6 @@ const sidebars = { 'run-core-node/tier-1-orgs', ] }, - { - type: 'category', - label: 'Run Platform Services', - link: { - type: 'doc', - id: 'run-platform-server/index' - }, - // I can't (yet) figure out a way to autogenerate this without having - // `overview` show up as an item - items: [ - 'run-platform-server/prerequisites', - 'run-platform-server/installing', - 'run-platform-server/configuring', - 'run-platform-server/running', - 'run-platform-server/ingestion', - 'run-platform-server/monitoring', - 'run-platform-server/scaling', - 'run-platform-server/upgrading', - 'run-platform-server/ingestion-filtering', - ] - }, { type: 'category', label: 'Access Historical Data', diff --git a/sidebarsApi.js b/sidebarsPlatforms.js similarity index 86% rename from sidebarsApi.js rename to sidebarsPlatforms.js index 7e3f3727a..5cee0800f 100644 --- a/sidebarsApi.js +++ b/sidebarsPlatforms.js @@ -5,7 +5,7 @@ const sidebars = { horizon: [ { type: 'category', - label: 'Horizon API', + label: 'Horizon', items: [ { type: "autogenerated", @@ -18,7 +18,7 @@ const sidebars = { anchor_platform: [ { type: 'category', - label: 'Anchor Platform API', + label: 'Anchor Platform', items: [ { type: "autogenerated", @@ -30,7 +30,7 @@ const sidebars = { stellar_disbursement_platform: [ { type: "category", - label: "Stellar Disbursement Platform API", + label: "Stellar Disbursement Platform", items: [ { "type": "autogenerated", From 26d8a98c577adae4e0a736b1bc333c5db5c8a19e Mon Sep 17 00:00:00 2001 From: Elliot Voris Date: Wed, 28 Feb 2024 09:33:23 -0600 Subject: [PATCH 067/133] rename sidebar generator for api/platforms docs --- src/{sidebar-api-generator.js => sidebar-platforms-generator.js} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename src/{sidebar-api-generator.js => sidebar-platforms-generator.js} (100%) diff --git a/src/sidebar-api-generator.js b/src/sidebar-platforms-generator.js similarity index 100% rename from src/sidebar-api-generator.js rename to src/sidebar-platforms-generator.js From a19d3980457ddee7ed3b34c379916934de88366a Mon Sep 17 00:00:00 2001 From: Elliot Voris Date: Wed, 28 Feb 2024 09:34:32 -0600 Subject: [PATCH 068/133] re-order admin guides for the various platforms --- .../anchor-platform/run-anchor-platform/_category_.json | 6 +++--- platforms/horizon/run-platform-server/_category_.json | 4 ++-- .../run-stellar-disburement-platform/_category_.json | 6 +++--- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/platforms/anchor-platform/run-anchor-platform/_category_.json b/platforms/anchor-platform/run-anchor-platform/_category_.json index 96912a903..6ec614dea 100644 --- a/platforms/anchor-platform/run-anchor-platform/_category_.json +++ b/platforms/anchor-platform/run-anchor-platform/_category_.json @@ -1,7 +1,7 @@ { - "position": 20, - "label": "Anchor Platform", + "position": 15, + "label": "Admin Guide", "link": { "type": "generated-index" } -} \ No newline at end of file +} diff --git a/platforms/horizon/run-platform-server/_category_.json b/platforms/horizon/run-platform-server/_category_.json index 2f8744a03..8e8967c9a 100644 --- a/platforms/horizon/run-platform-server/_category_.json +++ b/platforms/horizon/run-platform-server/_category_.json @@ -1,6 +1,6 @@ { - "position": 70, - "label": "Run Platform Services", + "position": 15, + "label": "Admin Guide", "link": { "type": "doc", "id": "index" } diff --git a/platforms/stellar-disbursement-platform/run-stellar-disburement-platform/_category_.json b/platforms/stellar-disbursement-platform/run-stellar-disburement-platform/_category_.json index 9173c3e11..25d38e491 100644 --- a/platforms/stellar-disbursement-platform/run-stellar-disburement-platform/_category_.json +++ b/platforms/stellar-disbursement-platform/run-stellar-disburement-platform/_category_.json @@ -1,7 +1,7 @@ { - "position": 85, - "label": "Use the Stellar Disbursement Platform", + "position": 15, + "label": "Admin Guide", "link": { "type": "generated-index" } - } \ No newline at end of file + } From 41169ea49a6eea4e20bab773b5e8dfefed63be49 Mon Sep 17 00:00:00 2001 From: Elliot Voris Date: Wed, 28 Feb 2024 09:35:45 -0600 Subject: [PATCH 069/133] fix broken links --- docs/run-core-node/index.mdx | 2 +- .../sep24/setting-up-production-server.mdx | 2 +- platforms/horizon/run-platform-server/configuring.mdx | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/run-core-node/index.mdx b/docs/run-core-node/index.mdx index 196d0acbb..c9d32b2b6 100644 --- a/docs/run-core-node/index.mdx +++ b/docs/run-core-node/index.mdx @@ -9,7 +9,7 @@ Stellar is a peer-to-peer network made up of nodes, which are computers that kee You don’t need to run a node to build on Stellar: you can start developing with your [SDK of choice](../tools/sdks/library.mdx), and use public instances of Horizon to query the ledger and submit transactions right away. In fact, the Stellar Development Foundation offers two public instances of Horizon — one for the public network and one for the testnet — which you can read more about in our [API reference docs](https://developers.stellar.org/api). [Lobstr](https://horizon.stellar.lobstr.co), [Public Node](https://horizon.publicnode.org/), and [Coinqvest](https://horizon.stellar.coinqvest.com) also offer public Horizon instances. -Even if you _do_ want to run your [own instance of Horizon](../run-platform-server/index.mdx), it bundles its own version of Core and manages its lifetime entirely, so there's no need to run a standalone instance. +Even if you _do_ want to run your [own instance of Horizon](../../platforms/horizon/run-platform-server), it bundles its own version of Core and manages its lifetime entirely, so there's no need to run a standalone instance. If you’re serious about building on Stellar, have a production-level product or service that requires high-availability access network, or want to help increase network health and decentralization, then you probably _do_ want to run a node, or even a trio of nodes (more on that in the [Tier 1 section](./tier-1-orgs.mdx)). At that point, you have a choice: you can pay a service provider like [Blockdaemon](https://app.blockdaemon.com/marketplace/categories/-/stellar-horizon) to set up and run your node for you, or you can do it yourself. diff --git a/platforms/anchor-platform/run-anchor-platform/sep24/setting-up-production-server.mdx b/platforms/anchor-platform/run-anchor-platform/sep24/setting-up-production-server.mdx index 2e696ba89..f1abc0ca0 100644 --- a/platforms/anchor-platform/run-anchor-platform/sep24/setting-up-production-server.mdx +++ b/platforms/anchor-platform/run-anchor-platform/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](../../../encyclopedia/network-passphrases.mdx) (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/encyclopedia/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/platforms/horizon/run-platform-server/configuring.mdx b/platforms/horizon/run-platform-server/configuring.mdx index 8f0de7818..087172e7e 100644 --- a/platforms/horizon/run-platform-server/configuring.mdx +++ b/platforms/horizon/run-platform-server/configuring.mdx @@ -76,13 +76,13 @@ If setting `INGEST=false`, then **must** define the `STELLAR_CORE_URL` variable ### Ingestion -If you have configured your deployment to perform the ingestion role, then it is **strongly** recommended to review [Ingestion](./ingestion.mdx) first and [Filtering](./ingestion-filtering) second and factor that into configuration parameters to achieve best performance related to your application requirements before proceeding further. +If you have configured your deployment to perform the ingestion role, then it is **strongly** recommended to review [Ingestion](./ingestion.mdx) first and [Filtering](./ingestion-filtering.mdx) second and factor that into configuration parameters to achieve best performance related to your application requirements before proceeding further. - Horizon will create a sub-directory under the current working directory of the o/s process to store captive core runtime data files. Refer to [Prerequisites](./prerequisites.mdx) for the type and amount of storage recommended. You can override this location with the optional `CAPTIVE_CORE_STORAGE_PATH` environment variable, set to a directory on the file system where captive core will store the runtime files. ### `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](../encyclopedia/channel-accounts.mdx) 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/encyclopedia/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. From 2e03e35acde70ab51e7296814ea0d69853b647e4 Mon Sep 17 00:00:00 2001 From: Elliot Voris Date: Wed, 28 Feb 2024 09:36:18 -0600 Subject: [PATCH 070/133] custom css for dropdown "sections" in the platforms navbar item --- src/css/custom.scss | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/css/custom.scss b/src/css/custom.scss index 97e58fdfa..968ac700b 100644 --- a/src/css/custom.scss +++ b/src/css/custom.scss @@ -131,3 +131,10 @@ div[class^='announcementBar_'] { var(--site-announcement-bar-stripe-color2) 40px ); } + +/* Navbar Customizations */ + +.platformsHeading { + text-transform: uppercase; + font-size: 0.875rem; +} From 605be366d7cd859f66014b3fb7fa7b6a2ff0603a Mon Sep 17 00:00:00 2001 From: Elliot Voris Date: Wed, 28 Feb 2024 09:36:57 -0600 Subject: [PATCH 071/133] change `/api` -> `/platforms` in custom sidebar component --- src/theme/DocSidebar/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/theme/DocSidebar/index.js b/src/theme/DocSidebar/index.js index 8aba0c34b..e27e12c59 100644 --- a/src/theme/DocSidebar/index.js +++ b/src/theme/DocSidebar/index.js @@ -5,7 +5,7 @@ export default function DocSidebarWrapper(props) { let newProps // For all `/api` sidebars, remove the parent category from the sidebar - if (props.path.startsWith('/api')) { + if (props.path.startsWith('/platforms')) { newProps = { ...props, sidebar: props.sidebar[0].items From 5aa86a479c35da7f207c11571e6f0bc225a50d35 Mon Sep 17 00:00:00 2001 From: Elliot Voris Date: Wed, 28 Feb 2024 09:37:26 -0600 Subject: [PATCH 072/133] docusaurus config changes --- docusaurus.config.js | 52 ++++++++++++++++++++++++++------------------ 1 file changed, 31 insertions(+), 21 deletions(-) diff --git a/docusaurus.config.js b/docusaurus.config.js index 2f23a7498..972ab6457 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -28,18 +28,18 @@ const config = { "docusaurus-plugin-openapi-docs", { id: "openapi", - docsPluginId: "api", + docsPluginId: "platforms", config: { horizon: { specPath: "openapi/horizon/bundled.yml", // Path to designated spec file - outputDir: "api/horizon/resources", // Output directory for generated .mdx docs + outputDir: "platforms/horizon/resources", // Output directory for generated .mdx docs sidebarOptions: { groupPathsBy: "tag", }, }, anchor_platform_api: { specPath: "openapi/anchor-platform/bundled.yml", // Path to designated spec file - outputDir: "api/anchor-platform/resources", // Output directory for generated .mdx docs + outputDir: "platforms/anchor-platform/resources", // Output directory for generated .mdx docs sidebarOptions: { groupPathsBy: "tag", }, @@ -47,7 +47,7 @@ const config = { }, anchor_platform_callbacks: { specPath: "openapi/anchor-platform/bundled_callback.yml", // Path to designated spec file - outputDir: "api/anchor-platform/callbacks", // Output directory for generated .mdx docs + outputDir: "platforms/anchor-platform/callbacks", // Output directory for generated .mdx docs sidebarOptions: { groupPathsBy: "tag", }, @@ -55,7 +55,7 @@ const config = { }, anchor_custody_api: { specPath: "openapi/anchor-platform/bundled_custody.yml", // Path to designated spec file - outputDir: "api/anchor-platform/custody-server", // Output directory for generated .mdx docs + outputDir: "platforms/anchor-platform/custody-server", // Output directory for generated .mdx docs sidebarOptions: { groupPathsBy: "tag", }, @@ -63,7 +63,7 @@ const config = { }, stellar_disbursement_platform: { specPath: "openapi/stellar-disbursement-platform/bundled.yml", // Path to designated spec file - outputDir: "api/stellar-disbursement-platform/resources", // Output directory for generated .mdx docs + outputDir: "platforms/stellar-disbursement-platform/resources", // Output directory for generated .mdx docs sidebarOptions: { groupPathsBy: "tag", }, @@ -75,13 +75,13 @@ const config = { [ "@docusaurus/plugin-content-docs", { - id: "api", - path: "api", - routeBasePath: "/api", + id: "platforms", + path: "platforms", + routeBasePath: "/platforms", docLayoutComponent: "@theme/DocPage", docItemComponent: "@theme/ApiItem", - sidebarPath: require.resolve("./sidebarsApi.js"), - sidebarItemsGenerator: require("./src/sidebar-api-generator"), + sidebarPath: require.resolve("./sidebarsPlatforms.js"), + sidebarItemsGenerator: require("./src/sidebar-platforms-generator"), editUrl: "https://github.com/stellar/stellar-docs/tree/main", showLastUpdateTime: true, showLastUpdateAuthor: true, @@ -154,31 +154,41 @@ const config = { label: 'Docs', position: 'left', }, + { + type: 'docSidebar', + sidebarId: 'tools', + label: 'Tools', + position: 'left', + }, { type: "dropdown", - label: "APIs", + label: "Platforms", position: "left", items: [ { - to: "/api/horizon", + type: 'html', + value: 'Data Availability', + className: 'platformsHeading', + }, + { + to: "/platforms/horizon", label: "Horizon", }, { - to: "/api/anchor-platform", + type: 'html', + value: 'SDF Platforms', + className: 'platformsHeading', + }, + { + to: "/platforms/anchor-platform", label: "Anchor Platform", }, { - to: "/api/stellar-disbursement-platform", + to: "/platforms/stellar-disbursement-platform", label: "Stellar Disbursement Platform", } ] }, - { - type: 'docSidebar', - sidebarId: 'tools', - label: 'Tools', - position: 'left', - }, { href: "https://github.com/stellar/stellar-docs", label: "GitHub", From e5e0445508c2f23e5b48ed17804f27ae49218f4a Mon Sep 17 00:00:00 2001 From: Elliot Voris Date: Wed, 28 Feb 2024 10:16:03 -0600 Subject: [PATCH 073/133] fix typo in sdp filepath --- .../_category_.json | 0 .../anchor-platform-integration-points.mdx | 2 +- .../deploy-the-sdp.mdx | 0 .../design-and-architecture.mdx | 2 +- .../getting-started.mdx | 4 ++-- .../making-your-wallet-sdp-ready.mdx | 2 +- .../overview.mdx | 0 .../secure-operation-manual.mdx | 0 .../user-interface/_category_.json | 0 .../user-interface/analytics.mdx | 0 .../user-interface/dashboard-home.mdx | 0 .../user-interface/disbursements.mdx | 0 .../user-interface/payments.mdx | 0 .../user-interface/receivers.mdx | 0 .../user-interface/wallets.mdx | 0 15 files changed, 5 insertions(+), 5 deletions(-) rename platforms/stellar-disbursement-platform/{run-stellar-disburement-platform => run-stellar-disbursement-platform}/_category_.json (100%) rename platforms/stellar-disbursement-platform/{run-stellar-disburement-platform => run-stellar-disbursement-platform}/anchor-platform-integration-points.mdx (94%) rename platforms/stellar-disbursement-platform/{run-stellar-disburement-platform => run-stellar-disbursement-platform}/deploy-the-sdp.mdx (100%) rename platforms/stellar-disbursement-platform/{run-stellar-disburement-platform => run-stellar-disbursement-platform}/design-and-architecture.mdx (96%) rename platforms/stellar-disbursement-platform/{run-stellar-disburement-platform => run-stellar-disbursement-platform}/getting-started.mdx (98%) rename platforms/stellar-disbursement-platform/{run-stellar-disburement-platform => run-stellar-disbursement-platform}/making-your-wallet-sdp-ready.mdx (98%) rename platforms/stellar-disbursement-platform/{run-stellar-disburement-platform => run-stellar-disbursement-platform}/overview.mdx (100%) rename platforms/stellar-disbursement-platform/{run-stellar-disburement-platform => run-stellar-disbursement-platform}/secure-operation-manual.mdx (100%) rename platforms/stellar-disbursement-platform/{run-stellar-disburement-platform => run-stellar-disbursement-platform}/user-interface/_category_.json (100%) rename platforms/stellar-disbursement-platform/{run-stellar-disburement-platform => run-stellar-disbursement-platform}/user-interface/analytics.mdx (100%) rename platforms/stellar-disbursement-platform/{run-stellar-disburement-platform => run-stellar-disbursement-platform}/user-interface/dashboard-home.mdx (100%) rename platforms/stellar-disbursement-platform/{run-stellar-disburement-platform => run-stellar-disbursement-platform}/user-interface/disbursements.mdx (100%) rename platforms/stellar-disbursement-platform/{run-stellar-disburement-platform => run-stellar-disbursement-platform}/user-interface/payments.mdx (100%) rename platforms/stellar-disbursement-platform/{run-stellar-disburement-platform => run-stellar-disbursement-platform}/user-interface/receivers.mdx (100%) rename platforms/stellar-disbursement-platform/{run-stellar-disburement-platform => run-stellar-disbursement-platform}/user-interface/wallets.mdx (100%) diff --git a/platforms/stellar-disbursement-platform/run-stellar-disburement-platform/_category_.json b/platforms/stellar-disbursement-platform/run-stellar-disbursement-platform/_category_.json similarity index 100% rename from platforms/stellar-disbursement-platform/run-stellar-disburement-platform/_category_.json rename to platforms/stellar-disbursement-platform/run-stellar-disbursement-platform/_category_.json diff --git a/platforms/stellar-disbursement-platform/run-stellar-disburement-platform/anchor-platform-integration-points.mdx b/platforms/stellar-disbursement-platform/run-stellar-disbursement-platform/anchor-platform-integration-points.mdx similarity index 94% rename from platforms/stellar-disbursement-platform/run-stellar-disburement-platform/anchor-platform-integration-points.mdx rename to platforms/stellar-disbursement-platform/run-stellar-disbursement-platform/anchor-platform-integration-points.mdx index 06498641b..3d9b32312 100644 --- a/platforms/stellar-disbursement-platform/run-stellar-disburement-platform/anchor-platform-integration-points.mdx +++ b/platforms/stellar-disbursement-platform/run-stellar-disbursement-platform/anchor-platform-integration-points.mdx @@ -3,7 +3,7 @@ title: Anchor Platform Integration Points sidebar_position: 60 --- -As mentioned in the [Design and Architecture](/docs/stellar-disbursement-platform/design-and-architecture) guide, the Stellar Disbursement Platform consists of a few services deployed together, where the Anchor Platform is one of them. +As mentioned in the [Design and Architecture](./design-and-architecture.mdx) guide, the Stellar Disbursement Platform consists of a few services deployed together, where the Anchor Platform is one of them. For that reason, there are some connection points between the two instances that need to be properly configured in order for the Stellar Disbursement Platform to work correctly. We will be covering these integration points in this guide. diff --git a/platforms/stellar-disbursement-platform/run-stellar-disburement-platform/deploy-the-sdp.mdx b/platforms/stellar-disbursement-platform/run-stellar-disbursement-platform/deploy-the-sdp.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/run-stellar-disburement-platform/deploy-the-sdp.mdx rename to platforms/stellar-disbursement-platform/run-stellar-disbursement-platform/deploy-the-sdp.mdx diff --git a/platforms/stellar-disbursement-platform/run-stellar-disburement-platform/design-and-architecture.mdx b/platforms/stellar-disbursement-platform/run-stellar-disbursement-platform/design-and-architecture.mdx similarity index 96% rename from platforms/stellar-disbursement-platform/run-stellar-disburement-platform/design-and-architecture.mdx rename to platforms/stellar-disbursement-platform/run-stellar-disbursement-platform/design-and-architecture.mdx index 02cad9dac..41607161b 100644 --- a/platforms/stellar-disbursement-platform/run-stellar-disburement-platform/design-and-architecture.mdx +++ b/platforms/stellar-disbursement-platform/run-stellar-disbursement-platform/design-and-architecture.mdx @@ -7,7 +7,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/stellar-disbursement-platform) + - **Dashboard API**: the API used by the front-end UI for all disbursement requests. The API is documented [here](../resources/index.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 diff --git a/platforms/stellar-disbursement-platform/run-stellar-disburement-platform/getting-started.mdx b/platforms/stellar-disbursement-platform/run-stellar-disbursement-platform/getting-started.mdx similarity index 98% rename from platforms/stellar-disbursement-platform/run-stellar-disburement-platform/getting-started.mdx rename to platforms/stellar-disbursement-platform/run-stellar-disbursement-platform/getting-started.mdx index fbc10f3dc..91e546396 100644 --- a/platforms/stellar-disbursement-platform/run-stellar-disburement-platform/getting-started.mdx +++ b/platforms/stellar-disbursement-platform/run-stellar-disbursement-platform/getting-started.mdx @@ -344,7 +344,7 @@ You can add and remove assets easily in the SDP dashboard. The SDP backend handl Head to the Wallets page of the SDP dashboard to add and remove assets. You'll need the Stellar asset code and the public key of the asset issuer. -> Note: please make sure to update the appropriate configuration on the Anchor Platform side, according with the [Anchor Platform Integration Points](/docs/stellar-disbursement-platform/anchor-platform-integration-points#manual-synchronization-of-custom-assets-and-wallets) guide. +> Note: please make sure to update the appropriate configuration on the Anchor Platform side, according with the [Anchor Platform Integration Points](./anchor-platform-integration-points.mdx#manual-synchronization-of-custom-assets-and-wallets) guide. ### Countries @@ -364,7 +364,7 @@ DELETE FROM countries WHERE code = 'FRA'; ### Wallets -For a full overview on how to add wallets and how to make a wallet SDP-compatible, check out the [Making Your Wallet SDP-Ready](/docs/stellar-disbursement-platform/making-your-wallet-sdp-ready) guide. +For a full overview on how to add wallets and how to make a wallet SDP-compatible, check out the [Making Your Wallet SDP-Ready](./making-your-wallet-sdp-ready.mdx) guide. [demo-wallet]: https://demo-wallet.stellar.org [circle-sandbox]: https://login-sandbox.circle.com/ diff --git a/platforms/stellar-disbursement-platform/run-stellar-disburement-platform/making-your-wallet-sdp-ready.mdx b/platforms/stellar-disbursement-platform/run-stellar-disbursement-platform/making-your-wallet-sdp-ready.mdx similarity index 98% rename from platforms/stellar-disbursement-platform/run-stellar-disburement-platform/making-your-wallet-sdp-ready.mdx rename to platforms/stellar-disbursement-platform/run-stellar-disbursement-platform/making-your-wallet-sdp-ready.mdx index 1d9444a9e..cb82737cd 100644 --- a/platforms/stellar-disbursement-platform/run-stellar-disburement-platform/making-your-wallet-sdp-ready.mdx +++ b/platforms/stellar-disbursement-platform/run-stellar-disbursement-platform/making-your-wallet-sdp-ready.mdx @@ -57,7 +57,7 @@ var DefaultWalletsNetworkMap = WalletsNetworkMapType{ -> Note: please make sure to update the appropriate configuration on the Anchor Platform side, according with the [Anchor Platform Integration Points](/docs/stellar-disbursement-platform/anchor-platform-integration-points#manual-synchronization-of-custom-assets-and-wallets) guide. +> Note: please make sure to update the appropriate configuration on the Anchor Platform side, according with the [Anchor Platform Integration Points](./anchor-platform-integration-points.mdx#manual-synchronization-of-custom-assets-and-wallets) guide. ## Recipient Registration Experience diff --git a/platforms/stellar-disbursement-platform/run-stellar-disburement-platform/overview.mdx b/platforms/stellar-disbursement-platform/run-stellar-disbursement-platform/overview.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/run-stellar-disburement-platform/overview.mdx rename to platforms/stellar-disbursement-platform/run-stellar-disbursement-platform/overview.mdx diff --git a/platforms/stellar-disbursement-platform/run-stellar-disburement-platform/secure-operation-manual.mdx b/platforms/stellar-disbursement-platform/run-stellar-disbursement-platform/secure-operation-manual.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/run-stellar-disburement-platform/secure-operation-manual.mdx rename to platforms/stellar-disbursement-platform/run-stellar-disbursement-platform/secure-operation-manual.mdx diff --git a/platforms/stellar-disbursement-platform/run-stellar-disburement-platform/user-interface/_category_.json b/platforms/stellar-disbursement-platform/run-stellar-disbursement-platform/user-interface/_category_.json similarity index 100% rename from platforms/stellar-disbursement-platform/run-stellar-disburement-platform/user-interface/_category_.json rename to platforms/stellar-disbursement-platform/run-stellar-disbursement-platform/user-interface/_category_.json diff --git a/platforms/stellar-disbursement-platform/run-stellar-disburement-platform/user-interface/analytics.mdx b/platforms/stellar-disbursement-platform/run-stellar-disbursement-platform/user-interface/analytics.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/run-stellar-disburement-platform/user-interface/analytics.mdx rename to platforms/stellar-disbursement-platform/run-stellar-disbursement-platform/user-interface/analytics.mdx diff --git a/platforms/stellar-disbursement-platform/run-stellar-disburement-platform/user-interface/dashboard-home.mdx b/platforms/stellar-disbursement-platform/run-stellar-disbursement-platform/user-interface/dashboard-home.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/run-stellar-disburement-platform/user-interface/dashboard-home.mdx rename to platforms/stellar-disbursement-platform/run-stellar-disbursement-platform/user-interface/dashboard-home.mdx diff --git a/platforms/stellar-disbursement-platform/run-stellar-disburement-platform/user-interface/disbursements.mdx b/platforms/stellar-disbursement-platform/run-stellar-disbursement-platform/user-interface/disbursements.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/run-stellar-disburement-platform/user-interface/disbursements.mdx rename to platforms/stellar-disbursement-platform/run-stellar-disbursement-platform/user-interface/disbursements.mdx diff --git a/platforms/stellar-disbursement-platform/run-stellar-disburement-platform/user-interface/payments.mdx b/platforms/stellar-disbursement-platform/run-stellar-disbursement-platform/user-interface/payments.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/run-stellar-disburement-platform/user-interface/payments.mdx rename to platforms/stellar-disbursement-platform/run-stellar-disbursement-platform/user-interface/payments.mdx diff --git a/platforms/stellar-disbursement-platform/run-stellar-disburement-platform/user-interface/receivers.mdx b/platforms/stellar-disbursement-platform/run-stellar-disbursement-platform/user-interface/receivers.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/run-stellar-disburement-platform/user-interface/receivers.mdx rename to platforms/stellar-disbursement-platform/run-stellar-disbursement-platform/user-interface/receivers.mdx diff --git a/platforms/stellar-disbursement-platform/run-stellar-disburement-platform/user-interface/wallets.mdx b/platforms/stellar-disbursement-platform/run-stellar-disbursement-platform/user-interface/wallets.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/run-stellar-disburement-platform/user-interface/wallets.mdx rename to platforms/stellar-disbursement-platform/run-stellar-disbursement-platform/user-interface/wallets.mdx From 5559d833c529c902f0eec3757d16d5ec5254e0c2 Mon Sep 17 00:00:00 2001 From: Elliot Voris Date: Wed, 28 Feb 2024 10:16:32 -0600 Subject: [PATCH 074/133] fix more broken links --- docs/accessing-data/overview.mdx | 2 +- .../stellar-stack.mdx | 2 +- docs/run-core-node/index.mdx | 2 +- .../callbacks/gen-address.api.mdx | 4 +-- .../anchor-platform/introduction/index.mdx | 2 +- .../run-anchor-platform/architecture.mdx | 4 +-- .../component/observer/observer.mdx | 2 +- .../run-anchor-platform/index.mdx | 10 +++---- .../sep10/configuration.mdx | 2 +- .../sep24/configuration.mdx | 2 +- .../run-anchor-platform/sep24/index.mdx | 6 ++-- .../run-anchor-platform/sep24/integration.mdx | 2 +- .../sep31/configuration.mdx | 4 +-- .../run-anchor-platform/sep31/index.mdx | 6 ++-- .../run-anchor-platform/sep31/integration.mdx | 30 +++++++++---------- .../sep6/configuration.mdx | 2 +- .../run-anchor-platform/sep6/index.mdx | 6 ++-- .../run-anchor-platform/sep6/integration.mdx | 2 +- .../horizon/run-platform-server/index.mdx | 2 +- platforms/index.mdx | 8 ++--- .../introduction/index.mdx | 2 +- 21 files changed, 51 insertions(+), 51 deletions(-) diff --git a/docs/accessing-data/overview.mdx b/docs/accessing-data/overview.mdx index cf0bf6c18..89b41b51d 100644 --- a/docs/accessing-data/overview.mdx +++ b/docs/accessing-data/overview.mdx @@ -5,7 +5,7 @@ sidebar_position: 0 ## What is Hubble? -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](/docs/run-platform-server). +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](/platforms/horizon/run-platform-server). This guide describes when to use Hubble and how to connect. To view the underlying data structures, queries and examples, use the [Viewing Metadata](/docs/accessing-data/viewing-metadata) and [Optimizing Queries](/docs/accessing-data/optimizing-queries) tutorials. diff --git a/docs/fundamentals-and-concepts/stellar-stack.mdx b/docs/fundamentals-and-concepts/stellar-stack.mdx index 08372db4b..fed6a2630 100644 --- a/docs/fundamentals-and-concepts/stellar-stack.mdx +++ b/docs/fundamentals-and-concepts/stellar-stack.mdx @@ -19,7 +19,7 @@ Anyone can run a Stellar Core node, but you don’t have to in order to build on Horizon is the client-facing RESTful HTTP API server in the platform layer which allows programmatic access to submit transactions and query the network’s historical data. It acts as the interface for applications that want to access the Stellar network. You can communicate with Horizon using an SDK, a web browser, or with simple command tools like cURL. -You do not need to run your own Horizon instance — when you're getting started, you can use the free SDF Horizon instance to access the network — but it is recommended that you do when you’re ready to launch a finished product. Check out how to do so here: [Run Platform Services Tutorial](../run-platform-server) +You do not need to run your own Horizon instance — when you're getting started, you can use the free SDF Horizon instance to access the network — but it is recommended that you do when you’re ready to launch a finished product. Check out how to do so here: [Run Platform Services Tutorial](/platforms/horizon/run-platform-server) Learn all there is to know about using Horizon in the Horizon [API Reference documentation](https://developers.stellar.org/api). diff --git a/docs/run-core-node/index.mdx b/docs/run-core-node/index.mdx index c9d32b2b6..a535a1e4d 100644 --- a/docs/run-core-node/index.mdx +++ b/docs/run-core-node/index.mdx @@ -9,7 +9,7 @@ Stellar is a peer-to-peer network made up of nodes, which are computers that kee You don’t need to run a node to build on Stellar: you can start developing with your [SDK of choice](../tools/sdks/library.mdx), and use public instances of Horizon to query the ledger and submit transactions right away. In fact, the Stellar Development Foundation offers two public instances of Horizon — one for the public network and one for the testnet — which you can read more about in our [API reference docs](https://developers.stellar.org/api). [Lobstr](https://horizon.stellar.lobstr.co), [Public Node](https://horizon.publicnode.org/), and [Coinqvest](https://horizon.stellar.coinqvest.com) also offer public Horizon instances. -Even if you _do_ want to run your [own instance of Horizon](../../platforms/horizon/run-platform-server), it bundles its own version of Core and manages its lifetime entirely, so there's no need to run a standalone instance. +Even if you _do_ want to run your [own instance of Horizon](/platforms/horizon/run-platform-server), it bundles its own version of Core and manages its lifetime entirely, so there's no need to run a standalone instance. If you’re serious about building on Stellar, have a production-level product or service that requires high-availability access network, or want to help increase network health and decentralization, then you probably _do_ want to run a node, or even a trio of nodes (more on that in the [Tier 1 section](./tier-1-orgs.mdx)). At that point, you have a choice: you can pay a service provider like [Blockdaemon](https://app.blockdaemon.com/marketplace/categories/-/stellar-horizon) to set up and run your node for you, or you can do it yourself. diff --git a/platforms/anchor-platform/callbacks/gen-address.api.mdx b/platforms/anchor-platform/callbacks/gen-address.api.mdx index c33775bef..7cbb97b09 100644 --- a/platforms/anchor-platform/callbacks/gen-address.api.mdx +++ b/platforms/anchor-platform/callbacks/gen-address.api.mdx @@ -5,7 +5,7 @@ description: "If the platform is configured with `depositInfoGeneratorType: api` sidebar_label: "Generate Unique Address" hide_title: true hide_table_of_contents: true -api: {"description":"If the platform is configured with `depositInfoGeneratorType: api`, the Platform make this request to\nthe Anchor backend every time a transaction is initiated by a client application.\n\nThe Anchor must guarantee that the memo returned in this request is unique, so it can be mapped 1-to-1 to a Platform\nresource such as a [SEP-31](https://stellar.org/protocol/sep-31) transaction.\n\nHere is how this flow would be used for Receiving Anchors that need to create their unique `(account, memo)` pairs\noutside the platform, using Circle:\n\n[![](https://mermaid.ink/img/pako:eNqlVctu2zAQ_JUFTy1iOwhyE9AUhuu0ORQ1YvdmIKDJVUSYIlWSihEY_veuRMuPhHaTVCc9VjPD4exyzYSVyDLm8U-NRuA3xR8dL-cG6AoqaMxgOp70r69g5rjxXARlDdxqu4KVCgXM2VpwrRdcLIeTu81lbRQhPXApHXo_ZxGp4i4ooSpuAkwDas1d4gMaqcwjDI0obOL7p3sUqJ6o5DNMNA-5deX5qlNII-WExvj-mLV_c3OR4slg8ms6g7XH6vpqcxn2XvgIYyuCJSPgnB2w4B4lkIGhQKi22CCsydVj7XiDF-GaK6WD9KXlTfkTwoGsf8JcvDYqg-_j2dkFfD1geFDyS5plb2U0mnDRIC0PgcNCW7EUBVcGtqCDPUqs79Ov_ZS8ewy1Mx4MriAKo_z5mKdOYlZiaeeM9lu5wVl9L1n2Zn6Qh5IUb5KWn9y6W2WUL5DSUSvdZrFJx7brDgyPDdd8e4emU1L6x7nfrznNPTjRLNtmzuAnX2LX2sT_XKIJ3U_xbf9Mb3WdIDGgCJ5i8gIKCl5VFCIJte8c-l8Xjvej82GnxdNaGyUHc2_81EjZbcPhRLwzuU2Q7YxKUjkrEIlkh0jyA9i8vc9pxvZaFd2COy-CbR93iDDSam93uhNPGD-cjX7AuptEbcenE1dJal-ZSqUPPNR-8JHk_25RW4KTiG-dz-3oSozny0zJxjFRoFi2VBG-s_l1yN_ZMq_kK9P80Q7zAeuxEulBSTpk1w3-nFF9iXOW0a3EnNc6NMfkhkqjy2OpgnUsy7n22GO8Dnb6bATLgquxK9oe1NuqzV8v2LI1)](https://mermaid.live/edit#pako:eNqlVctu2zAQ_JUFTy1iOwhyE9AUhuu0ORQ1YvdmIKDJVUSYIlWSihEY_veuRMuPhHaTVCc9VjPD4exyzYSVyDLm8U-NRuA3xR8dL-cG6AoqaMxgOp70r69g5rjxXARlDdxqu4KVCgXM2VpwrRdcLIeTu81lbRQhPXApHXo_ZxGp4i4ooSpuAkwDas1d4gMaqcwjDI0obOL7p3sUqJ6o5DNMNA-5deX5qlNII-WExvj-mLV_c3OR4slg8ms6g7XH6vpqcxn2XvgIYyuCJSPgnB2w4B4lkIGhQKi22CCsydVj7XiDF-GaK6WD9KXlTfkTwoGsf8JcvDYqg-_j2dkFfD1geFDyS5plb2U0mnDRIC0PgcNCW7EUBVcGtqCDPUqs79Ov_ZS8ewy1Mx4MriAKo_z5mKdOYlZiaeeM9lu5wVl9L1n2Zn6Qh5IUb5KWn9y6W2WUL5DSUSvdZrFJx7brDgyPDdd8e4emU1L6x7nfrznNPTjRLNtmzuAnX2LX2sT_XKIJ3U_xbf9Mb3WdIDGgCJ5i8gIKCl5VFCIJte8c-l8Xjvej82GnxdNaGyUHc2_81EjZbcPhRLwzuU2Q7YxKUjkrEIlkh0jyA9i8vc9pxvZaFd2COy-CbR93iDDSam93uhNPGD-cjX7AuptEbcenE1dJal-ZSqUPPNR-8JHk_25RW4KTiG-dz-3oSozny0zJxjFRoFi2VBG-s_l1yN_ZMq_kK9P80Q7zAeuxEulBSTpk1w3-nFF9iXOW0a3EnNc6NMfkhkqjy2OpgnUsy7n22GO8Dnb6bATLgquxK9oe1NuqzV8v2LI1)\n","operationId":"genAddress","tags":["Unique Address","SEP-31"],"parameters":[{"in":"query","name":"transaction_id","description":"The platform server will save the posted transaction and pass the `transaction_id` through this endpoint.\nIf the anchor wishes to return transaction-dependent unique_address, the anchor may query the [`GET /transactions` endpoint of the Platform API](/api/anchor-platform/resources/get-transaction).\n","schema":{"type":"string"},"required":true}],"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"type":"object","properties":{"unique_address":{"description":"An object containing the unique `stellar_address:memo` pair used to identify a destination.","type":"object","properties":{"stellar_address":{"description":"A `G...` stellar address or a `M...` [muxed stellar address](https://developers.stellar.org/docs/glossary/muxed-accounts/) of an **existing** account in the Stellar network.","type":"string"},"memo":{"description":"The memo to attach to the Stellar payment.","type":"string"},"memo_type":{"description":"The type of memo to attach to the Stellar payment (text, hash, or id).","type":"string","enum":["text","hash","id"]}},"required":["stellar_address"]}}}}}},"500":{"description":"Error. The Platform will respond to the client application with the same response code and body.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"id":{"type":"string"}},"required":["error"],"title":"Error"}}}}},"method":"get","path":"/unique_address","info":{"version":"2.0.0","description":"The Synchronous Callbacks API specification for the Stellar Anchor Platform project.\n\nThe Synchronous Callbacks API defines requests made by the Platform while it is processing a request from a client application. The\nanchor's responses to these requests affect the Platform responses to the client application.\n","title":"Synchronous Callbacks API"},"postman":{"name":"Generate Unique Address","description":{"content":"If the platform is configured with `depositInfoGeneratorType: api`, the Platform make this request to\nthe Anchor backend every time a transaction is initiated by a client application.\n\nThe Anchor must guarantee that the memo returned in this request is unique, so it can be mapped 1-to-1 to a Platform\nresource such as a [SEP-31](https://stellar.org/protocol/sep-31) transaction.\n\nHere is how this flow would be used for Receiving Anchors that need to create their unique `(account, memo)` pairs\noutside the platform, using Circle:\n\n[![](https://mermaid.ink/img/pako:eNqlVctu2zAQ_JUFTy1iOwhyE9AUhuu0ORQ1YvdmIKDJVUSYIlWSihEY_veuRMuPhHaTVCc9VjPD4exyzYSVyDLm8U-NRuA3xR8dL-cG6AoqaMxgOp70r69g5rjxXARlDdxqu4KVCgXM2VpwrRdcLIeTu81lbRQhPXApHXo_ZxGp4i4ooSpuAkwDas1d4gMaqcwjDI0obOL7p3sUqJ6o5DNMNA-5deX5qlNII-WExvj-mLV_c3OR4slg8ms6g7XH6vpqcxn2XvgIYyuCJSPgnB2w4B4lkIGhQKi22CCsydVj7XiDF-GaK6WD9KXlTfkTwoGsf8JcvDYqg-_j2dkFfD1geFDyS5plb2U0mnDRIC0PgcNCW7EUBVcGtqCDPUqs79Ov_ZS8ewy1Mx4MriAKo_z5mKdOYlZiaeeM9lu5wVl9L1n2Zn6Qh5IUb5KWn9y6W2WUL5DSUSvdZrFJx7brDgyPDdd8e4emU1L6x7nfrznNPTjRLNtmzuAnX2LX2sT_XKIJ3U_xbf9Mb3WdIDGgCJ5i8gIKCl5VFCIJte8c-l8Xjvej82GnxdNaGyUHc2_81EjZbcPhRLwzuU2Q7YxKUjkrEIlkh0jyA9i8vc9pxvZaFd2COy-CbR93iDDSam93uhNPGD-cjX7AuptEbcenE1dJal-ZSqUPPNR-8JHk_25RW4KTiG-dz-3oSozny0zJxjFRoFi2VBG-s_l1yN_ZMq_kK9P80Q7zAeuxEulBSTpk1w3-nFF9iXOW0a3EnNc6NMfkhkqjy2OpgnUsy7n22GO8Dnb6bATLgquxK9oe1NuqzV8v2LI1)](https://mermaid.live/edit#pako:eNqlVctu2zAQ_JUFTy1iOwhyE9AUhuu0ORQ1YvdmIKDJVUSYIlWSihEY_veuRMuPhHaTVCc9VjPD4exyzYSVyDLm8U-NRuA3xR8dL-cG6AoqaMxgOp70r69g5rjxXARlDdxqu4KVCgXM2VpwrRdcLIeTu81lbRQhPXApHXo_ZxGp4i4ooSpuAkwDas1d4gMaqcwjDI0obOL7p3sUqJ6o5DNMNA-5deX5qlNII-WExvj-mLV_c3OR4slg8ms6g7XH6vpqcxn2XvgIYyuCJSPgnB2w4B4lkIGhQKi22CCsydVj7XiDF-GaK6WD9KXlTfkTwoGsf8JcvDYqg-_j2dkFfD1geFDyS5plb2U0mnDRIC0PgcNCW7EUBVcGtqCDPUqs79Ov_ZS8ewy1Mx4MriAKo_z5mKdOYlZiaeeM9lu5wVl9L1n2Zn6Qh5IUb5KWn9y6W2WUL5DSUSvdZrFJx7brDgyPDdd8e4emU1L6x7nfrznNPTjRLNtmzuAnX2LX2sT_XKIJ3U_xbf9Mb3WdIDGgCJ5i8gIKCl5VFCIJte8c-l8Xjvej82GnxdNaGyUHc2_81EjZbcPhRLwzuU2Q7YxKUjkrEIlkh0jyA9i8vc9pxvZaFd2COy-CbR93iDDSam93uhNPGD-cjX7AuptEbcenE1dJal-ZSqUPPNR-8JHk_25RW4KTiG-dz-3oSozny0zJxjFRoFi2VBG-s_l1yN_ZMq_kK9P80Q7zAeuxEulBSTpk1w3-nFF9iXOW0a3EnNc6NMfkhkqjy2OpgnUsy7n22GO8Dnb6bATLgquxK9oe1NuqzV8v2LI1)\n","type":"text/plain"},"url":{"path":["unique_address"],"host":["{{baseUrl}}"],"query":[{"disabled":false,"description":{"content":"(Required) The platform server will save the posted transaction and pass the `transaction_id` through this endpoint.\nIf the anchor wishes to return transaction-dependent unique_address, the anchor may query the [`GET /transactions` endpoint of the Platform API](/api/anchor-platform/resources/get-transaction).\n","type":"text/plain"},"key":"transaction_id","value":""}],"variable":[]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET"}} +api: {"description":"If the platform is configured with `depositInfoGeneratorType: api`, the Platform make this request to\nthe Anchor backend every time a transaction is initiated by a client application.\n\nThe Anchor must guarantee that the memo returned in this request is unique, so it can be mapped 1-to-1 to a Platform\nresource such as a [SEP-31](https://stellar.org/protocol/sep-31) transaction.\n\nHere is how this flow would be used for Receiving Anchors that need to create their unique `(account, memo)` pairs\noutside the platform, using Circle:\n\n[![](https://mermaid.ink/img/pako:eNqlVctu2zAQ_JUFTy1iOwhyE9AUhuu0ORQ1YvdmIKDJVUSYIlWSihEY_veuRMuPhHaTVCc9VjPD4exyzYSVyDLm8U-NRuA3xR8dL-cG6AoqaMxgOp70r69g5rjxXARlDdxqu4KVCgXM2VpwrRdcLIeTu81lbRQhPXApHXo_ZxGp4i4ooSpuAkwDas1d4gMaqcwjDI0obOL7p3sUqJ6o5DNMNA-5deX5qlNII-WExvj-mLV_c3OR4slg8ms6g7XH6vpqcxn2XvgIYyuCJSPgnB2w4B4lkIGhQKi22CCsydVj7XiDF-GaK6WD9KXlTfkTwoGsf8JcvDYqg-_j2dkFfD1geFDyS5plb2U0mnDRIC0PgcNCW7EUBVcGtqCDPUqs79Ov_ZS8ewy1Mx4MriAKo_z5mKdOYlZiaeeM9lu5wVl9L1n2Zn6Qh5IUb5KWn9y6W2WUL5DSUSvdZrFJx7brDgyPDdd8e4emU1L6x7nfrznNPTjRLNtmzuAnX2LX2sT_XKIJ3U_xbf9Mb3WdIDGgCJ5i8gIKCl5VFCIJte8c-l8Xjvej82GnxdNaGyUHc2_81EjZbcPhRLwzuU2Q7YxKUjkrEIlkh0jyA9i8vc9pxvZaFd2COy-CbR93iDDSam93uhNPGD-cjX7AuptEbcenE1dJal-ZSqUPPNR-8JHk_25RW4KTiG-dz-3oSozny0zJxjFRoFi2VBG-s_l1yN_ZMq_kK9P80Q7zAeuxEulBSTpk1w3-nFF9iXOW0a3EnNc6NMfkhkqjy2OpgnUsy7n22GO8Dnb6bATLgquxK9oe1NuqzV8v2LI1)](https://mermaid.live/edit#pako:eNqlVctu2zAQ_JUFTy1iOwhyE9AUhuu0ORQ1YvdmIKDJVUSYIlWSihEY_veuRMuPhHaTVCc9VjPD4exyzYSVyDLm8U-NRuA3xR8dL-cG6AoqaMxgOp70r69g5rjxXARlDdxqu4KVCgXM2VpwrRdcLIeTu81lbRQhPXApHXo_ZxGp4i4ooSpuAkwDas1d4gMaqcwjDI0obOL7p3sUqJ6o5DNMNA-5deX5qlNII-WExvj-mLV_c3OR4slg8ms6g7XH6vpqcxn2XvgIYyuCJSPgnB2w4B4lkIGhQKi22CCsydVj7XiDF-GaK6WD9KXlTfkTwoGsf8JcvDYqg-_j2dkFfD1geFDyS5plb2U0mnDRIC0PgcNCW7EUBVcGtqCDPUqs79Ov_ZS8ewy1Mx4MriAKo_z5mKdOYlZiaeeM9lu5wVl9L1n2Zn6Qh5IUb5KWn9y6W2WUL5DSUSvdZrFJx7brDgyPDdd8e4emU1L6x7nfrznNPTjRLNtmzuAnX2LX2sT_XKIJ3U_xbf9Mb3WdIDGgCJ5i8gIKCl5VFCIJte8c-l8Xjvej82GnxdNaGyUHc2_81EjZbcPhRLwzuU2Q7YxKUjkrEIlkh0jyA9i8vc9pxvZaFd2COy-CbR93iDDSam93uhNPGD-cjX7AuptEbcenE1dJal-ZSqUPPNR-8JHk_25RW4KTiG-dz-3oSozny0zJxjFRoFi2VBG-s_l1yN_ZMq_kK9P80Q7zAeuxEulBSTpk1w3-nFF9iXOW0a3EnNc6NMfkhkqjy2OpgnUsy7n22GO8Dnb6bATLgquxK9oe1NuqzV8v2LI1)\n","operationId":"genAddress","tags":["Unique Address","SEP-31"],"parameters":[{"in":"query","name":"transaction_id","description":"The platform server will save the posted transaction and pass the `transaction_id` through this endpoint.\nIf the anchor wishes to return transaction-dependent unique_address, the anchor may query the [`GET /transactions` endpoint of the Platform API](/platforms/anchor-platform/resources/get-transaction).\n","schema":{"type":"string"},"required":true}],"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"type":"object","properties":{"unique_address":{"description":"An object containing the unique `stellar_address:memo` pair used to identify a destination.","type":"object","properties":{"stellar_address":{"description":"A `G...` stellar address or a `M...` [muxed stellar address](https://developers.stellar.org/docs/glossary/muxed-accounts/) of an **existing** account in the Stellar network.","type":"string"},"memo":{"description":"The memo to attach to the Stellar payment.","type":"string"},"memo_type":{"description":"The type of memo to attach to the Stellar payment (text, hash, or id).","type":"string","enum":["text","hash","id"]}},"required":["stellar_address"]}}}}}},"500":{"description":"Error. The Platform will respond to the client application with the same response code and body.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"id":{"type":"string"}},"required":["error"],"title":"Error"}}}}},"method":"get","path":"/unique_address","info":{"version":"2.0.0","description":"The Synchronous Callbacks API specification for the Stellar Anchor Platform project.\n\nThe Synchronous Callbacks API defines requests made by the Platform while it is processing a request from a client application. The\nanchor's responses to these requests affect the Platform responses to the client application.\n","title":"Synchronous Callbacks API"},"postman":{"name":"Generate Unique Address","description":{"content":"If the platform is configured with `depositInfoGeneratorType: api`, the Platform make this request to\nthe Anchor backend every time a transaction is initiated by a client application.\n\nThe Anchor must guarantee that the memo returned in this request is unique, so it can be mapped 1-to-1 to a Platform\nresource such as a [SEP-31](https://stellar.org/protocol/sep-31) transaction.\n\nHere is how this flow would be used for Receiving Anchors that need to create their unique `(account, memo)` pairs\noutside the platform, using Circle:\n\n[![](https://mermaid.ink/img/pako:eNqlVctu2zAQ_JUFTy1iOwhyE9AUhuu0ORQ1YvdmIKDJVUSYIlWSihEY_veuRMuPhHaTVCc9VjPD4exyzYSVyDLm8U-NRuA3xR8dL-cG6AoqaMxgOp70r69g5rjxXARlDdxqu4KVCgXM2VpwrRdcLIeTu81lbRQhPXApHXo_ZxGp4i4ooSpuAkwDas1d4gMaqcwjDI0obOL7p3sUqJ6o5DNMNA-5deX5qlNII-WExvj-mLV_c3OR4slg8ms6g7XH6vpqcxn2XvgIYyuCJSPgnB2w4B4lkIGhQKi22CCsydVj7XiDF-GaK6WD9KXlTfkTwoGsf8JcvDYqg-_j2dkFfD1geFDyS5plb2U0mnDRIC0PgcNCW7EUBVcGtqCDPUqs79Ov_ZS8ewy1Mx4MriAKo_z5mKdOYlZiaeeM9lu5wVl9L1n2Zn6Qh5IUb5KWn9y6W2WUL5DSUSvdZrFJx7brDgyPDdd8e4emU1L6x7nfrznNPTjRLNtmzuAnX2LX2sT_XKIJ3U_xbf9Mb3WdIDGgCJ5i8gIKCl5VFCIJte8c-l8Xjvej82GnxdNaGyUHc2_81EjZbcPhRLwzuU2Q7YxKUjkrEIlkh0jyA9i8vc9pxvZaFd2COy-CbR93iDDSam93uhNPGD-cjX7AuptEbcenE1dJal-ZSqUPPNR-8JHk_25RW4KTiG-dz-3oSozny0zJxjFRoFi2VBG-s_l1yN_ZMq_kK9P80Q7zAeuxEulBSTpk1w3-nFF9iXOW0a3EnNc6NMfkhkqjy2OpgnUsy7n22GO8Dnb6bATLgquxK9oe1NuqzV8v2LI1)](https://mermaid.live/edit#pako:eNqlVctu2zAQ_JUFTy1iOwhyE9AUhuu0ORQ1YvdmIKDJVUSYIlWSihEY_veuRMuPhHaTVCc9VjPD4exyzYSVyDLm8U-NRuA3xR8dL-cG6AoqaMxgOp70r69g5rjxXARlDdxqu4KVCgXM2VpwrRdcLIeTu81lbRQhPXApHXo_ZxGp4i4ooSpuAkwDas1d4gMaqcwjDI0obOL7p3sUqJ6o5DNMNA-5deX5qlNII-WExvj-mLV_c3OR4slg8ms6g7XH6vpqcxn2XvgIYyuCJSPgnB2w4B4lkIGhQKi22CCsydVj7XiDF-GaK6WD9KXlTfkTwoGsf8JcvDYqg-_j2dkFfD1geFDyS5plb2U0mnDRIC0PgcNCW7EUBVcGtqCDPUqs79Ov_ZS8ewy1Mx4MriAKo_z5mKdOYlZiaeeM9lu5wVl9L1n2Zn6Qh5IUb5KWn9y6W2WUL5DSUSvdZrFJx7brDgyPDdd8e4emU1L6x7nfrznNPTjRLNtmzuAnX2LX2sT_XKIJ3U_xbf9Mb3WdIDGgCJ5i8gIKCl5VFCIJte8c-l8Xjvej82GnxdNaGyUHc2_81EjZbcPhRLwzuU2Q7YxKUjkrEIlkh0jyA9i8vc9pxvZaFd2COy-CbR93iDDSam93uhNPGD-cjX7AuptEbcenE1dJal-ZSqUPPNR-8JHk_25RW4KTiG-dz-3oSozny0zJxjFRoFi2VBG-s_l1yN_ZMq_kK9P80Q7zAeuxEulBSTpk1w3-nFF9iXOW0a3EnNc6NMfkhkqjy2OpgnUsy7n22GO8Dnb6bATLgquxK9oe1NuqzV8v2LI1)\n","type":"text/plain"},"url":{"path":["unique_address"],"host":["{{baseUrl}}"],"query":[{"disabled":false,"description":{"content":"(Required) The platform server will save the posted transaction and pass the `transaction_id` through this endpoint.\nIf the anchor wishes to return transaction-dependent unique_address, the anchor may query the [`GET /transactions` endpoint of the Platform API](/platforms/anchor-platform/resources/get-transaction).\n","type":"text/plain"},"key":"transaction_id","value":""}],"variable":[]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET"}} sidebar_class_name: "get api-method" info_path: api/anchor-platform/callbacks/synchronous-callbacks-api custom_edit_url: null @@ -40,7 +40,7 @@ outside the platform, using Circle: [![](https://mermaid.ink/img/pako:eNqlVctu2zAQ_JUFTy1iOwhyE9AUhuu0ORQ1YvdmIKDJVUSYIlWSihEY_veuRMuPhHaTVCc9VjPD4exyzYSVyDLm8U-NRuA3xR8dL-cG6AoqaMxgOp70r69g5rjxXARlDdxqu4KVCgXM2VpwrRdcLIeTu81lbRQhPXApHXo_ZxGp4i4ooSpuAkwDas1d4gMaqcwjDI0obOL7p3sUqJ6o5DNMNA-5deX5qlNII-WExvj-mLV_c3OR4slg8ms6g7XH6vpqcxn2XvgIYyuCJSPgnB2w4B4lkIGhQKi22CCsydVj7XiDF-GaK6WD9KXlTfkTwoGsf8JcvDYqg-_j2dkFfD1geFDyS5plb2U0mnDRIC0PgcNCW7EUBVcGtqCDPUqs79Ov_ZS8ewy1Mx4MriAKo_z5mKdOYlZiaeeM9lu5wVl9L1n2Zn6Qh5IUb5KWn9y6W2WUL5DSUSvdZrFJx7brDgyPDdd8e4emU1L6x7nfrznNPTjRLNtmzuAnX2LX2sT_XKIJ3U_xbf9Mb3WdIDGgCJ5i8gIKCl5VFCIJte8c-l8Xjvej82GnxdNaGyUHc2_81EjZbcPhRLwzuU2Q7YxKUjkrEIlkh0jyA9i8vc9pxvZaFd2COy-CbR93iDDSam93uhNPGD-cjX7AuptEbcenE1dJal-ZSqUPPNR-8JHk_25RW4KTiG-dz-3oSozny0zJxjFRoFi2VBG-s_l1yN_ZMq_kK9P80Q7zAeuxEulBSTpk1w3-nFF9iXOW0a3EnNc6NMfkhkqjy2OpgnUsy7n22GO8Dnb6bATLgquxK9oe1NuqzV8v2LI1)](https://mermaid.live/edit#pako:eNqlVctu2zAQ_JUFTy1iOwhyE9AUhuu0ORQ1YvdmIKDJVUSYIlWSihEY_veuRMuPhHaTVCc9VjPD4exyzYSVyDLm8U-NRuA3xR8dL-cG6AoqaMxgOp70r69g5rjxXARlDdxqu4KVCgXM2VpwrRdcLIeTu81lbRQhPXApHXo_ZxGp4i4ooSpuAkwDas1d4gMaqcwjDI0obOL7p3sUqJ6o5DNMNA-5deX5qlNII-WExvj-mLV_c3OR4slg8ms6g7XH6vpqcxn2XvgIYyuCJSPgnB2w4B4lkIGhQKi22CCsydVj7XiDF-GaK6WD9KXlTfkTwoGsf8JcvDYqg-_j2dkFfD1geFDyS5plb2U0mnDRIC0PgcNCW7EUBVcGtqCDPUqs79Ov_ZS8ewy1Mx4MriAKo_z5mKdOYlZiaeeM9lu5wVl9L1n2Zn6Qh5IUb5KWn9y6W2WUL5DSUSvdZrFJx7brDgyPDdd8e4emU1L6x7nfrznNPTjRLNtmzuAnX2LX2sT_XKIJ3U_xbf9Mb3WdIDGgCJ5i8gIKCl5VFCIJte8c-l8Xjvej82GnxdNaGyUHc2_81EjZbcPhRLwzuU2Q7YxKUjkrEIlkh0jyA9i8vc9pxvZaFd2COy-CbR93iDDSam93uhNPGD-cjX7AuptEbcenE1dJal-ZSqUPPNR-8JHk_25RW4KTiG-dz-3oSozny0zJxjFRoFi2VBG-s_l1yN_ZMq_kK9P80Q7zAeuxEulBSTpk1w3-nFF9iXOW0a3EnNc6NMfkhkqjy2OpgnUsy7n22GO8Dnb6bATLgquxK9oe1NuqzV8v2LI1) -
Query Parameters
+
Query Parameters
Success. diff --git a/platforms/anchor-platform/introduction/index.mdx b/platforms/anchor-platform/introduction/index.mdx index b8ddcb54e..a6e5dbe04 100644 --- a/platforms/anchor-platform/introduction/index.mdx +++ b/platforms/anchor-platform/introduction/index.mdx @@ -8,4 +8,4 @@ The Anchor Platform is a set of tools and APIs that enable developers and busine 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. -You can read more about integrating with the Anchor Platform [here](/docs/anchoring-assets/anchor-platform/). +You can read more about integrating with the Anchor Platform [in the Admin Guide](../run-anchor-platform/index.mdx). diff --git a/platforms/anchor-platform/run-anchor-platform/architecture.mdx b/platforms/anchor-platform/run-anchor-platform/architecture.mdx index 0ee9efbdd..9e753f87c 100644 --- a/platforms/anchor-platform/run-anchor-platform/architecture.mdx +++ b/platforms/anchor-platform/run-anchor-platform/architecture.mdx @@ -70,5 +70,5 @@ The event service is a new component that will push events to both the client an The custody server is a new component that allows businesses to connect to a custodial service (such as Fireblocks) to send and receive payments on the Stellar network. When used in self-custodial mode, this service is a next generation of the existing Stellar Observer. [seps]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/README.md -[platform-api]: /api/anchor-platform -[callback-api]: /api/anchor-platform/callbacks +[platform-api]: ../resources/index.mdx +[callback-api]: ../callbacks/index.mdx diff --git a/platforms/anchor-platform/run-anchor-platform/component/observer/observer.mdx b/platforms/anchor-platform/run-anchor-platform/component/observer/observer.mdx index 74d1788fc..4ec8ad734 100644 --- a/platforms/anchor-platform/run-anchor-platform/component/observer/observer.mdx +++ b/platforms/anchor-platform/run-anchor-platform/component/observer/observer.mdx @@ -33,4 +33,4 @@ The Fireblocks custody service will automatically track transactions and notify ::: -[fireblocks]: /docs/category/fireblocks +[fireblocks]: /platforms/category/fireblocks diff --git a/platforms/anchor-platform/run-anchor-platform/index.mdx b/platforms/anchor-platform/run-anchor-platform/index.mdx index 241a53958..4933377c5 100644 --- a/platforms/anchor-platform/run-anchor-platform/index.mdx +++ b/platforms/anchor-platform/run-anchor-platform/index.mdx @@ -29,8 +29,8 @@ The documentation for the Anchor Platform is a work in progress. Developers are [sep-31]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0031.md [sep-38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md [anchor-platform-github]: https://github.com/stellar/java-stellar-anchor-sdk -[sep1-ap]: /docs/category/stellar-info-file -[sep6-ap]: /docs/category/programmatic-deposits-and-withdrawals -[sep10-ap]: /docs/category/stellar-authentication -[sep24-ap]: /docs/category/hosted-deposits-and-withdrawals -[sep31-ap]: /docs/category/cross-border-payments +[sep1-ap]: /platforms/category/stellar-info-file +[sep6-ap]: /platforms/category/programmatic-deposits-and-withdrawals +[sep10-ap]: /platforms/category/stellar-authentication +[sep24-ap]: /platforms/category/hosted-deposits-and-withdrawals +[sep31-ap]: /platforms/category/cross-border-payments diff --git a/platforms/anchor-platform/run-anchor-platform/sep10/configuration.mdx b/platforms/anchor-platform/run-anchor-platform/sep10/configuration.mdx index 91d39b68c..e380609da 100644 --- a/platforms/anchor-platform/run-anchor-platform/sep10/configuration.mdx +++ b/platforms/anchor-platform/run-anchor-platform/sep10/configuration.mdx @@ -74,4 +74,4 @@ ORG_DESCRIPTION = "A description of your organization" -[sep1-ap]: /docs/category/stellar-info-file +[sep1-ap]: /platforms/category/stellar-info-file diff --git a/platforms/anchor-platform/run-anchor-platform/sep24/configuration.mdx b/platforms/anchor-platform/run-anchor-platform/sep24/configuration.mdx index f78454b49..e21ddac7b 100644 --- a/platforms/anchor-platform/run-anchor-platform/sep24/configuration.mdx +++ b/platforms/anchor-platform/run-anchor-platform/sep24/configuration.mdx @@ -187,4 +187,4 @@ The demo wallet should be able to find your `stellar.toml` file, authenticate us [flyway]: https://documentation.red-gate.com/fd/welcome-to-flyway-184127914.html [sep-24-ref-ui]: https://github.com/stellar/sep24-reference-ui [sep-24-ref]: https://github.com/stellar/java-stellar-anchor-sdk/tree/develop/kotlin-reference-server -[sep1-ap]: /docs/category/stellar-info-file +[sep1-ap]: /platforms/category/stellar-info-file diff --git a/platforms/anchor-platform/run-anchor-platform/sep24/index.mdx b/platforms/anchor-platform/run-anchor-platform/sep24/index.mdx index 6f9a82606..896fc1bf9 100644 --- a/platforms/anchor-platform/run-anchor-platform/sep24/index.mdx +++ b/platforms/anchor-platform/run-anchor-platform/sep24/index.mdx @@ -28,6 +28,6 @@ The customer can then use the digital asset on the Stellar network for remittanc 5. Once the anchor receives the payment, the customer receives the withdrawn funds via bank transfer. [sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[installation-ap]: /docs/anchoring-assets/anchor-platform/getting_started -[sep1-ap]: /docs/category/stellar-info-file -[sep10-ap]: /docs/category/stellar-authentication +[installation-ap]: /platforms/anchor-platform/run-anchor-platform/getting_started +[sep1-ap]: /platforms/category/stellar-info-file +[sep10-ap]: /platforms/category/stellar-authentication diff --git a/platforms/anchor-platform/run-anchor-platform/sep24/integration.mdx b/platforms/anchor-platform/run-anchor-platform/sep24/integration.mdx index f024ee96b..e94725ff0 100644 --- a/platforms/anchor-platform/run-anchor-platform/sep24/integration.mdx +++ b/platforms/anchor-platform/run-anchor-platform/sep24/integration.mdx @@ -969,4 +969,4 @@ Works in the same manner as for the deposit flow. For more details, see [Transac [sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md [sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[json-rpc-methods]: /api/anchor-platform/rpc/methods +[json-rpc-methods]: /platforms/anchor-platform/rpc/methods diff --git a/platforms/anchor-platform/run-anchor-platform/sep31/configuration.mdx b/platforms/anchor-platform/run-anchor-platform/sep31/configuration.mdx index 17c59458c..2aa9faf27 100644 --- a/platforms/anchor-platform/run-anchor-platform/sep31/configuration.mdx +++ b/platforms/anchor-platform/run-anchor-platform/sep31/configuration.mdx @@ -371,7 +371,7 @@ SECRET_CALLBACK_API_AUTH_SECRET= We'll define the server that implements the endpoints defined in the Callback API in the following section. [sep31-get-info]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0031.md#get-info -[sep1-ap]: /docs/category/stellar-info-file +[sep1-ap]: /platforms/category/stellar-info-file [sep38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md [sep38-post-quote]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md#post-quote -[platform-api-kyc]: /api/anchor-platform/callbacks/customer +[platform-api-kyc]: /platforms/anchor-platform/callbacks/customer diff --git a/platforms/anchor-platform/run-anchor-platform/sep31/index.mdx b/platforms/anchor-platform/run-anchor-platform/sep31/index.mdx index 15eb6b9b9..637e73cac 100644 --- a/platforms/anchor-platform/run-anchor-platform/sep31/index.mdx +++ b/platforms/anchor-platform/run-anchor-platform/sep31/index.mdx @@ -16,6 +16,6 @@ As we improve the documentation, parts of this guide that are relevant to other Before continuing with this section, make sure that you have already [installed][installation-ap] the Anchor Platform and configured the necessary features required by SEP-31: [SEP-1 (Stellar Info File)][sep1-ap] and [SEP-10 (Stellar Authentication)][sep10-ap]. [sep-31]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0031.md -[installation-ap]: /docs/anchoring-assets/anchor-platform/getting_started -[sep1-ap]: /docs/category/stellar-info-file -[sep10-ap]: /docs/category/stellar-authentication +[installation-ap]: /platforms/anchor-platform/run-anchor-platform/getting_started +[sep1-ap]: /platforms/category/stellar-info-file +[sep10-ap]: /platforms/category/stellar-authentication diff --git a/platforms/anchor-platform/run-anchor-platform/sep31/integration.mdx b/platforms/anchor-platform/run-anchor-platform/sep31/integration.mdx index 4e055417c..4cf0bed20 100644 --- a/platforms/anchor-platform/run-anchor-platform/sep31/integration.mdx +++ b/platforms/anchor-platform/run-anchor-platform/sep31/integration.mdx @@ -673,22 +673,22 @@ This endpoint may be removed during future major version updates of the Anchor P ::: -[ap-api]: /api/anchor-platform -[ap-sep10]: /docs/category/stellar-authentication +[ap-api]: /platforms/anchor-platform +[ap-sep10]: /platforms/category/stellar-authentication [sep12]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md [demo-wallet]: https://demo-wallet.stellar.org [indicative]: https://www.investopedia.com/terms/i/indicativequote.asp [firm]: https://www.investopedia.com/terms/f/firmquote.asp -[get-unique-address]: /api/anchor-platform/callbacks/gen-address -[get-customer]: /api/anchor-platform/callbacks/get-customer -[put-customer]: /api/anchor-platform/callbacks/put-customer -[get-rate]: /api/anchor-platform/callbacks/get-rates -[get-fee]: /api/anchor-platform/callbacks/get-fee -[get-unique-address]: /api/anchor-platform/callbacks/gen-address -[put-customer-callback]: /api/anchor-platform/callbacks/put-customer-callback -[delete-customer]: /api/anchor-platform/callbacks/del-customer -[json-rpc-methods]: /api/anchor-platform/rpc/methods -[sep24-integration-make-json-rpc-request]: /docs/anchoring-assets/anchor-platform/sep24/integration#making-json-rpc-requests -[sep24-integration-rpc-request]: /docs/anchoring-assets/anchor-platform/sep24/integration#json-rpc-request -[sep24-integration-rpc-response]: /docs/anchoring-assets/anchor-platform/sep24/integration#json-rpc-response -[sep24-integration-error-codes]: /docs/anchoring-assets/anchor-platform/sep24/integration#error-codes +[get-unique-address]: /platforms/anchor-platform/callbacks/gen-address +[get-customer]: /platforms/anchor-platform/callbacks/get-customer +[put-customer]: /platforms/anchor-platform/callbacks/put-customer +[get-rate]: /platforms/anchor-platform/callbacks/get-rates +[get-fee]: /platforms/anchor-platform/callbacks/get-fee +[get-unique-address]: /platforms/anchor-platform/callbacks/gen-address +[put-customer-callback]: /platforms/anchor-platform/callbacks/put-customer-callback +[delete-customer]: /platforms/anchor-platform/callbacks/del-customer +[json-rpc-methods]: /platforms/anchor-platform/rpc/methods +[sep24-integration-make-json-rpc-request]: /platforms/anchor-platform/run-anchor-platform/sep24/integration#making-json-rpc-requests +[sep24-integration-rpc-request]: /platforms/anchor-platform/run-anchor-platform/sep24/integration#json-rpc-request +[sep24-integration-rpc-response]: /platforms/anchor-platform/run-anchor-platform/sep24/integration#json-rpc-response +[sep24-integration-error-codes]: /platforms/anchor-platform/run-anchor-platform/sep24/integration#error-codes diff --git a/platforms/anchor-platform/run-anchor-platform/sep6/configuration.mdx b/platforms/anchor-platform/run-anchor-platform/sep6/configuration.mdx index fabcfb5c7..39bafab7f 100644 --- a/platforms/anchor-platform/run-anchor-platform/sep6/configuration.mdx +++ b/platforms/anchor-platform/run-anchor-platform/sep6/configuration.mdx @@ -122,5 +122,5 @@ Initiate a deposit transaction by doing the following: The demo wallet should be able to find your `stellar.toml` file, authenticate using the Stellar keypair you just created, and initiate a transaction. [sep-6]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md -[sep1-ap]: /docs/category/stellar-info-file +[sep1-ap]: /platforms/category/stellar-info-file [stellar-demo-wallet]: https://demo-wallet.stellar.org/ diff --git a/platforms/anchor-platform/run-anchor-platform/sep6/index.mdx b/platforms/anchor-platform/run-anchor-platform/sep6/index.mdx index ac8c10409..c98612073 100644 --- a/platforms/anchor-platform/run-anchor-platform/sep6/index.mdx +++ b/platforms/anchor-platform/run-anchor-platform/sep6/index.mdx @@ -28,6 +28,6 @@ The customer can then use the digital asset on the Stellar network for remittanc 5. Once the anchor receives the payment, the customer receives the withdrawn funds via any method supported by the anchor (such as bank transfer) [sep-6]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md -[installation-ap]: /docs/anchoring-assets/anchor-platform/getting_started -[sep1-ap]: /docs/category/stellar-info-file -[sep10-ap]: /docs/category/stellar-authentication +[installation-ap]: /platforms/anchor-platform/run-anchor-platform/getting_started +[sep1-ap]: /platforms/category/stellar-info-file +[sep10-ap]: /platforms/category/stellar-authentication diff --git a/platforms/anchor-platform/run-anchor-platform/sep6/integration.mdx b/platforms/anchor-platform/run-anchor-platform/sep6/integration.mdx index 5ee5e5331..d12f0c0e6 100644 --- a/platforms/anchor-platform/run-anchor-platform/sep6/integration.mdx +++ b/platforms/anchor-platform/run-anchor-platform/sep6/integration.mdx @@ -979,4 +979,4 @@ Works in the same manner as for the deposit flow. For more details, see [Transac -[get-transactions]: /api/anchor-platform/resources/get-transactions +[get-transactions]: /platforms/anchor-platform/resources/get-transactions diff --git a/platforms/horizon/run-platform-server/index.mdx b/platforms/horizon/run-platform-server/index.mdx index a07458b59..50d8584d4 100644 --- a/platforms/horizon/run-platform-server/index.mdx +++ b/platforms/horizon/run-platform-server/index.mdx @@ -7,7 +7,7 @@ Horizon is a central component of the Stellar platform: it provides an HTTP API This guide describes how to administer a production Horizon instance (refer to the [Developers' Blog](https://www.stellar.org/developers-blog/a-new-sun-on-the-horizon) for some background on the performance and architectural improvements of this major version bump). For information about developing on the Horizon codebase, check out the [Development Guide](https://github.com/stellar/go/blob/master/services/horizon/internal/docs/developing.md). -Before we begin, it's worth reiterating the sentiment echoed in the [Run a Core Node](../run-core-node) guide: **we do not endorse running Horizon backed by a standalone Stellar Core instance**, and especially not by a _validating_ Stellar Core. These are two separate concerns, and decoupling them is important for both reliability and performance. Horizon instead 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). +Before we begin, it's worth reiterating the sentiment echoed in the [Run a Core Node](/docs/run-core-node) guide: **we do not endorse running Horizon backed by a standalone Stellar Core instance**, and especially not by a _validating_ Stellar Core. These are two separate concerns, and decoupling them is important for both reliability and performance. Horizon instead 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). ## Why Run Horizon? diff --git a/platforms/index.mdx b/platforms/index.mdx index 4861368e4..7204815ea 100644 --- a/platforms/index.mdx +++ b/platforms/index.mdx @@ -13,7 +13,7 @@ This API serves the bridge between apps and Stellar Core. Projects like wallets, decentralized exchanges, and asset issuers use Horizon to submit transactions, query an account balance, or stream events like transactions to an account. -[Learn more about the Horizon API here!](/api/horizon) +[Learn more about the Horizon API here!](./horizon) ## Anchor Platform @@ -23,11 +23,11 @@ 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. -[Learn more about the Anchor Platform API here!](/api/anchor-platform) +[Learn more about the Anchor Platform API here!](./anchor-platform) ## Stellar Disbursement Platform -The Stellar Disbursement Platform (SDP) enables organizations to disburse bulk +The Stellar Disbursement Platform (SDP) enables organizations to disburse bulk payments to recipients using Stellar. -[Learn more about the Stellar Disbursement Platform API here!](/api/stellar-disbursement-platform) \ No newline at end of file +[Learn more about the Stellar Disbursement Platform API here!](./stellar-disbursement-platform) diff --git a/platforms/stellar-disbursement-platform/introduction/index.mdx b/platforms/stellar-disbursement-platform/introduction/index.mdx index 3488cd34c..b34a1f1df 100644 --- a/platforms/stellar-disbursement-platform/introduction/index.mdx +++ b/platforms/stellar-disbursement-platform/introduction/index.mdx @@ -6,4 +6,4 @@ slug: /stellar-disbursement-platform The Stellar Disbursement Platform (SDP) enables organizations to disburse bulk payments to recipients using Stellar. -This section includes the API reference for the Stellar Disbursement Platform. To learn more about the Stellar Disbursement Platform and how to run it, check out the [documentation](/docs/stellar-disbursement-platform/overview). \ No newline at end of file +This section includes the API reference for the Stellar Disbursement Platform. To learn more about the Stellar Disbursement Platform and how to run it, check out the [Admin Guide](../run-stellar-disbursement-platform/overview.mdx). From a841081661434ed3e34524b8354abffb52616d73 Mon Sep 17 00:00:00 2001 From: Elliot Voris Date: Wed, 28 Feb 2024 11:06:50 -0600 Subject: [PATCH 075/133] change rpc filepath to reflect "platforms" language --- {api => platforms/soroban-rpc}/README.mdx | 0 {api => platforms/soroban-rpc}/anti-goals.mdx | 0 {api => platforms/soroban-rpc}/goals.mdx | 0 {api => platforms/soroban-rpc}/json-rpc.mdx | 0 {api => platforms/soroban-rpc}/methods/getEvents.mdx | 0 {api => platforms/soroban-rpc}/methods/getHealth.mdx | 0 {api => platforms/soroban-rpc}/methods/getLatestLedger.mdx | 0 {api => platforms/soroban-rpc}/methods/getLedgerEntries.mdx | 0 {api => platforms/soroban-rpc}/methods/getNetwork.mdx | 0 {api => platforms/soroban-rpc}/methods/getTransaction.mdx | 0 {api => platforms/soroban-rpc}/methods/sendTransaction.mdx | 0 {api => platforms/soroban-rpc}/methods/simulateTransaction.mdx | 0 {api => platforms/soroban-rpc}/pagination.mdx | 0 13 files changed, 0 insertions(+), 0 deletions(-) rename {api => platforms/soroban-rpc}/README.mdx (100%) rename {api => platforms/soroban-rpc}/anti-goals.mdx (100%) rename {api => platforms/soroban-rpc}/goals.mdx (100%) rename {api => platforms/soroban-rpc}/json-rpc.mdx (100%) rename {api => platforms/soroban-rpc}/methods/getEvents.mdx (100%) rename {api => platforms/soroban-rpc}/methods/getHealth.mdx (100%) rename {api => platforms/soroban-rpc}/methods/getLatestLedger.mdx (100%) rename {api => platforms/soroban-rpc}/methods/getLedgerEntries.mdx (100%) rename {api => platforms/soroban-rpc}/methods/getNetwork.mdx (100%) rename {api => platforms/soroban-rpc}/methods/getTransaction.mdx (100%) rename {api => platforms/soroban-rpc}/methods/sendTransaction.mdx (100%) rename {api => platforms/soroban-rpc}/methods/simulateTransaction.mdx (100%) rename {api => platforms/soroban-rpc}/pagination.mdx (100%) diff --git a/api/README.mdx b/platforms/soroban-rpc/README.mdx similarity index 100% rename from api/README.mdx rename to platforms/soroban-rpc/README.mdx diff --git a/api/anti-goals.mdx b/platforms/soroban-rpc/anti-goals.mdx similarity index 100% rename from api/anti-goals.mdx rename to platforms/soroban-rpc/anti-goals.mdx diff --git a/api/goals.mdx b/platforms/soroban-rpc/goals.mdx similarity index 100% rename from api/goals.mdx rename to platforms/soroban-rpc/goals.mdx diff --git a/api/json-rpc.mdx b/platforms/soroban-rpc/json-rpc.mdx similarity index 100% rename from api/json-rpc.mdx rename to platforms/soroban-rpc/json-rpc.mdx diff --git a/api/methods/getEvents.mdx b/platforms/soroban-rpc/methods/getEvents.mdx similarity index 100% rename from api/methods/getEvents.mdx rename to platforms/soroban-rpc/methods/getEvents.mdx diff --git a/api/methods/getHealth.mdx b/platforms/soroban-rpc/methods/getHealth.mdx similarity index 100% rename from api/methods/getHealth.mdx rename to platforms/soroban-rpc/methods/getHealth.mdx diff --git a/api/methods/getLatestLedger.mdx b/platforms/soroban-rpc/methods/getLatestLedger.mdx similarity index 100% rename from api/methods/getLatestLedger.mdx rename to platforms/soroban-rpc/methods/getLatestLedger.mdx diff --git a/api/methods/getLedgerEntries.mdx b/platforms/soroban-rpc/methods/getLedgerEntries.mdx similarity index 100% rename from api/methods/getLedgerEntries.mdx rename to platforms/soroban-rpc/methods/getLedgerEntries.mdx diff --git a/api/methods/getNetwork.mdx b/platforms/soroban-rpc/methods/getNetwork.mdx similarity index 100% rename from api/methods/getNetwork.mdx rename to platforms/soroban-rpc/methods/getNetwork.mdx diff --git a/api/methods/getTransaction.mdx b/platforms/soroban-rpc/methods/getTransaction.mdx similarity index 100% rename from api/methods/getTransaction.mdx rename to platforms/soroban-rpc/methods/getTransaction.mdx diff --git a/api/methods/sendTransaction.mdx b/platforms/soroban-rpc/methods/sendTransaction.mdx similarity index 100% rename from api/methods/sendTransaction.mdx rename to platforms/soroban-rpc/methods/sendTransaction.mdx diff --git a/api/methods/simulateTransaction.mdx b/platforms/soroban-rpc/methods/simulateTransaction.mdx similarity index 100% rename from api/methods/simulateTransaction.mdx rename to platforms/soroban-rpc/methods/simulateTransaction.mdx diff --git a/api/pagination.mdx b/platforms/soroban-rpc/pagination.mdx similarity index 100% rename from api/pagination.mdx rename to platforms/soroban-rpc/pagination.mdx From 0127f54e257adefb808c1295a9526cf427949a20 Mon Sep 17 00:00:00 2001 From: Elliot Voris Date: Wed, 28 Feb 2024 11:36:06 -0600 Subject: [PATCH 076/133] fix broken links and setup soroban-rpc sidebar --- platforms/soroban-rpc/README.mdx | 1 + platforms/soroban-rpc/pagination.mdx | 2 +- sidebarsPlatforms.js | 54 ++++++++++++++++++++++++---- 3 files changed, 49 insertions(+), 8 deletions(-) diff --git a/platforms/soroban-rpc/README.mdx b/platforms/soroban-rpc/README.mdx index 9d3998745..afd9a6ab1 100644 --- a/platforms/soroban-rpc/README.mdx +++ b/platforms/soroban-rpc/README.mdx @@ -1,5 +1,6 @@ --- title: Introduction +sidebar_position: 10 --- import DocCardList from "@theme/DocCardList"; diff --git a/platforms/soroban-rpc/pagination.mdx b/platforms/soroban-rpc/pagination.mdx index 3da84ce15..acc4142ad 100644 --- a/platforms/soroban-rpc/pagination.mdx +++ b/platforms/soroban-rpc/pagination.mdx @@ -9,7 +9,7 @@ Pagination in soroban-rpc is similar to pagination in Horizon. For methods which support it, the pagination arguments are passed as a final object argument with two values: - `cursor`: string - (optional) 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. -- `limit`: number - (optional) The maximum number of records returned. The limit for [getEvents](methods/getEvents.mdx) 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. +- `limit`: number - (optional) The maximum number of records returned. The limit for [getEvents](./methods/getEvents.mdx) 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. For example, calling a method with pagination parameter set: diff --git a/sidebarsPlatforms.js b/sidebarsPlatforms.js index 5cee0800f..927c1d313 100644 --- a/sidebarsPlatforms.js +++ b/sidebarsPlatforms.js @@ -25,7 +25,7 @@ const sidebars = { dirName: "anchor-platform", }, ], - } + }, ], stellar_disbursement_platform: [ { @@ -33,12 +33,52 @@ const sidebars = { label: "Stellar Disbursement Platform", items: [ { - "type": "autogenerated", - "dirName": "stellar-disbursement-platform" - } - ] - } - ] + type: "autogenerated", + dirName: "stellar-disbursement-platform", + }, + ], + }, + ], + soroban_rpc: [ + { + type: "category", + label: "Soroban RPC", + items: [ + { + type: 'category', + label: 'Introduction', + collapsible: true, + collapsed: false, + link: { + type: 'doc', + id: 'soroban-rpc/README', + }, + items: [ + 'soroban-rpc/goals', + 'soroban-rpc/anti-goals', + 'soroban-rpc/json-rpc', + 'soroban-rpc/pagination', + ] + }, + { + type: 'category', + label: 'Methods', + collapsible: true, + collapsed: false, + link: { + type: 'generated-index', + slug: 'soroban-rpc/methods' + }, + items: [ + { + type: "autogenerated", + dirName: "soroban-rpc/methods", + }, + ] + }, + ], + }, + ], } module.exports = sidebars; From 5f946dec05cae61f2b516143af16d8ea3fb562db Mon Sep 17 00:00:00 2001 From: Elliot Voris Date: Wed, 28 Feb 2024 11:50:25 -0600 Subject: [PATCH 077/133] install required packages for soroban rpc methods --- package.json | 9 +- yarn.lock | 251 ++++++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 257 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index ae3989ed2..34b987649 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,10 @@ "check:mdx": "prettier -c \"docs/**/*.{md,mdx}\"", "lint:fix": "eslint \"src/**/*.{js,jsx,ts,tsx}\" --fix", "lint": "eslint \"src/**/*.{js,jsx,ts,tsx}\"", - "prepare": "husky install" + "prepare": "husky install", + "postinstall": "patch-package", + "rpcspec:build": "node openrpc/scripts/build.mjs", + "rpcspec:validate": "node openrpc/scripts/build.mjs && node openrpc/scripts/validate.mjs" }, "dependencies": { "@docusaurus/core": "^2.2.0", @@ -32,6 +35,9 @@ "@docusaurus/remark-plugin-npm2yarn": "^2.4.1", "@mdx-js/react": "^1.6.22", "@metamask/open-rpc-docs-react": "^0.1.2", + "@open-rpc/meta-schema": "^1.14.6", + "@open-rpc/schema-utils-js": "^1.16.1", + "ajv": "^8.12.0", "clsx": "^1.2.1", "docusaurus-plugin-openapi-docs": "^1.7.2", "docusaurus-plugin-sass": "^0.2.2", @@ -40,6 +46,7 @@ "hast-util-is-element": "1.1.0", "mdx-mermaid": "^1.3.2", "mermaid": "^8.11.5", + "patch-package": "^8.0.0", "prism-react-renderer": "^1.3.5", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/yarn.lock b/yarn.lock index 103a9ae74..87c1f2e8c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2036,7 +2036,42 @@ resolved "https://registry.yarnpkg.com/@jsdevtools/ono/-/ono-7.1.3.tgz#9df03bbd7c696a5c58885c34aa06da41c8543796" integrity sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg== -"@json-schema-tools/traverse@^1.10.1": +"@json-schema-spec/json-pointer@^0.1.2": + version "0.1.2" + resolved "https://registry.yarnpkg.com/@json-schema-spec/json-pointer/-/json-pointer-0.1.2.tgz#5153d5d01b94134015ee829deca5a970cf0406fd" + integrity sha512-BYY7IavBjwsWWSmVcMz2A9mKiDD9RvacnsItgmy1xV8cmgbtxFfKmKMtkVpD7pYtkx4mIW4800yZBXueVFIWPw== + +"@json-schema-tools/dereferencer@1.5.4": + version "1.5.4" + resolved "https://registry.yarnpkg.com/@json-schema-tools/dereferencer/-/dereferencer-1.5.4.tgz#2a1830ab84e81c56ab14be68a10df6d3274bc40e" + integrity sha512-4cmEdRPIG7WrcSWGRV6HBDCLXEOXGkaOZnopqBxoG24mKYuCHWg4M6N9nioTQyNfKqlPkOPvT4lStQqkPnhLgA== + dependencies: + "@json-schema-tools/reference-resolver" "^1.2.4" + "@json-schema-tools/traverse" "^1.7.8" + fast-safe-stringify "^2.0.7" + +"@json-schema-tools/meta-schema@1.6.19": + version "1.6.19" + resolved "https://registry.yarnpkg.com/@json-schema-tools/meta-schema/-/meta-schema-1.6.19.tgz#295301c2d4a0c01eb2eafbf605aca8ebc0dfbbb6" + integrity sha512-55zuWFW7tr4tf/G5AYmybcPdGOkVAreQbt2JdnogX4I2r/zkxZiimYPJESDf5je9BI2oRveak2p296HzDppeaA== + +"@json-schema-tools/reference-resolver@1.2.4": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@json-schema-tools/reference-resolver/-/reference-resolver-1.2.4.tgz#ace48726f4e3026301d50efa09a4f1a942fa9d3c" + integrity sha512-Oag20zDuapO6nBQp00k8Rd5sDTb8Gfz9uH43Tf7dHKNx7nHDK/WdeTe7OxkOmLQCL6aS+mCJx1Zv+fZBCD+tzQ== + dependencies: + "@json-schema-spec/json-pointer" "^0.1.2" + isomorphic-fetch "^3.0.0" + +"@json-schema-tools/reference-resolver@^1.2.4": + version "1.2.5" + resolved "https://registry.yarnpkg.com/@json-schema-tools/reference-resolver/-/reference-resolver-1.2.5.tgz#47179269010eeb1f6fc289fa355da7111b633baf" + integrity sha512-xNQgX/ABnwvbIeexL5Czv08lXjHAL80HEUogza7E19eIL/EXD8HM4FvxG1JuTGyi5fA+sSP64C9pabELizcBBw== + dependencies: + "@json-schema-spec/json-pointer" "^0.1.2" + isomorphic-fetch "^3.0.0" + +"@json-schema-tools/traverse@^1.10.1", "@json-schema-tools/traverse@^1.7.8": version "1.10.1" resolved "https://registry.yarnpkg.com/@json-schema-tools/traverse/-/traverse-1.10.1.tgz#1129579c37fef9bb997082c62840f5989a667c0d" integrity sha512-vYY5EIxCPzEXEWL/vTjdHy4g92tv1ApUQCjPJsj9gEoXLNNVwJlwwgRZisuvgFBZ3zeLzQygrbehERSpYdmFZA== @@ -2139,6 +2174,32 @@ resolved "https://registry.yarnpkg.com/@open-rpc/examples/-/examples-1.7.0.tgz#5b34a6a9adb0eb8cb87c059c17cbd587f5b71b05" integrity sha512-io/HHMgE5rY4KcArZLAgLONQFPpIfV/ELlueJ/LQULkNM0xuM2yAfsrAJddnEI7MrK5F1XjAfjUJU9v7ab+osQ== +"@open-rpc/meta-schema@1.14.2": + version "1.14.2" + resolved "https://registry.yarnpkg.com/@open-rpc/meta-schema/-/meta-schema-1.14.2.tgz#1af0b1ea77e50b5076ae31267e97efcb9ff352f8" + integrity sha512-vD4Nbkrb7wYFRcSQf+j228LwOy1C6/KKpy5NADlpMElGrAWPRxhTa2yTi6xG+x88OHzg2+cydQ0GAD6o40KUcg== + +"@open-rpc/meta-schema@^1.14.6": + version "1.14.6" + resolved "https://registry.yarnpkg.com/@open-rpc/meta-schema/-/meta-schema-1.14.6.tgz#85901c55c0c66e374d772d109db362b100f10954" + integrity sha512-swxmiiIYwSyltJCgb12B/rQ9S1GbkXJnM67qSB4ka+uMxO/wEJSrooXARYLIHx80qvR31H7hYLdaHq2Ktqwy3Q== + +"@open-rpc/schema-utils-js@^1.16.1": + version "1.16.1" + resolved "https://registry.yarnpkg.com/@open-rpc/schema-utils-js/-/schema-utils-js-1.16.1.tgz#3e9f09561dec67ec751e6ce8146d94abb0caa5f4" + integrity sha512-8D4OgBnHDAv7JeaYZ5v7SL4yR0YLLO4WLTWtdR8vmqSqvX3SvPzSsGYv06zqm9z1Lhm563MAcuearrc8g9eJ4w== + dependencies: + "@json-schema-tools/dereferencer" "1.5.4" + "@json-schema-tools/meta-schema" "1.6.19" + "@json-schema-tools/reference-resolver" "1.2.4" + "@open-rpc/meta-schema" "1.14.2" + ajv "^6.10.0" + detect-node "^2.0.4" + fast-safe-stringify "^2.0.7" + fs-extra "^9.0.0" + is-url "^1.2.4" + isomorphic-fetch "^3.0.0" + "@paloaltonetworks/openapi-to-postmanv2@3.1.0-hotfix.1": version "3.1.0-hotfix.1" resolved "https://registry.yarnpkg.com/@paloaltonetworks/openapi-to-postmanv2/-/openapi-to-postmanv2-3.1.0-hotfix.1.tgz#4baf401d2e94ba86d888e6011a4c45d824e88114" @@ -3614,6 +3675,11 @@ resolved "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz" integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== +"@yarnpkg/lockfile@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz#e77a97fbd345b76d83245edcd17d393b1b41fb31" + integrity sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ== + abort-controller@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" @@ -4558,6 +4624,17 @@ call-bind@^1.0.0, call-bind@^1.0.2: function-bind "^1.1.1" get-intrinsic "^1.0.2" +call-bind@^1.0.5: + version "1.0.7" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.7.tgz#06016599c40c56498c18769d2730be242b6fa3b9" + integrity sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w== + dependencies: + es-define-property "^1.0.0" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + set-function-length "^1.2.1" + call-me-maybe@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz" @@ -4732,6 +4809,11 @@ ci-info@^3.1.1, ci-info@^3.2.0: resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.7.1.tgz#708a6cdae38915d597afdf3b145f2f8e1ff55f3f" integrity sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w== +ci-info@^3.7.0: + version "3.9.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.9.0.tgz#4279a62028a7b1f262f3473fc9605f5e218c59b4" + integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ== + cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" @@ -6124,6 +6206,15 @@ defer-to-connect@^1.0.1: resolved "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz" integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== +define-data-property@^1.1.2: + version "1.1.4" + resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e" + integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== + dependencies: + es-define-property "^1.0.0" + es-errors "^1.3.0" + gopd "^1.0.1" + define-lazy-prop@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz" @@ -6688,6 +6779,18 @@ es-array-method-boxes-properly@^1.0.0: resolved "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz" integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA== +es-define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.0.tgz#c7faefbdff8b2696cf5f46921edfb77cc4ba3845" + integrity sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ== + dependencies: + get-intrinsic "^1.2.4" + +es-errors@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" + integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== + es-module-lexer@^0.9.0: version "0.9.3" resolved "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz" @@ -7404,6 +7507,13 @@ find-up@^5.0.0: locate-path "^6.0.0" path-exists "^4.0.0" +find-yarn-workspace-root@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/find-yarn-workspace-root/-/find-yarn-workspace-root-2.0.0.tgz#f47fb8d239c900eb78179aa81b66673eac88f7bd" + integrity sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ== + dependencies: + micromatch "^4.0.2" + flat-cache@^3.0.4: version "3.0.4" resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz" @@ -7577,6 +7687,11 @@ function-bind@^1.1.1: resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== +function-bind@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== + function.prototype.name@^1.1.5: version "1.1.5" resolved "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz" @@ -7611,6 +7726,17 @@ get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1, get-intrinsic@ has "^1.0.3" has-symbols "^1.0.3" +get-intrinsic@^1.2.3, get-intrinsic@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd" + integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== + dependencies: + es-errors "^1.3.0" + function-bind "^1.1.2" + has-proto "^1.0.1" + has-symbols "^1.0.3" + hasown "^2.0.0" + get-own-enumerable-property-symbols@^3.0.0: version "3.0.2" resolved "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz" @@ -7904,6 +8030,13 @@ has-property-descriptors@^1.0.0: dependencies: get-intrinsic "^1.1.1" +has-property-descriptors@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854" + integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== + dependencies: + es-define-property "^1.0.0" + has-proto@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.1.tgz#1885c1305538958aff469fef37937c22795408e0" @@ -7986,6 +8119,13 @@ hash.js@^1.0.0, hash.js@^1.0.3: inherits "^2.0.3" minimalistic-assert "^1.0.1" +hasown@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.1.tgz#26f48f039de2c0f8d3356c223fb8d50253519faa" + integrity sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA== + dependencies: + function-bind "^1.1.2" + hast-to-hyperscript@^10.0.0: version "10.0.1" resolved "https://registry.yarnpkg.com/hast-to-hyperscript/-/hast-to-hyperscript-10.0.1.tgz#3decd7cb4654bca8883f6fcbd4fb3695628c4296" @@ -8991,6 +9131,11 @@ is-typedarray@^1.0.0: resolved "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz" integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== +is-url@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/is-url/-/is-url-1.2.4.tgz#04a4df46d28c4cff3d73d01ff06abeb318a1aa52" + integrity sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww== + is-weakref@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz" @@ -9040,6 +9185,11 @@ isarray@1.0.0, isarray@~1.0.0: resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== +isarray@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" + integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== + isexe@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" @@ -9057,6 +9207,14 @@ isobject@^3.0.0, isobject@^3.0.1: resolved "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz" integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== +isomorphic-fetch@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-3.0.0.tgz#0267b005049046d2421207215d45d6a262b8b8b4" + integrity sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA== + dependencies: + node-fetch "^2.6.1" + whatwg-fetch "^3.4.1" + jest-util@^29.3.1: version "29.3.1" resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.3.1.tgz#1dda51e378bbcb7e3bc9d8ab651445591ed373e1" @@ -9216,6 +9374,16 @@ json-stable-stringify-without-jsonify@^1.0.1: resolved "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz" integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== +json-stable-stringify@^1.0.2: + version "1.1.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.1.1.tgz#52d4361b47d49168bcc4e564189a42e5a7439454" + integrity sha512-SU/971Kt5qVQfJpyDveVhQ/vya+5hvrjClFOcr8c0Fq5aODJjMwutrOfCU+eCnVD5gpx1Q3fEqkyom77zH1iIg== + dependencies: + call-bind "^1.0.5" + isarray "^2.0.5" + jsonify "^0.0.1" + object-keys "^1.1.1" + json5@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz" @@ -9247,6 +9415,11 @@ jsonfile@^6.0.1: optionalDependencies: graceful-fs "^4.1.6" +jsonify@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.1.tgz#2aa3111dae3d34a0f151c63f3a45d995d9420978" + integrity sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg== + jsonpointer@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-5.0.1.tgz#2110e0af0900fd37467b5907ecd13a7884a1b559" @@ -9308,6 +9481,13 @@ kind-of@^6.0.0, kind-of@^6.0.2: resolved "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== +klaw-sync@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/klaw-sync/-/klaw-sync-6.0.0.tgz#1fd2cfd56ebb6250181114f0a581167099c2b28c" + integrity sha512-nIeuVSzdCCs6TDPTqI8w1Yre34sSq7AkZ4B3sfOBbI2CgVSB4Du4aLQijFU2+lhAFCwt9+42Hel6lQNIv6AntQ== + dependencies: + graceful-fs "^4.1.11" + kleur@^3.0.3: version "3.0.3" resolved "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz" @@ -10812,7 +10992,7 @@ onetime@^5.1.2: dependencies: mimic-fn "^2.1.0" -open@^7.0.2: +open@^7.0.2, open@^7.4.2: version "7.4.2" resolved "https://registry.npmjs.org/open/-/open-7.4.2.tgz" integrity sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q== @@ -10866,6 +11046,11 @@ os-browserify@^0.3.0: resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" integrity sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A== +os-tmpdir@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== + p-cancelable@^1.0.0: version "1.1.0" resolved "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz" @@ -11049,6 +11234,27 @@ pascalcase@^0.1.1: resolved "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz" integrity sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw== +patch-package@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/patch-package/-/patch-package-8.0.0.tgz#d191e2f1b6e06a4624a0116bcb88edd6714ede61" + integrity sha512-da8BVIhzjtgScwDJ2TtKsfT5JFWz1hYoBl9rUQ1f38MC2HwnEIkK8VN3dKMKcP7P7bvvgzNDbfNHtx3MsQb5vA== + dependencies: + "@yarnpkg/lockfile" "^1.1.0" + chalk "^4.1.2" + ci-info "^3.7.0" + cross-spawn "^7.0.3" + find-yarn-workspace-root "^2.0.0" + fs-extra "^9.0.0" + json-stable-stringify "^1.0.2" + klaw-sync "^6.0.0" + minimist "^1.2.6" + open "^7.4.2" + rimraf "^2.6.3" + semver "^7.5.3" + slash "^2.0.0" + tmp "^0.0.33" + yaml "^2.2.2" + path-browserify@1.0.1, path-browserify@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz" @@ -12923,6 +13129,13 @@ semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7: dependencies: lru-cache "^6.0.0" +semver@^7.5.3: + version "7.6.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.0.tgz#1a46a4db4bffcccd97b743b5005c8325f23d4e2d" + integrity sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg== + dependencies: + lru-cache "^6.0.0" + send@0.18.0: version "0.18.0" resolved "https://registry.npmjs.org/send/-/send-0.18.0.tgz" @@ -12991,6 +13204,18 @@ set-blocking@^2.0.0: resolved "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz" integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== +set-function-length@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.1.tgz#47cc5945f2c771e2cf261c6737cf9684a2a5e425" + integrity sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g== + dependencies: + define-data-property "^1.1.2" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.3" + gopd "^1.0.1" + has-property-descriptors "^1.0.1" + set-harmonic-interval@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/set-harmonic-interval/-/set-harmonic-interval-1.0.1.tgz#e1773705539cdfb80ce1c3d99e7f298bb3995249" @@ -13177,6 +13402,11 @@ sitemap@^7.1.1: arg "^5.0.0" sax "^1.2.4" +slash@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" + integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== + slash@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz" @@ -13902,6 +14132,13 @@ tiny-warning@^1.0.0, tiny-warning@^1.0.3: resolved "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz" integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA== +tmp@^0.0.33: + version "0.0.33" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" + integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== + dependencies: + os-tmpdir "~1.0.2" + to-fast-properties@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz" @@ -14926,6 +15163,11 @@ websocket-extensions@>=0.1.1: resolved "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz" integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== +whatwg-fetch@^3.4.1: + version "3.6.20" + resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz#580ce6d791facec91d37c72890995a0b48d31c70" + integrity sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg== + whatwg-url@^5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz" @@ -15144,6 +15386,11 @@ yaml@1.10.2, yaml@^1.10.0, yaml@^1.10.2, yaml@^1.7.2: resolved "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== +yaml@^2.2.2: + version "2.4.0" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.4.0.tgz#2376db1083d157f4b3a452995803dbcf43b08140" + integrity sha512-j9iR8g+/t0lArF4V6NE/QCfT+CO7iLqrXAHZbJdo+LfjqP1vR8Fg5bSiaq6Q2lOD1AUEVrEVIgABvBFYojJVYQ== + yargs-parser@^13.1.2: version "13.1.2" resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz" From b019f5cd2866403ed4c4859550bacd1ed946a8c3 Mon Sep 17 00:00:00 2001 From: Elliot Voris Date: Wed, 28 Feb 2024 11:51:51 -0600 Subject: [PATCH 078/133] modify custom RpcMethod component to handle a single rpc doc --- src/components/RpcMethod.tsx | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/components/RpcMethod.tsx b/src/components/RpcMethod.tsx index f341dc581..eb0917cf0 100644 --- a/src/components/RpcMethod.tsx +++ b/src/components/RpcMethod.tsx @@ -2,8 +2,16 @@ import Method from "@metamask/open-rpc-docs-react"; import React from "react"; const CodeBlock = require('@theme/CodeBlock').default; +const Tabs = require('@theme/Tabs').default; +const TabItem = require('@theme/TabItem').default; -export const RpcMethod = ({ method }) => { - const rpcMethod = require(`@site/static/assets/rpc-methods/${method}.json`); - return (); -}; \ No newline at end of file +export const RpcMethod = ({ method, platform }) => { + if (platform === 'soroban') { + const rpcDoc = require('@site/static/openrpc.json'); + const rpcMethod = rpcDoc.methods.filter((meth: any) => meth.name === method)[0] + return () + } else { + const rpcMethod = require(`@site/static/assets/rpc-methods/${method}.json`); + return (); + } +}; From f7407f158e6dde40de94825887683396c9545cce Mon Sep 17 00:00:00 2001 From: Elliot Voris Date: Wed, 28 Feb 2024 11:52:22 -0600 Subject: [PATCH 079/133] specify `platform=soroban` for these methods --- platforms/soroban-rpc/methods/getEvents.mdx | 2 +- platforms/soroban-rpc/methods/getHealth.mdx | 2 +- platforms/soroban-rpc/methods/getLatestLedger.mdx | 2 +- platforms/soroban-rpc/methods/getLedgerEntries.mdx | 2 +- platforms/soroban-rpc/methods/getNetwork.mdx | 2 +- platforms/soroban-rpc/methods/getTransaction.mdx | 2 +- platforms/soroban-rpc/methods/sendTransaction.mdx | 2 +- platforms/soroban-rpc/methods/simulateTransaction.mdx | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/platforms/soroban-rpc/methods/getEvents.mdx b/platforms/soroban-rpc/methods/getEvents.mdx index e46cee2bc..1f733000f 100644 --- a/platforms/soroban-rpc/methods/getEvents.mdx +++ b/platforms/soroban-rpc/methods/getEvents.mdx @@ -5,4 +5,4 @@ description: Returns contract events import { RpcMethod } from "@site/src/components/RpcMethod"; - + diff --git a/platforms/soroban-rpc/methods/getHealth.mdx b/platforms/soroban-rpc/methods/getHealth.mdx index 980418e9c..464c40a46 100644 --- a/platforms/soroban-rpc/methods/getHealth.mdx +++ b/platforms/soroban-rpc/methods/getHealth.mdx @@ -5,4 +5,4 @@ description: Returns node health import { RpcMethod } from "@site/src/components/RpcMethod"; - + diff --git a/platforms/soroban-rpc/methods/getLatestLedger.mdx b/platforms/soroban-rpc/methods/getLatestLedger.mdx index 6cc788c75..bd78b3ea1 100644 --- a/platforms/soroban-rpc/methods/getLatestLedger.mdx +++ b/platforms/soroban-rpc/methods/getLatestLedger.mdx @@ -5,4 +5,4 @@ description: Returns latest known ledger import { RpcMethod } from "@site/src/components/RpcMethod"; - + diff --git a/platforms/soroban-rpc/methods/getLedgerEntries.mdx b/platforms/soroban-rpc/methods/getLedgerEntries.mdx index 2d5ae1e4e..9e00a6415 100644 --- a/platforms/soroban-rpc/methods/getLedgerEntries.mdx +++ b/platforms/soroban-rpc/methods/getLedgerEntries.mdx @@ -5,7 +5,7 @@ description: Returns ledger entries import { RpcMethod } from "@site/src/components/RpcMethod"; - + ### Generating `keys` Parameters diff --git a/platforms/soroban-rpc/methods/getNetwork.mdx b/platforms/soroban-rpc/methods/getNetwork.mdx index 1d986434f..c912b5047 100644 --- a/platforms/soroban-rpc/methods/getNetwork.mdx +++ b/platforms/soroban-rpc/methods/getNetwork.mdx @@ -5,4 +5,4 @@ description: Returns network config import { RpcMethod } from "@site/src/components/RpcMethod"; - + diff --git a/platforms/soroban-rpc/methods/getTransaction.mdx b/platforms/soroban-rpc/methods/getTransaction.mdx index d3ccda697..8ab2b45c8 100644 --- a/platforms/soroban-rpc/methods/getTransaction.mdx +++ b/platforms/soroban-rpc/methods/getTransaction.mdx @@ -5,4 +5,4 @@ description: Returns transaction details import { RpcMethod } from "@site/src/components/RpcMethod"; - + diff --git a/platforms/soroban-rpc/methods/sendTransaction.mdx b/platforms/soroban-rpc/methods/sendTransaction.mdx index 72549de23..52440c7e4 100644 --- a/platforms/soroban-rpc/methods/sendTransaction.mdx +++ b/platforms/soroban-rpc/methods/sendTransaction.mdx @@ -5,4 +5,4 @@ description: Submits a transaction import { RpcMethod } from "@site/src/components/RpcMethod"; - + diff --git a/platforms/soroban-rpc/methods/simulateTransaction.mdx b/platforms/soroban-rpc/methods/simulateTransaction.mdx index ba486f185..bd5ab5736 100644 --- a/platforms/soroban-rpc/methods/simulateTransaction.mdx +++ b/platforms/soroban-rpc/methods/simulateTransaction.mdx @@ -5,4 +5,4 @@ description: Submits a trial contract invocation transaction import { RpcMethod } from "@site/src/components/RpcMethod"; - + From eca8e27482e7eb7a90ab99fc1b8eb1f81fae9c97 Mon Sep 17 00:00:00 2001 From: Elliot Voris Date: Wed, 28 Feb 2024 11:52:45 -0600 Subject: [PATCH 080/133] add soroban-rpc to Platforms dropdown menu --- docusaurus.config.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docusaurus.config.js b/docusaurus.config.js index 972ab6457..87be13047 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -174,6 +174,10 @@ const config = { to: "/platforms/horizon", label: "Horizon", }, + { + to: "/platforms/soroban-rpc", + label: "Soroban RPC", + }, { type: 'html', value: 'SDF Platforms', From 94a43f96929fc8383975eb66c03051780f9148b3 Mon Sep 17 00:00:00 2001 From: Elliot Voris Date: Wed, 28 Feb 2024 11:59:58 -0600 Subject: [PATCH 081/133] remove sdp from the docs sidebar, since it is now in platforms --- sidebars.js | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/sidebars.js b/sidebars.js index 3003c8c28..273175207 100644 --- a/sidebars.js +++ b/sidebars.js @@ -96,19 +96,6 @@ const sidebars = { dirName: 'accessing-data', }] }, - { - type: 'category', - label: 'Use the Stellar Disbursement Platform', - link: { - type: 'generated-index', - title: 'Use the Stellar Disbursement Platform', - slug: '/category/use-the-stellar-disbursement-platform', - }, - items: [{ - type: 'autogenerated', - dirName: 'stellar-disbursement-platform', - }] - }, { type: 'category', label: 'Encyclopedia', From 226aa4edd408035ac4050fc5872049d6ee151204 Mon Sep 17 00:00:00 2001 From: Elliot Voris Date: Wed, 28 Feb 2024 12:15:43 -0600 Subject: [PATCH 082/133] custom css for metmask openrpc package --- src/css/custom.scss | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/css/custom.scss b/src/css/custom.scss index 968ac700b..78f380ae8 100644 --- a/src/css/custom.scss +++ b/src/css/custom.scss @@ -138,3 +138,13 @@ div[class^='announcementBar_'] { text-transform: uppercase; font-size: 0.875rem; } + +/* Customizations to metamask openrpc package styles */ + +select[data-testid="example-pairing-select"] { + padding: 0.75rem; + width: 100%; + margin-bottom: 1rem; + font-size: var(--ifm-font-size-base); + border-radius: 5px; +} From d8977a965df8a630ef031f79e28248d44544380d Mon Sep 17 00:00:00 2001 From: Elliot Voris Date: Wed, 28 Feb 2024 12:17:06 -0600 Subject: [PATCH 083/133] fix a broken link --- platforms/soroban-rpc/methods/getLedgerEntries.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platforms/soroban-rpc/methods/getLedgerEntries.mdx b/platforms/soroban-rpc/methods/getLedgerEntries.mdx index 9e00a6415..c0205953b 100644 --- a/platforms/soroban-rpc/methods/getLedgerEntries.mdx +++ b/platforms/soroban-rpc/methods/getLedgerEntries.mdx @@ -332,5 +332,5 @@ And the response we get contains (even more) `LedgerEntryData` that we can decod } ``` -[`increment` example contract]: /docs/getting-started/storing-data +[`increment` example contract]: https://soroban.stellar.org/docs/getting-started/storing-data ["View XDR" page of the Stellar Laboratory]: https://laboratory.stellar.org/#xdr-viewer?type=LedgerEntryData&network=testnet From f8b613b39761a41fd249f3e361f691cbd28d6184 Mon Sep 17 00:00:00 2001 From: Elliot Voris Date: Wed, 28 Feb 2024 12:39:58 -0600 Subject: [PATCH 084/133] update URLs in openrpc specfile --- .gitignore | 5 ++++- .../src/contentDescriptors/Pagination.json | 2 +- openrpc/src/methods/getEvents.json | 2 +- openrpc/src/methods/getHealth.json | 2 +- openrpc/src/methods/getLatestLedger.json | 2 +- openrpc/src/methods/getLedgerEntries.json | 2 +- openrpc/src/methods/getNetwork.json | 2 +- openrpc/src/methods/getTransaction.json | 2 +- openrpc/src/methods/sendTransaction.json | 2 +- openrpc/src/methods/simulateTransaction.json | 2 +- openrpc/src/schemas/Pagination.json | 2 +- static/openrpc.json | 20 +++++++++---------- 12 files changed, 24 insertions(+), 21 deletions(-) diff --git a/.gitignore b/.gitignore index 5ed1a54a4..7cf5e24ee 100644 --- a/.gitignore +++ b/.gitignore @@ -21,4 +21,7 @@ yarn-error.log* .idea -*.info.mdx \ No newline at end of file +*.info.mdx + +# non-production openrpc.json files +/openrpc/*openrpc.json diff --git a/openrpc/src/contentDescriptors/Pagination.json b/openrpc/src/contentDescriptors/Pagination.json index 963267d1b..6537ffbde 100644 --- a/openrpc/src/contentDescriptors/Pagination.json +++ b/openrpc/src/contentDescriptors/Pagination.json @@ -2,7 +2,7 @@ "Pagination": { "name": "pagination", "summary": "pagination options", - "description": "Pagination in soroban-rpc is similar to pagination in Horizon. See [Pagination](https://soroban.stellar.org/api/pagination).", + "description": "Pagination in soroban-rpc is similar to pagination in Horizon. See [Pagination](https://developers.stellar.org/platforms/soroban-rpc/pagination).", "required": false, "schema": { "$ref": "#/components/schemas/Pagination" diff --git a/openrpc/src/methods/getEvents.json b/openrpc/src/methods/getEvents.json index 558b1d847..77d971345 100644 --- a/openrpc/src/methods/getEvents.json +++ b/openrpc/src/methods/getEvents.json @@ -3,7 +3,7 @@ "summary": "returns contract events", "description": "Clients can request a filtered list of events emitted by a given ledger range.\n\nSoroban-RPC will support querying within a maximum 24 hours of recent ledgers.\n\nNote, this could be used by the client to only prompt a refresh when there is a new ledger with relevant events. It should also be used by backend Dapp components to \"ingest\" events into their own database for querying and serving.\n\nIf making multiple requests, clients should deduplicate any events received, based on the event's unique id field. This prevents double-processing in the case of duplicate events being received.\n\nBy default soroban-rpc retains the most recent 24 hours of events.", "externalDocs": { - "url": "https://soroban.stellar.org/api/methods/getEvents" + "url": "https://developers.stellar.org/platforms/soroban-rpc/methods/getEvents" }, "paramStructure": "by-name", "params": [ diff --git a/openrpc/src/methods/getHealth.json b/openrpc/src/methods/getHealth.json index a83c063b9..d0ec325fd 100644 --- a/openrpc/src/methods/getHealth.json +++ b/openrpc/src/methods/getHealth.json @@ -3,7 +3,7 @@ "summary": "returns node health", "description": "General node health check.", "externalDocs": { - "url": "https://soroban.stellar.org/api/methods/getHealth" + "url": "https://developers.stellar.org/platforms/soroban-rpc/methods/getHealth" }, "paramStructure": "by-name", "params": [], diff --git a/openrpc/src/methods/getLatestLedger.json b/openrpc/src/methods/getLatestLedger.json index 6c19e5f9f..7c1abf68a 100644 --- a/openrpc/src/methods/getLatestLedger.json +++ b/openrpc/src/methods/getLatestLedger.json @@ -3,7 +3,7 @@ "summary": "returns latest known ledger", "description": "For finding out the current latest known ledger of this node. This is a subset of the ledger info from Horizon.", "externalDocs": { - "url": "https://soroban.stellar.org/api/methods/getLatestLedger" + "url": "https://developers.stellar.org/platforms/soroban-rpc/methods/getLatestLedger" }, "paramStructure": "by-name", "params": [], diff --git a/openrpc/src/methods/getLedgerEntries.json b/openrpc/src/methods/getLedgerEntries.json index e4741c1b7..74730a86b 100644 --- a/openrpc/src/methods/getLedgerEntries.json +++ b/openrpc/src/methods/getLedgerEntries.json @@ -3,7 +3,7 @@ "summary": "returns ledger entries", "description": "For reading the current value of ledger entries directly.\n\nAllows you to directly inspect the current state of a contract, a contract's code, or any other ledger entry. This is a backup way to access your contract data which may not be available via events or `simulateTransaction`.\n\nTo fetch contract wasm byte-code, use the ContractCode ledger entry key.", "externalDocs": { - "url": "https://soroban.stellar.org/api/methods/getLedgerEntries" + "url": "https://developers.stellar.org/platforms/soroban-rpc/methods/getLedgerEntries" }, "paramStructure": "by-name", "params": [ diff --git a/openrpc/src/methods/getNetwork.json b/openrpc/src/methods/getNetwork.json index e8e58d2ad..d54b69bd3 100644 --- a/openrpc/src/methods/getNetwork.json +++ b/openrpc/src/methods/getNetwork.json @@ -3,7 +3,7 @@ "summary": "returns network config", "description": "General information about the currently configured network. This response will contain all the information needed to successfully submit transactions to the network this node serves.", "externalDocs": { - "url": "https://soroban.stellar.org/api/methods/getNetwork" + "url": "https://developers.stellar.org/platforms/soroban-rpc/methods/getNetwork" }, "paramStructure": "by-name", "params": [], diff --git a/openrpc/src/methods/getTransaction.json b/openrpc/src/methods/getTransaction.json index db5150fad..3a60f6bb8 100644 --- a/openrpc/src/methods/getTransaction.json +++ b/openrpc/src/methods/getTransaction.json @@ -3,7 +3,7 @@ "summary": "returns transaction details", "description": "The getTransaction method provides details about the specified transaction. Clients are expected to periodically query this method to ascertain when a transaction has been successfully recorded on the blockchain. The soroban-rpc system maintains a restricted history of recently processed transactions, with the default retention window set at 1440 ledgers, approximately equivalent to a 2-hour timeframe. For private soroban-rpc instances, it is possible to modify the retention window value by adjusting the transaction-retention-window configuration setting. For comprehensive debugging needs that extend beyond the 2-hour timeframe, it is advisable to retrieve transaction information from Horizon, as it provides a lasting and persistent record.", "externalDocs": { - "url": "https://soroban.stellar.org/api/methods/getTransaction" + "url": "https://developers.stellar.org/platforms/soroban-rpc/methods/getTransaction" }, "paramStructure": "by-name", "params": [ diff --git a/openrpc/src/methods/sendTransaction.json b/openrpc/src/methods/sendTransaction.json index 7239d2b2a..10056d0fd 100644 --- a/openrpc/src/methods/sendTransaction.json +++ b/openrpc/src/methods/sendTransaction.json @@ -3,7 +3,7 @@ "summary": "submits a transaction", "description": "Submit a real transaction to the Stellar network. This is the only way to make changes on-chain.\n\n Unlike Horizon, this does not wait for transaction completion. It simply validates and enqueues the transaction. Clients should call `getTransaction` to learn about transaction success/failure.\n\nThis supports all transactions, not only smart contract-related transactions.", "externalDocs": { - "url": "https://soroban.stellar.org/api/methods/sendTransaction" + "url": "https://developers.stellar.org/platforms/soroban-rpc/methods/sendTransaction" }, "paramStructure": "by-name", "params": [ diff --git a/openrpc/src/methods/simulateTransaction.json b/openrpc/src/methods/simulateTransaction.json index cdf2bbc68..c29839caf 100644 --- a/openrpc/src/methods/simulateTransaction.json +++ b/openrpc/src/methods/simulateTransaction.json @@ -3,7 +3,7 @@ "summary": "submits a trial contract invocation transaction", "description": "Submit a trial contract invocation to simulate how it would be executed by the network. This endpoint calculates the effective transaction data, required authorizations, and minimal resource fee. It provides a way to test and analyze the potential outcomes of a transaction without actually submitting it to the network.", "externalDocs": { - "url": "https://soroban.stellar.org/api/methods/simulateTransaction" + "url": "https://developers.stellar.org/platforms/soroban-rpc/methods/simulateTransaction" }, "paramStructure": "by-name", "params": [ diff --git a/openrpc/src/schemas/Pagination.json b/openrpc/src/schemas/Pagination.json index 0ccf4843a..bfbcf8291 100644 --- a/openrpc/src/schemas/Pagination.json +++ b/openrpc/src/schemas/Pagination.json @@ -8,7 +8,7 @@ }, "limit": { "type": "number", - "description": "The maximum number of records returned. The limit for [getEvents](https://soroban.stellar.org/api/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](https://developers.stellar.org/platforms/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." } }, "required": [] diff --git a/static/openrpc.json b/static/openrpc.json index 64f863895..f81a024b9 100644 --- a/static/openrpc.json +++ b/static/openrpc.json @@ -35,7 +35,7 @@ "summary": "returns contract events", "description": "Clients can request a filtered list of events emitted by a given ledger range.\n\nSoroban-RPC will support querying within a maximum 24 hours of recent ledgers.\n\nNote, this could be used by the client to only prompt a refresh when there is a new ledger with relevant events. It should also be used by backend Dapp components to \"ingest\" events into their own database for querying and serving.\n\nIf making multiple requests, clients should deduplicate any events received, based on the event's unique id field. This prevents double-processing in the case of duplicate events being received.\n\nBy default soroban-rpc retains the most recent 24 hours of events.", "externalDocs": { - "url": "https://soroban.stellar.org/api/methods/getEvents" + "url": "https://developers.stellar.org/platforms/soroban-rpc/methods/getEvents" }, "paramStructure": "by-name", "params": [ @@ -101,7 +101,7 @@ { "name": "pagination", "summary": "pagination options", - "description": "Pagination in soroban-rpc is similar to pagination in Horizon. See [Pagination](https://soroban.stellar.org/api/pagination).", + "description": "Pagination in soroban-rpc is similar to pagination in Horizon. See [Pagination](https://developers.stellar.org/platforms/soroban-rpc/pagination).", "required": false, "schema": { "type": "object", @@ -113,7 +113,7 @@ }, "limit": { "type": "number", - "description": "The maximum number of records returned. The limit for [getEvents](https://soroban.stellar.org/api/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](https://developers.stellar.org/platforms/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." } } } @@ -341,7 +341,7 @@ "summary": "returns node health", "description": "General node health check.", "externalDocs": { - "url": "https://soroban.stellar.org/api/methods/getHealth" + "url": "https://developers.stellar.org/platforms/soroban-rpc/methods/getHealth" }, "paramStructure": "by-name", "params": [], @@ -376,7 +376,7 @@ "summary": "returns latest known ledger", "description": "For finding out the current latest known ledger of this node. This is a subset of the ledger info from Horizon.", "externalDocs": { - "url": "https://soroban.stellar.org/api/methods/getLatestLedger" + "url": "https://developers.stellar.org/platforms/soroban-rpc/methods/getLatestLedger" }, "paramStructure": "by-name", "params": [], @@ -427,7 +427,7 @@ "summary": "returns ledger entries", "description": "For reading the current value of ledger entries directly.\n\nAllows you to directly inspect the current state of a contract, a contract's code, or any other ledger entry. This is a backup way to access your contract data which may not be available via events or `simulateTransaction`.\n\nTo fetch contract wasm byte-code, use the ContractCode ledger entry key.", "externalDocs": { - "url": "https://soroban.stellar.org/api/methods/getLedgerEntries" + "url": "https://developers.stellar.org/platforms/soroban-rpc/methods/getLedgerEntries" }, "paramStructure": "by-name", "params": [ @@ -585,7 +585,7 @@ "summary": "returns network config", "description": "General information about the currently configured network. This response will contain all the information needed to successfully submit transactions to the network this node serves.", "externalDocs": { - "url": "https://soroban.stellar.org/api/methods/getNetwork" + "url": "https://developers.stellar.org/platforms/soroban-rpc/methods/getNetwork" }, "paramStructure": "by-name", "params": [], @@ -649,7 +649,7 @@ "summary": "returns transaction details", "description": "The getTransaction method provides details about the specified transaction. Clients are expected to periodically query this method to ascertain when a transaction has been successfully recorded on the blockchain. The soroban-rpc system maintains a restricted history of recently processed transactions, with the default retention window set at 1440 ledgers, approximately equivalent to a 2-hour timeframe. For private soroban-rpc instances, it is possible to modify the retention window value by adjusting the transaction-retention-window configuration setting. For comprehensive debugging needs that extend beyond the 2-hour timeframe, it is advisable to retrieve transaction information from Horizon, as it provides a lasting and persistent record.", "externalDocs": { - "url": "https://soroban.stellar.org/api/methods/getTransaction" + "url": "https://developers.stellar.org/platforms/soroban-rpc/methods/getTransaction" }, "paramStructure": "by-name", "params": [ @@ -828,7 +828,7 @@ "summary": "submits a transaction", "description": "Submit a real transaction to the Stellar network. This is the only way to make changes on-chain.\n\n Unlike Horizon, this does not wait for transaction completion. It simply validates and enqueues the transaction. Clients should call `getTransaction` to learn about transaction success/failure.\n\nThis supports all transactions, not only smart contract-related transactions.", "externalDocs": { - "url": "https://soroban.stellar.org/api/methods/sendTransaction" + "url": "https://developers.stellar.org/platforms/soroban-rpc/methods/sendTransaction" }, "paramStructure": "by-name", "params": [ @@ -994,7 +994,7 @@ "summary": "submits a trial contract invocation transaction", "description": "Submit a trial contract invocation to simulate how it would be executed by the network. This endpoint calculates the effective transaction data, required authorizations, and minimal resource fee. It provides a way to test and analyze the potential outcomes of a transaction without actually submitting it to the network.", "externalDocs": { - "url": "https://soroban.stellar.org/api/methods/simulateTransaction" + "url": "https://developers.stellar.org/platforms/soroban-rpc/methods/simulateTransaction" }, "paramStructure": "by-name", "params": [ From eb65636bcea0b62162ba6c2d111ccd9ab1d86a15 Mon Sep 17 00:00:00 2001 From: Elliot Voris Date: Wed, 28 Feb 2024 13:33:17 -0600 Subject: [PATCH 085/133] rename admin guide directories --- .../{run-anchor-platform => admin-guide}/_category_.json | 0 .../{run-anchor-platform => admin-guide}/architecture.mdx | 0 .../component/observer/observer.mdx | 0 .../{run-anchor-platform => admin-guide}/component/rpc/error.mdx | 0 .../component/rpc/request.mdx | 0 .../component/rpc/response.mdx | 0 .../{run-anchor-platform => admin-guide}/component/rpc/rpc.mdx | 0 .../component/security/api_key.mdx | 0 .../component/security/jwt.mdx | 0 .../component/security/security.mdx | 0 .../custody-services/_category_.json | 0 .../custody-services/configuration.mdx | 0 .../custody-services/fireblocks/_category_.json | 0 .../custody-services/fireblocks/configuration.mdx | 0 .../custody-services/fireblocks/example.mdx | 0 .../{run-anchor-platform => admin-guide}/getting_started.mdx | 0 .../{run-anchor-platform => admin-guide}/index.mdx | 0 .../{run-anchor-platform => admin-guide}/sep1/_category_.json | 0 .../{run-anchor-platform => admin-guide}/sep1/configuration.mdx | 0 .../{run-anchor-platform => admin-guide}/sep10/_category_.json | 0 .../{run-anchor-platform => admin-guide}/sep10/configuration.mdx | 0 .../{run-anchor-platform => admin-guide}/sep24/_category_.json | 0 .../{run-anchor-platform => admin-guide}/sep24/configuration.mdx | 0 .../{run-anchor-platform => admin-guide}/sep24/example.mdx | 0 .../{run-anchor-platform => admin-guide}/sep24/faq.mdx | 0 .../{run-anchor-platform => admin-guide}/sep24/index.mdx | 0 .../{run-anchor-platform => admin-guide}/sep24/integration.mdx | 0 .../sep24/setting-up-production-server.mdx | 0 .../{run-anchor-platform => admin-guide}/sep31/_category_.json | 0 .../{run-anchor-platform => admin-guide}/sep31/configuration.mdx | 0 .../{run-anchor-platform => admin-guide}/sep31/index.mdx | 0 .../{run-anchor-platform => admin-guide}/sep31/integration.mdx | 0 .../{run-anchor-platform => admin-guide}/sep6/_category_.json | 0 .../{run-anchor-platform => admin-guide}/sep6/configuration.mdx | 0 .../{run-anchor-platform => admin-guide}/sep6/index.mdx | 0 .../{run-anchor-platform => admin-guide}/sep6/integration.mdx | 0 .../horizon/{run-platform-server => admin-guide}/_category_.json | 0 .../horizon/{run-platform-server => admin-guide}/configuring.mdx | 0 platforms/horizon/{run-platform-server => admin-guide}/index.mdx | 0 .../{run-platform-server => admin-guide}/ingestion-filtering.mdx | 0 .../horizon/{run-platform-server => admin-guide}/ingestion.mdx | 0 .../horizon/{run-platform-server => admin-guide}/installing.mdx | 0 .../horizon/{run-platform-server => admin-guide}/monitoring.mdx | 0 .../{run-platform-server => admin-guide}/prerequisites.mdx | 0 .../horizon/{run-platform-server => admin-guide}/running.mdx | 0 .../horizon/{run-platform-server => admin-guide}/scaling.mdx | 0 .../horizon/{run-platform-server => admin-guide}/upgrading.mdx | 0 .../_category_.json | 0 .../anchor-platform-integration-points.mdx | 0 .../deploy-the-sdp.mdx | 0 .../design-and-architecture.mdx | 0 .../getting-started.mdx | 0 .../making-your-wallet-sdp-ready.mdx | 0 .../overview.mdx | 0 .../secure-operation-manual.mdx | 0 .../user-interface/_category_.json | 0 .../user-interface/analytics.mdx | 0 .../user-interface/dashboard-home.mdx | 0 .../user-interface/disbursements.mdx | 0 .../user-interface/payments.mdx | 0 .../user-interface/receivers.mdx | 0 .../user-interface/wallets.mdx | 0 62 files changed, 0 insertions(+), 0 deletions(-) rename platforms/anchor-platform/{run-anchor-platform => admin-guide}/_category_.json (100%) rename platforms/anchor-platform/{run-anchor-platform => admin-guide}/architecture.mdx (100%) rename platforms/anchor-platform/{run-anchor-platform => admin-guide}/component/observer/observer.mdx (100%) rename platforms/anchor-platform/{run-anchor-platform => admin-guide}/component/rpc/error.mdx (100%) rename platforms/anchor-platform/{run-anchor-platform => admin-guide}/component/rpc/request.mdx (100%) rename platforms/anchor-platform/{run-anchor-platform => admin-guide}/component/rpc/response.mdx (100%) rename platforms/anchor-platform/{run-anchor-platform => admin-guide}/component/rpc/rpc.mdx (100%) rename platforms/anchor-platform/{run-anchor-platform => admin-guide}/component/security/api_key.mdx (100%) rename platforms/anchor-platform/{run-anchor-platform => admin-guide}/component/security/jwt.mdx (100%) rename platforms/anchor-platform/{run-anchor-platform => admin-guide}/component/security/security.mdx (100%) rename platforms/anchor-platform/{run-anchor-platform => admin-guide}/custody-services/_category_.json (100%) rename platforms/anchor-platform/{run-anchor-platform => admin-guide}/custody-services/configuration.mdx (100%) rename platforms/anchor-platform/{run-anchor-platform => admin-guide}/custody-services/fireblocks/_category_.json (100%) rename platforms/anchor-platform/{run-anchor-platform => admin-guide}/custody-services/fireblocks/configuration.mdx (100%) rename platforms/anchor-platform/{run-anchor-platform => admin-guide}/custody-services/fireblocks/example.mdx (100%) rename platforms/anchor-platform/{run-anchor-platform => admin-guide}/getting_started.mdx (100%) rename platforms/anchor-platform/{run-anchor-platform => admin-guide}/index.mdx (100%) rename platforms/anchor-platform/{run-anchor-platform => admin-guide}/sep1/_category_.json (100%) rename platforms/anchor-platform/{run-anchor-platform => admin-guide}/sep1/configuration.mdx (100%) rename platforms/anchor-platform/{run-anchor-platform => admin-guide}/sep10/_category_.json (100%) rename platforms/anchor-platform/{run-anchor-platform => admin-guide}/sep10/configuration.mdx (100%) rename platforms/anchor-platform/{run-anchor-platform => admin-guide}/sep24/_category_.json (100%) rename platforms/anchor-platform/{run-anchor-platform => admin-guide}/sep24/configuration.mdx (100%) rename platforms/anchor-platform/{run-anchor-platform => admin-guide}/sep24/example.mdx (100%) rename platforms/anchor-platform/{run-anchor-platform => admin-guide}/sep24/faq.mdx (100%) rename platforms/anchor-platform/{run-anchor-platform => admin-guide}/sep24/index.mdx (100%) rename platforms/anchor-platform/{run-anchor-platform => admin-guide}/sep24/integration.mdx (100%) rename platforms/anchor-platform/{run-anchor-platform => admin-guide}/sep24/setting-up-production-server.mdx (100%) rename platforms/anchor-platform/{run-anchor-platform => admin-guide}/sep31/_category_.json (100%) rename platforms/anchor-platform/{run-anchor-platform => admin-guide}/sep31/configuration.mdx (100%) rename platforms/anchor-platform/{run-anchor-platform => admin-guide}/sep31/index.mdx (100%) rename platforms/anchor-platform/{run-anchor-platform => admin-guide}/sep31/integration.mdx (100%) rename platforms/anchor-platform/{run-anchor-platform => admin-guide}/sep6/_category_.json (100%) rename platforms/anchor-platform/{run-anchor-platform => admin-guide}/sep6/configuration.mdx (100%) rename platforms/anchor-platform/{run-anchor-platform => admin-guide}/sep6/index.mdx (100%) rename platforms/anchor-platform/{run-anchor-platform => admin-guide}/sep6/integration.mdx (100%) rename platforms/horizon/{run-platform-server => admin-guide}/_category_.json (100%) rename platforms/horizon/{run-platform-server => admin-guide}/configuring.mdx (100%) rename platforms/horizon/{run-platform-server => admin-guide}/index.mdx (100%) rename platforms/horizon/{run-platform-server => admin-guide}/ingestion-filtering.mdx (100%) rename platforms/horizon/{run-platform-server => admin-guide}/ingestion.mdx (100%) rename platforms/horizon/{run-platform-server => admin-guide}/installing.mdx (100%) rename platforms/horizon/{run-platform-server => admin-guide}/monitoring.mdx (100%) rename platforms/horizon/{run-platform-server => admin-guide}/prerequisites.mdx (100%) rename platforms/horizon/{run-platform-server => admin-guide}/running.mdx (100%) rename platforms/horizon/{run-platform-server => admin-guide}/scaling.mdx (100%) rename platforms/horizon/{run-platform-server => admin-guide}/upgrading.mdx (100%) rename platforms/stellar-disbursement-platform/{run-stellar-disbursement-platform => admin-guide}/_category_.json (100%) rename platforms/stellar-disbursement-platform/{run-stellar-disbursement-platform => admin-guide}/anchor-platform-integration-points.mdx (100%) rename platforms/stellar-disbursement-platform/{run-stellar-disbursement-platform => admin-guide}/deploy-the-sdp.mdx (100%) rename platforms/stellar-disbursement-platform/{run-stellar-disbursement-platform => admin-guide}/design-and-architecture.mdx (100%) rename platforms/stellar-disbursement-platform/{run-stellar-disbursement-platform => admin-guide}/getting-started.mdx (100%) rename platforms/stellar-disbursement-platform/{run-stellar-disbursement-platform => admin-guide}/making-your-wallet-sdp-ready.mdx (100%) rename platforms/stellar-disbursement-platform/{run-stellar-disbursement-platform => admin-guide}/overview.mdx (100%) rename platforms/stellar-disbursement-platform/{run-stellar-disbursement-platform => admin-guide}/secure-operation-manual.mdx (100%) rename platforms/stellar-disbursement-platform/{run-stellar-disbursement-platform => admin-guide}/user-interface/_category_.json (100%) rename platforms/stellar-disbursement-platform/{run-stellar-disbursement-platform => admin-guide}/user-interface/analytics.mdx (100%) rename platforms/stellar-disbursement-platform/{run-stellar-disbursement-platform => admin-guide}/user-interface/dashboard-home.mdx (100%) rename platforms/stellar-disbursement-platform/{run-stellar-disbursement-platform => admin-guide}/user-interface/disbursements.mdx (100%) rename platforms/stellar-disbursement-platform/{run-stellar-disbursement-platform => admin-guide}/user-interface/payments.mdx (100%) rename platforms/stellar-disbursement-platform/{run-stellar-disbursement-platform => admin-guide}/user-interface/receivers.mdx (100%) rename platforms/stellar-disbursement-platform/{run-stellar-disbursement-platform => admin-guide}/user-interface/wallets.mdx (100%) diff --git a/platforms/anchor-platform/run-anchor-platform/_category_.json b/platforms/anchor-platform/admin-guide/_category_.json similarity index 100% rename from platforms/anchor-platform/run-anchor-platform/_category_.json rename to platforms/anchor-platform/admin-guide/_category_.json diff --git a/platforms/anchor-platform/run-anchor-platform/architecture.mdx b/platforms/anchor-platform/admin-guide/architecture.mdx similarity index 100% rename from platforms/anchor-platform/run-anchor-platform/architecture.mdx rename to platforms/anchor-platform/admin-guide/architecture.mdx diff --git a/platforms/anchor-platform/run-anchor-platform/component/observer/observer.mdx b/platforms/anchor-platform/admin-guide/component/observer/observer.mdx similarity index 100% rename from platforms/anchor-platform/run-anchor-platform/component/observer/observer.mdx rename to platforms/anchor-platform/admin-guide/component/observer/observer.mdx diff --git a/platforms/anchor-platform/run-anchor-platform/component/rpc/error.mdx b/platforms/anchor-platform/admin-guide/component/rpc/error.mdx similarity index 100% rename from platforms/anchor-platform/run-anchor-platform/component/rpc/error.mdx rename to platforms/anchor-platform/admin-guide/component/rpc/error.mdx diff --git a/platforms/anchor-platform/run-anchor-platform/component/rpc/request.mdx b/platforms/anchor-platform/admin-guide/component/rpc/request.mdx similarity index 100% rename from platforms/anchor-platform/run-anchor-platform/component/rpc/request.mdx rename to platforms/anchor-platform/admin-guide/component/rpc/request.mdx diff --git a/platforms/anchor-platform/run-anchor-platform/component/rpc/response.mdx b/platforms/anchor-platform/admin-guide/component/rpc/response.mdx similarity index 100% rename from platforms/anchor-platform/run-anchor-platform/component/rpc/response.mdx rename to platforms/anchor-platform/admin-guide/component/rpc/response.mdx diff --git a/platforms/anchor-platform/run-anchor-platform/component/rpc/rpc.mdx b/platforms/anchor-platform/admin-guide/component/rpc/rpc.mdx similarity index 100% rename from platforms/anchor-platform/run-anchor-platform/component/rpc/rpc.mdx rename to platforms/anchor-platform/admin-guide/component/rpc/rpc.mdx diff --git a/platforms/anchor-platform/run-anchor-platform/component/security/api_key.mdx b/platforms/anchor-platform/admin-guide/component/security/api_key.mdx similarity index 100% rename from platforms/anchor-platform/run-anchor-platform/component/security/api_key.mdx rename to platforms/anchor-platform/admin-guide/component/security/api_key.mdx diff --git a/platforms/anchor-platform/run-anchor-platform/component/security/jwt.mdx b/platforms/anchor-platform/admin-guide/component/security/jwt.mdx similarity index 100% rename from platforms/anchor-platform/run-anchor-platform/component/security/jwt.mdx rename to platforms/anchor-platform/admin-guide/component/security/jwt.mdx diff --git a/platforms/anchor-platform/run-anchor-platform/component/security/security.mdx b/platforms/anchor-platform/admin-guide/component/security/security.mdx similarity index 100% rename from platforms/anchor-platform/run-anchor-platform/component/security/security.mdx rename to platforms/anchor-platform/admin-guide/component/security/security.mdx diff --git a/platforms/anchor-platform/run-anchor-platform/custody-services/_category_.json b/platforms/anchor-platform/admin-guide/custody-services/_category_.json similarity index 100% rename from platforms/anchor-platform/run-anchor-platform/custody-services/_category_.json rename to platforms/anchor-platform/admin-guide/custody-services/_category_.json diff --git a/platforms/anchor-platform/run-anchor-platform/custody-services/configuration.mdx b/platforms/anchor-platform/admin-guide/custody-services/configuration.mdx similarity index 100% rename from platforms/anchor-platform/run-anchor-platform/custody-services/configuration.mdx rename to platforms/anchor-platform/admin-guide/custody-services/configuration.mdx diff --git a/platforms/anchor-platform/run-anchor-platform/custody-services/fireblocks/_category_.json b/platforms/anchor-platform/admin-guide/custody-services/fireblocks/_category_.json similarity index 100% rename from platforms/anchor-platform/run-anchor-platform/custody-services/fireblocks/_category_.json rename to platforms/anchor-platform/admin-guide/custody-services/fireblocks/_category_.json diff --git a/platforms/anchor-platform/run-anchor-platform/custody-services/fireblocks/configuration.mdx b/platforms/anchor-platform/admin-guide/custody-services/fireblocks/configuration.mdx similarity index 100% rename from platforms/anchor-platform/run-anchor-platform/custody-services/fireblocks/configuration.mdx rename to platforms/anchor-platform/admin-guide/custody-services/fireblocks/configuration.mdx diff --git a/platforms/anchor-platform/run-anchor-platform/custody-services/fireblocks/example.mdx b/platforms/anchor-platform/admin-guide/custody-services/fireblocks/example.mdx similarity index 100% rename from platforms/anchor-platform/run-anchor-platform/custody-services/fireblocks/example.mdx rename to platforms/anchor-platform/admin-guide/custody-services/fireblocks/example.mdx diff --git a/platforms/anchor-platform/run-anchor-platform/getting_started.mdx b/platforms/anchor-platform/admin-guide/getting_started.mdx similarity index 100% rename from platforms/anchor-platform/run-anchor-platform/getting_started.mdx rename to platforms/anchor-platform/admin-guide/getting_started.mdx diff --git a/platforms/anchor-platform/run-anchor-platform/index.mdx b/platforms/anchor-platform/admin-guide/index.mdx similarity index 100% rename from platforms/anchor-platform/run-anchor-platform/index.mdx rename to platforms/anchor-platform/admin-guide/index.mdx diff --git a/platforms/anchor-platform/run-anchor-platform/sep1/_category_.json b/platforms/anchor-platform/admin-guide/sep1/_category_.json similarity index 100% rename from platforms/anchor-platform/run-anchor-platform/sep1/_category_.json rename to platforms/anchor-platform/admin-guide/sep1/_category_.json diff --git a/platforms/anchor-platform/run-anchor-platform/sep1/configuration.mdx b/platforms/anchor-platform/admin-guide/sep1/configuration.mdx similarity index 100% rename from platforms/anchor-platform/run-anchor-platform/sep1/configuration.mdx rename to platforms/anchor-platform/admin-guide/sep1/configuration.mdx diff --git a/platforms/anchor-platform/run-anchor-platform/sep10/_category_.json b/platforms/anchor-platform/admin-guide/sep10/_category_.json similarity index 100% rename from platforms/anchor-platform/run-anchor-platform/sep10/_category_.json rename to platforms/anchor-platform/admin-guide/sep10/_category_.json diff --git a/platforms/anchor-platform/run-anchor-platform/sep10/configuration.mdx b/platforms/anchor-platform/admin-guide/sep10/configuration.mdx similarity index 100% rename from platforms/anchor-platform/run-anchor-platform/sep10/configuration.mdx rename to platforms/anchor-platform/admin-guide/sep10/configuration.mdx diff --git a/platforms/anchor-platform/run-anchor-platform/sep24/_category_.json b/platforms/anchor-platform/admin-guide/sep24/_category_.json similarity index 100% rename from platforms/anchor-platform/run-anchor-platform/sep24/_category_.json rename to platforms/anchor-platform/admin-guide/sep24/_category_.json diff --git a/platforms/anchor-platform/run-anchor-platform/sep24/configuration.mdx b/platforms/anchor-platform/admin-guide/sep24/configuration.mdx similarity index 100% rename from platforms/anchor-platform/run-anchor-platform/sep24/configuration.mdx rename to platforms/anchor-platform/admin-guide/sep24/configuration.mdx diff --git a/platforms/anchor-platform/run-anchor-platform/sep24/example.mdx b/platforms/anchor-platform/admin-guide/sep24/example.mdx similarity index 100% rename from platforms/anchor-platform/run-anchor-platform/sep24/example.mdx rename to platforms/anchor-platform/admin-guide/sep24/example.mdx diff --git a/platforms/anchor-platform/run-anchor-platform/sep24/faq.mdx b/platforms/anchor-platform/admin-guide/sep24/faq.mdx similarity index 100% rename from platforms/anchor-platform/run-anchor-platform/sep24/faq.mdx rename to platforms/anchor-platform/admin-guide/sep24/faq.mdx diff --git a/platforms/anchor-platform/run-anchor-platform/sep24/index.mdx b/platforms/anchor-platform/admin-guide/sep24/index.mdx similarity index 100% rename from platforms/anchor-platform/run-anchor-platform/sep24/index.mdx rename to platforms/anchor-platform/admin-guide/sep24/index.mdx diff --git a/platforms/anchor-platform/run-anchor-platform/sep24/integration.mdx b/platforms/anchor-platform/admin-guide/sep24/integration.mdx similarity index 100% rename from platforms/anchor-platform/run-anchor-platform/sep24/integration.mdx rename to platforms/anchor-platform/admin-guide/sep24/integration.mdx diff --git a/platforms/anchor-platform/run-anchor-platform/sep24/setting-up-production-server.mdx b/platforms/anchor-platform/admin-guide/sep24/setting-up-production-server.mdx similarity index 100% rename from platforms/anchor-platform/run-anchor-platform/sep24/setting-up-production-server.mdx rename to platforms/anchor-platform/admin-guide/sep24/setting-up-production-server.mdx diff --git a/platforms/anchor-platform/run-anchor-platform/sep31/_category_.json b/platforms/anchor-platform/admin-guide/sep31/_category_.json similarity index 100% rename from platforms/anchor-platform/run-anchor-platform/sep31/_category_.json rename to platforms/anchor-platform/admin-guide/sep31/_category_.json diff --git a/platforms/anchor-platform/run-anchor-platform/sep31/configuration.mdx b/platforms/anchor-platform/admin-guide/sep31/configuration.mdx similarity index 100% rename from platforms/anchor-platform/run-anchor-platform/sep31/configuration.mdx rename to platforms/anchor-platform/admin-guide/sep31/configuration.mdx diff --git a/platforms/anchor-platform/run-anchor-platform/sep31/index.mdx b/platforms/anchor-platform/admin-guide/sep31/index.mdx similarity index 100% rename from platforms/anchor-platform/run-anchor-platform/sep31/index.mdx rename to platforms/anchor-platform/admin-guide/sep31/index.mdx diff --git a/platforms/anchor-platform/run-anchor-platform/sep31/integration.mdx b/platforms/anchor-platform/admin-guide/sep31/integration.mdx similarity index 100% rename from platforms/anchor-platform/run-anchor-platform/sep31/integration.mdx rename to platforms/anchor-platform/admin-guide/sep31/integration.mdx diff --git a/platforms/anchor-platform/run-anchor-platform/sep6/_category_.json b/platforms/anchor-platform/admin-guide/sep6/_category_.json similarity index 100% rename from platforms/anchor-platform/run-anchor-platform/sep6/_category_.json rename to platforms/anchor-platform/admin-guide/sep6/_category_.json diff --git a/platforms/anchor-platform/run-anchor-platform/sep6/configuration.mdx b/platforms/anchor-platform/admin-guide/sep6/configuration.mdx similarity index 100% rename from platforms/anchor-platform/run-anchor-platform/sep6/configuration.mdx rename to platforms/anchor-platform/admin-guide/sep6/configuration.mdx diff --git a/platforms/anchor-platform/run-anchor-platform/sep6/index.mdx b/platforms/anchor-platform/admin-guide/sep6/index.mdx similarity index 100% rename from platforms/anchor-platform/run-anchor-platform/sep6/index.mdx rename to platforms/anchor-platform/admin-guide/sep6/index.mdx diff --git a/platforms/anchor-platform/run-anchor-platform/sep6/integration.mdx b/platforms/anchor-platform/admin-guide/sep6/integration.mdx similarity index 100% rename from platforms/anchor-platform/run-anchor-platform/sep6/integration.mdx rename to platforms/anchor-platform/admin-guide/sep6/integration.mdx diff --git a/platforms/horizon/run-platform-server/_category_.json b/platforms/horizon/admin-guide/_category_.json similarity index 100% rename from platforms/horizon/run-platform-server/_category_.json rename to platforms/horizon/admin-guide/_category_.json diff --git a/platforms/horizon/run-platform-server/configuring.mdx b/platforms/horizon/admin-guide/configuring.mdx similarity index 100% rename from platforms/horizon/run-platform-server/configuring.mdx rename to platforms/horizon/admin-guide/configuring.mdx diff --git a/platforms/horizon/run-platform-server/index.mdx b/platforms/horizon/admin-guide/index.mdx similarity index 100% rename from platforms/horizon/run-platform-server/index.mdx rename to platforms/horizon/admin-guide/index.mdx diff --git a/platforms/horizon/run-platform-server/ingestion-filtering.mdx b/platforms/horizon/admin-guide/ingestion-filtering.mdx similarity index 100% rename from platforms/horizon/run-platform-server/ingestion-filtering.mdx rename to platforms/horizon/admin-guide/ingestion-filtering.mdx diff --git a/platforms/horizon/run-platform-server/ingestion.mdx b/platforms/horizon/admin-guide/ingestion.mdx similarity index 100% rename from platforms/horizon/run-platform-server/ingestion.mdx rename to platforms/horizon/admin-guide/ingestion.mdx diff --git a/platforms/horizon/run-platform-server/installing.mdx b/platforms/horizon/admin-guide/installing.mdx similarity index 100% rename from platforms/horizon/run-platform-server/installing.mdx rename to platforms/horizon/admin-guide/installing.mdx diff --git a/platforms/horizon/run-platform-server/monitoring.mdx b/platforms/horizon/admin-guide/monitoring.mdx similarity index 100% rename from platforms/horizon/run-platform-server/monitoring.mdx rename to platforms/horizon/admin-guide/monitoring.mdx diff --git a/platforms/horizon/run-platform-server/prerequisites.mdx b/platforms/horizon/admin-guide/prerequisites.mdx similarity index 100% rename from platforms/horizon/run-platform-server/prerequisites.mdx rename to platforms/horizon/admin-guide/prerequisites.mdx diff --git a/platforms/horizon/run-platform-server/running.mdx b/platforms/horizon/admin-guide/running.mdx similarity index 100% rename from platforms/horizon/run-platform-server/running.mdx rename to platforms/horizon/admin-guide/running.mdx diff --git a/platforms/horizon/run-platform-server/scaling.mdx b/platforms/horizon/admin-guide/scaling.mdx similarity index 100% rename from platforms/horizon/run-platform-server/scaling.mdx rename to platforms/horizon/admin-guide/scaling.mdx diff --git a/platforms/horizon/run-platform-server/upgrading.mdx b/platforms/horizon/admin-guide/upgrading.mdx similarity index 100% rename from platforms/horizon/run-platform-server/upgrading.mdx rename to platforms/horizon/admin-guide/upgrading.mdx diff --git a/platforms/stellar-disbursement-platform/run-stellar-disbursement-platform/_category_.json b/platforms/stellar-disbursement-platform/admin-guide/_category_.json similarity index 100% rename from platforms/stellar-disbursement-platform/run-stellar-disbursement-platform/_category_.json rename to platforms/stellar-disbursement-platform/admin-guide/_category_.json diff --git a/platforms/stellar-disbursement-platform/run-stellar-disbursement-platform/anchor-platform-integration-points.mdx b/platforms/stellar-disbursement-platform/admin-guide/anchor-platform-integration-points.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/run-stellar-disbursement-platform/anchor-platform-integration-points.mdx rename to platforms/stellar-disbursement-platform/admin-guide/anchor-platform-integration-points.mdx diff --git a/platforms/stellar-disbursement-platform/run-stellar-disbursement-platform/deploy-the-sdp.mdx b/platforms/stellar-disbursement-platform/admin-guide/deploy-the-sdp.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/run-stellar-disbursement-platform/deploy-the-sdp.mdx rename to platforms/stellar-disbursement-platform/admin-guide/deploy-the-sdp.mdx diff --git a/platforms/stellar-disbursement-platform/run-stellar-disbursement-platform/design-and-architecture.mdx b/platforms/stellar-disbursement-platform/admin-guide/design-and-architecture.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/run-stellar-disbursement-platform/design-and-architecture.mdx rename to platforms/stellar-disbursement-platform/admin-guide/design-and-architecture.mdx diff --git a/platforms/stellar-disbursement-platform/run-stellar-disbursement-platform/getting-started.mdx b/platforms/stellar-disbursement-platform/admin-guide/getting-started.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/run-stellar-disbursement-platform/getting-started.mdx rename to platforms/stellar-disbursement-platform/admin-guide/getting-started.mdx diff --git a/platforms/stellar-disbursement-platform/run-stellar-disbursement-platform/making-your-wallet-sdp-ready.mdx b/platforms/stellar-disbursement-platform/admin-guide/making-your-wallet-sdp-ready.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/run-stellar-disbursement-platform/making-your-wallet-sdp-ready.mdx rename to platforms/stellar-disbursement-platform/admin-guide/making-your-wallet-sdp-ready.mdx diff --git a/platforms/stellar-disbursement-platform/run-stellar-disbursement-platform/overview.mdx b/platforms/stellar-disbursement-platform/admin-guide/overview.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/run-stellar-disbursement-platform/overview.mdx rename to platforms/stellar-disbursement-platform/admin-guide/overview.mdx diff --git a/platforms/stellar-disbursement-platform/run-stellar-disbursement-platform/secure-operation-manual.mdx b/platforms/stellar-disbursement-platform/admin-guide/secure-operation-manual.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/run-stellar-disbursement-platform/secure-operation-manual.mdx rename to platforms/stellar-disbursement-platform/admin-guide/secure-operation-manual.mdx diff --git a/platforms/stellar-disbursement-platform/run-stellar-disbursement-platform/user-interface/_category_.json b/platforms/stellar-disbursement-platform/admin-guide/user-interface/_category_.json similarity index 100% rename from platforms/stellar-disbursement-platform/run-stellar-disbursement-platform/user-interface/_category_.json rename to platforms/stellar-disbursement-platform/admin-guide/user-interface/_category_.json diff --git a/platforms/stellar-disbursement-platform/run-stellar-disbursement-platform/user-interface/analytics.mdx b/platforms/stellar-disbursement-platform/admin-guide/user-interface/analytics.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/run-stellar-disbursement-platform/user-interface/analytics.mdx rename to platforms/stellar-disbursement-platform/admin-guide/user-interface/analytics.mdx diff --git a/platforms/stellar-disbursement-platform/run-stellar-disbursement-platform/user-interface/dashboard-home.mdx b/platforms/stellar-disbursement-platform/admin-guide/user-interface/dashboard-home.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/run-stellar-disbursement-platform/user-interface/dashboard-home.mdx rename to platforms/stellar-disbursement-platform/admin-guide/user-interface/dashboard-home.mdx diff --git a/platforms/stellar-disbursement-platform/run-stellar-disbursement-platform/user-interface/disbursements.mdx b/platforms/stellar-disbursement-platform/admin-guide/user-interface/disbursements.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/run-stellar-disbursement-platform/user-interface/disbursements.mdx rename to platforms/stellar-disbursement-platform/admin-guide/user-interface/disbursements.mdx diff --git a/platforms/stellar-disbursement-platform/run-stellar-disbursement-platform/user-interface/payments.mdx b/platforms/stellar-disbursement-platform/admin-guide/user-interface/payments.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/run-stellar-disbursement-platform/user-interface/payments.mdx rename to platforms/stellar-disbursement-platform/admin-guide/user-interface/payments.mdx diff --git a/platforms/stellar-disbursement-platform/run-stellar-disbursement-platform/user-interface/receivers.mdx b/platforms/stellar-disbursement-platform/admin-guide/user-interface/receivers.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/run-stellar-disbursement-platform/user-interface/receivers.mdx rename to platforms/stellar-disbursement-platform/admin-guide/user-interface/receivers.mdx diff --git a/platforms/stellar-disbursement-platform/run-stellar-disbursement-platform/user-interface/wallets.mdx b/platforms/stellar-disbursement-platform/admin-guide/user-interface/wallets.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/run-stellar-disbursement-platform/user-interface/wallets.mdx rename to platforms/stellar-disbursement-platform/admin-guide/user-interface/wallets.mdx From 896f362721a4a84c5f12dfb074a29d85eb6c822d Mon Sep 17 00:00:00 2001 From: Elliot Voris Date: Wed, 28 Feb 2024 13:33:58 -0600 Subject: [PATCH 086/133] use the default layout for admin guide pages --- src/theme/ApiItem/Layout/index.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/theme/ApiItem/Layout/index.js b/src/theme/ApiItem/Layout/index.js index bdd7642c5..f8324caed 100644 --- a/src/theme/ApiItem/Layout/index.js +++ b/src/theme/ApiItem/Layout/index.js @@ -10,8 +10,13 @@ import styles from "./styles.module.scss"; const LayoutWrapper = (props) => { const { frontMatter: { api }, + metadata, } = useDoc(); + if (metadata.permalink?.includes('admin-guide')) { + return + } + const layout = (
From 476ffcb739b54a4040be466911a0a6cd5148b5d3 Mon Sep 17 00:00:00 2001 From: Elliot Voris Date: Wed, 28 Feb 2024 13:34:32 -0600 Subject: [PATCH 087/133] fix some broken links --- docs/accessing-data/overview.mdx | 2 +- docs/fundamentals-and-concepts/stellar-stack.mdx | 2 +- docs/run-core-node/index.mdx | 2 +- platforms/anchor-platform/admin-guide/sep24/index.mdx | 2 +- platforms/anchor-platform/admin-guide/sep31/index.mdx | 2 +- .../anchor-platform/admin-guide/sep31/integration.mdx | 8 ++++---- platforms/anchor-platform/admin-guide/sep6/index.mdx | 2 +- platforms/anchor-platform/introduction/index.mdx | 2 +- .../stellar-disbursement-platform/introduction/index.mdx | 2 +- 9 files changed, 12 insertions(+), 12 deletions(-) diff --git a/docs/accessing-data/overview.mdx b/docs/accessing-data/overview.mdx index 89b41b51d..543b53c5b 100644 --- a/docs/accessing-data/overview.mdx +++ b/docs/accessing-data/overview.mdx @@ -5,7 +5,7 @@ sidebar_position: 0 ## What is Hubble? -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](/platforms/horizon/run-platform-server). +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](/platforms/horizon/admin-guide). This guide describes when to use Hubble and how to connect. To view the underlying data structures, queries and examples, use the [Viewing Metadata](/docs/accessing-data/viewing-metadata) and [Optimizing Queries](/docs/accessing-data/optimizing-queries) tutorials. diff --git a/docs/fundamentals-and-concepts/stellar-stack.mdx b/docs/fundamentals-and-concepts/stellar-stack.mdx index fed6a2630..3038e167f 100644 --- a/docs/fundamentals-and-concepts/stellar-stack.mdx +++ b/docs/fundamentals-and-concepts/stellar-stack.mdx @@ -19,7 +19,7 @@ Anyone can run a Stellar Core node, but you don’t have to in order to build on Horizon is the client-facing RESTful HTTP API server in the platform layer which allows programmatic access to submit transactions and query the network’s historical data. It acts as the interface for applications that want to access the Stellar network. You can communicate with Horizon using an SDK, a web browser, or with simple command tools like cURL. -You do not need to run your own Horizon instance — when you're getting started, you can use the free SDF Horizon instance to access the network — but it is recommended that you do when you’re ready to launch a finished product. Check out how to do so here: [Run Platform Services Tutorial](/platforms/horizon/run-platform-server) +You do not need to run your own Horizon instance — when you're getting started, you can use the free SDF Horizon instance to access the network — but it is recommended that you do when you’re ready to launch a finished product. Check out how to do so here: [Run Platform Services Tutorial](/platforms/horizon/admin-guide) Learn all there is to know about using Horizon in the Horizon [API Reference documentation](https://developers.stellar.org/api). diff --git a/docs/run-core-node/index.mdx b/docs/run-core-node/index.mdx index a535a1e4d..94a100e0a 100644 --- a/docs/run-core-node/index.mdx +++ b/docs/run-core-node/index.mdx @@ -9,7 +9,7 @@ Stellar is a peer-to-peer network made up of nodes, which are computers that kee You don’t need to run a node to build on Stellar: you can start developing with your [SDK of choice](../tools/sdks/library.mdx), and use public instances of Horizon to query the ledger and submit transactions right away. In fact, the Stellar Development Foundation offers two public instances of Horizon — one for the public network and one for the testnet — which you can read more about in our [API reference docs](https://developers.stellar.org/api). [Lobstr](https://horizon.stellar.lobstr.co), [Public Node](https://horizon.publicnode.org/), and [Coinqvest](https://horizon.stellar.coinqvest.com) also offer public Horizon instances. -Even if you _do_ want to run your [own instance of Horizon](/platforms/horizon/run-platform-server), it bundles its own version of Core and manages its lifetime entirely, so there's no need to run a standalone instance. +Even if you _do_ want to run your [own instance of Horizon](/platforms/horizon/admin-guide), it bundles its own version of Core and manages its lifetime entirely, so there's no need to run a standalone instance. If you’re serious about building on Stellar, have a production-level product or service that requires high-availability access network, or want to help increase network health and decentralization, then you probably _do_ want to run a node, or even a trio of nodes (more on that in the [Tier 1 section](./tier-1-orgs.mdx)). At that point, you have a choice: you can pay a service provider like [Blockdaemon](https://app.blockdaemon.com/marketplace/categories/-/stellar-horizon) to set up and run your node for you, or you can do it yourself. diff --git a/platforms/anchor-platform/admin-guide/sep24/index.mdx b/platforms/anchor-platform/admin-guide/sep24/index.mdx index 896fc1bf9..b90af74e9 100644 --- a/platforms/anchor-platform/admin-guide/sep24/index.mdx +++ b/platforms/anchor-platform/admin-guide/sep24/index.mdx @@ -28,6 +28,6 @@ The customer can then use the digital asset on the Stellar network for remittanc 5. Once the anchor receives the payment, the customer receives the withdrawn funds via bank transfer. [sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[installation-ap]: /platforms/anchor-platform/run-anchor-platform/getting_started +[installation-ap]: /platforms/anchor-platform/admin-guide/getting_started [sep1-ap]: /platforms/category/stellar-info-file [sep10-ap]: /platforms/category/stellar-authentication diff --git a/platforms/anchor-platform/admin-guide/sep31/index.mdx b/platforms/anchor-platform/admin-guide/sep31/index.mdx index 637e73cac..3da6d5da2 100644 --- a/platforms/anchor-platform/admin-guide/sep31/index.mdx +++ b/platforms/anchor-platform/admin-guide/sep31/index.mdx @@ -16,6 +16,6 @@ As we improve the documentation, parts of this guide that are relevant to other Before continuing with this section, make sure that you have already [installed][installation-ap] the Anchor Platform and configured the necessary features required by SEP-31: [SEP-1 (Stellar Info File)][sep1-ap] and [SEP-10 (Stellar Authentication)][sep10-ap]. [sep-31]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0031.md -[installation-ap]: /platforms/anchor-platform/run-anchor-platform/getting_started +[installation-ap]: /platforms/anchor-platform/admin-guide/getting_started [sep1-ap]: /platforms/category/stellar-info-file [sep10-ap]: /platforms/category/stellar-authentication diff --git a/platforms/anchor-platform/admin-guide/sep31/integration.mdx b/platforms/anchor-platform/admin-guide/sep31/integration.mdx index 4cf0bed20..8a0941645 100644 --- a/platforms/anchor-platform/admin-guide/sep31/integration.mdx +++ b/platforms/anchor-platform/admin-guide/sep31/integration.mdx @@ -688,7 +688,7 @@ This endpoint may be removed during future major version updates of the Anchor P [put-customer-callback]: /platforms/anchor-platform/callbacks/put-customer-callback [delete-customer]: /platforms/anchor-platform/callbacks/del-customer [json-rpc-methods]: /platforms/anchor-platform/rpc/methods -[sep24-integration-make-json-rpc-request]: /platforms/anchor-platform/run-anchor-platform/sep24/integration#making-json-rpc-requests -[sep24-integration-rpc-request]: /platforms/anchor-platform/run-anchor-platform/sep24/integration#json-rpc-request -[sep24-integration-rpc-response]: /platforms/anchor-platform/run-anchor-platform/sep24/integration#json-rpc-response -[sep24-integration-error-codes]: /platforms/anchor-platform/run-anchor-platform/sep24/integration#error-codes +[sep24-integration-make-json-rpc-request]: /platforms/anchor-platform/admin-guide/sep24/integration#making-json-rpc-requests +[sep24-integration-rpc-request]: /platforms/anchor-platform/admin-guide/sep24/integration#json-rpc-request +[sep24-integration-rpc-response]: /platforms/anchor-platform/admin-guide/sep24/integration#json-rpc-response +[sep24-integration-error-codes]: /platforms/anchor-platform/admin-guide/sep24/integration#error-codes diff --git a/platforms/anchor-platform/admin-guide/sep6/index.mdx b/platforms/anchor-platform/admin-guide/sep6/index.mdx index c98612073..59f6e7b63 100644 --- a/platforms/anchor-platform/admin-guide/sep6/index.mdx +++ b/platforms/anchor-platform/admin-guide/sep6/index.mdx @@ -28,6 +28,6 @@ The customer can then use the digital asset on the Stellar network for remittanc 5. Once the anchor receives the payment, the customer receives the withdrawn funds via any method supported by the anchor (such as bank transfer) [sep-6]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md -[installation-ap]: /platforms/anchor-platform/run-anchor-platform/getting_started +[installation-ap]: /platforms/anchor-platform/admin-guide/getting_started [sep1-ap]: /platforms/category/stellar-info-file [sep10-ap]: /platforms/category/stellar-authentication diff --git a/platforms/anchor-platform/introduction/index.mdx b/platforms/anchor-platform/introduction/index.mdx index a6e5dbe04..637f6703b 100644 --- a/platforms/anchor-platform/introduction/index.mdx +++ b/platforms/anchor-platform/introduction/index.mdx @@ -8,4 +8,4 @@ The Anchor Platform is a set of tools and APIs that enable developers and busine 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. -You can read more about integrating with the Anchor Platform [in the Admin Guide](../run-anchor-platform/index.mdx). +You can read more about integrating with the Anchor Platform [in the Admin Guide](../admin-guide/index.mdx). diff --git a/platforms/stellar-disbursement-platform/introduction/index.mdx b/platforms/stellar-disbursement-platform/introduction/index.mdx index b34a1f1df..39b71a822 100644 --- a/platforms/stellar-disbursement-platform/introduction/index.mdx +++ b/platforms/stellar-disbursement-platform/introduction/index.mdx @@ -6,4 +6,4 @@ slug: /stellar-disbursement-platform The Stellar Disbursement Platform (SDP) enables organizations to disburse bulk payments to recipients using Stellar. -This section includes the API reference for the Stellar Disbursement Platform. To learn more about the Stellar Disbursement Platform and how to run it, check out the [Admin Guide](../run-stellar-disbursement-platform/overview.mdx). +This section includes the API reference for the Stellar Disbursement Platform. To learn more about the Stellar Disbursement Platform and how to run it, check out the [Admin Guide](../admin-guide/overview.mdx). From 672c13a3a3e2cf7ce5d7312c23c49e602b253806 Mon Sep 17 00:00:00 2001 From: Bri <92327786+briwylde08@users.noreply.github.com> Date: Wed, 28 Feb 2024 13:31:09 -0700 Subject: [PATCH 088/133] Add Hubble to Platforms tab --- docs/accessing-data/_category_.json | 8 -------- docusaurus.config.js | 12 ++++++++---- .../hubble}/connecting.mdx | 0 .../hubble}/optimizing-queries.mdx | 0 .../hubble}/overview.mdx | 0 .../hubble}/viewing-metadata.mdx | 0 sidebars.js | 13 ------------- sidebarsPlatforms.js | 13 +++++++++++++ 8 files changed, 21 insertions(+), 25 deletions(-) delete mode 100644 docs/accessing-data/_category_.json rename {docs/accessing-data => platforms/hubble}/connecting.mdx (100%) rename {docs/accessing-data => platforms/hubble}/optimizing-queries.mdx (100%) rename {docs/accessing-data => platforms/hubble}/overview.mdx (100%) rename {docs/accessing-data => platforms/hubble}/viewing-metadata.mdx (100%) diff --git a/docs/accessing-data/_category_.json b/docs/accessing-data/_category_.json deleted file mode 100644 index a3b7c1eb4..000000000 --- a/docs/accessing-data/_category_.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "position": 80, - "label": "Access Historical Data", - "link": { - "type": "generated-index" - } - } - \ No newline at end of file diff --git a/docusaurus.config.js b/docusaurus.config.js index 87be13047..6454aa94c 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -171,12 +171,16 @@ const config = { className: 'platformsHeading', }, { - to: "/platforms/horizon", - label: "Horizon", + to: "/platforms/soroban-rpc", + label: "Soroban RPC", }, { - to: "/platforms/soroban-rpc", - label: "Soroban RPC", + to: "/platforms/hubble", + label: "Hubble", + }, + { + to: "/platforms/horizon", + label: "Horizon", }, { type: 'html', diff --git a/docs/accessing-data/connecting.mdx b/platforms/hubble/connecting.mdx similarity index 100% rename from docs/accessing-data/connecting.mdx rename to platforms/hubble/connecting.mdx diff --git a/docs/accessing-data/optimizing-queries.mdx b/platforms/hubble/optimizing-queries.mdx similarity index 100% rename from docs/accessing-data/optimizing-queries.mdx rename to platforms/hubble/optimizing-queries.mdx diff --git a/docs/accessing-data/overview.mdx b/platforms/hubble/overview.mdx similarity index 100% rename from docs/accessing-data/overview.mdx rename to platforms/hubble/overview.mdx diff --git a/docs/accessing-data/viewing-metadata.mdx b/platforms/hubble/viewing-metadata.mdx similarity index 100% rename from docs/accessing-data/viewing-metadata.mdx rename to platforms/hubble/viewing-metadata.mdx diff --git a/sidebars.js b/sidebars.js index 273175207..411b566c6 100644 --- a/sidebars.js +++ b/sidebars.js @@ -83,19 +83,6 @@ const sidebars = { 'run-core-node/tier-1-orgs', ] }, - { - type: 'category', - label: 'Access Historical Data', - link: { - type: 'generated-index', - title: 'Access Historical Data', - slug: '/category/access-historical-data', - }, - items: [{ - type: 'autogenerated', - dirName: 'accessing-data', - }] - }, { type: 'category', label: 'Encyclopedia', diff --git a/sidebarsPlatforms.js b/sidebarsPlatforms.js index 927c1d313..3816eed9d 100644 --- a/sidebarsPlatforms.js +++ b/sidebarsPlatforms.js @@ -15,6 +15,19 @@ const sidebars = { collapsible: false, }, ], + hubble: [ + { + type: 'category', + label: 'Hubble', + items: [ + { + type: "autogenerated", + dirName: "hubble", + }, + ], + collapsible: false, + }, + ], anchor_platform: [ { type: 'category', From 9382f518b88d77a0aef0f2d74b17972600c2c9b6 Mon Sep 17 00:00:00 2001 From: Elliot Voris Date: Wed, 28 Feb 2024 15:17:29 -0600 Subject: [PATCH 089/133] display admin guide docs with default DocItem component --- src/theme/ApiItem/Layout/index.js | 6 +----- src/theme/ApiItem/index.js | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+), 5 deletions(-) create mode 100644 src/theme/ApiItem/index.js diff --git a/src/theme/ApiItem/Layout/index.js b/src/theme/ApiItem/Layout/index.js index f8324caed..d1d72cf75 100644 --- a/src/theme/ApiItem/Layout/index.js +++ b/src/theme/ApiItem/Layout/index.js @@ -1,6 +1,7 @@ import React from "react"; import { MDXProvider } from "@mdx-js/react"; import Layout from "@theme-original/ApiItem/Layout"; +// import DocItem from "@theme-original/DocItem"; import { useDoc } from "@docusaurus/theme-common/internal"; import { WrapperApiReference } from "@site/src/components/WrapperApiReference"; @@ -10,13 +11,8 @@ import styles from "./styles.module.scss"; const LayoutWrapper = (props) => { const { frontMatter: { api }, - metadata, } = useDoc(); - if (metadata.permalink?.includes('admin-guide')) { - return - } - const layout = (
diff --git a/src/theme/ApiItem/index.js b/src/theme/ApiItem/index.js new file mode 100644 index 000000000..ce49bc7d8 --- /dev/null +++ b/src/theme/ApiItem/index.js @@ -0,0 +1,18 @@ +import React from 'react'; +import ApiItem from '@theme-original/ApiItem'; +import DocItem from '@theme-original/DocItem'; + +export default function ApiItemWrapper(props) { + if (props.location?.pathname?.includes('admin-guide')) { + return ( + <> + + + ) + } + return ( + <> + + + ); +} From 14f2cdb13ae72231e434c54f56fd614357cf361f Mon Sep 17 00:00:00 2001 From: Elliot Voris Date: Wed, 28 Feb 2024 15:25:33 -0600 Subject: [PATCH 090/133] specify the slug for the hubble overview page --- platforms/hubble/overview.mdx | 1 + 1 file changed, 1 insertion(+) diff --git a/platforms/hubble/overview.mdx b/platforms/hubble/overview.mdx index 543b53c5b..4b06db14e 100644 --- a/platforms/hubble/overview.mdx +++ b/platforms/hubble/overview.mdx @@ -1,6 +1,7 @@ --- title: "Overview" sidebar_position: 0 +slug: /hubble --- ## What is Hubble? From f5df5cc29a3254460cc6f70266b22eb83ca78703 Mon Sep 17 00:00:00 2001 From: Elliot Voris Date: Wed, 28 Feb 2024 15:25:49 -0600 Subject: [PATCH 091/133] include hubble pages in the default DocItem component check --- src/theme/ApiItem/index.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/theme/ApiItem/index.js b/src/theme/ApiItem/index.js index ce49bc7d8..4e5981cc3 100644 --- a/src/theme/ApiItem/index.js +++ b/src/theme/ApiItem/index.js @@ -3,7 +3,11 @@ import ApiItem from '@theme-original/ApiItem'; import DocItem from '@theme-original/DocItem'; export default function ApiItemWrapper(props) { - if (props.location?.pathname?.includes('admin-guide')) { + console.log('props', props) + if ( + props.location?.pathname?.includes('admin-guide') + || props.location?.pathname?.startsWith('/platforms/hubble') + ) { return ( <> From 1901510f3ca0a7c30b91f0d9f3cd41fa7f7abc63 Mon Sep 17 00:00:00 2001 From: Elliot Voris Date: Wed, 28 Feb 2024 15:26:33 -0600 Subject: [PATCH 092/133] remove unnecessary console statement --- src/theme/ApiItem/index.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/theme/ApiItem/index.js b/src/theme/ApiItem/index.js index 4e5981cc3..306a56749 100644 --- a/src/theme/ApiItem/index.js +++ b/src/theme/ApiItem/index.js @@ -3,7 +3,6 @@ import ApiItem from '@theme-original/ApiItem'; import DocItem from '@theme-original/DocItem'; export default function ApiItemWrapper(props) { - console.log('props', props) if ( props.location?.pathname?.includes('admin-guide') || props.location?.pathname?.startsWith('/platforms/hubble') From 10cb1ea0bd9a15dd36af49449ca37363ebc14cc8 Mon Sep 17 00:00:00 2001 From: Elliot Voris Date: Wed, 28 Feb 2024 15:32:42 -0600 Subject: [PATCH 093/133] fix broken links --- platforms/hubble/optimizing-queries.mdx | 2 +- platforms/hubble/overview.mdx | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/platforms/hubble/optimizing-queries.mdx b/platforms/hubble/optimizing-queries.mdx index 59b534b67..46b421b97 100644 --- a/platforms/hubble/optimizing-queries.mdx +++ b/platforms/hubble/optimizing-queries.mdx @@ -15,7 +15,7 @@ Large tables are partitioned and clustered according to common access patterns. Joining tables on strings is expensive. Refrain from joining on string keys if you can utilize integer keys instead. -Read the docs on [Viewing Metadata](/docs/accessing-data/viewing-metadata) to learn more about table metadata. +Read the docs on [Viewing Metadata](./viewing-metadata.mdx) to learn more about table metadata. #### Example - Profiling Operation Types diff --git a/platforms/hubble/overview.mdx b/platforms/hubble/overview.mdx index 4b06db14e..28e538e18 100644 --- a/platforms/hubble/overview.mdx +++ b/platforms/hubble/overview.mdx @@ -6,9 +6,9 @@ slug: /hubble ## What is Hubble? -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](/platforms/horizon/admin-guide). +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/index.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](/docs/accessing-data/viewing-metadata) and [Optimizing Queries](/docs/accessing-data/optimizing-queries) 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](./viewing-metadata.mdx) and [Optimizing Queries](./optimizing-queries.mdx) tutorials. ## Why Use Hubble? From b90d779ba2862e6169a0625da4532e1d278c382f Mon Sep 17 00:00:00 2001 From: Elliot Voris Date: Wed, 28 Feb 2024 16:02:17 -0600 Subject: [PATCH 094/133] move soroban rpc intro files into a consisten folder --- .../soroban-rpc/{ => introduction}/README.mdx | 1 + .../{ => introduction}/anti-goals.mdx | 0 .../soroban-rpc/{ => introduction}/goals.mdx | 0 .../{ => introduction}/json-rpc.mdx | 0 .../{ => introduction}/pagination.mdx | 2 +- platforms/soroban-rpc/methods/_category_.json | 8 +++++ sidebarsPlatforms.js | 32 ++----------------- 7 files changed, 12 insertions(+), 31 deletions(-) rename platforms/soroban-rpc/{ => introduction}/README.mdx (89%) rename platforms/soroban-rpc/{ => introduction}/anti-goals.mdx (100%) rename platforms/soroban-rpc/{ => introduction}/goals.mdx (100%) rename platforms/soroban-rpc/{ => introduction}/json-rpc.mdx (100%) rename platforms/soroban-rpc/{ => introduction}/pagination.mdx (81%) create mode 100644 platforms/soroban-rpc/methods/_category_.json diff --git a/platforms/soroban-rpc/README.mdx b/platforms/soroban-rpc/introduction/README.mdx similarity index 89% rename from platforms/soroban-rpc/README.mdx rename to platforms/soroban-rpc/introduction/README.mdx index afd9a6ab1..73036894a 100644 --- a/platforms/soroban-rpc/README.mdx +++ b/platforms/soroban-rpc/introduction/README.mdx @@ -1,6 +1,7 @@ --- title: Introduction sidebar_position: 10 +slug: /soroban-rpc --- import DocCardList from "@theme/DocCardList"; diff --git a/platforms/soroban-rpc/anti-goals.mdx b/platforms/soroban-rpc/introduction/anti-goals.mdx similarity index 100% rename from platforms/soroban-rpc/anti-goals.mdx rename to platforms/soroban-rpc/introduction/anti-goals.mdx diff --git a/platforms/soroban-rpc/goals.mdx b/platforms/soroban-rpc/introduction/goals.mdx similarity index 100% rename from platforms/soroban-rpc/goals.mdx rename to platforms/soroban-rpc/introduction/goals.mdx diff --git a/platforms/soroban-rpc/json-rpc.mdx b/platforms/soroban-rpc/introduction/json-rpc.mdx similarity index 100% rename from platforms/soroban-rpc/json-rpc.mdx rename to platforms/soroban-rpc/introduction/json-rpc.mdx diff --git a/platforms/soroban-rpc/pagination.mdx b/platforms/soroban-rpc/introduction/pagination.mdx similarity index 81% rename from platforms/soroban-rpc/pagination.mdx rename to platforms/soroban-rpc/introduction/pagination.mdx index acc4142ad..cd8223380 100644 --- a/platforms/soroban-rpc/pagination.mdx +++ b/platforms/soroban-rpc/introduction/pagination.mdx @@ -9,7 +9,7 @@ Pagination in soroban-rpc is similar to pagination in Horizon. For methods which support it, the pagination arguments are passed as a final object argument with two values: - `cursor`: string - (optional) 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. -- `limit`: number - (optional) The maximum number of records returned. The limit for [getEvents](./methods/getEvents.mdx) 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. +- `limit`: number - (optional) The maximum number of records returned. The limit for [getEvents](../methods/getEvents.mdx) 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. For example, calling a method with pagination parameter set: diff --git a/platforms/soroban-rpc/methods/_category_.json b/platforms/soroban-rpc/methods/_category_.json new file mode 100644 index 000000000..1085219a4 --- /dev/null +++ b/platforms/soroban-rpc/methods/_category_.json @@ -0,0 +1,8 @@ +{ + "label": "Methods", + "position": 20, + "link": { + "type": "generated-index", + "slug": "/soroban-rpc/methods" + } +} diff --git a/sidebarsPlatforms.js b/sidebarsPlatforms.js index 3816eed9d..9668a1768 100644 --- a/sidebarsPlatforms.js +++ b/sidebarsPlatforms.js @@ -58,36 +58,8 @@ const sidebars = { label: "Soroban RPC", items: [ { - type: 'category', - label: 'Introduction', - collapsible: true, - collapsed: false, - link: { - type: 'doc', - id: 'soroban-rpc/README', - }, - items: [ - 'soroban-rpc/goals', - 'soroban-rpc/anti-goals', - 'soroban-rpc/json-rpc', - 'soroban-rpc/pagination', - ] - }, - { - type: 'category', - label: 'Methods', - collapsible: true, - collapsed: false, - link: { - type: 'generated-index', - slug: 'soroban-rpc/methods' - }, - items: [ - { - type: "autogenerated", - dirName: "soroban-rpc/methods", - }, - ] + type: 'autogenerated', + dirName: 'soroban-rpc', }, ], }, From 8805a140526d81b527b450b5a7b43f6a5cce5dca Mon Sep 17 00:00:00 2001 From: Elliot Voris Date: Wed, 28 Feb 2024 16:16:12 -0600 Subject: [PATCH 095/133] move new anchor platform events docs into place --- .../anchor-platform/events/_category_.json | 0 .../anchor-platform/events/delivery.mdx | 0 .../anchor-platform/events/index.mdx | 0 .../anchor-platform/events/integration.mdx | 0 4 files changed, 0 insertions(+), 0 deletions(-) rename {docs/anchoring-assets => platforms}/anchor-platform/events/_category_.json (100%) rename {docs/anchoring-assets => platforms}/anchor-platform/events/delivery.mdx (100%) rename {docs/anchoring-assets => platforms}/anchor-platform/events/index.mdx (100%) rename {docs/anchoring-assets => platforms}/anchor-platform/events/integration.mdx (100%) diff --git a/docs/anchoring-assets/anchor-platform/events/_category_.json b/platforms/anchor-platform/events/_category_.json similarity index 100% rename from docs/anchoring-assets/anchor-platform/events/_category_.json rename to platforms/anchor-platform/events/_category_.json diff --git a/docs/anchoring-assets/anchor-platform/events/delivery.mdx b/platforms/anchor-platform/events/delivery.mdx similarity index 100% rename from docs/anchoring-assets/anchor-platform/events/delivery.mdx rename to platforms/anchor-platform/events/delivery.mdx diff --git a/docs/anchoring-assets/anchor-platform/events/index.mdx b/platforms/anchor-platform/events/index.mdx similarity index 100% rename from docs/anchoring-assets/anchor-platform/events/index.mdx rename to platforms/anchor-platform/events/index.mdx diff --git a/docs/anchoring-assets/anchor-platform/events/integration.mdx b/platforms/anchor-platform/events/integration.mdx similarity index 100% rename from docs/anchoring-assets/anchor-platform/events/integration.mdx rename to platforms/anchor-platform/events/integration.mdx From f1377f937a80fe7e07868427cc1a13d28d6eab78 Mon Sep 17 00:00:00 2001 From: Elliot Voris Date: Wed, 28 Feb 2024 16:16:34 -0600 Subject: [PATCH 096/133] fix broken links --- platforms/anchor-platform/events/index.mdx | 2 +- platforms/anchor-platform/events/integration.mdx | 2 +- platforms/soroban-rpc/introduction/json-rpc.mdx | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/platforms/anchor-platform/events/index.mdx b/platforms/anchor-platform/events/index.mdx index 767f22140..caab7dc46 100644 --- a/platforms/anchor-platform/events/index.mdx +++ b/platforms/anchor-platform/events/index.mdx @@ -9,4 +9,4 @@ By integrating your business server with the event service, you will be able to The event service is **required** for the [SEP-6 integration][sep-6] as there are no SEP-6 callbacks. -[sep-6]: /docs/category/programmatic-deposits-and-withdrawals +[sep-6]: /platforms/category/programmatic-deposits-and-withdrawals diff --git a/platforms/anchor-platform/events/integration.mdx b/platforms/anchor-platform/events/integration.mdx index 95d1a99a9..0136a74e1 100644 --- a/platforms/anchor-platform/events/integration.mdx +++ b/platforms/anchor-platform/events/integration.mdx @@ -112,7 +112,7 @@ Anchor Platform signs the callback requests it sends to client applications. The ### As a Business Server -In addition to SEP transaction status updates, business servers can receive events about SEP-31 quote creation or SEP-12 customer information updates. The schema of the event data will depend on the type of event being sent. Visit the [Event API documentation](/api/anchor-platform/callbacks/post-event) for more information about the schema of the event data. +In addition to SEP transaction status updates, business servers can receive events about SEP-31 quote creation or SEP-12 customer information updates. The schema of the event data will depend on the type of event being sent. Visit the [Event API documentation](../callbacks/post-event) for more information about the schema of the event data. To receive events as a business server, you will need to expose a callback URL that the event service can send events to. The event service will send a POST request to this endpoint with the event data in the request body. diff --git a/platforms/soroban-rpc/introduction/json-rpc.mdx b/platforms/soroban-rpc/introduction/json-rpc.mdx index d78265a83..757d011b2 100644 --- a/platforms/soroban-rpc/introduction/json-rpc.mdx +++ b/platforms/soroban-rpc/introduction/json-rpc.mdx @@ -28,6 +28,6 @@ Soroban-RPC provides an [OpenRPC] specification document that can be used to moc [jsonrpc error object]: https://www.jsonrpc.org/specification#error_object [JavaScript SDK]: https://github.com/stellar/js-stellar-sdk [OpenRPC]: https://open-rpc.org/ -[methods]: ./methods +[methods]: ../methods [specification document here]: https://raw.githubusercontent.com/stellar/soroban-docs/main/static/openrpc.json [OpenRPC Playground]: https://playground.open-rpc.org/?schemaUrl=https://raw.githubusercontent.com/stellar/soroban-docs/main/static/openrpc.json From c193d576d56b0b902959c1ee92637bdea0aa2988 Mon Sep 17 00:00:00 2001 From: Elliot Voris Date: Wed, 28 Feb 2024 16:20:36 -0600 Subject: [PATCH 097/133] improve text in platforms index page --- platforms/index.mdx | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/platforms/index.mdx b/platforms/index.mdx index 7204815ea..9fb21b548 100644 --- a/platforms/index.mdx +++ b/platforms/index.mdx @@ -1,9 +1,9 @@ --- -title: 'APIs Overview' +title: 'Platforms Overview' slug: / --- -We have lots of amazing APIs. Go ahead, check 'em out! +We have lots of amazing Platforms. Go ahead, check 'em out! ## Horizon @@ -15,6 +15,20 @@ query an account balance, or stream events like transactions to an account. [Learn more about the Horizon API here!](./horizon) +## Hubble + +Hubble is your go-to source for viewing, analyzing, and understanding historic +data from the Stellar network. + +[Learn more about Hubble here!](./hubble) + +## Soroban RPC + +If you are writing or interacting with smart contracts, you'll need to use RPC. +This is the best platform to see current state of the Stellar network. + +[Learn more about Soroban RPC here!](./soroban-rpc) + ## Anchor Platform The Anchor Platform is a set of tools and APIs that enable developers and From 6d59369f43cea0c61e28475db1aeafc240722356 Mon Sep 17 00:00:00 2001 From: Bri <92327786+briwylde08@users.noreply.github.com> Date: Wed, 28 Feb 2024 15:27:04 -0700 Subject: [PATCH 098/133] Add Introduction to Horizon -Change original "Introduction" to "Structure" -Include Introduction for Horizon --- .../aggregations/order-books/single.mdx | 2 +- .../transaction-malformed.mdx | 4 +-- .../horizon/introduction/_category_.json | 6 ++-- platforms/horizon/introduction/index.mdx | 27 ++--------------- platforms/horizon/resources/assets/object.mdx | 2 +- .../resources/claimablebalances/object.mdx | 2 +- .../horizon/resources/ledgers/object.mdx | 2 +- platforms/horizon/resources/offers/object.mdx | 2 +- .../resources/operations/object/index.mdx | 2 +- platforms/horizon/resources/trades/object.mdx | 2 +- .../horizon/resources/transactions/object.mdx | 2 +- platforms/horizon/structure/_category_.json | 4 +++ platforms/horizon/structure/index.mdx | 30 +++++++++++++++++++ .../pagination/_category_.json | 0 .../pagination/index.mdx | 0 .../pagination/page-arguments.mdx | 0 .../rate-limiting.mdx | 0 .../response-format.mdx | 0 .../{introduction => structure}/streaming.mdx | 0 .../{introduction => structure}/xdr.mdx | 0 20 files changed, 49 insertions(+), 38 deletions(-) create mode 100644 platforms/horizon/structure/_category_.json create mode 100644 platforms/horizon/structure/index.mdx rename platforms/horizon/{introduction => structure}/pagination/_category_.json (100%) rename platforms/horizon/{introduction => structure}/pagination/index.mdx (100%) rename platforms/horizon/{introduction => structure}/pagination/page-arguments.mdx (100%) rename platforms/horizon/{introduction => structure}/rate-limiting.mdx (100%) rename platforms/horizon/{introduction => structure}/response-format.mdx (100%) rename platforms/horizon/{introduction => structure}/streaming.mdx (100%) rename platforms/horizon/{introduction => structure}/xdr.mdx (100%) diff --git a/platforms/horizon/aggregations/order-books/single.mdx b/platforms/horizon/aggregations/order-books/single.mdx index ee5f0f133..a8ae65dc8 100644 --- a/platforms/horizon/aggregations/order-books/single.mdx +++ b/platforms/horizon/aggregations/order-books/single.mdx @@ -8,7 +8,7 @@ import { ExampleResponse } from "@site/src/components/ExampleResponse"; import { CodeExample } from "@site/src/components/CodeExample"; import { AttributeTable } from "@site/src/components/AttributeTable"; -The order book endpoint provides an order book's bids and asks and can be used in [streaming](../../introduction/streaming.mdx) mode. +The order book endpoint provides an order book's bids and asks and can be used in [streaming](../../structure/streaming.mdx) mode. When filtering for a specific order book, you must use use all six of these arguments: `base_asset_type`, `base_asset_issuer`, `base_asset_code`, `counter_asset_type`, `counter_asset_issuer`, and `counter_asset_code`. If the base or counter asset is XLM, you only need to indicate the asset type as `native` and do not need to designate the code or the issuer. diff --git a/platforms/horizon/errors/http-status-codes/horizon-specific/transaction-malformed.mdx b/platforms/horizon/errors/http-status-codes/horizon-specific/transaction-malformed.mdx index 9f3f52af8..1162150bf 100644 --- a/platforms/horizon/errors/http-status-codes/horizon-specific/transaction-malformed.mdx +++ b/platforms/horizon/errors/http-status-codes/horizon-specific/transaction-malformed.mdx @@ -12,8 +12,8 @@ There are many ways in which a transaction could be malformed, including: 1. You submitted an empty string. 2. Your base64-encoded string is invalid. -3. Your [XDR](../../../introduction/xdr.mdx) structure is invalid. -4. You have leftover bytes in your [XDR](../../../introduction/xdr.mdx) structure. +3. Your [XDR](../../../structure/xdr.mdx) structure is invalid. +4. You have leftover bytes in your [XDR](../../../structure/xdr.mdx) structure. diff --git a/platforms/horizon/introduction/_category_.json b/platforms/horizon/introduction/_category_.json index a1b7fe4ed..0c950519d 100644 --- a/platforms/horizon/introduction/_category_.json +++ b/platforms/horizon/introduction/_category_.json @@ -1,4 +1,4 @@ { - "position": 10, - "label": "Introduction" -} + "position": 10, + "label": "Introduction" + } \ No newline at end of file diff --git a/platforms/horizon/introduction/index.mdx b/platforms/horizon/introduction/index.mdx index 2798f4f81..17e1e5dbf 100644 --- a/platforms/horizon/introduction/index.mdx +++ b/platforms/horizon/introduction/index.mdx @@ -1,30 +1,7 @@ --- -title: Horizon API Reference +title: Horizon sidebar_position: 10 slug: /horizon -description: Horizon is an API for interacting with the Stellar network. --- -import { MethodTable } from "@site/src/components/MethodTable"; - -Horizon is an API for interacting with the Stellar network. - -This API serves the bridge between apps and [Stellar Core](/docs/run-core-node). Projects like wallets, decentralized exchanges, and asset issuers use Horizon to submit transactions, query an account balance, or stream events like transactions to an account. - -Horizon is a [RESTful API](https://en.wikipedia.org/wiki/Representational_state_transfer) and can be accessed via cURL, a browser, or one of the [Stellar SDKs](/docs/tools/sdks). To reduce the complexity of your project, we recommend you use an SDK instead of making direct API calls. - -The Stellar Development Foundation (SDF) runs two instances of Horizon: - -- [https://horizon.stellar.org/](https://horizon.stellar.org/) for interacting with the public network -- [https://horizon-testnet.stellar.org/](https://horizon-testnet.stellar.org/) for interacting with the [testnet](/docs/fundamentals-and-concepts/networks) - - - -| | | -| --- | --- | -| [Introduction](../introduction/index.mdx) | How Horizon is structured. | -| [Resources](../resources/index.mdx) | Descriptions of resources and their endpoints. | -| [Aggregations](../aggregations/index.mdx) | Descriptions of specialized endpoints. | -| [Errors](../errors/index.mdx) | Potential errors and what they mean. | - - +Hi, I'm Horizon diff --git a/platforms/horizon/resources/assets/object.mdx b/platforms/horizon/resources/assets/object.mdx index 9bdd3cd8c..d25836917 100644 --- a/platforms/horizon/resources/assets/object.mdx +++ b/platforms/horizon/resources/assets/object.mdx @@ -66,7 +66,7 @@ When Horizon returns information about an asset, it uses the following format: - If set to `true`, this account can freeze the balance of a holder of an asset issued by this account. - paging_token - number - - A cursor value for use in [pagination](../../introduction/pagination/index.mdx). + - A cursor value for use in [pagination](../../structure/pagination/index.mdx). diff --git a/platforms/horizon/resources/claimablebalances/object.mdx b/platforms/horizon/resources/claimablebalances/object.mdx index e745088d0..cbf4516b3 100644 --- a/platforms/horizon/resources/claimablebalances/object.mdx +++ b/platforms/horizon/resources/claimablebalances/object.mdx @@ -18,7 +18,7 @@ When Horizon returns information about a claimable balance, it uses the followin - A unique identifier for this claimable balance. - paging_token - number - - A cursor value for use in [pagination](../../introduction/pagination/index.mdx). + - A cursor value for use in [pagination](../../structure/pagination/index.mdx). - asset - string - The asset available to be claimed in the [SEP-11 form](https://github.com/stellar/stellar-protocol/blob/0c675fb3a482183dcf0f5db79c12685acf82a95c/ecosystem/sep-0011.md#values) `asset_code:issuing_address` or `native` (for XLM) diff --git a/platforms/horizon/resources/ledgers/object.mdx b/platforms/horizon/resources/ledgers/object.mdx index 1bb2e9fc1..5758fc7f7 100644 --- a/platforms/horizon/resources/ledgers/object.mdx +++ b/platforms/horizon/resources/ledgers/object.mdx @@ -18,7 +18,7 @@ When Horizon returns information about a ledger, it uses the following format: - A unique identifier for this ledger. - paging_token - number - - A cursor value for use in [pagination](../../introduction/pagination/index.mdx). + - A cursor value for use in [pagination](../../structure/pagination/index.mdx). - hash - string - A hex-encoded SHA-256 hash of this ledger’s [XDR](/docs/encyclopedia/xdr)-encoded form. diff --git a/platforms/horizon/resources/offers/object.mdx b/platforms/horizon/resources/offers/object.mdx index 8d8f92b9d..41f0e3baa 100644 --- a/platforms/horizon/resources/offers/object.mdx +++ b/platforms/horizon/resources/offers/object.mdx @@ -18,7 +18,7 @@ When Horizon returns information about an offer, it uses the following format: - A unique identifier for this offer. - paging_token - number - - A cursor value for use in [pagination](../../introduction/pagination/index.mdx). + - A cursor value for use in [pagination](../../structure/pagination/index.mdx). - seller - string - The account ID of the account making this offer. diff --git a/platforms/horizon/resources/operations/object/index.mdx b/platforms/horizon/resources/operations/object/index.mdx index d78153200..64d8c3451 100644 --- a/platforms/horizon/resources/operations/object/index.mdx +++ b/platforms/horizon/resources/operations/object/index.mdx @@ -20,7 +20,7 @@ See the [generic Operation errors](../../../errors/result-codes/operations.mdx). - The operation's ID number. - paging_token - string - - A cursor value for use in [pagination](../../../introduction/pagination/index.mdx). + - A cursor value for use in [pagination](../../../structure/pagination/index.mdx). - type_i - number - A number indicating the operation type. diff --git a/platforms/horizon/resources/trades/object.mdx b/platforms/horizon/resources/trades/object.mdx index 93599a636..6190bde71 100644 --- a/platforms/horizon/resources/trades/object.mdx +++ b/platforms/horizon/resources/trades/object.mdx @@ -18,7 +18,7 @@ When Horizon returns information about a trade, it uses the following format: - A unique identifier for this trade. - paging_token - number - - A cursor value for use in [pagination](../../introduction/pagination/index.mdx). + - A cursor value for use in [pagination](../../structure/pagination/index.mdx). - ledger_close_time - string - An ISO 8601 formatted string of when the ledger with this trade was closed. diff --git a/platforms/horizon/resources/transactions/object.mdx b/platforms/horizon/resources/transactions/object.mdx index 4adbf9dad..f90c1862a 100644 --- a/platforms/horizon/resources/transactions/object.mdx +++ b/platforms/horizon/resources/transactions/object.mdx @@ -18,7 +18,7 @@ When Horizon returns information about a transaction, it uses the following form - A unique identifier for this transaction. - paging_token - number - - A cursor value for use in [pagination](../../introduction/pagination/index.mdx). + - A cursor value for use in [pagination](../../structure/pagination/index.mdx). - successful - boolean - Indicates if this transaction was successful or not. diff --git a/platforms/horizon/structure/_category_.json b/platforms/horizon/structure/_category_.json new file mode 100644 index 000000000..4fd1e124f --- /dev/null +++ b/platforms/horizon/structure/_category_.json @@ -0,0 +1,4 @@ +{ + "position": 15, + "label": "Structure" +} diff --git a/platforms/horizon/structure/index.mdx b/platforms/horizon/structure/index.mdx new file mode 100644 index 000000000..436ebc944 --- /dev/null +++ b/platforms/horizon/structure/index.mdx @@ -0,0 +1,30 @@ +--- +title: Horizon API Reference +sidebar_position: 10 +slug: /horizon +description: Horizon is an API for interacting with the Stellar network. +--- + +import { MethodTable } from "@site/src/components/MethodTable"; + +Horizon is an API for interacting with the Stellar network. + +This API serves the bridge between apps and [Stellar Core](/docs/run-core-node). Projects like wallets, decentralized exchanges, and asset issuers use Horizon to submit transactions, query an account balance, or stream events like transactions to an account. + +Horizon is a [RESTful API](https://en.wikipedia.org/wiki/Representational_state_transfer) and can be accessed via cURL, a browser, or one of the [Stellar SDKs](/docs/tools/sdks). To reduce the complexity of your project, we recommend you use an SDK instead of making direct API calls. + +The Stellar Development Foundation (SDF) runs two instances of Horizon: + +- [https://horizon.stellar.org/](https://horizon.stellar.org/) for interacting with the public network +- [https://horizon-testnet.stellar.org/](https://horizon-testnet.stellar.org/) for interacting with the [testnet](/docs/fundamentals-and-concepts/networks) + + + +| | | +| --- | --- | +| [Structure](../structure/index.mdx) | How Horizon is structured. | +| [Resources](../resources/index.mdx) | Descriptions of resources and their endpoints. | +| [Aggregations](../aggregations/index.mdx) | Descriptions of specialized endpoints. | +| [Errors](../errors/index.mdx) | Potential errors and what they mean. | + + diff --git a/platforms/horizon/introduction/pagination/_category_.json b/platforms/horizon/structure/pagination/_category_.json similarity index 100% rename from platforms/horizon/introduction/pagination/_category_.json rename to platforms/horizon/structure/pagination/_category_.json diff --git a/platforms/horizon/introduction/pagination/index.mdx b/platforms/horizon/structure/pagination/index.mdx similarity index 100% rename from platforms/horizon/introduction/pagination/index.mdx rename to platforms/horizon/structure/pagination/index.mdx diff --git a/platforms/horizon/introduction/pagination/page-arguments.mdx b/platforms/horizon/structure/pagination/page-arguments.mdx similarity index 100% rename from platforms/horizon/introduction/pagination/page-arguments.mdx rename to platforms/horizon/structure/pagination/page-arguments.mdx diff --git a/platforms/horizon/introduction/rate-limiting.mdx b/platforms/horizon/structure/rate-limiting.mdx similarity index 100% rename from platforms/horizon/introduction/rate-limiting.mdx rename to platforms/horizon/structure/rate-limiting.mdx diff --git a/platforms/horizon/introduction/response-format.mdx b/platforms/horizon/structure/response-format.mdx similarity index 100% rename from platforms/horizon/introduction/response-format.mdx rename to platforms/horizon/structure/response-format.mdx diff --git a/platforms/horizon/introduction/streaming.mdx b/platforms/horizon/structure/streaming.mdx similarity index 100% rename from platforms/horizon/introduction/streaming.mdx rename to platforms/horizon/structure/streaming.mdx diff --git a/platforms/horizon/introduction/xdr.mdx b/platforms/horizon/structure/xdr.mdx similarity index 100% rename from platforms/horizon/introduction/xdr.mdx rename to platforms/horizon/structure/xdr.mdx From 64835d8afa9eb3572b2553f2434a096635d862d9 Mon Sep 17 00:00:00 2001 From: Elliot Voris Date: Wed, 28 Feb 2024 16:29:12 -0600 Subject: [PATCH 099/133] fix broken links --- docs/encyclopedia/anchors.mdx | 2 +- platforms/anchor-platform/admin-guide/index.mdx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/encyclopedia/anchors.mdx b/docs/encyclopedia/anchors.mdx index 5dbf016cb..64544d2c3 100644 --- a/docs/encyclopedia/anchors.mdx +++ b/docs/encyclopedia/anchors.mdx @@ -8,7 +8,7 @@ Stellar has anchor services operating worldwide. View the [Anchor Directory](htt Anchors can issue their own assets on the Stellar network, or they can honor assets that already exist. -You can set up an anchor by using the SDF-maintained [Anchor Platform](../anchoring-assets/anchor-platform), which is the easiest way to deploy an anchor service compatible with Stellar Ecosystem Proposals (SEPs). +You can set up an anchor by using the SDF-maintained [Anchor Platform](/platforms/anchor-platform), which is the easiest way to deploy an anchor service compatible with Stellar Ecosystem Proposals (SEPs). Learn how to integrate anchor services into your blockchain-based application by viewing the [Build Apps section](../building-apps/overview.mdx). If you’re looking specifically for MoneyGram Access, see the Integrate with MoneyGram Access tutorial. diff --git a/platforms/anchor-platform/admin-guide/index.mdx b/platforms/anchor-platform/admin-guide/index.mdx index 2ac42fbb7..a69a3e863 100644 --- a/platforms/anchor-platform/admin-guide/index.mdx +++ b/platforms/anchor-platform/admin-guide/index.mdx @@ -3,7 +3,7 @@ title: "Overview" sidebar_position: 10 --- -The Anchor Platform is the easiest and fastest way to deploy [anchor services](../../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/encyclopedia/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. From 69e252e122a846eadcde9205d64cc978277c0d01 Mon Sep 17 00:00:00 2001 From: Elliot Voris Date: Wed, 28 Feb 2024 16:36:39 -0600 Subject: [PATCH 100/133] use the default DocItem component for soroban-rpc pages, too --- src/theme/ApiItem/index.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/theme/ApiItem/index.js b/src/theme/ApiItem/index.js index 306a56749..afe0cabe5 100644 --- a/src/theme/ApiItem/index.js +++ b/src/theme/ApiItem/index.js @@ -6,12 +6,13 @@ export default function ApiItemWrapper(props) { if ( props.location?.pathname?.includes('admin-guide') || props.location?.pathname?.startsWith('/platforms/hubble') + || props.location?.pathname?.startsWith('/platforms/soroban-rpc') ) { return ( <> - ) + ); } return ( <> From abbcc22851e0b0666c9249c3d7d9202f0128aeab Mon Sep 17 00:00:00 2001 From: Bri <92327786+briwylde08@users.noreply.github.com> Date: Wed, 28 Feb 2024 16:09:37 -0700 Subject: [PATCH 101/133] Add RPC providers and usage to RPC section --- platforms/soroban-rpc/admin-guide.mdx | 640 ++++++++++++++++++ platforms/soroban-rpc/intro/_.category.json | 4 + platforms/soroban-rpc/intro/index.mdx | 7 + platforms/soroban-rpc/introduction/README.mdx | 2 +- platforms/soroban-rpc/rpc-providers.mdx | 41 ++ 5 files changed, 693 insertions(+), 1 deletion(-) create mode 100644 platforms/soroban-rpc/admin-guide.mdx create mode 100644 platforms/soroban-rpc/intro/_.category.json create mode 100644 platforms/soroban-rpc/intro/index.mdx create mode 100644 platforms/soroban-rpc/rpc-providers.mdx diff --git a/platforms/soroban-rpc/admin-guide.mdx b/platforms/soroban-rpc/admin-guide.mdx new file mode 100644 index 000000000..265616b65 --- /dev/null +++ b/platforms/soroban-rpc/admin-guide.mdx @@ -0,0 +1,640 @@ +--- +sidebar_position: 20 +title: Admin Guide +--- + +The RPC service allows you to communicate directly with Soroban via a [JSON RPC interface](https://soroban.stellar.org/api/). + +For example, you can build an application and have it [send a transaction](https://soroban.stellar.org/api/methods/sendTransaction), [get ledger](https://soroban.stellar.org/api/methods/getLedgerEntries) and [event data](https://soroban.stellar.org/api/methods/getEvents), or [simulate transactions](https://soroban.stellar.org/api/methods/simulateTransaction). + +Alternatively, you can use one of Soroban's [client SDKs](https://soroban.stellar.org/docs/category/sdks), such as the [stellar-sdk](https://soroban.stellar.org/docs/reference/sdks/js), which will need to communicate with an RPC instance to access the network. + +## Run Your Own Instance for Development + +For local development, we recommend [downloading](https://hub.docker.com/r/stellar/quickstart) and running a local instance via [Docker Quickstart](https://github.com/stellar/quickstart) and running a standalone network or communicating with a live development [Testnet]. + +:::caution + +We don't recommend running the Quickstart image in production. See the [deploy your own RPC instance](#deploy-your-own-rpc-instance) section. + +::: + +The Quickstart image with the RPC service can run on a standard laptop with 8GB of RAM and has minimal storage and CPU requirements. It is a single container that runs everything you need to test against a fully featured network. It contains: + +- [Stellar Core] - Node software that runs the network, coordinates consensus, and finalizes ledgers. +- [Soroban RPC] server - JSON RPC server for interacting with Soroban contracts. +- [Horizon server] - HTTP API for accessing ledger state and historical transactions. +- [Friendbot server] - HTTP API for creating and funding new accounts on test networks. + +[Stellar Core]: https://github.com/stellar/stellar-core +[Soroban RPC]: https://github.com/stellar/soroban-rpc/tree/main/cmd/soroban-rpc +[Horizon server]: https://github.com/stellar/go/tree/master/services/horizon +[Friendbot server]: https://github.com/stellar/go/tree/master/services/friendbot + +:::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. + +::: + +### Standalone + +To run a local standalone network with the Stellar Quickstart Docker image, run the following command: + +```bash +docker run --rm -it \ + -p 8000:8000 \ + --name stellar \ + stellar/quickstart:testing \ + --standalone \ + --enable-soroban-rpc +``` + +Once the image is started, you can check its status by querying the Horizon API: + +```bash +curl "http://localhost:8000" +``` + +You can interact with this local node using the Soroban CLI. First, add it as a configured network: + +```bash +soroban config network add standalone \ + --rpc-url "http://localhost:8000/soroban/rpc" \ + --network-passphrase "Standalone Network ; February 2017" +``` + +Then generate a unique identity (public/private keypair) to use with it: + +```bash +soroban keys generate alice +``` + +:::tip Test-only Identities + +It's a good practice to never use the same keys for testing and development that you use for the public Stellar network. Generate new keys for testing and development and avoid using them for other purposes. + +::: + +Finally, fund your new account on the local sandbox environment by making a request to the local Friendbot: + +```bash +curl "http://localhost:8000/friendbot?addr=$(soroban keys address alice)" +``` + +:::tip Command Expansion `$(...)` + +This uses [command expansion](https://www.gnu.org/software/bash/manual/html_node/Command-Substitution.html), which only works with bash-compatible shells. If you are using Windows or some other shell, you will need to copy the output of `soroban config…` and paste it into the `curl` command, or figure out how command expansion works in your shell. + +::: + +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: + +```bash +soroban contract deploy \ + --wasm target/wasm32-unknown-unknown/release/[project_name].wasm \ + --source alice \ + --network standalone +``` + +Or invoking a contract: + +```bash +soroban contract invoke \ + --id C... \ + --source alice \ + --network standalone \ + -- \ + hello \ + --to friend +``` + +When you're done with your Standalone node, you can close it with ctrlc (not cmd). This will fully remove the container (that's what the `--rm` option to the `docker` command does), which means you will need to re-deploy your contract and re-fund your identity the next time you start it. If you work with local nodes often, you may want to create scripts to make these initialization steps easier. For example, see the [example dapp's `initialize.sh`](https://github.com/stellar/soroban-example-dapp/blob/abdac3afdb6c410cc426831ece93371c1a27347d/initialize.sh). + +[Testnet]: https://soroban.stellar.org/docs/reference/networks +[Run on Sandbox]: https://soroban.stellar.org/docs/getting-started/hello-world#run-on-sandbox + +### Testnet + +Running your own Testnet node works much the same way as running a Quickstart node, as described above. You will need minor modifications for a few commands. First, you need `--testnet` for the docker instance, rather than `--standalone`: + +```bash +docker run --rm -it \ + -p 8000:8000 \ + --name stellar \ + stellar/quickstart:testing \ + --testnet \ + --enable-soroban-rpc +``` + +And you'll want to configure it for use with the `--network` flag in Soroban CLI: + +```bash +soroban config network add testnet \ + --rpc-url "http://localhost:8000/soroban/rpc" \ + --network-passphrase "Test SDF Network ; September 2015" +``` + +Replace `testnet` in that command with the name of your choice if you want to leave the name `testnet` available for use with a public RPC provider (see below). Or make clever use of `--global` configs for public providers and local configs (made with the undecorated `network add` command above) for local nodes. + +The `alice` identity suggested for your Standalone network will still work here, since it's just a public/private keypair, but you'll need to remember to fund it for the Testnet network: + +```bash +curl "https://friendbot.stellar.org/?addr=$(soroban keys address alice)" +``` + +Now you can replace `--network standalone` with `--network testnet` (or whatever you named it) in all your commands that need a network, like the `deploy` and `invoke` commands shown above. + +### Futurenet + +You can also develop your Soroban contracts against the Futurenet network. You may choose this if you want to test more bleeding-edge features that haven't made it to the Testnet yet. Running your own Futurenet node works just like running a Testnet node, as described above. + +```bash +docker run --rm -it \ + -p 8000:8000 \ + --name stellar \ + stellar/quickstart:soroban-dev \ + --futurenet \ + --enable-soroban-rpc +``` + +And you'll want to configure it for use with the `--network` flag in Soroban CLI: + +```bash +soroban config network add futurenet \ + --rpc-url "http://localhost:8000/soroban/rpc" \ + --network-passphrase "Test SDF Future Network ; October 2022" +``` + +Replace `futurenet` in that command with the name of your choice, if you want to leave the name `futurenet` available for use with a public RPC provider (see below). Or make clever use of `--global` configs for public providers and local configs (made with the undecorated `network add` command above) for local nodes. + +The `alice` identity suggested for your Standalone and Testnet networks will still work here, since it's just a public/private keypair, but you'll need to remember to fund it for the Futurenet network: + +```bash +curl "https://friendbot-futurenet.stellar.org/?addr=$(soroban keys address alice)" +``` + +Now you can replace `--network standalone` with `--network futurenet` (or whatever you named it) in all your commands that need a network, like the `deploy` and `invoke` commands shown above. + +## Deploy Your Own RPC Instance + +We recommend the following ways to deploy your own RPC instance: + +1. Deploy to Kubernetes using [Helm](https://helm.sh/docs/intro/install/) +2. Run the [soroban-rpc docker image](https://hub.docker.com/r/stellar/soroban-rpc) directly + +### Kubernetes With Helm + +If your deployment environment includes Kubernetes infrastructure, this is the preferred way to deploy your RPC instance. Here’s what you need to do: + +1. Install the [Helm CLI tool](https://helm.sh/docs/intro/install/) (minimum version 3) + +2. Add the Stellar repo to the helm client's list of repos, update it to the latest published versions + +```bash +helm repo add stellar https://helm.stellar.org/charts +helm repo update stellar +``` + +3. Deploy the RPC instance to Kubernetes using [our Helm chart](https://github.com/stellar/helm-charts/blob/main/charts/soroban-rpc): + +```bash +helm install my-rpc stellar/soroban-rpc \ +--namespace my-rpc-namespace-on-cluster \ +--set global.image.sorobanRpc.tag=20.0.0-rc4-40 \ +--set sorobanRpc.ingress.host=myrpc.example.org \ +--set sorobanRpc.persistence.enabled=true \ +--set sorobanRpc.persistence.storageClass=default \ +--set sorobanRpc.resources.limits.cpu=1 \ +--set sorobanRpc.resources.limits.memory=2560Mi +``` + +This example of Helm chart usage highlights some key aspects: + +- Set the `global.image.sorobanRpc.tag` to a tag from the [soroban-rpc dockerhub repo](https://hub.docker.com/r/stellar/soroban-rpc) for the image version you want to run. Refer to [the releases page](https://soroban.stellar.org/docs/releases) to find the correct tag for the Soroban release you are running. + +- The RPC server stores a revolving window of recent data from network ledgers to disk. The size of that data varies depending on the network and its transaction volumes, but it has an estimated range between 10 to 100 MB. To ensure the RPC pod has consistent access to disk storage space and read/write throughput, this example demonstrates how to optionally enable the Helm chart deployment to use a `PersistentVolumeClaim` (PVC) of 100MB from `default` storage class on Kubernetes by enabling these persistence parameters: + +```bash +--set sorobanRpc.persistence.enabled=true +--set sorobanRpc.persistence.storageClass=default +``` + +By default, this is disabled (`sorobanRpc.persistence.enabled=false`) and the RPC deployment will use ephemeral pod storage via `emptyDir`, which will likely be adequate for `futurenet` and `testnet` transaction volumes. However, it's worth highlighting the trade-off of not having storage limitations of the cluster enforced (likely below 100MB). + +- Network presets are defined in [`values.yaml`](https://github.com/stellar/helm-charts/blob/main/charts/soroban-rpc/values.yaml), which currently sets network configuration specific to `futurenet`. You can override this default and use other "canned" `values.yaml` files which have been published for other networks. For example, there is a [`values-testnet.yaml`](https://github.com/stellar/helm-charts/blob/main/charts/soroban-rpc/values-testnet.yaml) file to configure the deployment of the RPC server with the `testnet` network. Include this `--values` parameter in your `helm install` to specify the desired network: + +```bash +--values https://raw.githubusercontent.com/stellar/helm-charts/main/charts/soroban-rpc/values-testnet.yaml +``` + +- Configuring RPC to use other custom networks can be accomplished by downloading the [`values.yaml`](https://github.com/stellar/helm-charts/blob/main/charts/soroban-rpc/values.yaml) locally and updating settings under `sorobanRpc.sorobanRpcConfig` and `sorobanRpc.coreConfig`. This is applicable when connecting to specific networks other than the existing files like `values.yaml` available, such as your own standalone network. Include the local `values.yaml` in `helm install`: + +```bash +--values my-custom-values.yaml +``` + +- Verify the `LimitRange` defaults in the target namespace in Kubernetes for deployment. `LimitRange` is optional on the cluster config. If defined, ensure that the defaults provide at least minimum RPC server resource limits of `2.5Gi` of memory and `1` CPU. Otherwise, include the limits explicitly on the `helm install` command via the `sorobanRpc.resources.limits.*` parameters: + +```bash +--set sorobanRpc.resources.limits.cpu=1 +--set sorobanRpc.resources.limits.memory=2560Mi +``` + +Even if you're not deploying Soroban RPC using Kubernetes, the manifests generated by the charts may still be a good reference for showing how to configure and run Soroban RPC as a docker container. Just run the `helm template` command to print the container configuration to screen: + +```bash +helm template my-rpc stellar/soroban-rpc +``` + +### Docker Image + +If using Kubernetes is not an option, this is the preferred way to deploy your own RPC instance. + +:::caution + +Although we have a [Quickstart Image](https://github.com/stellar/quickstart), it's for local development and testing only. It is not suitable for production-grade deployments. + +::: + +Here's how to run the [soroban-rpc docker image](https://hub.docker.com/r/stellar/soroban-rpc): + +1. Pull the image at the version you'd like to run from [the tags](https://hub.docker.com/r/stellar/soroban-rpc/tags): + +```bash +docker pull stellar/soroban-rpc +``` + +2. Create a configuration file for [Stellar Core](https://github.com/stellar/stellar-core). Here is a sample configuration file for Testnet: + +```toml +HTTP_PORT=11626 +PUBLIC_HTTP_PORT=false + +NETWORK_PASSPHRASE="Test SDF Network ; September 2015" + +DATABASE="sqlite3://stellar.db" + +# Stellar Testnet Validators +[[HOME_DOMAINS]] +HOME_DOMAIN="testnet.stellar.org" +QUALITY="HIGH" + +[[VALIDATORS]] +NAME="sdftest1" +HOME_DOMAIN="testnet.stellar.org" +PUBLIC_KEY="GDKXE2OZMJIPOSLNA6N6F2BVCI3O777I2OOC4BV7VOYUEHYX7RTRYA7Y" +ADDRESS="core-testnet1.stellar.org" +HISTORY="curl -sf http://history.stellar.org/prd/core-testnet/core_testnet_001/{0} -o {1}" + +[[VALIDATORS]] +NAME="sdftest2" +HOME_DOMAIN="testnet.stellar.org" +PUBLIC_KEY="GCUCJTIYXSOXKBSNFGNFWW5MUQ54HKRPGJUTQFJ5RQXZXNOLNXYDHRAP" +ADDRESS="core-testnet2.stellar.org" +HISTORY="curl -sf http://history.stellar.org/prd/core-testnet/core_testnet_002/{0} -o {1}" + +[[VALIDATORS]] +NAME="sdftest3" +HOME_DOMAIN="testnet.stellar.org" +PUBLIC_KEY="GC2V2EFSXN6SQTWVYA5EPJPBWWIMSD2XQNKUOHGEKB535AQE2I6IXV2Z" +ADDRESS="core-testnet3.stellar.org" +HISTORY="curl -sf http://history.stellar.org/prd/core-testnet/core_testnet_003/{0} -o {1}" +``` + +3. Run the image, making sure to [mount a volume](https://docs.docker.com/storage/volumes/) to your container where the above configuration is stored. An example for Testnet: + +```bash +docker run -p 8001:8001 -p 8000:8000 \ +-v :/config stellar/soroban-rpc \ +--captive-core-config-path="/config/" \ +--captive-core-storage-path="/var/lib/stellar/captive-core" \ +--captive-core-use-db=true \ +--stellar-core-binary-path="/usr/bin/stellar-core" \ +--db-path="/var/lib/stellar/soroban-rpc-db.sqlite" \ +--stellar-captive-core-http-port=11626 \ +--friendbot-url="https://friendbot-testnet.stellar.org/" \ +--network-passphrase="Test SDF Network ; September 2015" \ +--history-archive-urls="https://history.stellar.org/prd/core-testnet/core_testnet_001" \ +--admin-endpoint="0.0.0.0:8001" \ +--endpoint="0.0.0.0:8000" +``` + +#### Configuration + +For production, we recommend running Soroban RPC with a [TOML](https://toml.io/en/) configuration file rather than CLI flags. This is similar to creating a configuration file for Stellar-Core as we did previously. For example, using [our docker image](https://hub.docker.com/r/stellar/soroban-rpc): + +```bash +docker run -p 8001:8001 -p 8000:8000 \ +-v :/config stellar/soroban-rpc \ +--config-path +``` + +You can use Soroban RPC itself to generate a starter configuration file: + +```bash +docker run stellar/soroban-rpc gen-config-file > soroban-rpc-config.toml +``` + +The resulting configuration should look like this: + +```toml +# Admin endpoint to listen and serve on. WARNING: this should not be accessible +# from the Internet and does not use TLS. "" (default) disables the admin server +# ADMIN_ENDPOINT = "0.0.0.0:8001" + +# path to additional configuration for the Stellar Core configuration file used +# by captive core. It must, at least, include enough details to define a quorum +# set +# CAPTIVE_CORE_CONFIG_PATH = "" + +# Storage location for Captive Core bucket data +CAPTIVE_CORE_STORAGE_PATH = "/" + +# informs captive core to use on disk mode. the db will by default be created in +# current runtime directory of soroban-rpc, unless DATABASE= setting is +# present in captive core config file. +# CAPTIVE_CORE_USE_DB = false + +# establishes how many ledgers exist between checkpoints, do NOT change this +# unless you really know what you are doing +CHECKPOINT_FREQUENCY = 64 + +# SQLite DB path +DB_PATH = "soroban_rpc.sqlite" + +# Default cap on the amount of events included in a single getEvents response +DEFAULT_EVENTS_LIMIT = 100 + +# Endpoint to listen and serve on +ENDPOINT = "0.0.0.0:8000" + +# configures the event retention window expressed in number of ledgers, the +# default value is 17280 which corresponds to about 24 hours of history +EVENT_RETENTION_WINDOW = 17280 + +# The friendbot URL to be returned by getNetwork endpoint +# FRIENDBOT_URL = "" + +# comma-separated list of stellar history archives to connect with +HISTORY_ARCHIVE_URLS = [] + +# Ingestion Timeout when bootstrapping data (checkpoint and in-memory +# initialization) and preparing ledger reads +INGESTION_TIMEOUT = "30m0s" + +# format used for output logs (json or text) +# LOG_FORMAT = "text" + +# minimum log severity (debug, info, warn, error) to log +LOG_LEVEL = "info" + +# Maximum amount of events allowed in a single getEvents response +MAX_EVENTS_LIMIT = 10000 + +# The maximum duration of time allowed for processing a getEvents request. When +# that time elapses, the rpc server would return -32001 and abort the request's +# execution +MAX_GET_EVENTS_EXECUTION_DURATION = "10s" + +# The maximum duration of time allowed for processing a getHealth request. When +# that time elapses, the rpc server would return -32001 and abort the request's +# execution +MAX_GET_HEALTH_EXECUTION_DURATION = "5s" + +# The maximum duration of time allowed for processing a getLatestLedger request. +# When that time elapses, the rpc server would return -32001 and abort the +# request's execution +MAX_GET_LATEST_LEDGER_EXECUTION_DURATION = "5s" + +# The maximum duration of time allowed for processing a getLedgerEntries +# request. When that time elapses, the rpc server would return -32001 and abort +# the request's execution +MAX_GET_LEDGER_ENTRIES_EXECUTION_DURATION = "5s" + +# The maximum duration of time allowed for processing a getNetwork request. When +# that time elapses, the rpc server would return -32001 and abort the request's +# execution +MAX_GET_NETWORK_EXECUTION_DURATION = "5s" + +# The maximum duration of time allowed for processing a getTransaction request. +# When that time elapses, the rpc server would return -32001 and abort the +# request's execution +MAX_GET_TRANSACTION_EXECUTION_DURATION = "5s" + +# maximum ledger latency (i.e. time elapsed since the last known ledger closing +# time) considered to be healthy (used for the /health endpoint) +MAX_HEALTHY_LEDGER_LATENCY = "30s" + +# The max request execution duration is the predefined maximum duration of time +# allowed for processing a request. When that time elapses, the server would +# return 504 and abort the request's execution +MAX_REQUEST_EXECUTION_DURATION = "25s" + +# The maximum duration of time allowed for processing a sendTransaction request. +# When that time elapses, the rpc server would return -32001 and abort the +# request's execution +MAX_SEND_TRANSACTION_EXECUTION_DURATION = "15s" + +# The maximum duration of time allowed for processing a simulateTransaction +# request. When that time elapses, the rpc server would return -32001 and abort +# the request's execution +MAX_SIMULATE_TRANSACTION_EXECUTION_DURATION = "15s" + +# Network passphrase of the Stellar network transactions should be signed for. +# Commonly used values are "Test SDF Future Network ; October 2022", "Test SDF +# Network ; September 2015" and "Public Global Stellar Network ; September 2015" +# NETWORK_PASSPHRASE = "" + +# Number of workers (read goroutines) used to compute preflights for the +# simulateTransaction endpoint. Defaults to the number of CPUs. +PREFLIGHT_WORKER_COUNT = 16 + +# Maximum number of outstanding preflight requests for the simulateTransaction +# endpoint. Defaults to the number of CPUs. +PREFLIGHT_WORKER_QUEUE_SIZE = 16 + +# Maximum number of outstanding GetEvents requests +REQUEST_BACKLOG_GET_EVENTS_QUEUE_LIMIT = 1000 + +# Maximum number of outstanding GetHealth requests +REQUEST_BACKLOG_GET_HEALTH_QUEUE_LIMIT = 1000 + +# Maximum number of outstanding GetLatestsLedger requests +REQUEST_BACKLOG_GET_LATEST_LEDGER_QUEUE_LIMIT = 1000 + +# Maximum number of outstanding GetLedgerEntries requests +REQUEST_BACKLOG_GET_LEDGER_ENTRIES_QUEUE_LIMIT = 1000 + +# Maximum number of outstanding GetNetwork requests +REQUEST_BACKLOG_GET_NETWORK_QUEUE_LIMIT = 1000 + +# Maximum number of outstanding GetTransaction requests +REQUEST_BACKLOG_GET_TRANSACTION_QUEUE_LIMIT = 1000 + +# Maximum number of outstanding requests +REQUEST_BACKLOG_GLOBAL_QUEUE_LIMIT = 5000 + +# Maximum number of outstanding SendTransaction requests +REQUEST_BACKLOG_SEND_TRANSACTION_QUEUE_LIMIT = 500 + +# Maximum number of outstanding SimulateTransaction requests +REQUEST_BACKLOG_SIMULATE_TRANSACTION_QUEUE_LIMIT = 100 + +# The request execution warning threshold is the predetermined maximum duration +# of time that a request can take to be processed before a warning would be +# generated +REQUEST_EXECUTION_WARNING_THRESHOLD = "5s" + +# HTTP port for Captive Core to listen on (0 disables the HTTP server) +STELLAR_CAPTIVE_CORE_HTTP_PORT = 11626 + +# path to stellar core binary +STELLAR_CORE_BINARY_PATH = "/usr/bin/stellar-core" + +# Timeout used when submitting requests to stellar-core +STELLAR_CORE_TIMEOUT = "2s" + +# URL used to query Stellar Core (local captive core by default) +# STELLAR_CORE_URL = "" + +# Enable strict toml configuration file parsing. This will prevent unknown +# fields in the config toml from being parsed. +# STRICT = false + +# configures the transaction retention window expressed in number of ledgers, +# the default value is 1440 which corresponds to about 2 hours of history +TRANSACTION_RETENTION_WINDOW = 1440 +``` + +Note that the above generated configuration contains the default values and you need to substitute them with proper values to run the image. + +### Build From Source + +Instructions for building Soroban RPC from source can be found [here](https://github.com/stellar/soroban-rpc/blob/main/cmd/soroban-rpc/README.md). + +### Hardware Requirements + +For deployments expecting up to 1000 requests per second to Soroban RPC, we recommend at least 4GB of RAM and at least a dual core CPU with a 2.4GHz clock speed. + +For deployments expecting 1000-10000+ requests per second to Soroban RPC, we recommend at least 8GB of RAM and at least a quad core CPU with a 2.4GHz clock speed. + +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: + +```bash +soroban config network add --global testnet \ + --rpc-url https://soroban-testnet.stellar.org:443 \ + --network-passphrase 'Test SDF Network ; September 2015' +``` + +And fund your accounts/identities with the publicly hosted Friendbot: + +```bash +curl "https://friendbot.stellar.org/?addr=$(soroban keys address alice)" +``` + +See the tip above about command expansion (that's the note about `$(...)`) if you're not using a bash-based shell. + +:::caution + +When interacting with the network in production you should run your own soroban-rpc or use a third-party infrastructure provider. + +::: + +## Verify the RPC Instance + +After installation, it will be worthwhile to verify the installation of Soroban RPC is healthy. There are two methods: + +1. Access the health status endpoint of the JSON RPC service using an HTTP client +2. Use our pre-built [System Test Docker image](https://hub.docker.com/r/stellar/system-test/tags) as a tool to run a set of live tests against Soroban RPC + +### Health Status Endpoint + +If you send a JSON RPC HTTP request to your running instance of Soroban RPC: + +```bash +curl --location 'http://localhost:8000' \ +--header 'Content-Type: application/json' \ +--data '{ +"jsonrpc":"2.0", +"id":2, +"method":"getHealth" +}' +``` + +You should get back an HTTP 200 status response if the instance is healthy: + +```json +{ + "jsonrpc": "2.0", + "id": 2, + "result": { + "status": "healthy" + } +} +``` + +### System Test Docker Image + +This test will compile, deploy, and invoke example contracts to the network to which your RPC instance is connected to. Here is an example for verifying your instance if it is connected to Testnet: + +```bash +docker run --rm -t --name e2e_test \ +docker.io/stellar/system-test:soroban-preview11 \ +--VerboseOutput true \ +--TargetNetworkRPCURL \ +--TargetNetworkPassphrase "Test SDF Network ; September 2015" \ +--TargetNetworkTestAccountSecret \ +--TargetNetworkTestAccountPublic \ +--SorobanExamplesGitHash v20.0.0 +``` + +Make sure you configure the system test correctly: + +- Use a published [system test tag](https://hub.docker.com/r/stellar/system-test/tags) that aligns with the deployed Soroban RPC release version. For each release, there will be two tags published for different CPU architectures. Make sure to use the tag that matches your host machine's CPU architecture: + - `docker.io/stellar/system-test:` for machines with AMD/Intel-based CPUs + - `docker.io/stellar/system-test:-arm64` for machines with ARM CPUs +- Set `--TargetNetworkRPCURL` to your RPC HTTP URL +- Set `--TargetNetworkPassphrase` to the same network your RPC instance is connected to: + - `"Test SDF Network ; September 2015"` for Testnet + - `"Test SDF Future Network ; October 2022"` for Futurenet +- Set `--SorobanExamplesGitHash` to the corresponding release tag on the [Soroban Examples repo](https://github.com/stellar/soroban-examples/tags) +- Create and fund an account to be used for test purposes on the same network your RPC instance is connected to + - This account needs a small XLM balance to submit Soroban transactions + - Tests can be run repeatedly with the same account + - Set `--TargetNetworkTestAccountPublic` to the `StrKey` encoded public key of the account + - Set `--TargetNetworkTestAccountSecret` to the `StrKey` encoded secret for the account + +## Monitor the RPC Instance + +If you run Soroban RPC with the `--admin-endpoint` configured and [expose the port](https://docs.docker.com/engine/reference/commandline/run/#publish), you'll have access to the [Prometheus](https://prometheus.io/) metrics via the `/metrics` endpoint. For example, if the admin endpoint is `0.0.0.0:8001` and you're running the Soroban RPC Docker image: + +```bash +curl localhost:8001/metrics +``` + +You will see many of the default Go and Process metrics (prefixed by `go_` and `process_` respectively) such as memory usage, CPU usage, number of threads, etc. + +We also expose metrics related to Soroban RPC (prefixed by `soroban_rpc`). There are many, but some notable ones are: + +- `soroban_rpc_transactions_count` - count of transactions ingested with a sliding window of 10m +- `soroban_rpc_events_count` - count of events ingested with a sliding window of 10m +- `soroban_rpc_ingest_local_latest_ledger` - latest ledger ingested +- `soroban_rpc_db_round_trip_time_seconds` - time required to run `SELECT 1` query in the DATABASE + +Soroban RPC also provides logging to console for: + +- Startup activity +- Ingesting, applying, and closing ledgers +- Handling JSON RPC requests +- Any errors + +The logs have the format: + +``` +time= level= msg= pid= subservice= +``` \ No newline at end of file diff --git a/platforms/soroban-rpc/intro/_.category.json b/platforms/soroban-rpc/intro/_.category.json new file mode 100644 index 000000000..a79c9130f --- /dev/null +++ b/platforms/soroban-rpc/intro/_.category.json @@ -0,0 +1,4 @@ +{ + "position": 10, + "label": "Intro" + } \ No newline at end of file diff --git a/platforms/soroban-rpc/intro/index.mdx b/platforms/soroban-rpc/intro/index.mdx new file mode 100644 index 000000000..54708adfe --- /dev/null +++ b/platforms/soroban-rpc/intro/index.mdx @@ -0,0 +1,7 @@ +--- +title: Intro +sidebar_position: 10 +slug: /soroban-rpc +--- + +Sups, I'm an RPC. diff --git a/platforms/soroban-rpc/introduction/README.mdx b/platforms/soroban-rpc/introduction/README.mdx index 73036894a..6b8c06ff3 100644 --- a/platforms/soroban-rpc/introduction/README.mdx +++ b/platforms/soroban-rpc/introduction/README.mdx @@ -1,6 +1,6 @@ --- title: Introduction -sidebar_position: 10 +sidebar_position: 20 slug: /soroban-rpc --- diff --git a/platforms/soroban-rpc/rpc-providers.mdx b/platforms/soroban-rpc/rpc-providers.mdx new file mode 100644 index 000000000..d2636175d --- /dev/null +++ b/platforms/soroban-rpc/rpc-providers.mdx @@ -0,0 +1,41 @@ +--- +sidebar_position: 30 +title: RPC Providers +--- + +--- +sidebar_position: 50 +title: RPC Providers +--- + +## Ecosystem Providers + +Multiple infrastructure providers have made Soroban RPC endpoint services available, and offer plans ranging from free to high throughput endpoints. These providers can be used for development, testing, and production. + +These providers allow access to the Testnet and Mainnet networks. + +| Provider | Access | Futurenet | Testnet | Mainnet | +| ------------------------------------------------------- | --------------------------------------------------- | ------------- | --------- | ----------- | +| [Blockdaemon](https://www.blockdaemon.com) | [Access](https://www.blockdaemon.com/apply/soroban) | Not available | Available | Available | +| [Validation Cloud](https://validationcloud.io/) | [Access](https://app.validationcloud.io/) | Not available | Available | Available | +| [QuickNode\*](https://www.quicknode.com/chains/stellar) | [Access](https://www.quicknode.com/chains/stellar) | Not available | Available | Available | +| [NowNodes](https://nownodes.io/nodes/stellar-xlm) | [Access](https://nownodes.io/nodes/stellar-xlm) | Available | Available | Coming soon | +| [Gateway](https://gateway.fm/) | [Access](https://gateway.fm/public-rpc/) | Not available | Available | Available | + +\*_Please note that Quicknode combines Horizon and RPC in the same endpoint._ + +## SDF Provided RPC (Futurenet and Testnet only) + +SDF has made available Soroban RPC with access to the Futurenet and Testnet networks. These services are free to use, and are suitable for development and testing. + +SDF will not be providing a publicly available RPC endpoint for Mainnet. Developers should select an ecosystem provider that works for their project before migrating to Mainnet. In some cases, projects may choose to [run their own RPC instance](./admin-guide.mdx). + +| Network | RPC Endpoint | Friendbot Endpoint | Provider | +| ----------- | ------------------------------------- | ----------------------------------------- | ----------------------------- | +| `Futurenet` | `https://rpc-futurenet.stellar.org` | `https://friendbot-futurenet.stellar.org` | [SDF](http://www.stellar.org) | +| `Testnet` | `https://soroban-testnet.stellar.org` | `https://friendbot.stellar.org` | [SDF](http://www.stellar.org) | + +## Run Your Own RPC + +If you are interested in running your own RPC, please checkout +[this page](./admin-guide.mdx). \ No newline at end of file From ab7c4658213f4e550188fdcde8d97e16787f86f8 Mon Sep 17 00:00:00 2001 From: Bri <92327786+briwylde08@users.noreply.github.com> Date: Thu, 29 Feb 2024 14:57:04 -0700 Subject: [PATCH 102/133] Change Hubble Overview to Introduction to align --- platforms/hubble/{overview.mdx => introduction.mdx} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename platforms/hubble/{overview.mdx => introduction.mdx} (99%) diff --git a/platforms/hubble/overview.mdx b/platforms/hubble/introduction.mdx similarity index 99% rename from platforms/hubble/overview.mdx rename to platforms/hubble/introduction.mdx index 28e538e18..b3c30e63a 100644 --- a/platforms/hubble/overview.mdx +++ b/platforms/hubble/introduction.mdx @@ -1,5 +1,5 @@ --- -title: "Overview" +title: "Introduction" sidebar_position: 0 slug: /hubble --- From 2dd4cb59cce7bf2133c05accece3514db357a3dc Mon Sep 17 00:00:00 2001 From: Bri <92327786+briwylde08@users.noreply.github.com> Date: Thu, 29 Feb 2024 15:05:09 -0700 Subject: [PATCH 103/133] Add Horizon Introduction content --- platforms/horizon/introduction/index.mdx | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/platforms/horizon/introduction/index.mdx b/platforms/horizon/introduction/index.mdx index 17e1e5dbf..9c64935db 100644 --- a/platforms/horizon/introduction/index.mdx +++ b/platforms/horizon/introduction/index.mdx @@ -4,4 +4,15 @@ sidebar_position: 10 slug: /horizon --- -Hi, I'm Horizon +Horizon provides an HTTP API to data in the Stellar network. It ingests and re-serves the data produced by the Stellar network in a form that is easier to consume by the average application relative to the performance-oriented data representations used by Stellar Core. + +This guide describes how to administer a production Horizon instance (refer to the [Developers' Blog](https://www.stellar.org/developers-blog/a-new-sun-on-the-horizon) for some background on the performance and architectural improvements of this major version bump). For information about developing on the Horizon codebase, check out the [Development Guide](https://github.com/stellar/go/blob/master/services/horizon/internal/docs/GUIDE_FOR_DEVELOPERS.md). + +Before we begin, it's worth reiterating the sentiment echoed in the [Run a Core Node](https://developers.stellar.org/docs/run-core-node/) guide: **we do not endorse running Horizon backed by a standalone Stellar Core instance**, and especially not by a _validating_ Stellar Core. These are two separate concerns, and decoupling them is important for both reliability and performance. Horizon instead 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). + +## Why Run Horizon? + +Running Horizon 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 and transaction submission to networks; +- Run multiple instances for redundancy and scalability. From c13df443280cba8caffe9dfef3854d97b1e6637a Mon Sep 17 00:00:00 2001 From: Bri <92327786+briwylde08@users.noreply.github.com> Date: Thu, 29 Feb 2024 15:24:16 -0700 Subject: [PATCH 104/133] Shuffle RPC sections --- platforms/soroban-rpc/intro/index.mdx | 7 ----- platforms/soroban-rpc/introduction/README.mdx | 11 -------- .../{intro => introduction}/_.category.json | 0 .../soroban-rpc/introduction/anti-goals.mdx | 17 ------------ platforms/soroban-rpc/introduction/goals.mdx | 18 ------------- platforms/soroban-rpc/introduction/index.mdx | 26 +++++++++++++++++++ .../{introduction => }/json-rpc.mdx | 3 +-- platforms/soroban-rpc/methods/_category_.json | 2 +- .../{introduction => }/pagination.mdx | 5 ++-- platforms/soroban-rpc/rpc-providers.mdx | 7 +---- 10 files changed, 31 insertions(+), 65 deletions(-) delete mode 100644 platforms/soroban-rpc/intro/index.mdx delete mode 100644 platforms/soroban-rpc/introduction/README.mdx rename platforms/soroban-rpc/{intro => introduction}/_.category.json (100%) delete mode 100644 platforms/soroban-rpc/introduction/anti-goals.mdx delete mode 100644 platforms/soroban-rpc/introduction/goals.mdx create mode 100644 platforms/soroban-rpc/introduction/index.mdx rename platforms/soroban-rpc/{introduction => }/json-rpc.mdx (96%) rename platforms/soroban-rpc/{introduction => }/pagination.mdx (74%) diff --git a/platforms/soroban-rpc/intro/index.mdx b/platforms/soroban-rpc/intro/index.mdx deleted file mode 100644 index 54708adfe..000000000 --- a/platforms/soroban-rpc/intro/index.mdx +++ /dev/null @@ -1,7 +0,0 @@ ---- -title: Intro -sidebar_position: 10 -slug: /soroban-rpc ---- - -Sups, I'm an RPC. diff --git a/platforms/soroban-rpc/introduction/README.mdx b/platforms/soroban-rpc/introduction/README.mdx deleted file mode 100644 index 6b8c06ff3..000000000 --- a/platforms/soroban-rpc/introduction/README.mdx +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: Introduction -sidebar_position: 20 -slug: /soroban-rpc ---- - -import DocCardList from "@theme/DocCardList"; - -A public discussion about the design of soroban-rpc. - - diff --git a/platforms/soroban-rpc/intro/_.category.json b/platforms/soroban-rpc/introduction/_.category.json similarity index 100% rename from platforms/soroban-rpc/intro/_.category.json rename to platforms/soroban-rpc/introduction/_.category.json diff --git a/platforms/soroban-rpc/introduction/anti-goals.mdx b/platforms/soroban-rpc/introduction/anti-goals.mdx deleted file mode 100644 index 53c23ccbb..000000000 --- a/platforms/soroban-rpc/introduction/anti-goals.mdx +++ /dev/null @@ -1,17 +0,0 @@ ---- -sidebar_position: 1 -title: Anti-Goals -description: What Soroban-RPC is not. ---- - -- Soroban-RPC is not a Horizon replacement. Horizon is better suited for historical reporting and analytics queries. Horizon is more concerned with Stellar Vanilla data. -- Soroban-RPC should not depend on Horizon. Horizon is expensive and difficult to run, so if Soroban-RPC depended on Horizon, it would inherit that. -- Soroban-RPC should also provide an API basis for infrastructure providers to implement, but not necessarily be an off-the-shelf solution for them. -- Soroban-RPC is not a reporting/analytics tool and does not provide thorough historical data querying. It does not provide any data aggregation, compilations, or multi-server coordination requests. -- Soroban-RPC does not target ultra-low latency. The latency should be low enough to build and submit successful soroban transactions, but supporting high-frequency traders is not the goal. - -:::note todo - -TODO: Decide on direct exposure support (i.e. should we support exposing soroban-rpc directly to the internet?). People will do it regardless, so it might be best to... - -::: diff --git a/platforms/soroban-rpc/introduction/goals.mdx b/platforms/soroban-rpc/introduction/goals.mdx deleted file mode 100644 index 1b88c326e..000000000 --- a/platforms/soroban-rpc/introduction/goals.mdx +++ /dev/null @@ -1,18 +0,0 @@ ---- -sidebar_position: 0 -title: Goals -description: Features Soroban-RPC should provide. ---- - -Soroban-RPC can be simply described as a "live network gateway for Soroban." It provides information that the network currently has in its view (i.e. current state). It also has the ability to send a transaction to the network, and query the network for the status of previously sent transactions. It is meant to be simple, minimal, scalable, and familiar to blockchain developers from other ecosystems. - -Soroban-RPC should provide all the basic data that a dapp developer would need, provided they are: - -- Only interested in current state data, or are willing to ingest events into their own infrastructure to support reporting/analytics queries. - - Caveat: Soroban-RPC should provide enough data-retention to support reliable ingestion of events. -- Only interested in building and submitting Soroban transactions (not Stellar Vanilla). - -Soroban-RPC should support the developer from local testing (via the quickstart image), all the way through to production deployments. - -- This implies it should be easy to deploy, and easy to maintain; with low cost, and little "admin" needed. -- The developer should be able to simply run the quickstart docker image, and quickly be ready to serve requests without needing to set up or maintain dependent infrastructure. diff --git a/platforms/soroban-rpc/introduction/index.mdx b/platforms/soroban-rpc/introduction/index.mdx new file mode 100644 index 000000000..ab8b89fdd --- /dev/null +++ b/platforms/soroban-rpc/introduction/index.mdx @@ -0,0 +1,26 @@ +--- +title: Introduction +sidebar_position: 10 +slug: /soroban-rpc +--- + +The Soroban-RPC can be described as a "live network gateway for Soroban." It provides information that the network currently has in its view (i.e. current state). It also has the ability to send a transaction to the network, and query the network for the status of previously sent transactions. It is meant to be simple, minimal, scalable, and familiar to blockchain developers from other ecosystems. + +Soroban-RPC should provide all the basic data that a dapp developer would need, provided they are: + +- Only interested in current state data, or are willing to ingest events into their own infrastructure to support reporting/analytics queries. + - Caveat: Soroban-RPC should provide enough data-retention to support reliable ingestion of events. +- Only interested in building and submitting Soroban transactions (not Stellar Vanilla). + +Soroban-RPC should support the developer from local testing (via the quickstart image), all the way through to production deployments. + +- This implies it should be easy to deploy, and easy to maintain; with low cost, and little "admin" needed. +- The developer should be able to simply run the quickstart docker image, and quickly be ready to serve requests without needing to set up or maintain dependent infrastructure. + +## Anti-Goals + +- Soroban-RPC is not a Horizon replacement. Horizon is better suited for historical reporting and analytics queries. Horizon is more concerned with "classic" Stellar data. +- Soroban-RPC should not depend on Horizon. Horizon is expensive and difficult to run, so if Soroban-RPC depended on Horizon, it would inherit that. +- Soroban-RPC should also provide an API basis for infrastructure providers to implement, but not necessarily be an off-the-shelf solution for them. +- Soroban-RPC is not a reporting/analytics tool and does not provide thorough historical data querying. It does not provide any data aggregation, compilations, or multi-server coordination requests. +- Soroban-RPC does not target ultra-low latency. The latency should be low enough to build and submit successful soroban transactions, but supporting high-frequency traders is not the goal. \ No newline at end of file diff --git a/platforms/soroban-rpc/introduction/json-rpc.mdx b/platforms/soroban-rpc/json-rpc.mdx similarity index 96% rename from platforms/soroban-rpc/introduction/json-rpc.mdx rename to platforms/soroban-rpc/json-rpc.mdx index 757d011b2..e04bfeca3 100644 --- a/platforms/soroban-rpc/introduction/json-rpc.mdx +++ b/platforms/soroban-rpc/json-rpc.mdx @@ -1,7 +1,6 @@ --- -sidebar_position: 2 +sidebar_position: 40 title: JSON-RPC -description: Design goals for Soroban-RPC's JSON-RPC spec. --- Soroban-RPC will accept HTTP POST requests using the [JSON-RPC 2.0] specification. Errors are returned via the [jsonrpc error object] wherever possible (and makes sense). diff --git a/platforms/soroban-rpc/methods/_category_.json b/platforms/soroban-rpc/methods/_category_.json index 1085219a4..6158ff678 100644 --- a/platforms/soroban-rpc/methods/_category_.json +++ b/platforms/soroban-rpc/methods/_category_.json @@ -1,6 +1,6 @@ { "label": "Methods", - "position": 20, + "position": 30, "link": { "type": "generated-index", "slug": "/soroban-rpc/methods" diff --git a/platforms/soroban-rpc/introduction/pagination.mdx b/platforms/soroban-rpc/pagination.mdx similarity index 74% rename from platforms/soroban-rpc/introduction/pagination.mdx rename to platforms/soroban-rpc/pagination.mdx index cd8223380..a5b4780d8 100644 --- a/platforms/soroban-rpc/introduction/pagination.mdx +++ b/platforms/soroban-rpc/pagination.mdx @@ -1,7 +1,6 @@ --- -sidebar_position: 3 +sidebar_position: 50 title: Pagination -description: Pagination in Soroban-RPC is similar to in Horizon. --- Pagination in soroban-rpc is similar to pagination in Horizon. @@ -9,7 +8,7 @@ Pagination in soroban-rpc is similar to pagination in Horizon. For methods which support it, the pagination arguments are passed as a final object argument with two values: - `cursor`: string - (optional) 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. -- `limit`: number - (optional) The maximum number of records returned. The limit for [getEvents](../methods/getEvents.mdx) 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. +- `limit`: number - (optional) The maximum number of records returned. The limit for [getEvents](./methods/getEvents.mdx) 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. For example, calling a method with pagination parameter set: diff --git a/platforms/soroban-rpc/rpc-providers.mdx b/platforms/soroban-rpc/rpc-providers.mdx index d2636175d..01f5e0f76 100644 --- a/platforms/soroban-rpc/rpc-providers.mdx +++ b/platforms/soroban-rpc/rpc-providers.mdx @@ -1,10 +1,5 @@ --- -sidebar_position: 30 -title: RPC Providers ---- - ---- -sidebar_position: 50 +sidebar_position: 60 title: RPC Providers --- From 567f599a5b50fa33a223e3ef8c9f631bf3221292 Mon Sep 17 00:00:00 2001 From: Elliot Voris Date: Thu, 29 Feb 2024 16:30:29 -0600 Subject: [PATCH 105/133] use README.mdx conventions in anchor platform admin guide --- platforms/anchor-platform/admin-guide/README.mdx | 10 ++++++++++ .../anchor-platform/admin-guide/_category_.json | 7 ------- .../admin-guide/custody-services/README.mdx | 11 +++++++++++ .../admin-guide/custody-services/_category_.json | 7 ------- .../admin-guide/custody-services/configuration.mdx | 2 +- .../custody-services/fireblocks/README.mdx | 11 +++++++++++ .../custody-services/fireblocks/_category_.json | 7 ------- .../{getting_started.mdx => getting-started.mdx} | 0 .../admin-guide/{index.mdx => overview.mdx} | 0 .../sep1/{configuration.mdx => README.mdx} | 4 ++-- .../anchor-platform/admin-guide/sep1/_category_.json | 7 ------- .../sep10/{configuration.mdx => README.mdx} | 4 ++-- .../admin-guide/sep10/_category_.json | 7 ------- .../anchor-platform/admin-guide/sep24/README.mdx | 11 +++++++++++ .../admin-guide/sep24/_category_.json | 7 ------- .../sep24/{index.mdx => getting-started.mdx} | 0 .../anchor-platform/admin-guide/sep31/README.mdx | 11 +++++++++++ .../admin-guide/sep31/_category_.json | 7 ------- .../sep31/{index.mdx => getting-started.mdx} | 0 .../anchor-platform/admin-guide/sep6/README.mdx | 12 ++++++++++++ .../anchor-platform/admin-guide/sep6/_category_.json | 7 ------- .../sep6/{index.mdx => getting-started.mdx} | 0 22 files changed, 71 insertions(+), 61 deletions(-) create mode 100644 platforms/anchor-platform/admin-guide/README.mdx delete mode 100644 platforms/anchor-platform/admin-guide/_category_.json create mode 100644 platforms/anchor-platform/admin-guide/custody-services/README.mdx delete mode 100644 platforms/anchor-platform/admin-guide/custody-services/_category_.json create mode 100644 platforms/anchor-platform/admin-guide/custody-services/fireblocks/README.mdx delete mode 100644 platforms/anchor-platform/admin-guide/custody-services/fireblocks/_category_.json rename platforms/anchor-platform/admin-guide/{getting_started.mdx => getting-started.mdx} (100%) rename platforms/anchor-platform/admin-guide/{index.mdx => overview.mdx} (100%) rename platforms/anchor-platform/admin-guide/sep1/{configuration.mdx => README.mdx} (98%) delete mode 100644 platforms/anchor-platform/admin-guide/sep1/_category_.json rename platforms/anchor-platform/admin-guide/sep10/{configuration.mdx => README.mdx} (98%) delete mode 100644 platforms/anchor-platform/admin-guide/sep10/_category_.json create mode 100644 platforms/anchor-platform/admin-guide/sep24/README.mdx delete mode 100644 platforms/anchor-platform/admin-guide/sep24/_category_.json rename platforms/anchor-platform/admin-guide/sep24/{index.mdx => getting-started.mdx} (100%) create mode 100644 platforms/anchor-platform/admin-guide/sep31/README.mdx delete mode 100644 platforms/anchor-platform/admin-guide/sep31/_category_.json rename platforms/anchor-platform/admin-guide/sep31/{index.mdx => getting-started.mdx} (100%) create mode 100644 platforms/anchor-platform/admin-guide/sep6/README.mdx delete mode 100644 platforms/anchor-platform/admin-guide/sep6/_category_.json rename platforms/anchor-platform/admin-guide/sep6/{index.mdx => getting-started.mdx} (100%) diff --git a/platforms/anchor-platform/admin-guide/README.mdx b/platforms/anchor-platform/admin-guide/README.mdx new file mode 100644 index 000000000..10ca6646a --- /dev/null +++ b/platforms/anchor-platform/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 setting up, running, and using the Anchor Platform. + + diff --git a/platforms/anchor-platform/admin-guide/_category_.json b/platforms/anchor-platform/admin-guide/_category_.json deleted file mode 100644 index 6ec614dea..000000000 --- a/platforms/anchor-platform/admin-guide/_category_.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "position": 15, - "label": "Admin Guide", - "link": { - "type": "generated-index" - } -} diff --git a/platforms/anchor-platform/admin-guide/custody-services/README.mdx b/platforms/anchor-platform/admin-guide/custody-services/README.mdx new file mode 100644 index 000000000..018055be5 --- /dev/null +++ b/platforms/anchor-platform/admin-guide/custody-services/README.mdx @@ -0,0 +1,11 @@ +--- +title: Custody Services +sidebar_position: 80 +--- + +import DocCardList from "@theme/DocCardList"; + +Using a custody service will allow you to use an outside service to store and +manage your wallets. + + diff --git a/platforms/anchor-platform/admin-guide/custody-services/_category_.json b/platforms/anchor-platform/admin-guide/custody-services/_category_.json deleted file mode 100644 index db903caae..000000000 --- a/platforms/anchor-platform/admin-guide/custody-services/_category_.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "position": 80, - "label": "Custody Services", - "link": { - "type": "generated-index" - } -} \ No newline at end of file diff --git a/platforms/anchor-platform/admin-guide/custody-services/configuration.mdx b/platforms/anchor-platform/admin-guide/custody-services/configuration.mdx index 0c1f7ece9..5c540446f 100644 --- a/platforms/anchor-platform/admin-guide/custody-services/configuration.mdx +++ b/platforms/anchor-platform/admin-guide/custody-services/configuration.mdx @@ -1,5 +1,5 @@ --- -title: "Configuration" +title: Configuration sidebar_position: 10 --- diff --git a/platforms/anchor-platform/admin-guide/custody-services/fireblocks/README.mdx b/platforms/anchor-platform/admin-guide/custody-services/fireblocks/README.mdx new file mode 100644 index 000000000..948506bdc --- /dev/null +++ b/platforms/anchor-platform/admin-guide/custody-services/fireblocks/README.mdx @@ -0,0 +1,11 @@ +--- +title: Fireblocks +sidebar_position: 20 +--- + +import DocCardList from "@theme/DocCardList"; + +Configure [Fireblocks](https://fireblocks.io) to act as a custody service that +stores and manages your wallets. + + diff --git a/platforms/anchor-platform/admin-guide/custody-services/fireblocks/_category_.json b/platforms/anchor-platform/admin-guide/custody-services/fireblocks/_category_.json deleted file mode 100644 index 62a3069df..000000000 --- a/platforms/anchor-platform/admin-guide/custody-services/fireblocks/_category_.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "position": 10, - "label": "Fireblocks", - "link": { - "type": "generated-index" - } -} \ No newline at end of file diff --git a/platforms/anchor-platform/admin-guide/getting_started.mdx b/platforms/anchor-platform/admin-guide/getting-started.mdx similarity index 100% rename from platforms/anchor-platform/admin-guide/getting_started.mdx rename to platforms/anchor-platform/admin-guide/getting-started.mdx diff --git a/platforms/anchor-platform/admin-guide/index.mdx b/platforms/anchor-platform/admin-guide/overview.mdx similarity index 100% rename from platforms/anchor-platform/admin-guide/index.mdx rename to platforms/anchor-platform/admin-guide/overview.mdx diff --git a/platforms/anchor-platform/admin-guide/sep1/configuration.mdx b/platforms/anchor-platform/admin-guide/sep1/README.mdx similarity index 98% rename from platforms/anchor-platform/admin-guide/sep1/configuration.mdx rename to platforms/anchor-platform/admin-guide/sep1/README.mdx index bf94e685f..72834e2a2 100644 --- a/platforms/anchor-platform/admin-guide/sep1/configuration.mdx +++ b/platforms/anchor-platform/admin-guide/sep1/README.mdx @@ -1,6 +1,6 @@ --- -title: "Configuration" -sidebar_position: 20 +title: Stellar Info File +sidebar_position: 40 --- import { CodeExample } from "@site/src/components/CodeExample"; diff --git a/platforms/anchor-platform/admin-guide/sep1/_category_.json b/platforms/anchor-platform/admin-guide/sep1/_category_.json deleted file mode 100644 index 9259c3f4b..000000000 --- a/platforms/anchor-platform/admin-guide/sep1/_category_.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "position": 40, - "label": "Stellar Info File", - "link": { - "type": "generated-index" - } -} \ No newline at end of file diff --git a/platforms/anchor-platform/admin-guide/sep10/configuration.mdx b/platforms/anchor-platform/admin-guide/sep10/README.mdx similarity index 98% rename from platforms/anchor-platform/admin-guide/sep10/configuration.mdx rename to platforms/anchor-platform/admin-guide/sep10/README.mdx index e380609da..0553bb693 100644 --- a/platforms/anchor-platform/admin-guide/sep10/configuration.mdx +++ b/platforms/anchor-platform/admin-guide/sep10/README.mdx @@ -1,6 +1,6 @@ --- -title: "Configuration" -sidebar_position: 20 +title: Stellar Authentication +sidebar_position: 50 --- import { CodeExample } from "@site/src/components/CodeExample"; diff --git a/platforms/anchor-platform/admin-guide/sep10/_category_.json b/platforms/anchor-platform/admin-guide/sep10/_category_.json deleted file mode 100644 index 0cf63487b..000000000 --- a/platforms/anchor-platform/admin-guide/sep10/_category_.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "position": 50, - "label": "Stellar Authentication", - "link": { - "type": "generated-index" - } -} \ No newline at end of file diff --git a/platforms/anchor-platform/admin-guide/sep24/README.mdx b/platforms/anchor-platform/admin-guide/sep24/README.mdx new file mode 100644 index 000000000..28a0f666a --- /dev/null +++ b/platforms/anchor-platform/admin-guide/sep24/README.mdx @@ -0,0 +1,11 @@ +--- +title: Hosted Deposits and Withdrawals +sidebar_position: 60 +--- + +import DocCardList from "@theme/DocCardList"; + +SEP-24 allows for a means by which wallets and/or exchanges allow the user to +directly interact with an on & off-ramp. + + diff --git a/platforms/anchor-platform/admin-guide/sep24/_category_.json b/platforms/anchor-platform/admin-guide/sep24/_category_.json deleted file mode 100644 index d4212c0bd..000000000 --- a/platforms/anchor-platform/admin-guide/sep24/_category_.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "position": 60, - "label": "Hosted Deposits and Withdrawals", - "link": { - "type": "generated-index" - } -} \ No newline at end of file diff --git a/platforms/anchor-platform/admin-guide/sep24/index.mdx b/platforms/anchor-platform/admin-guide/sep24/getting-started.mdx similarity index 100% rename from platforms/anchor-platform/admin-guide/sep24/index.mdx rename to platforms/anchor-platform/admin-guide/sep24/getting-started.mdx diff --git a/platforms/anchor-platform/admin-guide/sep31/README.mdx b/platforms/anchor-platform/admin-guide/sep31/README.mdx new file mode 100644 index 000000000..22f975e8b --- /dev/null +++ b/platforms/anchor-platform/admin-guide/sep31/README.mdx @@ -0,0 +1,11 @@ +--- +title: Cross-Border Payments +sidebar_position: 70 +--- + +import DocCardList from "@theme/DocCardList"; + +SEP-31 allows for a means by which wallets and/or exchanges interact with +Stellar's existing set of send-side services. + + diff --git a/platforms/anchor-platform/admin-guide/sep31/_category_.json b/platforms/anchor-platform/admin-guide/sep31/_category_.json deleted file mode 100644 index 6401f26cf..000000000 --- a/platforms/anchor-platform/admin-guide/sep31/_category_.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "position": 70, - "label": "Cross-Border Payments", - "link": { - "type": "generated-index" - } -} \ No newline at end of file diff --git a/platforms/anchor-platform/admin-guide/sep31/index.mdx b/platforms/anchor-platform/admin-guide/sep31/getting-started.mdx similarity index 100% rename from platforms/anchor-platform/admin-guide/sep31/index.mdx rename to platforms/anchor-platform/admin-guide/sep31/getting-started.mdx diff --git a/platforms/anchor-platform/admin-guide/sep6/README.mdx b/platforms/anchor-platform/admin-guide/sep6/README.mdx new file mode 100644 index 000000000..ad44f734d --- /dev/null +++ b/platforms/anchor-platform/admin-guide/sep6/README.mdx @@ -0,0 +1,12 @@ +--- +title: Programmatic Deposits and Withdrawals +sidebar_position: 65 +--- + +import DocCardList from "@theme/DocCardList"; + +SEP-6 allows for a means by which wallets and/or exchanges interact with an +anchor on behalf of users, never requiring the user to directly interact with +the on & off-ramp. + + diff --git a/platforms/anchor-platform/admin-guide/sep6/_category_.json b/platforms/anchor-platform/admin-guide/sep6/_category_.json deleted file mode 100644 index da6dc71ce..000000000 --- a/platforms/anchor-platform/admin-guide/sep6/_category_.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "position": 65, - "label": "Programmatic Deposits and Withdrawals", - "link": { - "type": "generated-index" - } -} \ No newline at end of file diff --git a/platforms/anchor-platform/admin-guide/sep6/index.mdx b/platforms/anchor-platform/admin-guide/sep6/getting-started.mdx similarity index 100% rename from platforms/anchor-platform/admin-guide/sep6/index.mdx rename to platforms/anchor-platform/admin-guide/sep6/getting-started.mdx From e65706f17539ffbf18e437fbe2323757c50c1da9 Mon Sep 17 00:00:00 2001 From: Elliot Voris Date: Thu, 29 Feb 2024 16:35:38 -0600 Subject: [PATCH 106/133] fix broken links --- .../admin-guide/sep24/setting-up-production-server.mdx | 4 ++-- platforms/anchor-platform/introduction/index.mdx | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/platforms/anchor-platform/admin-guide/sep24/setting-up-production-server.mdx b/platforms/anchor-platform/admin-guide/sep24/setting-up-production-server.mdx index f1abc0ca0..bcd3f1436 100644 --- a/platforms/anchor-platform/admin-guide/sep24/setting-up-production-server.mdx +++ b/platforms/anchor-platform/admin-guide/sep24/setting-up-production-server.mdx @@ -46,7 +46,7 @@ How you handle KYC is up to you: there are many services that provide KYC soluti Some countries require different KYC fields depending on the amount to be deposited or withdrawn. If that's the case in your jurisdiction and you need to adapt your KYC forms based on the deposit or withdrawal amount, simply add an amount field before the KYC form, and make sure that the KYC fields are updated based on that value. -KYC information should be linked to the session created through [Stellar Web Authentication](../sep10/configuration.mdx) and, consequently, to the user, so you only need to ask the user for it once. After the first KYC flow is complete, a user shouldn't have to input the information again. +KYC information should be linked to the session created through [Stellar Web Authentication](../sep10/README.mdx) and, consequently, to the user, so you only need to ask the user for it once. After the first KYC flow is complete, a user shouldn't have to input the information again. Make sure the errors and validation messages are clear and include instructions for what to do next to ensure a good user experience and increase the KYC conversion rate. You should also localize messages based on the user's language and location. @@ -56,7 +56,7 @@ Pre-filling the KYC form is a great way to reduce the friction of getting starte All fields from [SEP-9](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md) can be sent by wallets in the previously mentioned endpoints, but the most common are: email, first name, last name and phone number. Also, you should still enable the pre-filled fields to be editable, since the user might have inputted a different name in the Wallet's sign-up process, and could want to edit it before finalizing the Anchor's KYC process. -All SEP-9 data that was sent from the wallet is a part of the [Interactive JWT](./faq#how-to-use-interactive-jwts), send by the Anchor Platform +All SEP-9 data that was sent from the wallet is a part of the [Interactive JWT](./faq.mdx#how-to-use-interactive-jwts), send by the Anchor Platform ## Connecting to Real Banking Rails diff --git a/platforms/anchor-platform/introduction/index.mdx b/platforms/anchor-platform/introduction/index.mdx index 637f6703b..f97db72e5 100644 --- a/platforms/anchor-platform/introduction/index.mdx +++ b/platforms/anchor-platform/introduction/index.mdx @@ -8,4 +8,4 @@ The Anchor Platform is a set of tools and APIs that enable developers and busine 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. -You can read more about integrating with the Anchor Platform [in the Admin Guide](../admin-guide/index.mdx). +You can read more about integrating with the Anchor Platform [in the Admin Guide](../admin-guide/README.mdx). From 95e2ce8f78996c62303cb1fd9dec979655238b10 Mon Sep 17 00:00:00 2001 From: Elliot Voris Date: Thu, 29 Feb 2024 16:50:29 -0600 Subject: [PATCH 107/133] use README.mdx conventions in horizon --- .../horizon/{introduction/index.mdx => README.mdx} | 1 - platforms/horizon/admin-guide/README.mdx | 10 ++++++++++ platforms/horizon/admin-guide/_category_.json | 7 ------- .../horizon/admin-guide/{index.mdx => overview.mdx} | 0 .../horizon/aggregations/{index.mdx => README.mdx} | 0 platforms/horizon/aggregations/_category_.json | 4 ---- platforms/horizon/introduction/_category_.json | 4 ---- platforms/horizon/structure/{index.mdx => README.mdx} | 4 ++-- platforms/horizon/structure/_category_.json | 4 ---- .../structure/pagination/{index.mdx => README.mdx} | 0 platforms/horizon/structure/pagination/_category_.json | 5 ----- .../horizon/structure/pagination/page-arguments.mdx | 6 +++--- 12 files changed, 15 insertions(+), 30 deletions(-) rename platforms/horizon/{introduction/index.mdx => README.mdx} (99%) create mode 100644 platforms/horizon/admin-guide/README.mdx delete mode 100644 platforms/horizon/admin-guide/_category_.json rename platforms/horizon/admin-guide/{index.mdx => overview.mdx} (100%) rename platforms/horizon/aggregations/{index.mdx => README.mdx} (100%) delete mode 100644 platforms/horizon/aggregations/_category_.json delete mode 100644 platforms/horizon/introduction/_category_.json rename platforms/horizon/structure/{index.mdx => README.mdx} (97%) delete mode 100644 platforms/horizon/structure/_category_.json rename platforms/horizon/structure/pagination/{index.mdx => README.mdx} (100%) delete mode 100644 platforms/horizon/structure/pagination/_category_.json diff --git a/platforms/horizon/introduction/index.mdx b/platforms/horizon/README.mdx similarity index 99% rename from platforms/horizon/introduction/index.mdx rename to platforms/horizon/README.mdx index 9c64935db..77fea8b71 100644 --- a/platforms/horizon/introduction/index.mdx +++ b/platforms/horizon/README.mdx @@ -1,7 +1,6 @@ --- title: Horizon sidebar_position: 10 -slug: /horizon --- Horizon provides an HTTP API to data in the Stellar network. It ingests and re-serves the data produced by the Stellar network in a form that is easier to consume by the average application relative to the performance-oriented data representations used by Stellar Core. diff --git a/platforms/horizon/admin-guide/README.mdx b/platforms/horizon/admin-guide/README.mdx new file mode 100644 index 000000000..454167954 --- /dev/null +++ b/platforms/horizon/admin-guide/README.mdx @@ -0,0 +1,10 @@ +--- +title: Admin Guide +sidebar_position: 20 +--- + +import DocCardList from "@theme/DocCardList"; + +All you need to know about setting up, running, and using Horizon. + + diff --git a/platforms/horizon/admin-guide/_category_.json b/platforms/horizon/admin-guide/_category_.json deleted file mode 100644 index 8e8967c9a..000000000 --- a/platforms/horizon/admin-guide/_category_.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "position": 15, - "label": "Admin Guide", - "link": { - "type": "doc", "id": "index" - } -} diff --git a/platforms/horizon/admin-guide/index.mdx b/platforms/horizon/admin-guide/overview.mdx similarity index 100% rename from platforms/horizon/admin-guide/index.mdx rename to platforms/horizon/admin-guide/overview.mdx diff --git a/platforms/horizon/aggregations/index.mdx b/platforms/horizon/aggregations/README.mdx similarity index 100% rename from platforms/horizon/aggregations/index.mdx rename to platforms/horizon/aggregations/README.mdx diff --git a/platforms/horizon/aggregations/_category_.json b/platforms/horizon/aggregations/_category_.json deleted file mode 100644 index b42715c53..000000000 --- a/platforms/horizon/aggregations/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "position": 30, - "label": "Aggregations" -} diff --git a/platforms/horizon/introduction/_category_.json b/platforms/horizon/introduction/_category_.json deleted file mode 100644 index 0c950519d..000000000 --- a/platforms/horizon/introduction/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "position": 10, - "label": "Introduction" - } \ No newline at end of file diff --git a/platforms/horizon/structure/index.mdx b/platforms/horizon/structure/README.mdx similarity index 97% rename from platforms/horizon/structure/index.mdx rename to platforms/horizon/structure/README.mdx index 436ebc944..6d6e69042 100644 --- a/platforms/horizon/structure/index.mdx +++ b/platforms/horizon/structure/README.mdx @@ -1,7 +1,7 @@ --- title: Horizon API Reference -sidebar_position: 10 -slug: /horizon +sidebar_position: 15 +sidebar_label: Structure description: Horizon is an API for interacting with the Stellar network. --- diff --git a/platforms/horizon/structure/_category_.json b/platforms/horizon/structure/_category_.json deleted file mode 100644 index 4fd1e124f..000000000 --- a/platforms/horizon/structure/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "position": 15, - "label": "Structure" -} diff --git a/platforms/horizon/structure/pagination/index.mdx b/platforms/horizon/structure/pagination/README.mdx similarity index 100% rename from platforms/horizon/structure/pagination/index.mdx rename to platforms/horizon/structure/pagination/README.mdx diff --git a/platforms/horizon/structure/pagination/_category_.json b/platforms/horizon/structure/pagination/_category_.json deleted file mode 100644 index 06291f381..000000000 --- a/platforms/horizon/structure/pagination/_category_.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "position": 60, - "label": "Pagination" - } - \ No newline at end of file diff --git a/platforms/horizon/structure/pagination/page-arguments.mdx b/platforms/horizon/structure/pagination/page-arguments.mdx index a889ef249..e7c0a7d5f 100644 --- a/platforms/horizon/structure/pagination/page-arguments.mdx +++ b/platforms/horizon/structure/pagination/page-arguments.mdx @@ -10,9 +10,9 @@ import { CodeExample } from "@site/src/components/CodeExample"; -| | | -| --- | ---------------------------------------------------------------- | -| GET | /{endpoint}?cursor={paging_token}&order={asc,desc}&limit={1-200} | +| | | +| --- | ------------------------------------------------------------------ | +| GET | `/{endpoint}?cursor={paging_token}&order={asc,desc}&limit={1-200}` | From 0a3aade5536a7b7cbd3f0b10936f9924874dbe9b Mon Sep 17 00:00:00 2001 From: Elliot Voris Date: Thu, 29 Feb 2024 16:58:38 -0600 Subject: [PATCH 108/133] use README.mdx convention for soroban-rpc --- .../{introduction/index.mdx => README.mdx} | 0 platforms/soroban-rpc/introduction/_.category.json | 4 ---- platforms/soroban-rpc/methods/README.mdx | 11 +++++++++++ platforms/soroban-rpc/methods/_category_.json | 8 -------- 4 files changed, 11 insertions(+), 12 deletions(-) rename platforms/soroban-rpc/{introduction/index.mdx => README.mdx} (100%) delete mode 100644 platforms/soroban-rpc/introduction/_.category.json create mode 100644 platforms/soroban-rpc/methods/README.mdx delete mode 100644 platforms/soroban-rpc/methods/_category_.json diff --git a/platforms/soroban-rpc/introduction/index.mdx b/platforms/soroban-rpc/README.mdx similarity index 100% rename from platforms/soroban-rpc/introduction/index.mdx rename to platforms/soroban-rpc/README.mdx diff --git a/platforms/soroban-rpc/introduction/_.category.json b/platforms/soroban-rpc/introduction/_.category.json deleted file mode 100644 index a79c9130f..000000000 --- a/platforms/soroban-rpc/introduction/_.category.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "position": 10, - "label": "Intro" - } \ No newline at end of file diff --git a/platforms/soroban-rpc/methods/README.mdx b/platforms/soroban-rpc/methods/README.mdx new file mode 100644 index 000000000..f0d5ad4b9 --- /dev/null +++ b/platforms/soroban-rpc/methods/README.mdx @@ -0,0 +1,11 @@ +--- +title: Methods +sidebar_position: 30 +--- + +import DocCardList from "@theme/DocCardList"; + +All you need to know about available RPC methods, parameters and responses, and +making RPC requests. + + diff --git a/platforms/soroban-rpc/methods/_category_.json b/platforms/soroban-rpc/methods/_category_.json deleted file mode 100644 index 6158ff678..000000000 --- a/platforms/soroban-rpc/methods/_category_.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "label": "Methods", - "position": 30, - "link": { - "type": "generated-index", - "slug": "/soroban-rpc/methods" - } -} From e4ea6c2f54c839dd351df56387f0670e87d2eb8e Mon Sep 17 00:00:00 2001 From: Bri <92327786+briwylde08@users.noreply.github.com> Date: Thu, 29 Feb 2024 16:05:15 -0700 Subject: [PATCH 109/133] fix link, formatting --- platforms/soroban-rpc/json-rpc.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platforms/soroban-rpc/json-rpc.mdx b/platforms/soroban-rpc/json-rpc.mdx index e04bfeca3..946c694c7 100644 --- a/platforms/soroban-rpc/json-rpc.mdx +++ b/platforms/soroban-rpc/json-rpc.mdx @@ -27,6 +27,6 @@ Soroban-RPC provides an [OpenRPC] specification document that can be used to moc [jsonrpc error object]: https://www.jsonrpc.org/specification#error_object [JavaScript SDK]: https://github.com/stellar/js-stellar-sdk [OpenRPC]: https://open-rpc.org/ -[methods]: ../methods +[methods]: ./methods [specification document here]: https://raw.githubusercontent.com/stellar/soroban-docs/main/static/openrpc.json [OpenRPC Playground]: https://playground.open-rpc.org/?schemaUrl=https://raw.githubusercontent.com/stellar/soroban-docs/main/static/openrpc.json From 0d176194310a078c5f6e5a5d61050153432442dd Mon Sep 17 00:00:00 2001 From: Elliot Voris Date: Thu, 29 Feb 2024 17:06:59 -0600 Subject: [PATCH 110/133] fix more broken links --- platforms/horizon/resources/assets/object.mdx | 2 +- .../horizon/resources/claimablebalances/object.mdx | 10 +++++----- platforms/horizon/resources/ledgers/object.mdx | 2 +- platforms/horizon/resources/offers/object.mdx | 2 +- .../horizon/resources/operations/object/index.mdx | 2 +- platforms/horizon/resources/trades/object.mdx | 2 +- platforms/horizon/resources/transactions/object.mdx | 2 +- platforms/horizon/structure/README.mdx | 4 ++-- platforms/horizon/structure/response-format.mdx | 4 ++-- platforms/hubble/introduction.mdx | 2 +- .../{introduction/index.mdx => README.mdx} | 0 .../admin-guide/_category_.json | 7 ------- .../introduction/_category_.json | 4 ---- 13 files changed, 16 insertions(+), 27 deletions(-) rename platforms/stellar-disbursement-platform/{introduction/index.mdx => README.mdx} (100%) delete mode 100644 platforms/stellar-disbursement-platform/admin-guide/_category_.json delete mode 100644 platforms/stellar-disbursement-platform/introduction/_category_.json diff --git a/platforms/horizon/resources/assets/object.mdx b/platforms/horizon/resources/assets/object.mdx index d25836917..63026f3c3 100644 --- a/platforms/horizon/resources/assets/object.mdx +++ b/platforms/horizon/resources/assets/object.mdx @@ -66,7 +66,7 @@ When Horizon returns information about an asset, it uses the following format: - If set to `true`, this account can freeze the balance of a holder of an asset issued by this account. - paging_token - number - - A cursor value for use in [pagination](../../structure/pagination/index.mdx). + - A cursor value for use in [pagination](../../structure/pagination/README.mdx). diff --git a/platforms/horizon/resources/claimablebalances/object.mdx b/platforms/horizon/resources/claimablebalances/object.mdx index cbf4516b3..d1283cfe4 100644 --- a/platforms/horizon/resources/claimablebalances/object.mdx +++ b/platforms/horizon/resources/claimablebalances/object.mdx @@ -18,7 +18,7 @@ When Horizon returns information about a claimable balance, it uses the followin - A unique identifier for this claimable balance. - paging_token - number - - A cursor value for use in [pagination](../../structure/pagination/index.mdx). + - A cursor value for use in [pagination](../../structure/pagination/README.mdx). - asset - string - The asset available to be claimed in the [SEP-11 form](https://github.com/stellar/stellar-protocol/blob/0c675fb3a482183dcf0f5db79c12685acf82a95c/ecosystem/sep-0011.md#values) `asset_code:issuing_address` or `native` (for XLM) @@ -57,10 +57,10 @@ When Horizon returns information about a claimable balance, it uses the followin - The value is also a predicate. This clause of the condition is satisfied if the value is _not_ satisfied. - absBefore - string (optional) - - A customized ISO 8601 formatted string representing a deadline for when the claimable balance can be claimed. If the balance is claimed before the date then this clause of the condition is satisfied. The format of this date string is a custom extension on top of ISO 8601 format. It allows for years to be outside the 0000-9999 range. The dates are derived from a unix epoch value in range of signed 64 bit integer. This means the date expresses a much larger calendar range of 292277026596 years into future and -292471206707 years back in past. This custom extension format will add a `'+'` prefix on values that go beyond year 9999 into the future and for years that are prior to year 0(B.C per Gregorian calendar) it will add prefix of `'-'`. - Here are examples of date string values that are possible: - `'2022-02-10T15:30:22Z'` - `'+39121901036-03-29T15:30:22Z'` + - A customized ISO 8601 formatted string representing a deadline for when the claimable balance can be claimed. If the balance is claimed before the date then this clause of the condition is satisfied. The format of this date string is a custom extension on top of ISO 8601 format. It allows for years to be outside the 0000-9999 range. The dates are derived from a unix epoch value in range of signed 64 bit integer. This means the date expresses a much larger calendar range of 292277026596 years into future and -292471206707 years back in past. This custom extension format will add a `'+'` prefix on values that go beyond year 9999 into the future and for years that are prior to year 0(B.C per Gregorian calendar) it will add prefix of `'-'`. + Here are examples of date string values that are possible: + `'2022-02-10T15:30:22Z'` + `'+39121901036-03-29T15:30:22Z'` `'-7025-12-23T00:00:00Z'` - absBeforeEpoch - string (optional) diff --git a/platforms/horizon/resources/ledgers/object.mdx b/platforms/horizon/resources/ledgers/object.mdx index 5758fc7f7..6900700de 100644 --- a/platforms/horizon/resources/ledgers/object.mdx +++ b/platforms/horizon/resources/ledgers/object.mdx @@ -18,7 +18,7 @@ When Horizon returns information about a ledger, it uses the following format: - A unique identifier for this ledger. - paging_token - number - - A cursor value for use in [pagination](../../structure/pagination/index.mdx). + - 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/encyclopedia/xdr)-encoded form. diff --git a/platforms/horizon/resources/offers/object.mdx b/platforms/horizon/resources/offers/object.mdx index 41f0e3baa..cc4885d55 100644 --- a/platforms/horizon/resources/offers/object.mdx +++ b/platforms/horizon/resources/offers/object.mdx @@ -18,7 +18,7 @@ When Horizon returns information about an offer, it uses the following format: - A unique identifier for this offer. - paging_token - number - - A cursor value for use in [pagination](../../structure/pagination/index.mdx). + - A cursor value for use in [pagination](../../structure/pagination/README.mdx). - seller - string - The account ID of the account making this offer. diff --git a/platforms/horizon/resources/operations/object/index.mdx b/platforms/horizon/resources/operations/object/index.mdx index 64d8c3451..3e18cbf87 100644 --- a/platforms/horizon/resources/operations/object/index.mdx +++ b/platforms/horizon/resources/operations/object/index.mdx @@ -20,7 +20,7 @@ See the [generic Operation errors](../../../errors/result-codes/operations.mdx). - The operation's ID number. - paging_token - string - - A cursor value for use in [pagination](../../../structure/pagination/index.mdx). + - A cursor value for use in [pagination](../../../structure/pagination/README.mdx). - type_i - number - A number indicating the operation type. diff --git a/platforms/horizon/resources/trades/object.mdx b/platforms/horizon/resources/trades/object.mdx index 6190bde71..24d386288 100644 --- a/platforms/horizon/resources/trades/object.mdx +++ b/platforms/horizon/resources/trades/object.mdx @@ -18,7 +18,7 @@ When Horizon returns information about a trade, it uses the following format: - A unique identifier for this trade. - paging_token - number - - A cursor value for use in [pagination](../../structure/pagination/index.mdx). + - A cursor value for use in [pagination](../../structure/pagination/README.mdx). - ledger_close_time - string - An ISO 8601 formatted string of when the ledger with this trade was closed. diff --git a/platforms/horizon/resources/transactions/object.mdx b/platforms/horizon/resources/transactions/object.mdx index f90c1862a..81486c784 100644 --- a/platforms/horizon/resources/transactions/object.mdx +++ b/platforms/horizon/resources/transactions/object.mdx @@ -18,7 +18,7 @@ When Horizon returns information about a transaction, it uses the following form - A unique identifier for this transaction. - paging_token - number - - A cursor value for use in [pagination](../../structure/pagination/index.mdx). + - A cursor value for use in [pagination](../../structure/pagination/README.mdx). - successful - boolean - Indicates if this transaction was successful or not. diff --git a/platforms/horizon/structure/README.mdx b/platforms/horizon/structure/README.mdx index 6d6e69042..8011887e3 100644 --- a/platforms/horizon/structure/README.mdx +++ b/platforms/horizon/structure/README.mdx @@ -22,9 +22,9 @@ The Stellar Development Foundation (SDF) runs two instances of Horizon: | | | | --- | --- | -| [Structure](../structure/index.mdx) | How Horizon is structured. | +| [Structure](../structure/README.mdx) | How Horizon is structured. | | [Resources](../resources/index.mdx) | Descriptions of resources and their endpoints. | -| [Aggregations](../aggregations/index.mdx) | Descriptions of specialized endpoints. | +| [Aggregations](../aggregations/README.mdx) | Descriptions of specialized endpoints. | | [Errors](../errors/index.mdx) | Potential errors and what they mean. | diff --git a/platforms/horizon/structure/response-format.mdx b/platforms/horizon/structure/response-format.mdx index aadec3648..e8fc7805a 100644 --- a/platforms/horizon/structure/response-format.mdx +++ b/platforms/horizon/structure/response-format.mdx @@ -15,7 +15,7 @@ HAL is just JSON with two reserved attribute names: If a response is a single record, the `_links` section will provide links to any parent or child records, and there will be no `_embedded` property. -If a response is a collection, the `_links` section will provide [pagination](./pagination/index.mdx) links, and the response’s list of records will be nested underneath the `_embedded` property. +If a response is a collection, the `_links` section will provide [pagination](./pagination/README.mdx) links, and the response’s list of records will be nested underneath the `_embedded` property. @@ -30,7 +30,7 @@ If a response is a collection, the `_links` section will provide [pagination](./ - Present when querying an endpoint that responds with a collection of records. - + ```json diff --git a/platforms/hubble/introduction.mdx b/platforms/hubble/introduction.mdx index b3c30e63a..74c404ca6 100644 --- a/platforms/hubble/introduction.mdx +++ b/platforms/hubble/introduction.mdx @@ -6,7 +6,7 @@ slug: /hubble ## What is Hubble? -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/index.mdx). +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. diff --git a/platforms/stellar-disbursement-platform/introduction/index.mdx b/platforms/stellar-disbursement-platform/README.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/introduction/index.mdx rename to platforms/stellar-disbursement-platform/README.mdx diff --git a/platforms/stellar-disbursement-platform/admin-guide/_category_.json b/platforms/stellar-disbursement-platform/admin-guide/_category_.json deleted file mode 100644 index 25d38e491..000000000 --- a/platforms/stellar-disbursement-platform/admin-guide/_category_.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "position": 15, - "label": "Admin Guide", - "link": { - "type": "generated-index" - } - } diff --git a/platforms/stellar-disbursement-platform/introduction/_category_.json b/platforms/stellar-disbursement-platform/introduction/_category_.json deleted file mode 100644 index 545254b2c..000000000 --- a/platforms/stellar-disbursement-platform/introduction/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "position": 10, - "label": "Introduction" -} \ No newline at end of file From 172b95d93497df536d98964d0009b7a70d6d6d80 Mon Sep 17 00:00:00 2001 From: Elliot Voris Date: Thu, 29 Feb 2024 17:12:18 -0600 Subject: [PATCH 111/133] use README.mdx conventions in sdp --- platforms/stellar-disbursement-platform/README.mdx | 3 ++- .../admin-guide/README.mdx | 11 +++++++++++ .../admin-guide/user-interface/README.mdx | 10 ++++++++++ .../admin-guide/user-interface/_category_.json | 4 ---- .../resources/{index.mdx => README.mdx} | 0 .../resources/_category_.json | 5 ----- 6 files changed, 23 insertions(+), 10 deletions(-) create mode 100644 platforms/stellar-disbursement-platform/admin-guide/README.mdx create mode 100644 platforms/stellar-disbursement-platform/admin-guide/user-interface/README.mdx delete mode 100644 platforms/stellar-disbursement-platform/admin-guide/user-interface/_category_.json rename platforms/stellar-disbursement-platform/resources/{index.mdx => README.mdx} (100%) delete mode 100644 platforms/stellar-disbursement-platform/resources/_category_.json diff --git a/platforms/stellar-disbursement-platform/README.mdx b/platforms/stellar-disbursement-platform/README.mdx index 39b71a822..c22fcb640 100644 --- a/platforms/stellar-disbursement-platform/README.mdx +++ b/platforms/stellar-disbursement-platform/README.mdx @@ -1,9 +1,10 @@ --- title: Stellar Disbursement Platform API Reference sidebar_position: 10 +sidebar_label: Introduction slug: /stellar-disbursement-platform --- The Stellar Disbursement Platform (SDP) enables organizations to disburse bulk payments to recipients using Stellar. -This section includes the API reference for the Stellar Disbursement Platform. To learn more about the Stellar Disbursement Platform and how to run it, check out the [Admin Guide](../admin-guide/overview.mdx). +This section includes the API reference for the Stellar Disbursement Platform. To learn more about the Stellar Disbursement Platform and how to run it, check out the [Admin Guide](./admin-guide/README.mdx). diff --git a/platforms/stellar-disbursement-platform/admin-guide/README.mdx b/platforms/stellar-disbursement-platform/admin-guide/README.mdx new file mode 100644 index 000000000..39975a6f9 --- /dev/null +++ b/platforms/stellar-disbursement-platform/admin-guide/README.mdx @@ -0,0 +1,11 @@ +--- +title: Admin Guide +sidebar_position: 15 +--- + +import DocCardList from "@theme/DocCardList"; + +All you need to know about setting up, running, and using the Stellar +Disbursement Platform. + + diff --git a/platforms/stellar-disbursement-platform/admin-guide/user-interface/README.mdx b/platforms/stellar-disbursement-platform/admin-guide/user-interface/README.mdx new file mode 100644 index 000000000..1096857c7 --- /dev/null +++ b/platforms/stellar-disbursement-platform/admin-guide/user-interface/README.mdx @@ -0,0 +1,10 @@ +--- +title: User Interface +sidebar_position: 40 +--- + +import DocCardList from "@theme/DocCardList"; + +A description and walkthrough of the various parts of the SDP user interface. + + diff --git a/platforms/stellar-disbursement-platform/admin-guide/user-interface/_category_.json b/platforms/stellar-disbursement-platform/admin-guide/user-interface/_category_.json deleted file mode 100644 index 220b65bdc..000000000 --- a/platforms/stellar-disbursement-platform/admin-guide/user-interface/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "position": 40, - "label": "User Interface" - } \ No newline at end of file diff --git a/platforms/stellar-disbursement-platform/resources/index.mdx b/platforms/stellar-disbursement-platform/resources/README.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/resources/index.mdx rename to platforms/stellar-disbursement-platform/resources/README.mdx diff --git a/platforms/stellar-disbursement-platform/resources/_category_.json b/platforms/stellar-disbursement-platform/resources/_category_.json deleted file mode 100644 index 9aac71963..000000000 --- a/platforms/stellar-disbursement-platform/resources/_category_.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "position": 20, - "label": "Resources" -} - \ No newline at end of file From 1c4f593a05eb37984bb9066d9cf6d724d2598a8f Mon Sep 17 00:00:00 2001 From: Elliot Voris Date: Thu, 29 Feb 2024 17:49:17 -0600 Subject: [PATCH 112/133] fix a whole bunch of broken links --- .../admin-guide/component/observer/observer.mdx | 2 +- platforms/anchor-platform/admin-guide/overview.mdx | 10 +++++----- .../anchor-platform/admin-guide/sep10/README.mdx | 2 +- .../admin-guide/sep24/configuration.mdx | 2 +- .../admin-guide/sep24/getting-started.mdx | 6 +++--- .../admin-guide/sep24/integration.mdx | 2 +- .../admin-guide/sep31/configuration.mdx | 2 +- .../admin-guide/sep31/getting-started.mdx | 6 +++--- .../admin-guide/sep31/integration.mdx | 2 +- .../admin-guide/sep6/configuration.mdx | 2 +- .../admin-guide/sep6/getting-started.mdx | 6 +++--- .../admin-guide/sep6/integration.mdx | 4 ++-- platforms/anchor-platform/events/index.mdx | 2 +- .../admin-guide/design-and-architecture.mdx | 2 +- sidebars.js | 13 ------------- 15 files changed, 25 insertions(+), 38 deletions(-) diff --git a/platforms/anchor-platform/admin-guide/component/observer/observer.mdx b/platforms/anchor-platform/admin-guide/component/observer/observer.mdx index 4ec8ad734..08b05b061 100644 --- a/platforms/anchor-platform/admin-guide/component/observer/observer.mdx +++ b/platforms/anchor-platform/admin-guide/component/observer/observer.mdx @@ -33,4 +33,4 @@ The Fireblocks custody service will automatically track transactions and notify ::: -[fireblocks]: /platforms/category/fireblocks +[fireblocks]: ../../custody-services/fireblocks/README.mdx diff --git a/platforms/anchor-platform/admin-guide/overview.mdx b/platforms/anchor-platform/admin-guide/overview.mdx index a69a3e863..377bfa49e 100644 --- a/platforms/anchor-platform/admin-guide/overview.mdx +++ b/platforms/anchor-platform/admin-guide/overview.mdx @@ -29,8 +29,8 @@ The documentation for the Anchor Platform is a work in progress. Developers are [sep-31]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0031.md [sep-38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md [anchor-platform-github]: https://github.com/stellar/java-stellar-anchor-sdk -[sep1-ap]: /platforms/category/stellar-info-file -[sep6-ap]: /platforms/category/programmatic-deposits-and-withdrawals -[sep10-ap]: /platforms/category/stellar-authentication -[sep24-ap]: /platforms/category/hosted-deposits-and-withdrawals -[sep31-ap]: /platforms/category/cross-border-payments +[sep1-ap]: ./sep1/README.mdx +[sep6-ap]: ./sep6/README.mdx +[sep10-ap]: ./sep10/README.mdx +[sep24-ap]: ./sep24/README.mdx +[sep31-ap]: ./sep31/README.mdx diff --git a/platforms/anchor-platform/admin-guide/sep10/README.mdx b/platforms/anchor-platform/admin-guide/sep10/README.mdx index 0553bb693..9fcca1668 100644 --- a/platforms/anchor-platform/admin-guide/sep10/README.mdx +++ b/platforms/anchor-platform/admin-guide/sep10/README.mdx @@ -74,4 +74,4 @@ ORG_DESCRIPTION = "A description of your organization" -[sep1-ap]: /platforms/category/stellar-info-file +[sep1-ap]: ../sep1/README.mdx diff --git a/platforms/anchor-platform/admin-guide/sep24/configuration.mdx b/platforms/anchor-platform/admin-guide/sep24/configuration.mdx index e21ddac7b..71bff2df6 100644 --- a/platforms/anchor-platform/admin-guide/sep24/configuration.mdx +++ b/platforms/anchor-platform/admin-guide/sep24/configuration.mdx @@ -187,4 +187,4 @@ The demo wallet should be able to find your `stellar.toml` file, authenticate us [flyway]: https://documentation.red-gate.com/fd/welcome-to-flyway-184127914.html [sep-24-ref-ui]: https://github.com/stellar/sep24-reference-ui [sep-24-ref]: https://github.com/stellar/java-stellar-anchor-sdk/tree/develop/kotlin-reference-server -[sep1-ap]: /platforms/category/stellar-info-file +[sep1-ap]: ../sep1/README.mdx diff --git a/platforms/anchor-platform/admin-guide/sep24/getting-started.mdx b/platforms/anchor-platform/admin-guide/sep24/getting-started.mdx index b90af74e9..ce1d1dbf4 100644 --- a/platforms/anchor-platform/admin-guide/sep24/getting-started.mdx +++ b/platforms/anchor-platform/admin-guide/sep24/getting-started.mdx @@ -28,6 +28,6 @@ The customer can then use the digital asset on the Stellar network for remittanc 5. Once the anchor receives the payment, the customer receives the withdrawn funds via bank transfer. [sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[installation-ap]: /platforms/anchor-platform/admin-guide/getting_started -[sep1-ap]: /platforms/category/stellar-info-file -[sep10-ap]: /platforms/category/stellar-authentication +[installation-ap]: ../../admin-guide/getting-started.mdx +[sep1-ap]: ../sep1/README.mdx +[sep10-ap]: ../sep10/README.mdx diff --git a/platforms/anchor-platform/admin-guide/sep24/integration.mdx b/platforms/anchor-platform/admin-guide/sep24/integration.mdx index e94725ff0..18cb55581 100644 --- a/platforms/anchor-platform/admin-guide/sep24/integration.mdx +++ b/platforms/anchor-platform/admin-guide/sep24/integration.mdx @@ -969,4 +969,4 @@ Works in the same manner as for the deposit flow. For more details, see [Transac [sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md [sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[json-rpc-methods]: /platforms/anchor-platform/rpc/methods +[json-rpc-methods]: ../../rpc/methods/index.mdx diff --git a/platforms/anchor-platform/admin-guide/sep31/configuration.mdx b/platforms/anchor-platform/admin-guide/sep31/configuration.mdx index 2aa9faf27..8c0877cd7 100644 --- a/platforms/anchor-platform/admin-guide/sep31/configuration.mdx +++ b/platforms/anchor-platform/admin-guide/sep31/configuration.mdx @@ -371,7 +371,7 @@ SECRET_CALLBACK_API_AUTH_SECRET= We'll define the server that implements the endpoints defined in the Callback API in the following section. [sep31-get-info]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0031.md#get-info -[sep1-ap]: /platforms/category/stellar-info-file +[sep1-ap]: ../sep1/README.mdx [sep38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md [sep38-post-quote]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md#post-quote [platform-api-kyc]: /platforms/anchor-platform/callbacks/customer diff --git a/platforms/anchor-platform/admin-guide/sep31/getting-started.mdx b/platforms/anchor-platform/admin-guide/sep31/getting-started.mdx index 3da6d5da2..d6b239c2d 100644 --- a/platforms/anchor-platform/admin-guide/sep31/getting-started.mdx +++ b/platforms/anchor-platform/admin-guide/sep31/getting-started.mdx @@ -16,6 +16,6 @@ As we improve the documentation, parts of this guide that are relevant to other Before continuing with this section, make sure that you have already [installed][installation-ap] the Anchor Platform and configured the necessary features required by SEP-31: [SEP-1 (Stellar Info File)][sep1-ap] and [SEP-10 (Stellar Authentication)][sep10-ap]. [sep-31]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0031.md -[installation-ap]: /platforms/anchor-platform/admin-guide/getting_started -[sep1-ap]: /platforms/category/stellar-info-file -[sep10-ap]: /platforms/category/stellar-authentication +[installation-ap]: ../../admin-guide/getting-started.mdx +[sep1-ap]: ../sep1/README.mdx +[sep10-ap]: ../sep10/README.mdx diff --git a/platforms/anchor-platform/admin-guide/sep31/integration.mdx b/platforms/anchor-platform/admin-guide/sep31/integration.mdx index 8a0941645..580be041c 100644 --- a/platforms/anchor-platform/admin-guide/sep31/integration.mdx +++ b/platforms/anchor-platform/admin-guide/sep31/integration.mdx @@ -674,7 +674,7 @@ This endpoint may be removed during future major version updates of the Anchor P ::: [ap-api]: /platforms/anchor-platform -[ap-sep10]: /platforms/category/stellar-authentication +[ap-sep10]: ../sep10/README.mdx [sep12]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md [demo-wallet]: https://demo-wallet.stellar.org [indicative]: https://www.investopedia.com/terms/i/indicativequote.asp diff --git a/platforms/anchor-platform/admin-guide/sep6/configuration.mdx b/platforms/anchor-platform/admin-guide/sep6/configuration.mdx index 39bafab7f..01b2f8426 100644 --- a/platforms/anchor-platform/admin-guide/sep6/configuration.mdx +++ b/platforms/anchor-platform/admin-guide/sep6/configuration.mdx @@ -122,5 +122,5 @@ Initiate a deposit transaction by doing the following: The demo wallet should be able to find your `stellar.toml` file, authenticate using the Stellar keypair you just created, and initiate a transaction. [sep-6]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md -[sep1-ap]: /platforms/category/stellar-info-file +[sep1-ap]: ../sep1/README.mdx [stellar-demo-wallet]: https://demo-wallet.stellar.org/ diff --git a/platforms/anchor-platform/admin-guide/sep6/getting-started.mdx b/platforms/anchor-platform/admin-guide/sep6/getting-started.mdx index 59f6e7b63..3a1d875e9 100644 --- a/platforms/anchor-platform/admin-guide/sep6/getting-started.mdx +++ b/platforms/anchor-platform/admin-guide/sep6/getting-started.mdx @@ -28,6 +28,6 @@ The customer can then use the digital asset on the Stellar network for remittanc 5. Once the anchor receives the payment, the customer receives the withdrawn funds via any method supported by the anchor (such as bank transfer) [sep-6]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md -[installation-ap]: /platforms/anchor-platform/admin-guide/getting_started -[sep1-ap]: /platforms/category/stellar-info-file -[sep10-ap]: /platforms/category/stellar-authentication +[installation-ap]: ../../admin-guide/getting-started.mdx +[sep1-ap]: ../sep1/README.mdx +[sep10-ap]: ../sep10/README.mdx diff --git a/platforms/anchor-platform/admin-guide/sep6/integration.mdx b/platforms/anchor-platform/admin-guide/sep6/integration.mdx index d12f0c0e6..1c928b6f5 100644 --- a/platforms/anchor-platform/admin-guide/sep6/integration.mdx +++ b/platforms/anchor-platform/admin-guide/sep6/integration.mdx @@ -323,7 +323,7 @@ After this JSON-RPC request, the transaction will be transferred to the `complet ### Sending Payment Via Custody Service -The Anchor Platform provides a possibility to send a payment via custody services, such as [Fireblocks][fireblocks]. To make a payment via a custody service, make the following JSON-RPC request. +The Anchor Platform provides a possibility to send a payment via custody services, such as [Fireblocks](../custody-services/fireblocks/README.mdx). To make a payment via a custody service, make the following JSON-RPC request. @@ -979,4 +979,4 @@ Works in the same manner as for the deposit flow. For more details, see [Transac -[get-transactions]: /platforms/anchor-platform/resources/get-transactions +[get-transactions]: ../../resources/get-transaction diff --git a/platforms/anchor-platform/events/index.mdx b/platforms/anchor-platform/events/index.mdx index caab7dc46..4152515fc 100644 --- a/platforms/anchor-platform/events/index.mdx +++ b/platforms/anchor-platform/events/index.mdx @@ -9,4 +9,4 @@ By integrating your business server with the event service, you will be able to The event service is **required** for the [SEP-6 integration][sep-6] as there are no SEP-6 callbacks. -[sep-6]: /platforms/category/programmatic-deposits-and-withdrawals +[sep-6]: ../admin-guide/sep6/README.mdx diff --git a/platforms/stellar-disbursement-platform/admin-guide/design-and-architecture.mdx b/platforms/stellar-disbursement-platform/admin-guide/design-and-architecture.mdx index 41607161b..2c9eb0821 100644 --- a/platforms/stellar-disbursement-platform/admin-guide/design-and-architecture.mdx +++ b/platforms/stellar-disbursement-platform/admin-guide/design-and-architecture.mdx @@ -7,7 +7,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](../resources/index.mdx) + - **Dashboard API**: the API used by the front-end UI for all disbursement requests. The API is documented [here](../resources/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 diff --git a/sidebars.js b/sidebars.js index 411b566c6..a887cc8df 100644 --- a/sidebars.js +++ b/sidebars.js @@ -36,19 +36,6 @@ const sidebars = { dirName: 'issuing-assets', }] }, - { - type: 'category', - label: 'Anchor Assets', - link: { - type: 'generated-index', - title: 'Anchor Assets', - slug: '/category/anchor-assets', - }, - items: [{ - type: 'autogenerated', - dirName: 'anchoring-assets', - }] - }, { type: 'category', label: 'Build Applications', From 238f733b63b058a2581774747da16d2c25439d47 Mon Sep 17 00:00:00 2001 From: Bri <92327786+briwylde08@users.noreply.github.com> Date: Fri, 1 Mar 2024 08:40:55 -0700 Subject: [PATCH 113/133] Horizon structural changes --- platforms/horizon/README.mdx | 19 +++++++++++++++-- platforms/horizon/admin-guide/README.mdx | 2 +- platforms/horizon/structure/README.mdx | 26 ++---------------------- 3 files changed, 20 insertions(+), 27 deletions(-) diff --git a/platforms/horizon/README.mdx b/platforms/horizon/README.mdx index 77fea8b71..cfc3e16c9 100644 --- a/platforms/horizon/README.mdx +++ b/platforms/horizon/README.mdx @@ -1,9 +1,11 @@ --- -title: Horizon +title: Introduction sidebar_position: 10 --- -Horizon provides an HTTP API to data in the Stellar network. It ingests and re-serves the data produced by the Stellar network in a form that is easier to consume by the average application relative to the performance-oriented data representations used by Stellar Core. +Horizon provides an HTTP API to data in the Stellar network. It ingests and re-serves the data produced by the Stellar network in a form that is easier to consume by the average application relative to the performance-oriented data representations used by Stellar Core. This API serves the bridge between apps and [Stellar Core](/docs/run-core-node). Projects like wallets, decentralized exchanges, and asset issuers use Horizon to submit transactions, query an account balance, or stream events like transactions to an account. + +Horizon can be accessed via cURL, a browser, or one of the [Stellar SDKs](/docs/tools/sdks). To reduce the complexity of your project, we recommend you use an SDK instead of making direct API calls. This guide describes how to administer a production Horizon instance (refer to the [Developers' Blog](https://www.stellar.org/developers-blog/a-new-sun-on-the-horizon) for some background on the performance and architectural improvements of this major version bump). For information about developing on the Horizon codebase, check out the [Development Guide](https://github.com/stellar/go/blob/master/services/horizon/internal/docs/GUIDE_FOR_DEVELOPERS.md). @@ -15,3 +17,16 @@ Running Horizon within your own infrastructure provides a number of benefits. Yo - Have full operational control without dependency on the Stellar Development Foundation for network data and transaction submission to networks; - Run multiple instances for redundancy and scalability. + +The Stellar Development Foundation (SDF) runs two instances of Horizon: + +- [https://horizon.stellar.org/](https://horizon.stellar.org/) for interacting with the public network +- [https://horizon-testnet.stellar.org/](https://horizon-testnet.stellar.org/) for interacting with the [testnet](/docs/fundamentals-and-concepts/networks) + +## In These Docs + +- [Admin Guide](./admin-guide): how to set up your own Horizon instance. +- [Structure](./structure): how Horizon is structured. +- [Resources](./resources/index.mdx): descriptions of resources and their endpoints. +- [Aggregations](./aggregations/README.mdx): descriptions of specialized endpoints. +- [Errors](./errors/index.mdx): potential errors and what they mean. diff --git a/platforms/horizon/admin-guide/README.mdx b/platforms/horizon/admin-guide/README.mdx index 454167954..c48bbbe6f 100644 --- a/platforms/horizon/admin-guide/README.mdx +++ b/platforms/horizon/admin-guide/README.mdx @@ -1,6 +1,6 @@ --- title: Admin Guide -sidebar_position: 20 +sidebar_position: 15 --- import DocCardList from "@theme/DocCardList"; diff --git a/platforms/horizon/structure/README.mdx b/platforms/horizon/structure/README.mdx index 8011887e3..1226021c2 100644 --- a/platforms/horizon/structure/README.mdx +++ b/platforms/horizon/structure/README.mdx @@ -1,30 +1,8 @@ --- title: Horizon API Reference -sidebar_position: 15 +sidebar_position: 20 sidebar_label: Structure description: Horizon is an API for interacting with the Stellar network. --- -import { MethodTable } from "@site/src/components/MethodTable"; - -Horizon is an API for interacting with the Stellar network. - -This API serves the bridge between apps and [Stellar Core](/docs/run-core-node). Projects like wallets, decentralized exchanges, and asset issuers use Horizon to submit transactions, query an account balance, or stream events like transactions to an account. - -Horizon is a [RESTful API](https://en.wikipedia.org/wiki/Representational_state_transfer) and can be accessed via cURL, a browser, or one of the [Stellar SDKs](/docs/tools/sdks). To reduce the complexity of your project, we recommend you use an SDK instead of making direct API calls. - -The Stellar Development Foundation (SDF) runs two instances of Horizon: - -- [https://horizon.stellar.org/](https://horizon.stellar.org/) for interacting with the public network -- [https://horizon-testnet.stellar.org/](https://horizon-testnet.stellar.org/) for interacting with the [testnet](/docs/fundamentals-and-concepts/networks) - - - -| | | -| --- | --- | -| [Structure](../structure/README.mdx) | How Horizon is structured. | -| [Resources](../resources/index.mdx) | Descriptions of resources and their endpoints. | -| [Aggregations](../aggregations/README.mdx) | Descriptions of specialized endpoints. | -| [Errors](../errors/index.mdx) | Potential errors and what they mean. | - - +How Horizon is structured. \ No newline at end of file From 4091dd78d5dde5bdc0e4bd4c2f15708c7cdfa75b Mon Sep 17 00:00:00 2001 From: Jun Luo <4catcode@gmail.com> Date: Sat, 2 Mar 2024 01:30:33 +0800 Subject: [PATCH 114/133] Update outdated code. (#759) --- api/methods/getLedgerEntries.mdx | 128 ++++++++++++++++--------------- 1 file changed, 65 insertions(+), 63 deletions(-) diff --git a/api/methods/getLedgerEntries.mdx b/api/methods/getLedgerEntries.mdx index 2d5ae1e4e..efd9a0f65 100644 --- a/api/methods/getLedgerEntries.mdx +++ b/api/methods/getLedgerEntries.mdx @@ -24,25 +24,24 @@ pip install --upgrade stellar-sdk ::: ```python -from stellar_sdk import xdr -from stellar_sdk.strkey import StrKey -from stellar_sdk.soroban import Symbol +from stellar_sdk import xdr, scval, Address def get_ledger_key_symbol(contract_id: str, symbol_text: str) -> str: - ledger_key = xdr.LedgerKey( - type=xdr.LedgerEntryType.CONTRACT_DATA, - contract_data=xdr.LedgerKeyContractData( - contract_id=xdr.hash.Hash(StrKey.decode_contract(contract_id)), - key=Symbol(symbol_text).to_xdr_sc_val(), - ), - ) - return ledger_key.to_xdr() + ledger_key = xdr.LedgerKey( + type=xdr.LedgerEntryType.CONTRACT_DATA, + contract_data=xdr.LedgerKeyContractData( + contract=Address(contract_id).to_xdr_sc_address(), + key=scval.to_symbol(symbol_text), + durability=xdr.ContractDataDurability.PERSISTENT + ), + ) + return ledger_key.to_xdr() print( - get_ledger_key_symbol( - "CA3D5KRYM6CB7OWQ6TWYRR3Z4T7GNZLKERYNZGGA5SOAOPIFY6YQGAXE", - "COUNTER" - ) + get_ledger_key_symbol( + "CCPYZFKEAXHHS5VVW5J45TOU7S2EODJ7TZNJIA5LKDVL3PESCES6FNCI", + "COUNTER" + ) ) ``` @@ -55,13 +54,14 @@ yarn add @stellar/stellar-sdk ``` ```js -import { xdr, StrKey } from "@stellar/stellar-sdk"; +import { xdr, Address } from "@stellar/stellar-sdk"; const getLedgerKeySymbol = (contractId, symbolText) => { const ledgerKey = xdr.LedgerKey.contractData( new xdr.LedgerKeyContractData({ - contractId: StrKey.decodeContract(contractId), + contract: new Address(contractId).toScAddress(), key: xdr.ScVal.scvSymbol(symbolText), + durability: xdr.ContractDataDurability.persistent(), }), ); return ledgerKey.toXDR("base64"); @@ -69,7 +69,7 @@ const getLedgerKeySymbol = (contractId, symbolText) => { console.log( getLedgerKeySymbol( - "CA3D5KRYM6CB7OWQ6TWYRR3Z4T7GNZLKERYNZGGA5SOAOPIFY6YQGAXE", + "CCPYZFKEAXHHS5VVW5J45TOU7S2EODJ7TZNJIA5LKDVL3PESCES6FNCI", "COUNTER", ), ); @@ -86,13 +86,12 @@ This functionality is included in the JavaScript [`stellar-sdk`](https://www.npm Accounts are stored as ledger entries, so we can use this method to look up an account along with it's current sequence number. ```js -import { xdr, Keypair, StrKey } from '@stellar/stellar-sdk' +import { xdr, Keypair } from '@stellar/stellar-sdk' const getLedgerKeyAccount = (address) => { - const publicKey = StrKey.decodeEd25519PublicKey(address) const ledgerKey = xdr.LedgerKey.account( new xdr.LedgerKeyAccount({ - accountId: Keypair.fromPublicKey(publicKey).xdrPublicKey(), + accountId: Keypair.fromPublicKey(address).xdrPublicKey(), }) ) return ledgerKey.toXDR('base64') @@ -128,11 +127,11 @@ And the response we get contains the `LedgerEntryData` with the current informat "entries": [ { "key": "AAAAAAAAAACp3BPIqFxM9XSnW6aHvavD3GWlJGfuylOt5tZL6CQtdQ==", - "xdr": "AAAAAAAAAACp3BPIqFxM9XSnW6aHvavD3GWlJGfuylOt5tZL6CQtdQAAABdIdugAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAA", + "xdr": "AAAAAAAAAACp3BPIqFxM9XSnW6aHvavD3GWlJGfuylOt5tZL6CQtdQAAABdIdugAAAWpygAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAA", "lastModifiedLedgerSeq": "164303" } ], - "latestLedger": "246819" + "latestLedger": 246819 } } ``` @@ -141,7 +140,7 @@ We can then parse this result as an `xdr.LedgerEntryData` type. ```js const parsed = xdr.LedgerEntryData.fromXDR( - "AAAAAAAAAACp3BPIqFxM9XSnW6aHvavD3GWlJGfuylOt5tZL6CQtdQAAABdIdugAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAA", + "AAAAAAAAAACp3BPIqFxM9XSnW6aHvavD3GWlJGfuylOt5tZL6CQtdQAAABdIdugAAAWpygAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAA", "base64", ); console.log(parsed); @@ -165,45 +164,43 @@ When you deploy a contract, first the code is "installed" (i.e. it is uploaded o ##### Python ```python -from stellar_sdk import xdr -from stellar_sdk.strkey import StrKey +from stellar_sdk import xdr, Address def get_ledger_key_contract_code(contract_id: str) -> str: - ledger_key = xdr.LedgerKey( - type=xdr.LedgerEntryType.CONTRACT_DATA, - contract_data=xdr.LedgerKeyContractData( - contract_id=xdr.Hash(StrKey.decodeContract(contract_id)), - key=xdr.SCVal( - type=xdr.SCValType.SCV_LEDGER_KEY_CONTRACT_EXECUTABLE, - ), - ), - ) - return ledger_key.to_xdr() + ledger_key = xdr.LedgerKey( + type=xdr.LedgerEntryType.CONTRACT_DATA, + contract_data=xdr.LedgerKeyContractData( + contract=Address(contract_id).to_xdr_sc_address(), + key=xdr.SCVal(xdr.SCValType.SCV_LEDGER_KEY_CONTRACT_INSTANCE), + durability=xdr.ContractDataDurability.PERSISTENT + ) + ) + return ledger_key.to_xdr() print( - get_ledger_key_contract_code( - "CA3D5KRYM6CB7OWQ6TWYRR3Z4T7GNZLKERYNZGGA5SOAOPIFY6YQGAXE" - ) + get_ledger_key_contract_code( + "CCPYZFKEAXHHS5VVW5J45TOU7S2EODJ7TZNJIA5LKDVL3PESCES6FNCI" + ) ) -# OUTPUT: AAAABq+aJSfjs7VXHWOwJGujK30xpTI3Zt98YN/As+O6b98jAAAAFA== +# OUTPUT: AAAABgAAAAGfjJVEBc55drW3U87N1Py0Rw0/nlqUA6tQ6r28khEl4gAAABQAAAAB ``` ##### JavaScript ```javascript -import { Address, xdr } from "@stellar/stellar-sdk"; +import { Contract } from "@stellar/stellar-sdk"; function getLedgerKeyContractCode(contractId) { - const instance = new ContractId(contractId).getFootprint(); + const instance = new Contract(contractId).getFootprint(); return instance.toXDR("base64"); } console.log( getLedgerKeyContractCode( - "CA3D5KRYM6CB7OWQ6TWYRR3Z4T7GNZLKERYNZGGA5SOAOPIFY6YQGAXE", + "CCPYZFKEAXHHS5VVW5J45TOU7S2EODJ7TZNJIA5LKDVL3PESCES6FNCI", ), ); -// OUTPUT: AAAABq+aJSfjs7VXHWOwJGujK30xpTI3Zt98YN/As+O6b98jAAAAFA== +// OUTPUT: AAAABgAAAAGfjJVEBc55drW3U87N1Py0Rw0/nlqUA6tQ6r28khEl4gAAABQAAAAB ``` We then take our output from this function, and use it as the element in the `keys` array parameter in our call to the `getLedgerEntries` method. @@ -214,7 +211,7 @@ We then take our output from this function, and use it as the element in the `ke "id": 8675309, "method": "getLedgerEntries", "params": { - "keys": ["AAAABq+aJSfjs7VXHWOwJGujK30xpTI3Zt98YN/As+O6b98jAAAAFA=="] + "keys": ["AAAABgAAAAGfjJVEBc55drW3U87N1Py0Rw0/nlqUA6tQ6r28khEl4gAAABQAAAAB"] } } ``` @@ -228,12 +225,12 @@ And the response we get contains the `LedgerEntryData` that can be used to find "result": { "entries": [ { - "key": "AAAABq+aJSfjs7VXHWOwJGujK30xpTI3Zt98YN/As+O6b98jAAAAFA==", - "xdr": "AAAABq+aJSfjs7VXHWOwJGujK30xpTI3Zt98YN/As+O6b98jAAAAFAAAABIAAAAAZBYoEJT3IaPMMk3FoRmnEQHoDxewPZL+Uor+xWI4uII=", + "key": "AAAABgAAAAGfjJVEBc55drW3U87N1Py0Rw0/nlqUA6tQ6r28khEl4gAAABQAAAAB", + "xdr": "AAAABgAAAAAAAAABn4yVRAXOeXa1t1POzdT8tEcNP55alAOrUOq9vJIRJeIAAAAUAAAAAQAAABMAAAAA5DNtbckOGVRsNVb8L7X/lIhAOy2o5G6GkLKXvc7W8foAAAAA", "lastModifiedLedgerSeq": "261603" } ], - "latestLedger": "262322" + "latestLedger": 262322 } } ``` @@ -251,28 +248,28 @@ def get_ledger_key_wasm_id(contract_code_ledger_entry_data: str) -> str: # First, we dig the wasm_id hash out of the xdr we received from RPC contract_code_wasm_hash = xdr.LedgerEntryData.from_xdr( contract_code_ledger_entry_data - ).contract_data.val.exec.wasm_id.hash + ).contract_data.val.instance.executable.wasm_hash # Now, we can create the `LedgerKey` as we've done in previous examples ledger_key = xdr.LedgerKey( type=xdr.LedgerEntryType.CONTRACT_CODE, contract_code=xdr.LedgerKeyContractCode( - hash=xdr.hash.Hash(contract_code_wasm_hash) + hash=contract_code_wasm_hash ), ) return ledger_key.to_xdr() print( get_ledger_key_wasm_id( - "AAAABq+aJSfjs7VXHWOwJGujK30xpTI3Zt98YN/As+O6b98jAAAAFAAAABIAAAAAZBYoEJT3IaPMMk3FoRmnEQHoDxewPZL+Uor+xWI4uII=" + "AAAABgAAAAAAAAABn4yVRAXOeXa1t1POzdT8tEcNP55alAOrUOq9vJIRJeIAAAAUAAAAAQAAABMAAAAA5DNtbckOGVRsNVb8L7X/lIhAOy2o5G6GkLKXvc7W8foAAAAA" ) ) -# OUTPUT: AAAAB2QWKBCU9yGjzDJNxaEZpxEB6A8XsD2S/lKK/sViOLiC +# OUTPUT: AAAAB+QzbW3JDhlUbDVW/C+1/5SIQDstqORuhpCyl73O1vH6 ``` ##### JavaScript ```javascript -const { xdr } = require("@stellar/stellar-sdk"); +import { xdr } from "@stellar/stellar-sdk"; function getLedgerKeyWasmId(contractCodeLedgerEntryData) { const entry = xdr.LedgerEntryData.fromXDR( @@ -280,11 +277,16 @@ function getLedgerKeyWasmId(contractCodeLedgerEntryData) { "base64", ); - const instance = entry.contractData().val().instance(); + const wasmHash = entry + .contractData() + .val() + .instance() + .executable() + .wasmHash(); let ledgerKey = xdr.LedgerKey.contractCode( new xdr.LedgerKeyContractCode({ - hash: instance.wasmHash(), + hash: wasmHash, }), ); @@ -293,10 +295,10 @@ function getLedgerKeyWasmId(contractCodeLedgerEntryData) { console.log( getLedgerKeyWasmId( - "AAAABq+aJSfjs7VXHWOwJGujK30xpTI3Zt98YN/As+O6b98jAAAAFAAAABIAAAAAZBYoEJT3IaPMMk3FoRmnEQHoDxewPZL+Uor+xWI4uII=", + "AAAABgAAAAAAAAABn4yVRAXOeXa1t1POzdT8tEcNP55alAOrUOq9vJIRJeIAAAAUAAAAAQAAABMAAAAA5DNtbckOGVRsNVb8L7X/lIhAOy2o5G6GkLKXvc7W8foAAAAA", ), ); -// OUTPUT: AAAAB2QWKBCU9yGjzDJNxaEZpxEB6A8XsD2S/lKK/sViOLiC +// OUTPUT: AAAAB+QzbW3JDhlUbDVW/C+1/5SIQDstqORuhpCyl73O1vH6 ``` Now, finally we have a `LedgerKey` that correspond to the Wasm byte-code that has been deployed under the `ContractId` we started out with so very long ago. This `LedgerKey` can be used in a final request to the Soroban-RPC endpoint. @@ -307,7 +309,7 @@ Now, finally we have a `LedgerKey` that correspond to the Wasm byte-code that ha "id": 8675309, "method": "getLedgerEntries", "params": { - "keys": ["AAAAB2QWKBCU9yGjzDJNxaEZpxEB6A8XsD2S/lKK/sViOLiC"] + "keys": ["AAAAB+QzbW3JDhlUbDVW/C+1/5SIQDstqORuhpCyl73O1vH6"] } } ``` @@ -321,13 +323,13 @@ And the response we get contains (even more) `LedgerEntryData` that we can decod "result": { "entries": [ { - "key": "AAAAB2QWKBCU9yGjzDJNxaEZpxEB6A8XsD2S/lKK/sViOLiC", - "xdr": "AAAABwAAAABkFigQlPcho8wyTcWhGacRAegPF7A9kv5Siv7FYji4ggAAAlQAYXNtAQAAAAEPA2ACfn4BfmABfgF+YAAAAgcBAXYBRwAAAwQDAQICBQMBABEGGQN/AUGAgMAAC38AQYWAwAALfwBBkIDAAAsHMQUGbWVtb3J5AgAFaGVsbG8AAQFfAAMKX19kYXRhX2VuZAMBC19faGVhcF9iYXNlAwIK4QID1gIDAn8CfgF/I4CAgIAAQSBrIgEkgICAgAACQAJAIACnQf8BcSICQQ5GDQAgAkHKAEcNAQtCACEDQXshAgNAAkACQAJAAkAgAkUNAEIBIQQgAkGFgMCAAGotAAAiBUHfAEYNAyAFrSEEIAVBUGpBCkkNAiAFQb9/akEaSQ0BAkAgBUGff2pBGk8NACAEQkV8IQQMBAsQgoCAgAAACyABIAA3AwggASADQgiGQg6ENwMAQQAhAgNAAkAgAkEQRw0AQQAhAgJAA0AgAkEQRg0BIAFBEGogAmogASACaikDADcDACACQQhqIQIMAAsLIAFBEGqtQiCGQgSEQoSAgIAgEICAgIAAIQQgAUEgaiSAgICAACAEDwsgAUEQaiACakICNwMAIAJBCGohAgwACwsgBEJLfCEEDAELIARCUnwhBAsgAkEBaiECIAQgA0IGhoQhAwwACwsAAAsEAAAACwIACwsOAQBBgIDAAAsFSGVsbG8AHhFjb250cmFjdGVudm1ldGF2MAAAAAAAAAAUAAAAJQBDDmNvbnRyYWN0c3BlY3YwAAAAAAAAAAAAAAAFaGVsbG8AAAAAAAABAAAAAAAAAAJ0bwAAAAAAEQAAAAEAAAPqAAAAEQ==", - "lastModifiedLedgerSeq": "75206", - "liveUntilLedgerSeq": "320384" + "key": "AAAAB+QzbW3JDhlUbDVW/C+1/5SIQDstqORuhpCyl73O1vH6", + "xdr": "AAAABwAAAADkM21tyQ4ZVGw1Vvwvtf+UiEA7LajkboaQspe9ztbx+gAAAkgAYXNtAQAAAAEVBGACfn4BfmADfn5+AX5gAAF+YAAAAhkEAWwBMAAAAWwBMQAAAWwBXwABAWwBOAAAAwUEAgMDAwUDAQAQBhkDfwFBgIDAAAt/AEGAgMAAC38AQYCAwAALBzUFBm1lbW9yeQIACWluY3JlbWVudAAEAV8ABwpfX2RhdGFfZW5kAwELX19oZWFwX2Jhc2UDAgqnAQSSAQIBfwF+QQAhAAJAAkACQEKOutCvhtQ5QgEQgICAgABCAVINAEKOutCvhtQ5QgEQgYCAgAAiAUL/AYNCBFINASABQiCIpyEACyAAQQFqIgBFDQFCjrrQr4bUOSAArUIghkIEhCIBQgEQgoCAgAAaQoSAgICgBkKEgICAwAwQg4CAgAAaIAEPCwAACxCFgICAAAALCQAQhoCAgAAACwQAAAALAgALAHMOY29udHJhY3RzcGVjdjAAAAAAAAAAQEluY3JlbWVudCBpbmNyZW1lbnRzIGFuIGludGVybmFsIGNvdW50ZXIsIGFuZCByZXR1cm5zIHRoZSB2YWx1ZS4AAAAJaW5jcmVtZW50AAAAAAAAAAAAAAEAAAAEAB4RY29udHJhY3RlbnZtZXRhdjAAAAAAAAAAFAAAAAAAbw5jb250cmFjdG1ldGF2MAAAAAAAAAAFcnN2ZXIAAAAAAAAGMS43Ni4wAAAAAAAAAAAACHJzc2RrdmVyAAAALzIwLjMuMSNiYTA0NWE1N2FmOTcxZmM4M2U0NzU3NDZiNTlhNTAzYjdlZjQxNjQ5AA==", + "lastModifiedLedgerSeq": 368441, + "liveUntilLedgerSeq": 2442040 } ], - "latestLedger": "262384" + "latestLedger": 370940 } } ``` From a7336073832354f5b0589b851c9358c4efbbfefb Mon Sep 17 00:00:00 2001 From: Elliot Voris Date: Fri, 1 Mar 2024 12:22:15 -0600 Subject: [PATCH 115/133] nicer look for menu dropdown subtitles --- docs/run-core-node/_category_.json | 7 ------ docusaurus.config.js | 25 +++++++++++++------ .../core-node/README.mdx | 0 .../core-node/admin-guide}/commands.mdx | 0 .../core-node/admin-guide}/configuring.mdx | 0 .../core-node/admin-guide}/installation.mdx | 0 .../core-node/admin-guide}/monitoring.mdx | 0 .../admin-guide}/network-upgrades.mdx | 0 .../core-node/admin-guide}/prerequisites.mdx | 0 .../publishing-history-archives.mdx | 0 .../core-node/admin-guide}/running-node.mdx | 0 .../core-node}/tier-1-orgs.mdx | 0 src/css/custom.scss | 20 ++++++++++++--- 13 files changed, 33 insertions(+), 19 deletions(-) delete mode 100644 docs/run-core-node/_category_.json rename docs/run-core-node/index.mdx => platforms/core-node/README.mdx (100%) rename {docs/run-core-node => platforms/core-node/admin-guide}/commands.mdx (100%) rename {docs/run-core-node => platforms/core-node/admin-guide}/configuring.mdx (100%) rename {docs/run-core-node => platforms/core-node/admin-guide}/installation.mdx (100%) rename {docs/run-core-node => platforms/core-node/admin-guide}/monitoring.mdx (100%) rename {docs/run-core-node => platforms/core-node/admin-guide}/network-upgrades.mdx (100%) rename {docs/run-core-node => platforms/core-node/admin-guide}/prerequisites.mdx (100%) rename {docs/run-core-node => platforms/core-node/admin-guide}/publishing-history-archives.mdx (100%) rename {docs/run-core-node => platforms/core-node/admin-guide}/running-node.mdx (100%) rename {docs/run-core-node => platforms/core-node}/tier-1-orgs.mdx (100%) diff --git a/docs/run-core-node/_category_.json b/docs/run-core-node/_category_.json deleted file mode 100644 index 98faa5de9..000000000 --- a/docs/run-core-node/_category_.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "position": 60, - "label": "Run a Core Node", - "link": { - "type": "doc", "id": "index" - } -} diff --git a/docusaurus.config.js b/docusaurus.config.js index 6454aa94c..9558bcd0c 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -162,21 +162,21 @@ const config = { }, { type: "dropdown", - label: "Platforms", + label: "Network", position: "left", items: [ { type: 'html', - value: 'Data Availability', - className: 'platformsHeading', + value: 'Data Availability', + className: 'platformsSubtitle', }, { to: "/platforms/soroban-rpc", - label: "Soroban RPC", + label: "Soroban RPC", }, { to: "/platforms/hubble", - label: "Hubble", + label: "Hubble", }, { to: "/platforms/horizon", @@ -184,8 +184,8 @@ const config = { }, { type: 'html', - value: 'SDF Platforms', - className: 'platformsHeading', + value: '
SDF Platforms', + className: 'platformsSubtitle', }, { to: "/platforms/anchor-platform", @@ -194,7 +194,16 @@ const config = { { to: "/platforms/stellar-disbursement-platform", label: "Stellar Disbursement Platform", - } + }, + { + type: 'html', + value: '
Network Infrastructure', + className: 'platformsSubtitle', + }, + { + to: "/platforms/core-node", + label: "Validator Node", + }, ] }, { diff --git a/docs/run-core-node/index.mdx b/platforms/core-node/README.mdx similarity index 100% rename from docs/run-core-node/index.mdx rename to platforms/core-node/README.mdx diff --git a/docs/run-core-node/commands.mdx b/platforms/core-node/admin-guide/commands.mdx similarity index 100% rename from docs/run-core-node/commands.mdx rename to platforms/core-node/admin-guide/commands.mdx diff --git a/docs/run-core-node/configuring.mdx b/platforms/core-node/admin-guide/configuring.mdx similarity index 100% rename from docs/run-core-node/configuring.mdx rename to platforms/core-node/admin-guide/configuring.mdx diff --git a/docs/run-core-node/installation.mdx b/platforms/core-node/admin-guide/installation.mdx similarity index 100% rename from docs/run-core-node/installation.mdx rename to platforms/core-node/admin-guide/installation.mdx diff --git a/docs/run-core-node/monitoring.mdx b/platforms/core-node/admin-guide/monitoring.mdx similarity index 100% rename from docs/run-core-node/monitoring.mdx rename to platforms/core-node/admin-guide/monitoring.mdx diff --git a/docs/run-core-node/network-upgrades.mdx b/platforms/core-node/admin-guide/network-upgrades.mdx similarity index 100% rename from docs/run-core-node/network-upgrades.mdx rename to platforms/core-node/admin-guide/network-upgrades.mdx diff --git a/docs/run-core-node/prerequisites.mdx b/platforms/core-node/admin-guide/prerequisites.mdx similarity index 100% rename from docs/run-core-node/prerequisites.mdx rename to platforms/core-node/admin-guide/prerequisites.mdx diff --git a/docs/run-core-node/publishing-history-archives.mdx b/platforms/core-node/admin-guide/publishing-history-archives.mdx similarity index 100% rename from docs/run-core-node/publishing-history-archives.mdx rename to platforms/core-node/admin-guide/publishing-history-archives.mdx diff --git a/docs/run-core-node/running-node.mdx b/platforms/core-node/admin-guide/running-node.mdx similarity index 100% rename from docs/run-core-node/running-node.mdx rename to platforms/core-node/admin-guide/running-node.mdx diff --git a/docs/run-core-node/tier-1-orgs.mdx b/platforms/core-node/tier-1-orgs.mdx similarity index 100% rename from docs/run-core-node/tier-1-orgs.mdx rename to platforms/core-node/tier-1-orgs.mdx diff --git a/src/css/custom.scss b/src/css/custom.scss index 78f380ae8..8e1df63f4 100644 --- a/src/css/custom.scss +++ b/src/css/custom.scss @@ -132,11 +132,23 @@ div[class^='announcementBar_'] { ); } -/* Navbar Customizations */ +/* Navbar customizations for "Platforms" section */ -.platformsHeading { - text-transform: uppercase; - font-size: 0.875rem; +.platformsSubtitle { + + small { + text-transform: uppercase; + color: #999; + padding: 0.25rem 0.5rem; + font-size: 0.75rem; + } + + hr { + width: 93%; + height: 4px; + margin: 0.4em auto; + background-color: var(--ifm-menu-color-background-active); + } } /* Customizations to metamask openrpc package styles */ From 3f95a2adfd06e8ca3029be06013e959e898c5bf1 Mon Sep 17 00:00:00 2001 From: Elliot Voris Date: Fri, 1 Mar 2024 12:22:49 -0600 Subject: [PATCH 116/133] expand soroban rcp methods category by default --- platforms/soroban-rpc/methods/_category_.json | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 platforms/soroban-rpc/methods/_category_.json diff --git a/platforms/soroban-rpc/methods/_category_.json b/platforms/soroban-rpc/methods/_category_.json new file mode 100644 index 000000000..3dcd42977 --- /dev/null +++ b/platforms/soroban-rpc/methods/_category_.json @@ -0,0 +1,3 @@ +{ + "collapsed": false +} From 47d16ffe8a3acc5be4c4cd558b34dd5846416b56 Mon Sep 17 00:00:00 2001 From: Elliot Voris Date: Fri, 1 Mar 2024 12:24:07 -0600 Subject: [PATCH 117/133] move core node docs to "Network" section --- platforms/core-node/README.mdx | 18 ++++---- platforms/core-node/admin-guide/README.mdx | 10 +++++ .../core-node/admin-guide/_category_.json | 3 ++ .../core-node/admin-guide/configuring.mdx | 12 +++--- .../core-node/admin-guide/monitoring.mdx | 2 +- .../core-node/admin-guide/prerequisites.mdx | 2 +- .../publishing-history-archives.mdx | 2 +- platforms/core-node/tier-1-orgs.mdx | 4 +- sidebars.js | 42 +++++++++---------- sidebarsPlatforms.js | 12 ++++++ 10 files changed, 66 insertions(+), 41 deletions(-) create mode 100644 platforms/core-node/admin-guide/README.mdx create mode 100644 platforms/core-node/admin-guide/_category_.json diff --git a/platforms/core-node/README.mdx b/platforms/core-node/README.mdx index 94a100e0a..01493b8e3 100644 --- a/platforms/core-node/README.mdx +++ b/platforms/core-node/README.mdx @@ -1,15 +1,15 @@ --- -title: "Overview" +title: Introduction 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](../fundamentals-and-concepts/stellar-data-structures/ledgers.mdx), and that communicate to validate and add [transactions](../fundamentals-and-concepts/stellar-data-structures/operations-and-transactions.mdx) to it. Nodes use a program called Stellar Core — an implementation of the [Stellar Consensus Protocol](../fundamentals-and-concepts/stellar-consensus-protocol.mdx) — 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/fundamentals-and-concepts/stellar-data-structures/ledgers), and that communicate to validate and add [transactions](/docs/fundamentals-and-concepts/stellar-data-structures/operations-and-transactions) to it. Nodes use a program called Stellar Core — an implementation of the [Stellar Consensus Protocol](/docs/fundamentals-and-concepts/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. -You don’t need to run a node to build on Stellar: you can start developing with your [SDK of choice](../tools/sdks/library.mdx), and use public instances of Horizon to query the ledger and submit transactions right away. In fact, the Stellar Development Foundation offers two public instances of Horizon — one for the public network and one for the testnet — which you can read more about in our [API reference docs](https://developers.stellar.org/api). [Lobstr](https://horizon.stellar.lobstr.co), [Public Node](https://horizon.publicnode.org/), and [Coinqvest](https://horizon.stellar.coinqvest.com) also offer public Horizon instances. +You don’t need to run a node to build on Stellar: you can start developing with your [SDK of choice](/docs/tools/sdks/library), and use public instances of Horizon to query the ledger and submit transactions right away. In fact, the Stellar Development Foundation offers two public instances of Horizon — one for the public network and one for the testnet — which you can read more about in our [API reference docs](https://developers.stellar.org/api). [Lobstr](https://horizon.stellar.lobstr.co), [Public Node](https://horizon.publicnode.org/), and [Coinqvest](https://horizon.stellar.coinqvest.com) also offer public Horizon instances. -Even if you _do_ want to run your [own instance of Horizon](/platforms/horizon/admin-guide), it bundles its own version of Core and manages its lifetime entirely, so there's no need to run a standalone instance. +Even if you _do_ want to run your [own instance of Horizon](../horizon/admin-guide/README.mdx), it bundles its own version of Core and manages its lifetime entirely, so there's no need to run a standalone instance. If you’re serious about building on Stellar, have a production-level product or service that requires high-availability access network, or want to help increase network health and decentralization, then you probably _do_ want to run a node, or even a trio of nodes (more on that in the [Tier 1 section](./tier-1-orgs.mdx)). At that point, you have a choice: you can pay a service provider like [Blockdaemon](https://app.blockdaemon.com/marketplace/categories/-/stellar-horizon) to set up and run your node for you, or you can do it yourself. @@ -27,12 +27,12 @@ The basic flow, which you can navigate through using the menu on the left, goes ## Types of nodes -All nodes perform the same basic functions: they run Stellar Core, connect to peers, submit transactions, store the state of the ledger in a SQL [database](./configuring.mdx#database), and keep a duplicate copy of the ledger in flat XDR files called [buckets](./configuring.mdx#buckets). +All nodes perform the same basic functions: they run Stellar Core, connect to peers, submit transactions, store the state of the ledger in a SQL [database](./admin-guide/configuring.mdx#database), and keep a duplicate copy of the ledger in flat XDR files called [buckets](./admin-guide/configuring.mdx#buckets). In addition to those basic functions, there are two key configuration options that determine how a node behaves. A node can: -- Participate in consensus to [validate transactions](./configuring.mdx#validating) -- Publish an [archive](./publishing-history-archives.mdx) that other nodes can consult to find the complete history of the network. +- Participate in consensus to [validate transactions](./admin-guide/configuring.mdx#validating) +- Publish an [archive](./admin-guide/publishing-history-archives.mdx) that other nodes can consult to find the complete history of the network. To make things easier, we’ll define three types of nodes based on permutations of those two options: **Basic Validator**, **Full Validator**, and **Archiver**. You’ll notice that they _all_ support Horizon and submit transactions to the network: @@ -56,7 +56,7 @@ So why choose one type over another? Let’s break it down a bit and take a look #### Validating, no public archive -A Basic Validator keeps track of the ledger and submits transactions for possible inclusion, but it is _not_ configured to publish history archives. It does require a secret key, and is [configured to participate in consensus](./configuring.mdx#validating) by voting on — and signing off on — changes to the ledger, meaning it supports the network and increases decentralization. +A Basic Validator keeps track of the ledger and submits transactions for possible inclusion, but it is _not_ configured to publish history archives. It does require a secret key, and is [configured to participate in consensus](./admin-guide/configuring.mdx#validating) by voting on — and signing off on — changes to the ledger, meaning it supports the network and increases decentralization. The advantage: signatures can serve as official endorsements of specific ledgers in real time. That’s important if, for instance, you issue an asset on Stellar that represents a real-world asset: you can let your customers know that you will only honor transactions and redeem assets from ledgers signed by your validator, and in the unlikely scenario that something happens to the network, you can use your node as the final arbiter of truth. Setting up your node as a validator allows you to resolve any questions _up front and in writing_ about how you plan to deal with disasters and disputes. @@ -66,7 +66,7 @@ The advantage: signatures can serve as official endorsements of specific ledgers #### Validating, offers public archive -A Full Validator is the same as a Basic Validator except that it also publishes a [History Archive](./publishing-history-archives.mdx) containing snapshots of the ledger, including all transactions and their results. A Full Validator writes to an internet-facing blob store — such as AWS or Azure — so it's a bit more expensive and complex to run, but it also does the most to support the network’s resilience and decentralization. +A Full Validator is the same as a Basic Validator except that it also publishes a [History Archive](./admin-guide/publishing-history-archives.mdx) containing snapshots of the ledger, including all transactions and their results. A Full Validator writes to an internet-facing blob store — such as AWS or Azure — so it's a bit more expensive and complex to run, but it also does the most to support the network’s resilience and decentralization. When other nodes join the network — or experience difficulty and temporarily fall out of sync — they can consult archives offered by Full Validators to catch up on the history of the network. Redundant archives prevent a single point of failure, and allow network participants to verify the veracity of a given history. diff --git a/platforms/core-node/admin-guide/README.mdx b/platforms/core-node/admin-guide/README.mdx new file mode 100644 index 000000000..fa1184309 --- /dev/null +++ b/platforms/core-node/admin-guide/README.mdx @@ -0,0 +1,10 @@ +--- +title: Admin Guide +sidebar_position: 20 +--- + +import DocCardList from "@theme/DocCardList"; + +All you need to know about setting up, running, and using a core validator node. + + diff --git a/platforms/core-node/admin-guide/_category_.json b/platforms/core-node/admin-guide/_category_.json new file mode 100644 index 000000000..3dcd42977 --- /dev/null +++ b/platforms/core-node/admin-guide/_category_.json @@ -0,0 +1,3 @@ +{ + "collapsed": false +} diff --git a/platforms/core-node/admin-guide/configuring.mdx b/platforms/core-node/admin-guide/configuring.mdx index 0b7b59b47..8798d37f8 100644 --- a/platforms/core-node/admin-guide/configuring.mdx +++ b/platforms/core-node/admin-guide/configuring.mdx @@ -19,7 +19,7 @@ This doc works best in conjunction with concrete config examples, so as you read - If you want to connect to the testnet, check out the [example test network config](https://github.com/stellar/docker-stellar-core-horizon/blob/master/testnet/core/etc/stellar-core.cfg). As you can see, most of the fields from the [complete example config](https://github.com/stellar/stellar-core/blob/master/docs/stellar-core_example.cfg) are omitted since the default settings work fine. You can easily tailor this config to meet your testnet needs. -- If you want to connect to the public network, check out this [public network config for a Full Validator](https://github.com/stellar/packages/blob/master/docs/examples/pubnet-validator-full/stellar-core.cfg). It includes a properly crafted quorum set with all the current [Tier 1 validators](./tier-1-orgs.mdx), which is a good place to start for most configurations. This node is set up to both [validate](#validating) and write history to a [public archive](./publishing-history-archives.mdx), but you can disable either feature by adjusting this config so it's a little lighter. +- If you want to connect to the public network, check out this [public network config for a Full Validator](https://github.com/stellar/packages/blob/master/docs/examples/pubnet-validator-full/stellar-core.cfg). It includes a properly crafted quorum set with all the current [Tier 1 validators](../tier-1-orgs.mdx), which is a good place to start for most configurations. This node is set up to both [validate](#validating) and write history to a [public archive](./publishing-history-archives.mdx), but you can disable either feature by adjusting this config so it's a little lighter. ## Database @@ -53,16 +53,16 @@ This command initializes the database and bucket directories, and then exits. Yo ## Network Passphrase -Use the `NETWORK_PASSPHRASE` field to specify whether your node connects to the [testnet](../fundamentals-and-concepts/networks.mdx) or the public network. Your choices: +Use the `NETWORK_PASSPHRASE` field to specify whether your node connects to the [testnet](/docs/fundamentals-and-concepts/networks) or the public network. Your choices: - `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](../encyclopedia/network-passphrases.mdx). +For more about the Network Passphrase and how it works, check out the [encyclopedia entry](/docs/encyclopedia/network-passphrases). ## Validating -By default, Stellar Core isn't set up to validate. If you want your node to be a [Basic Validator](./index.mdx#basic-validator) or a [Full Validator](index.mdx#full-validator), you need to configure it to do so, which means preparing it to take part in [SCP](../fundamentals-and-concepts/stellar-consensus-protocol.mdx) and sign messages pledging that the network agrees to a particular transaction set. +By default, Stellar Core isn't set up to validate. If you want your node to be a [Basic Validator](../README.mdx#basic-validator) or a [Full Validator](../README.mdx#full-validator), you need to configure it to do so, which means preparing it to take part in [SCP](/docs/fundamentals-and-concepts/stellar-consensus-protocol) and sign messages pledging that the network agrees to a particular transaction set. Configuring a node to participate in SCP and sign messages is a three step process: @@ -100,7 +100,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](../fundamentals-and-concepts/list-of-operations.mdx#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](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0020.md). +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/fundamentals-and-concepts/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](https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0020.md). As a result of that link, you can look up a node by its Stellar public key and check the stellar.toml 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. @@ -231,7 +231,7 @@ When you want to add or remove nodes, start by making changes to your own nodes' ## History -Stellar Core normally interacts with one or more history archive, which are configurable facilities where [Full Validators](index.mdx#full-validator) and [Archivers](index.mdx#archiver) store flat files containing history checkpoints: bucket files and history logs. History archives are usually off-site commodity storage services such as Amazon S3, Google Cloud Storage, Azure Blob Storage, or custom SCP/SFTP/HTTP servers. To find out how to _publish_ a history archive, consult [Publishing History Archives](./publishing-history-archives.mdx). +Stellar Core normally interacts with one or more history archive, which are configurable facilities where [Full Validators](../README.mdx#full-validator) and [Archivers](../README.mdx#archiver) store flat files containing history checkpoints: bucket files and history logs. History archives are usually off-site commodity storage services such as Amazon S3, Google Cloud Storage, Azure Blob Storage, or custom SCP/SFTP/HTTP servers. To find out how to _publish_ a history archive, consult [Publishing History Archives](./publishing-history-archives.mdx). No matter what kind of node you're running, you should configure it to `get` history from one or more public archives. You can configure any number of archives to download from: Stellar Core will automatically round-robin between them. diff --git a/platforms/core-node/admin-guide/monitoring.mdx b/platforms/core-node/admin-guide/monitoring.mdx index 247e2ff6c..42d428ac1 100644 --- a/platforms/core-node/admin-guide/monitoring.mdx +++ b/platforms/core-node/admin-guide/monitoring.mdx @@ -71,7 +71,7 @@ Some notable fields in `info` 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` is the [network passphrase](../encyclopedia/network-passphrases.mdx) that this core instance is using to decide whether to connect to the testnet or the public network +- `network` is the [network passphrase](/docs/encyclopedia/network-passphrases) that this core instance is using to decide whether to connect to the testnet or the public network - `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 diff --git a/platforms/core-node/admin-guide/prerequisites.mdx b/platforms/core-node/admin-guide/prerequisites.mdx index a62ab320f..3ca3358ef 100644 --- a/platforms/core-node/admin-guide/prerequisites.mdx +++ b/platforms/core-node/admin-guide/prerequisites.mdx @@ -3,7 +3,7 @@ title: Prerequisites sidebar_position: 20 --- -You can install Stellar Core a [number of different ways](./installation.mdx), and once you do, you can [configure](./configuring.mdx) it to participate in the network on a several [different levels](./index.mdx#types-of-nodes): it can be either a Basic Validator or a Full Validator. No matter how you install Stellar Core or what kind of node you run, however, you need to set up to connect to the peer-to-peer network and store the state of the ledger in a SQL [database](configuring.mdx#database). +You can install Stellar Core a [number of different ways](./installation.mdx), and once you do, you can [configure](./configuring.mdx) it to participate in the network on a several [different levels](../README.mdx#types-of-nodes): it can be either a Basic Validator or a Full Validator. No matter how you install Stellar Core or what kind of node you run, however, you need to set up to connect to the peer-to-peer network and store the state of the ledger in a SQL [database](./configuring.mdx#database). ## Compute Requirements diff --git a/platforms/core-node/admin-guide/publishing-history-archives.mdx b/platforms/core-node/admin-guide/publishing-history-archives.mdx index db103a045..d77684a29 100644 --- a/platforms/core-node/admin-guide/publishing-history-archives.mdx +++ b/platforms/core-node/admin-guide/publishing-history-archives.mdx @@ -5,7 +5,7 @@ sidebar_position: 50 import { CodeExample } from "@site/src/components/CodeExample"; -If you want to run a [Full Validator](./index.mdx#full-validator) or an [Archiver](./index.mdx#archiver), you need to set up your node to publish a history archive. You can host an archive using a blob store such as Amazon's S3 or Digital Ocean's spaces, or you can simply serve a local archive directly via an HTTP server such as Nginx or Apache. If you're setting up a [Basic Validator](index.mdx#basic-validator), you can skip this section. No matter what kind of node you're planning to run, make sure to set it up to `get` history, which is covered in [Configuration](./configuring.mdx). +If you want to run a [Full Validator](../README.mdx#full-validator) or an [Archiver](../README.mdx#archiver), you need to set up your node to publish a history archive. You can host an archive using a blob store such as Amazon's S3 or Digital Ocean's spaces, or you can simply serve a local archive directly via an HTTP server such as Nginx or Apache. If you're setting up a [Basic Validator](../README.mdx#basic-validator), you can skip this section. No matter what kind of node you're planning to run, make sure to set it up to `get` history, which is covered in [Configuration](./configuring.mdx). ## Caching and History Archives diff --git a/platforms/core-node/tier-1-orgs.mdx b/platforms/core-node/tier-1-orgs.mdx index 864a8023e..50e2eb864 100644 --- a/platforms/core-node/tier-1-orgs.mdx +++ b/platforms/core-node/tier-1-orgs.mdx @@ -1,6 +1,6 @@ --- title: Tier 1 Organizations -sidebar_position: 120 +sidebar_position: 30 --- To help with Stellar’s decentralization, the most advanced teams building on Stellar run validators and strive to join the ranks of “Tier 1 organizations.” @@ -65,7 +65,7 @@ Letting other validators know when you plan to change your quorum set allows the ## Monitor your quorum set -We recommend using Prometheus to scrape and store your stellar-core metrics, and Grafana to render that data for human consumption. You can find step-by-step instructions for setting up monitoring and alerts in [Monitoring and Diagnostics](./monitoring.mdx), along with links to Grafana dashboards we’ve created to make things easier. +We recommend using Prometheus to scrape and store your stellar-core metrics, and Grafana to render that data for human consumption. You can find step-by-step instructions for setting up monitoring and alerts in [Monitoring and Diagnostics](./admin-guide/monitoring.mdx), along with links to Grafana dashboards we’ve created to make things easier. You can also use [Stellarbeat](https://stellarbeat.io) to view validators’ quorum configurations, get information about their availability and uptime, and the quorum command to diagnose problems with the quorum set of the local node. diff --git a/sidebars.js b/sidebars.js index a887cc8df..f5f512dfb 100644 --- a/sidebars.js +++ b/sidebars.js @@ -49,27 +49,27 @@ const sidebars = { dirName: 'building-apps', }] }, - { - type: 'category', - label: 'Run a Core Node', - link: { - type: 'doc', - id: 'run-core-node/index' - }, - // I can't (yet) figure out a way to autogenerate this without having - // `overview` show up as an item - items: [ - 'run-core-node/prerequisites', - 'run-core-node/installation', - 'run-core-node/configuring', - 'run-core-node/publishing-history-archives', - 'run-core-node/running-node', - 'run-core-node/monitoring', - 'run-core-node/commands', - 'run-core-node/network-upgrades', - 'run-core-node/tier-1-orgs', - ] - }, + // { + // type: 'category', + // label: 'Run a Core Node', + // link: { + // type: 'doc', + // id: 'run-core-node/index' + // }, + // // I can't (yet) figure out a way to autogenerate this without having + // // `overview` show up as an item + // items: [ + // 'run-core-node/prerequisites', + // 'run-core-node/installation', + // 'run-core-node/configuring', + // 'run-core-node/publishing-history-archives', + // 'run-core-node/running-node', + // 'run-core-node/monitoring', + // 'run-core-node/commands', + // 'run-core-node/network-upgrades', + // 'run-core-node/tier-1-orgs', + // ] + // }, { type: 'category', label: 'Encyclopedia', diff --git a/sidebarsPlatforms.js b/sidebarsPlatforms.js index 9668a1768..7fb4b1b18 100644 --- a/sidebarsPlatforms.js +++ b/sidebarsPlatforms.js @@ -64,6 +64,18 @@ const sidebars = { ], }, ], + core_node: [ + { + type: 'category', + label: 'Core Node', + items: [ + { + type: 'autogenerated', + dirName: 'core-node', + }, + ], + }, + ], } module.exports = sidebars; From c5554e84c0fcad6982fbac48dbf7325fa31bf4ab Mon Sep 17 00:00:00 2001 From: Elliot Voris Date: Fri, 1 Mar 2024 13:35:53 -0600 Subject: [PATCH 118/133] rename platforms to network --- {platforms => network}/READ_FIRST.md | 0 {platforms => network}/anchor-platform/admin-guide/README.mdx | 0 .../anchor-platform/admin-guide/architecture.mdx | 0 .../anchor-platform/admin-guide/component/observer/observer.mdx | 0 .../anchor-platform/admin-guide/component/rpc/error.mdx | 0 .../anchor-platform/admin-guide/component/rpc/request.mdx | 0 .../anchor-platform/admin-guide/component/rpc/response.mdx | 0 .../anchor-platform/admin-guide/component/rpc/rpc.mdx | 0 .../anchor-platform/admin-guide/component/security/api_key.mdx | 0 .../anchor-platform/admin-guide/component/security/jwt.mdx | 0 .../anchor-platform/admin-guide/component/security/security.mdx | 0 .../anchor-platform/admin-guide/custody-services/README.mdx | 0 .../admin-guide/custody-services/configuration.mdx | 0 .../admin-guide/custody-services/fireblocks/README.mdx | 0 .../admin-guide/custody-services/fireblocks/configuration.mdx | 0 .../admin-guide/custody-services/fireblocks/example.mdx | 0 .../anchor-platform/admin-guide/getting-started.mdx | 0 {platforms => network}/anchor-platform/admin-guide/overview.mdx | 0 .../anchor-platform/admin-guide/sep1/README.mdx | 0 .../anchor-platform/admin-guide/sep10/README.mdx | 0 .../anchor-platform/admin-guide/sep24/README.mdx | 0 .../anchor-platform/admin-guide/sep24/configuration.mdx | 0 .../anchor-platform/admin-guide/sep24/example.mdx | 0 {platforms => network}/anchor-platform/admin-guide/sep24/faq.mdx | 0 .../anchor-platform/admin-guide/sep24/getting-started.mdx | 0 .../anchor-platform/admin-guide/sep24/integration.mdx | 0 .../admin-guide/sep24/setting-up-production-server.mdx | 0 .../anchor-platform/admin-guide/sep31/README.mdx | 0 .../anchor-platform/admin-guide/sep31/configuration.mdx | 0 .../anchor-platform/admin-guide/sep31/getting-started.mdx | 0 .../anchor-platform/admin-guide/sep31/integration.mdx | 0 .../anchor-platform/admin-guide/sep6/README.mdx | 0 .../anchor-platform/admin-guide/sep6/configuration.mdx | 0 .../anchor-platform/admin-guide/sep6/getting-started.mdx | 0 .../anchor-platform/admin-guide/sep6/integration.mdx | 0 {platforms => network}/anchor-platform/callbacks/_category_.json | 0 .../anchor-platform/callbacks/customer/index.mdx | 0 .../anchor-platform/callbacks/del-customer.api.mdx | 0 {platforms => network}/anchor-platform/callbacks/event/index.mdx | 0 {platforms => network}/anchor-platform/callbacks/fee/index.mdx | 0 .../anchor-platform/callbacks/gen-address.api.mdx | 0 .../anchor-platform/callbacks/get-customer.api.mdx | 0 {platforms => network}/anchor-platform/callbacks/get-fee.api.mdx | 0 .../anchor-platform/callbacks/get-rates.api.mdx | 0 {platforms => network}/anchor-platform/callbacks/index.mdx | 0 .../anchor-platform/callbacks/post-event.api.mdx | 0 .../anchor-platform/callbacks/put-customer.api.mdx | 0 {platforms => network}/anchor-platform/callbacks/rate/index.mdx | 0 {platforms => network}/anchor-platform/callbacks/sidebar.js | 0 .../anchor-platform/callbacks/unique-address/index.mdx | 0 .../anchor-platform/custody-server/_category_.json | 0 .../custody-server/create-custody-transaction.api.mdx | 0 .../anchor-platform/custody-server/custody-transactions/index.mdx | 0 .../custody-server/generate-unique-address.api.mdx | 0 {platforms => network}/anchor-platform/custody-server/index.mdx | 0 .../anchor-platform/custody-server/payments/index.mdx | 0 .../anchor-platform/custody-server/refunds/index.mdx | 0 .../anchor-platform/custody-server/send-payment.api.mdx | 0 .../anchor-platform/custody-server/send-refund.api.mdx | 0 {platforms => network}/anchor-platform/custody-server/sidebar.js | 0 .../anchor-platform/custody-server/unique-address/index.mdx | 0 {platforms => network}/anchor-platform/events/_category_.json | 0 {platforms => network}/anchor-platform/events/delivery.mdx | 0 {platforms => network}/anchor-platform/events/index.mdx | 0 {platforms => network}/anchor-platform/events/integration.mdx | 0 .../anchor-platform/introduction/_category_.json | 0 {platforms => network}/anchor-platform/introduction/index.mdx | 0 {platforms => network}/anchor-platform/resources/_category_.json | 0 .../anchor-platform/resources/get-transaction.api.mdx | 0 .../anchor-platform/resources/get-transactions.api.mdx | 0 {platforms => network}/anchor-platform/resources/index.mdx | 0 {platforms => network}/anchor-platform/resources/sidebar.js | 0 .../anchor-platform/resources/transactions/index.mdx | 0 {platforms => network}/anchor-platform/rpc/_category_.json | 0 {platforms => network}/anchor-platform/rpc/index.mdx | 0 .../anchor-platform/rpc/methods/do_stellar_payment/index.mdx | 0 .../anchor-platform/rpc/methods/do_stellar_refund/index.mdx | 0 {platforms => network}/anchor-platform/rpc/methods/index.mdx | 0 .../anchor-platform/rpc/methods/notify_amounts_updated/index.mdx | 0 .../rpc/methods/notify_customer_info_updated/index.mdx | 0 .../rpc/methods/notify_interactive_flow_completed/index.mdx | 0 .../rpc/methods/notify_offchain_funds_available/index.mdx | 0 .../rpc/methods/notify_offchain_funds_pending/index.mdx | 0 .../rpc/methods/notify_offchain_funds_received/index.mdx | 0 .../rpc/methods/notify_offchain_funds_sent/index.mdx | 0 .../rpc/methods/notify_onchain_funds_received/index.mdx | 0 .../rpc/methods/notify_onchain_funds_sent/index.mdx | 0 .../anchor-platform/rpc/methods/notify_refund_pending/index.mdx | 0 .../anchor-platform/rpc/methods/notify_refund_sent/index.mdx | 0 .../rpc/methods/notify_transaction_error/index.mdx | 0 .../rpc/methods/notify_transaction_expired/index.mdx | 0 .../rpc/methods/notify_transaction_recovery/index.mdx | 0 .../anchor-platform/rpc/methods/notify_trust_set/index.mdx | 0 .../rpc/methods/request_customer_info_update/index.mdx | 0 .../anchor-platform/rpc/methods/request_offchain_funds/index.mdx | 0 .../anchor-platform/rpc/methods/request_onchain_funds/index.mdx | 0 .../anchor-platform/rpc/methods/request_trust/index.mdx | 0 .../anchor-platform/rpc/notify_interactive_flow_completed.api.mdx | 0 {platforms => network}/anchor-platform/rpc/sidebar.js | 0 {platforms => network}/core-node/README.mdx | 0 {platforms => network}/core-node/admin-guide/README.mdx | 0 {platforms => network}/core-node/admin-guide/_category_.json | 0 {platforms => network}/core-node/admin-guide/commands.mdx | 0 {platforms => network}/core-node/admin-guide/configuring.mdx | 0 {platforms => network}/core-node/admin-guide/installation.mdx | 0 {platforms => network}/core-node/admin-guide/monitoring.mdx | 0 {platforms => network}/core-node/admin-guide/network-upgrades.mdx | 0 {platforms => network}/core-node/admin-guide/prerequisites.mdx | 0 .../core-node/admin-guide/publishing-history-archives.mdx | 0 {platforms => network}/core-node/admin-guide/running-node.mdx | 0 {platforms => network}/core-node/tier-1-orgs.mdx | 0 {platforms => network}/horizon/README.mdx | 0 {platforms => network}/horizon/admin-guide/README.mdx | 0 {platforms => network}/horizon/admin-guide/configuring.mdx | 0 .../horizon/admin-guide/ingestion-filtering.mdx | 0 {platforms => network}/horizon/admin-guide/ingestion.mdx | 0 {platforms => network}/horizon/admin-guide/installing.mdx | 0 {platforms => network}/horizon/admin-guide/monitoring.mdx | 0 {platforms => network}/horizon/admin-guide/overview.mdx | 0 {platforms => network}/horizon/admin-guide/prerequisites.mdx | 0 {platforms => network}/horizon/admin-guide/running.mdx | 0 {platforms => network}/horizon/admin-guide/scaling.mdx | 0 {platforms => network}/horizon/admin-guide/upgrading.mdx | 0 {platforms => network}/horizon/aggregations/README.mdx | 0 .../horizon/aggregations/fee-stats/_category_.json | 0 {platforms => network}/horizon/aggregations/fee-stats/index.mdx | 0 {platforms => network}/horizon/aggregations/fee-stats/object.mdx | 0 {platforms => network}/horizon/aggregations/fee-stats/single.mdx | 0 .../horizon/aggregations/order-books/_category_.json | 0 {platforms => network}/horizon/aggregations/order-books/index.mdx | 0 .../horizon/aggregations/order-books/object.mdx | 0 .../horizon/aggregations/order-books/single.mdx | 0 {platforms => network}/horizon/aggregations/paths/_category_.json | 0 {platforms => network}/horizon/aggregations/paths/index.mdx | 0 {platforms => network}/horizon/aggregations/paths/object.mdx | 0 .../horizon/aggregations/paths/strict-receive.mdx | 0 {platforms => network}/horizon/aggregations/paths/strict-send.mdx | 0 .../horizon/aggregations/trade-aggregations/_category_.json | 0 .../horizon/aggregations/trade-aggregations/index.mdx | 0 .../horizon/aggregations/trade-aggregations/list.mdx | 0 .../horizon/aggregations/trade-aggregations/object.mdx | 0 {platforms => network}/horizon/errors/_category_.json | 0 .../horizon/errors/http-status-codes/_category_.json | 0 .../errors/http-status-codes/horizon-specific/before-history.mdx | 0 .../horizon/errors/http-status-codes/horizon-specific/index.mdx | 0 .../errors/http-status-codes/horizon-specific/stale-history.mdx | 0 .../horizon/errors/http-status-codes/horizon-specific/timeout.mdx | 0 .../http-status-codes/horizon-specific/transaction-failed.mdx | 0 .../http-status-codes/horizon-specific/transaction-malformed.mdx | 0 {platforms => network}/horizon/errors/http-status-codes/index.mdx | 0 .../horizon/errors/http-status-codes/standard.mdx | 0 {platforms => network}/horizon/errors/index.mdx | 0 {platforms => network}/horizon/errors/response.mdx | 0 .../horizon/errors/result-codes/_category_.json | 0 {platforms => network}/horizon/errors/result-codes/index.mdx | 0 .../errors/result-codes/operation-specific/account-merge.mdx | 0 .../errors/result-codes/operation-specific/allow-trust.mdx | 0 .../errors/result-codes/operation-specific/bump-sequence.mdx | 0 .../horizon/errors/result-codes/operation-specific/category.json | 0 .../errors/result-codes/operation-specific/change-trust.mdx | 0 .../errors/result-codes/operation-specific/create-account.mdx | 0 .../result-codes/operation-specific/create-passive-sell-offer.mdx | 0 .../horizon/errors/result-codes/operation-specific/index.mdx | 0 .../errors/result-codes/operation-specific/manage-buy-offer.mdx | 0 .../errors/result-codes/operation-specific/manage-data.mdx | 0 .../errors/result-codes/operation-specific/manage-sell-offer.mdx | 0 .../operation-specific/path-payment-strict-receive.mdx | 0 .../result-codes/operation-specific/path-payment-strict-send.mdx | 0 .../horizon/errors/result-codes/operation-specific/payment.mdx | 0 .../errors/result-codes/operation-specific/set-options.mdx | 0 {platforms => network}/horizon/errors/result-codes/operations.mdx | 0 .../horizon/errors/result-codes/transactions.mdx | 0 {platforms => network}/horizon/resources/_category_.json | 0 {platforms => network}/horizon/resources/accounts/index.mdx | 0 {platforms => network}/horizon/resources/accounts/object.mdx | 0 {platforms => network}/horizon/resources/assets/index.mdx | 0 {platforms => network}/horizon/resources/assets/object.mdx | 0 .../horizon/resources/cb-retrieve-related-operations.api.mdx | 0 .../horizon/resources/cb-retrieve-related-transactions.api.mdx | 0 .../horizon/resources/claimablebalances/index.mdx | 0 .../horizon/resources/claimablebalances/object.mdx | 0 {platforms => network}/horizon/resources/effects/index.mdx | 0 {platforms => network}/horizon/resources/effects/types.mdx | 0 {platforms => network}/horizon/resources/get-all-offers.api.mdx | 0 {platforms => network}/horizon/resources/get-all-trades.api.mdx | 0 .../horizon/resources/get-data-by-account-id.api.mdx | 0 .../horizon/resources/get-effects-by-account-id.api.mdx | 0 .../horizon/resources/get-offer-by-offer-id.api.mdx | 0 .../horizon/resources/get-offers-by-account-id.api.mdx | 0 .../horizon/resources/get-operations-by-account-id.api.mdx | 0 .../horizon/resources/get-payments-by-account-id.api.mdx | 0 .../horizon/resources/get-trades-by-account-id.api.mdx | 0 .../horizon/resources/get-trades-by-offer-id.api.mdx | 0 .../horizon/resources/get-transactions-by-account-id.api.mdx | 0 {platforms => network}/horizon/resources/index.mdx | 0 {platforms => network}/horizon/resources/ledgers/index.mdx | 0 {platforms => network}/horizon/resources/ledgers/object.mdx | 0 {platforms => network}/horizon/resources/liquiditypools/index.mdx | 0 .../horizon/resources/list-all-accounts.api.mdx | 0 {platforms => network}/horizon/resources/list-all-assets.api.mdx | 0 .../horizon/resources/list-all-claimable-balances.api.mdx | 0 {platforms => network}/horizon/resources/list-all-effects.api.mdx | 0 {platforms => network}/horizon/resources/list-all-ledgers.api.mdx | 0 .../horizon/resources/list-all-operations.api.mdx | 0 .../horizon/resources/list-all-payments.api.mdx | 0 .../horizon/resources/list-all-transactions.api.mdx | 0 .../horizon/resources/list-liquidity-pools.api.mdx | 0 .../horizon/resources/list-strict-receive-payment-paths.api.mdx | 0 .../horizon/resources/list-strict-send-payment-paths.api.mdx | 0 .../horizon/resources/list-trade-aggregations.api.mdx | 0 .../horizon/resources/lp-retrieve-related-operations.api.mdx | 0 .../horizon/resources/lp-retrieve-related-transactions.api.mdx | 0 {platforms => network}/horizon/resources/offers/index.mdx | 0 {platforms => network}/horizon/resources/offers/object.mdx | 0 {platforms => network}/horizon/resources/operations/index.mdx | 0 .../horizon/resources/operations/object/account-merge.mdx | 0 .../horizon/resources/operations/object/allow-trust.mdx | 0 .../operations/object/begin-sponsoring-future-reserves.mdx | 0 .../horizon/resources/operations/object/bump-sequence.mdx | 0 .../horizon/resources/operations/object/buy-offer.mdx | 0 .../horizon/resources/operations/object/change-trust.mdx | 0 .../resources/operations/object/claim-claimable-balance.mdx | 0 .../horizon/resources/operations/object/create-account.mdx | 0 .../resources/operations/object/create-claimable-balance.mdx | 0 .../operations/object/end-sponsoring-future-reserves.mdx | 0 .../horizon/resources/operations/object/extend-footprint-ttl.mdx | 0 .../horizon/resources/operations/object/index.mdx | 0 .../horizon/resources/operations/object/invoke-host-function.mdx | 0 .../resources/operations/object/liquidity-pool-deposit.mdx | 0 .../resources/operations/object/liquidity-pool-withdraw.mdx | 0 .../horizon/resources/operations/object/manage-data.mdx | 0 .../horizon/resources/operations/object/passive-sell-offer.mdx | 0 .../resources/operations/object/path-payment-strict-receive.mdx | 0 .../resources/operations/object/path-payment-strict-send.mdx | 0 .../horizon/resources/operations/object/payment.mdx | 0 .../horizon/resources/operations/object/restore-footprint.mdx | 0 .../horizon/resources/operations/object/revoke-sponsorship.mdx | 0 .../horizon/resources/operations/object/sell-offer.mdx | 0 .../horizon/resources/operations/object/set-options.mdx | 0 .../horizon/resources/retrieve-a-claimable-balance.api.mdx | 0 .../horizon/resources/retrieve-a-ledger.api.mdx | 0 .../horizon/resources/retrieve-a-ledgers-effects.api.mdx | 0 .../horizon/resources/retrieve-a-ledgers-operations.api.mdx | 0 .../horizon/resources/retrieve-a-ledgers-payments.api.mdx | 0 .../horizon/resources/retrieve-a-ledgers-transactions.api.mdx | 0 .../horizon/resources/retrieve-a-liquidity-pool.api.mdx | 0 .../horizon/resources/retrieve-a-transaction.api.mdx | 0 .../horizon/resources/retrieve-a-transactions-effects.api.mdx | 0 .../horizon/resources/retrieve-a-transactions-operations.api.mdx | 0 .../horizon/resources/retrieve-an-account.api.mdx | 0 .../horizon/resources/retrieve-an-operation.api.mdx | 0 .../horizon/resources/retrieve-an-operations-effects.api.mdx | 0 .../horizon/resources/retrieve-an-order-book.api.mdx | 0 .../horizon/resources/retrieve-fee-stats.api.mdx | 0 .../horizon/resources/retrieve-related-effects.api.mdx | 0 .../horizon/resources/retrieve-related-trades.api.mdx | 0 {platforms => network}/horizon/resources/sidebar.js | 0 .../horizon/resources/submit-a-transaction.api.mdx | 0 {platforms => network}/horizon/resources/trades/index.mdx | 0 {platforms => network}/horizon/resources/trades/object.mdx | 0 {platforms => network}/horizon/resources/transactions/index.mdx | 0 {platforms => network}/horizon/resources/transactions/object.mdx | 0 {platforms => network}/horizon/structure/README.mdx | 0 {platforms => network}/horizon/structure/pagination/README.mdx | 0 .../horizon/structure/pagination/page-arguments.mdx | 0 {platforms => network}/horizon/structure/rate-limiting.mdx | 0 {platforms => network}/horizon/structure/response-format.mdx | 0 {platforms => network}/horizon/structure/streaming.mdx | 0 {platforms => network}/horizon/structure/xdr.mdx | 0 {platforms => network}/hubble/connecting.mdx | 0 {platforms => network}/hubble/introduction.mdx | 0 {platforms => network}/hubble/optimizing-queries.mdx | 0 {platforms => network}/hubble/viewing-metadata.mdx | 0 {platforms => network}/index.mdx | 0 {platforms => network}/soroban-rpc/README.mdx | 0 {platforms => network}/soroban-rpc/admin-guide.mdx | 0 {platforms => network}/soroban-rpc/json-rpc.mdx | 0 {platforms => network}/soroban-rpc/methods/README.mdx | 0 {platforms => network}/soroban-rpc/methods/_category_.json | 0 {platforms => network}/soroban-rpc/methods/getEvents.mdx | 0 {platforms => network}/soroban-rpc/methods/getHealth.mdx | 0 {platforms => network}/soroban-rpc/methods/getLatestLedger.mdx | 0 {platforms => network}/soroban-rpc/methods/getLedgerEntries.mdx | 0 {platforms => network}/soroban-rpc/methods/getNetwork.mdx | 0 {platforms => network}/soroban-rpc/methods/getTransaction.mdx | 0 {platforms => network}/soroban-rpc/methods/sendTransaction.mdx | 0 .../soroban-rpc/methods/simulateTransaction.mdx | 0 {platforms => network}/soroban-rpc/pagination.mdx | 0 {platforms => network}/soroban-rpc/rpc-providers.mdx | 0 {platforms => network}/stellar-disbursement-platform/README.mdx | 0 .../stellar-disbursement-platform/admin-guide/README.mdx | 0 .../admin-guide/anchor-platform-integration-points.mdx | 0 .../stellar-disbursement-platform/admin-guide/deploy-the-sdp.mdx | 0 .../admin-guide/design-and-architecture.mdx | 0 .../stellar-disbursement-platform/admin-guide/getting-started.mdx | 0 .../admin-guide/making-your-wallet-sdp-ready.mdx | 0 .../stellar-disbursement-platform/admin-guide/overview.mdx | 0 .../admin-guide/secure-operation-manual.mdx | 0 .../admin-guide/user-interface/README.mdx | 0 .../admin-guide/user-interface/analytics.mdx | 0 .../admin-guide/user-interface/dashboard-home.mdx | 0 .../admin-guide/user-interface/disbursements.mdx | 0 .../admin-guide/user-interface/payments.mdx | 0 .../admin-guide/user-interface/receivers.mdx | 0 .../admin-guide/user-interface/wallets.mdx | 0 .../stellar-disbursement-platform/resources/README.mdx | 0 .../stellar-disbursement-platform/resources/auth/index.mdx | 0 .../resources/authenticate-mfa.api.mdx | 0 .../stellar-disbursement-platform/resources/create-asset.api.mdx | 0 .../resources/create-disbursement.api.mdx | 0 .../stellar-disbursement-platform/resources/create-user.api.mdx | 0 .../stellar-disbursement-platform/resources/delete-asset.api.mdx | 0 .../resources/disbursements/index.mdx | 0 .../resources/download-disbursement-instructions.api.mdx | 0 .../resources/forgot-password.api.mdx | 0 .../resources/get-all-assets.api.mdx | 0 .../resources/get-all-countries.api.mdx | 0 .../stellar-disbursement-platform/resources/get-all-roles.api.mdx | 0 .../stellar-disbursement-platform/resources/get-all-users.api.mdx | 0 .../resources/get-all-wallets.api.mdx | 0 .../resources/get-organization-info.api.mdx | 0 .../resources/get-organization-logo.api.mdx | 0 .../stellar-disbursement-platform/resources/get-profile.api.mdx | 0 .../resources/list-all-disbursement-receivers.api.mdx | 0 .../resources/list-all-disbursements.api.mdx | 0 .../resources/list-all-payments.api.mdx | 0 .../resources/list-all-receivers.api.mdx | 0 .../stellar-disbursement-platform/resources/log-in.api.mdx | 0 .../resources/organization/index.mdx | 0 .../stellar-disbursement-platform/resources/payments/index.mdx | 0 .../stellar-disbursement-platform/resources/profile/index.mdx | 0 .../resources/provide-signed-challenge-transaction.api.mdx | 0 .../stellar-disbursement-platform/resources/receivers/index.mdx | 0 .../stellar-disbursement-platform/resources/refresh-token.api.mdx | 0 .../resources/registration/index.mdx | 0 .../resources/request-challenge-transaction.api.mdx | 0 .../resources/request-registration-url.api.mdx | 0 .../resources/reset-password.api.mdx | 0 .../resources/retrieve-a-disbursement.api.mdx | 0 .../resources/retrieve-a-payment.api.mdx | 0 .../resources/retrieve-a-receiver.api.mdx | 0 .../resources/retrieve-all-statistics.api.mdx | 0 .../resources/retrieve-disbursement-statistics.api.mdx | 0 .../resources/retrieve-stellar-info-file.api.mdx | 0 .../resources/send-one-time-passcode.api.mdx | 0 .../stellar-disbursement-platform/resources/sidebar.js | 0 .../resources/start-wallet-registration.api.mdx | 0 .../stellar-disbursement-platform/resources/statistics/index.mdx | 0 .../resources/update-a-disbursement-status.api.mdx | 0 .../resources/update-a-receiver.api.mdx | 0 .../resources/update-organization-profile.api.mdx | 0 .../resources/update-user-activation-status.api.mdx | 0 .../resources/update-user-profile.api.mdx | 0 .../resources/update-user-role.api.mdx | 0 .../resources/upload-disbursement-instructions.api.mdx | 0 .../stellar-disbursement-platform/resources/users/index.mdx | 0 .../resources/verify-receiver-registration.api.mdx | 0 sidebarsPlatforms.js => sidebarsNetwork.js | 0 ...idebar-platforms-generator.js => sidebar-network-generator.js} | 0 359 files changed, 0 insertions(+), 0 deletions(-) rename {platforms => network}/READ_FIRST.md (100%) rename {platforms => network}/anchor-platform/admin-guide/README.mdx (100%) rename {platforms => network}/anchor-platform/admin-guide/architecture.mdx (100%) rename {platforms => network}/anchor-platform/admin-guide/component/observer/observer.mdx (100%) rename {platforms => network}/anchor-platform/admin-guide/component/rpc/error.mdx (100%) rename {platforms => network}/anchor-platform/admin-guide/component/rpc/request.mdx (100%) rename {platforms => network}/anchor-platform/admin-guide/component/rpc/response.mdx (100%) rename {platforms => network}/anchor-platform/admin-guide/component/rpc/rpc.mdx (100%) rename {platforms => network}/anchor-platform/admin-guide/component/security/api_key.mdx (100%) rename {platforms => network}/anchor-platform/admin-guide/component/security/jwt.mdx (100%) rename {platforms => network}/anchor-platform/admin-guide/component/security/security.mdx (100%) rename {platforms => network}/anchor-platform/admin-guide/custody-services/README.mdx (100%) rename {platforms => network}/anchor-platform/admin-guide/custody-services/configuration.mdx (100%) rename {platforms => network}/anchor-platform/admin-guide/custody-services/fireblocks/README.mdx (100%) rename {platforms => network}/anchor-platform/admin-guide/custody-services/fireblocks/configuration.mdx (100%) rename {platforms => network}/anchor-platform/admin-guide/custody-services/fireblocks/example.mdx (100%) rename {platforms => network}/anchor-platform/admin-guide/getting-started.mdx (100%) rename {platforms => network}/anchor-platform/admin-guide/overview.mdx (100%) rename {platforms => network}/anchor-platform/admin-guide/sep1/README.mdx (100%) rename {platforms => network}/anchor-platform/admin-guide/sep10/README.mdx (100%) rename {platforms => network}/anchor-platform/admin-guide/sep24/README.mdx (100%) rename {platforms => network}/anchor-platform/admin-guide/sep24/configuration.mdx (100%) rename {platforms => network}/anchor-platform/admin-guide/sep24/example.mdx (100%) rename {platforms => network}/anchor-platform/admin-guide/sep24/faq.mdx (100%) rename {platforms => network}/anchor-platform/admin-guide/sep24/getting-started.mdx (100%) rename {platforms => network}/anchor-platform/admin-guide/sep24/integration.mdx (100%) rename {platforms => network}/anchor-platform/admin-guide/sep24/setting-up-production-server.mdx (100%) rename {platforms => network}/anchor-platform/admin-guide/sep31/README.mdx (100%) rename {platforms => network}/anchor-platform/admin-guide/sep31/configuration.mdx (100%) rename {platforms => network}/anchor-platform/admin-guide/sep31/getting-started.mdx (100%) rename {platforms => network}/anchor-platform/admin-guide/sep31/integration.mdx (100%) rename {platforms => network}/anchor-platform/admin-guide/sep6/README.mdx (100%) rename {platforms => network}/anchor-platform/admin-guide/sep6/configuration.mdx (100%) rename {platforms => network}/anchor-platform/admin-guide/sep6/getting-started.mdx (100%) rename {platforms => network}/anchor-platform/admin-guide/sep6/integration.mdx (100%) rename {platforms => network}/anchor-platform/callbacks/_category_.json (100%) rename {platforms => network}/anchor-platform/callbacks/customer/index.mdx (100%) rename {platforms => network}/anchor-platform/callbacks/del-customer.api.mdx (100%) rename {platforms => network}/anchor-platform/callbacks/event/index.mdx (100%) rename {platforms => network}/anchor-platform/callbacks/fee/index.mdx (100%) rename {platforms => network}/anchor-platform/callbacks/gen-address.api.mdx (100%) rename {platforms => network}/anchor-platform/callbacks/get-customer.api.mdx (100%) rename {platforms => network}/anchor-platform/callbacks/get-fee.api.mdx (100%) rename {platforms => network}/anchor-platform/callbacks/get-rates.api.mdx (100%) rename {platforms => network}/anchor-platform/callbacks/index.mdx (100%) rename {platforms => network}/anchor-platform/callbacks/post-event.api.mdx (100%) rename {platforms => network}/anchor-platform/callbacks/put-customer.api.mdx (100%) rename {platforms => network}/anchor-platform/callbacks/rate/index.mdx (100%) rename {platforms => network}/anchor-platform/callbacks/sidebar.js (100%) rename {platforms => network}/anchor-platform/callbacks/unique-address/index.mdx (100%) rename {platforms => network}/anchor-platform/custody-server/_category_.json (100%) rename {platforms => network}/anchor-platform/custody-server/create-custody-transaction.api.mdx (100%) rename {platforms => network}/anchor-platform/custody-server/custody-transactions/index.mdx (100%) rename {platforms => network}/anchor-platform/custody-server/generate-unique-address.api.mdx (100%) rename {platforms => network}/anchor-platform/custody-server/index.mdx (100%) rename {platforms => network}/anchor-platform/custody-server/payments/index.mdx (100%) rename {platforms => network}/anchor-platform/custody-server/refunds/index.mdx (100%) rename {platforms => network}/anchor-platform/custody-server/send-payment.api.mdx (100%) rename {platforms => network}/anchor-platform/custody-server/send-refund.api.mdx (100%) rename {platforms => network}/anchor-platform/custody-server/sidebar.js (100%) rename {platforms => network}/anchor-platform/custody-server/unique-address/index.mdx (100%) rename {platforms => network}/anchor-platform/events/_category_.json (100%) rename {platforms => network}/anchor-platform/events/delivery.mdx (100%) rename {platforms => network}/anchor-platform/events/index.mdx (100%) rename {platforms => network}/anchor-platform/events/integration.mdx (100%) rename {platforms => network}/anchor-platform/introduction/_category_.json (100%) rename {platforms => network}/anchor-platform/introduction/index.mdx (100%) rename {platforms => network}/anchor-platform/resources/_category_.json (100%) rename {platforms => network}/anchor-platform/resources/get-transaction.api.mdx (100%) rename {platforms => network}/anchor-platform/resources/get-transactions.api.mdx (100%) rename {platforms => network}/anchor-platform/resources/index.mdx (100%) rename {platforms => network}/anchor-platform/resources/sidebar.js (100%) rename {platforms => network}/anchor-platform/resources/transactions/index.mdx (100%) rename {platforms => network}/anchor-platform/rpc/_category_.json (100%) rename {platforms => network}/anchor-platform/rpc/index.mdx (100%) rename {platforms => network}/anchor-platform/rpc/methods/do_stellar_payment/index.mdx (100%) rename {platforms => network}/anchor-platform/rpc/methods/do_stellar_refund/index.mdx (100%) rename {platforms => network}/anchor-platform/rpc/methods/index.mdx (100%) rename {platforms => network}/anchor-platform/rpc/methods/notify_amounts_updated/index.mdx (100%) rename {platforms => network}/anchor-platform/rpc/methods/notify_customer_info_updated/index.mdx (100%) rename {platforms => network}/anchor-platform/rpc/methods/notify_interactive_flow_completed/index.mdx (100%) rename {platforms => network}/anchor-platform/rpc/methods/notify_offchain_funds_available/index.mdx (100%) rename {platforms => network}/anchor-platform/rpc/methods/notify_offchain_funds_pending/index.mdx (100%) rename {platforms => network}/anchor-platform/rpc/methods/notify_offchain_funds_received/index.mdx (100%) rename {platforms => network}/anchor-platform/rpc/methods/notify_offchain_funds_sent/index.mdx (100%) rename {platforms => network}/anchor-platform/rpc/methods/notify_onchain_funds_received/index.mdx (100%) rename {platforms => network}/anchor-platform/rpc/methods/notify_onchain_funds_sent/index.mdx (100%) rename {platforms => network}/anchor-platform/rpc/methods/notify_refund_pending/index.mdx (100%) rename {platforms => network}/anchor-platform/rpc/methods/notify_refund_sent/index.mdx (100%) rename {platforms => network}/anchor-platform/rpc/methods/notify_transaction_error/index.mdx (100%) rename {platforms => network}/anchor-platform/rpc/methods/notify_transaction_expired/index.mdx (100%) rename {platforms => network}/anchor-platform/rpc/methods/notify_transaction_recovery/index.mdx (100%) rename {platforms => network}/anchor-platform/rpc/methods/notify_trust_set/index.mdx (100%) rename {platforms => network}/anchor-platform/rpc/methods/request_customer_info_update/index.mdx (100%) rename {platforms => network}/anchor-platform/rpc/methods/request_offchain_funds/index.mdx (100%) rename {platforms => network}/anchor-platform/rpc/methods/request_onchain_funds/index.mdx (100%) rename {platforms => network}/anchor-platform/rpc/methods/request_trust/index.mdx (100%) rename {platforms => network}/anchor-platform/rpc/notify_interactive_flow_completed.api.mdx (100%) rename {platforms => network}/anchor-platform/rpc/sidebar.js (100%) rename {platforms => network}/core-node/README.mdx (100%) rename {platforms => network}/core-node/admin-guide/README.mdx (100%) rename {platforms => network}/core-node/admin-guide/_category_.json (100%) rename {platforms => network}/core-node/admin-guide/commands.mdx (100%) rename {platforms => network}/core-node/admin-guide/configuring.mdx (100%) rename {platforms => network}/core-node/admin-guide/installation.mdx (100%) rename {platforms => network}/core-node/admin-guide/monitoring.mdx (100%) rename {platforms => network}/core-node/admin-guide/network-upgrades.mdx (100%) rename {platforms => network}/core-node/admin-guide/prerequisites.mdx (100%) rename {platforms => network}/core-node/admin-guide/publishing-history-archives.mdx (100%) rename {platforms => network}/core-node/admin-guide/running-node.mdx (100%) rename {platforms => network}/core-node/tier-1-orgs.mdx (100%) rename {platforms => network}/horizon/README.mdx (100%) rename {platforms => network}/horizon/admin-guide/README.mdx (100%) rename {platforms => network}/horizon/admin-guide/configuring.mdx (100%) rename {platforms => network}/horizon/admin-guide/ingestion-filtering.mdx (100%) rename {platforms => network}/horizon/admin-guide/ingestion.mdx (100%) rename {platforms => network}/horizon/admin-guide/installing.mdx (100%) rename {platforms => network}/horizon/admin-guide/monitoring.mdx (100%) rename {platforms => network}/horizon/admin-guide/overview.mdx (100%) rename {platforms => network}/horizon/admin-guide/prerequisites.mdx (100%) rename {platforms => network}/horizon/admin-guide/running.mdx (100%) rename {platforms => network}/horizon/admin-guide/scaling.mdx (100%) rename {platforms => network}/horizon/admin-guide/upgrading.mdx (100%) rename {platforms => network}/horizon/aggregations/README.mdx (100%) rename {platforms => network}/horizon/aggregations/fee-stats/_category_.json (100%) rename {platforms => network}/horizon/aggregations/fee-stats/index.mdx (100%) rename {platforms => network}/horizon/aggregations/fee-stats/object.mdx (100%) rename {platforms => network}/horizon/aggregations/fee-stats/single.mdx (100%) rename {platforms => network}/horizon/aggregations/order-books/_category_.json (100%) rename {platforms => network}/horizon/aggregations/order-books/index.mdx (100%) rename {platforms => network}/horizon/aggregations/order-books/object.mdx (100%) rename {platforms => network}/horizon/aggregations/order-books/single.mdx (100%) rename {platforms => network}/horizon/aggregations/paths/_category_.json (100%) rename {platforms => network}/horizon/aggregations/paths/index.mdx (100%) rename {platforms => network}/horizon/aggregations/paths/object.mdx (100%) rename {platforms => network}/horizon/aggregations/paths/strict-receive.mdx (100%) rename {platforms => network}/horizon/aggregations/paths/strict-send.mdx (100%) rename {platforms => network}/horizon/aggregations/trade-aggregations/_category_.json (100%) rename {platforms => network}/horizon/aggregations/trade-aggregations/index.mdx (100%) rename {platforms => network}/horizon/aggregations/trade-aggregations/list.mdx (100%) rename {platforms => network}/horizon/aggregations/trade-aggregations/object.mdx (100%) rename {platforms => network}/horizon/errors/_category_.json (100%) rename {platforms => network}/horizon/errors/http-status-codes/_category_.json (100%) rename {platforms => network}/horizon/errors/http-status-codes/horizon-specific/before-history.mdx (100%) rename {platforms => network}/horizon/errors/http-status-codes/horizon-specific/index.mdx (100%) rename {platforms => network}/horizon/errors/http-status-codes/horizon-specific/stale-history.mdx (100%) rename {platforms => network}/horizon/errors/http-status-codes/horizon-specific/timeout.mdx (100%) rename {platforms => network}/horizon/errors/http-status-codes/horizon-specific/transaction-failed.mdx (100%) rename {platforms => network}/horizon/errors/http-status-codes/horizon-specific/transaction-malformed.mdx (100%) rename {platforms => network}/horizon/errors/http-status-codes/index.mdx (100%) rename {platforms => network}/horizon/errors/http-status-codes/standard.mdx (100%) rename {platforms => network}/horizon/errors/index.mdx (100%) rename {platforms => network}/horizon/errors/response.mdx (100%) rename {platforms => network}/horizon/errors/result-codes/_category_.json (100%) rename {platforms => network}/horizon/errors/result-codes/index.mdx (100%) rename {platforms => network}/horizon/errors/result-codes/operation-specific/account-merge.mdx (100%) rename {platforms => network}/horizon/errors/result-codes/operation-specific/allow-trust.mdx (100%) rename {platforms => network}/horizon/errors/result-codes/operation-specific/bump-sequence.mdx (100%) rename {platforms => network}/horizon/errors/result-codes/operation-specific/category.json (100%) rename {platforms => network}/horizon/errors/result-codes/operation-specific/change-trust.mdx (100%) rename {platforms => network}/horizon/errors/result-codes/operation-specific/create-account.mdx (100%) rename {platforms => network}/horizon/errors/result-codes/operation-specific/create-passive-sell-offer.mdx (100%) rename {platforms => network}/horizon/errors/result-codes/operation-specific/index.mdx (100%) rename {platforms => network}/horizon/errors/result-codes/operation-specific/manage-buy-offer.mdx (100%) rename {platforms => network}/horizon/errors/result-codes/operation-specific/manage-data.mdx (100%) rename {platforms => network}/horizon/errors/result-codes/operation-specific/manage-sell-offer.mdx (100%) rename {platforms => network}/horizon/errors/result-codes/operation-specific/path-payment-strict-receive.mdx (100%) rename {platforms => network}/horizon/errors/result-codes/operation-specific/path-payment-strict-send.mdx (100%) rename {platforms => network}/horizon/errors/result-codes/operation-specific/payment.mdx (100%) rename {platforms => network}/horizon/errors/result-codes/operation-specific/set-options.mdx (100%) rename {platforms => network}/horizon/errors/result-codes/operations.mdx (100%) rename {platforms => network}/horizon/errors/result-codes/transactions.mdx (100%) rename {platforms => network}/horizon/resources/_category_.json (100%) rename {platforms => network}/horizon/resources/accounts/index.mdx (100%) rename {platforms => network}/horizon/resources/accounts/object.mdx (100%) rename {platforms => network}/horizon/resources/assets/index.mdx (100%) rename {platforms => network}/horizon/resources/assets/object.mdx (100%) rename {platforms => network}/horizon/resources/cb-retrieve-related-operations.api.mdx (100%) rename {platforms => network}/horizon/resources/cb-retrieve-related-transactions.api.mdx (100%) rename {platforms => network}/horizon/resources/claimablebalances/index.mdx (100%) rename {platforms => network}/horizon/resources/claimablebalances/object.mdx (100%) rename {platforms => network}/horizon/resources/effects/index.mdx (100%) rename {platforms => network}/horizon/resources/effects/types.mdx (100%) rename {platforms => network}/horizon/resources/get-all-offers.api.mdx (100%) rename {platforms => network}/horizon/resources/get-all-trades.api.mdx (100%) rename {platforms => network}/horizon/resources/get-data-by-account-id.api.mdx (100%) rename {platforms => network}/horizon/resources/get-effects-by-account-id.api.mdx (100%) rename {platforms => network}/horizon/resources/get-offer-by-offer-id.api.mdx (100%) rename {platforms => network}/horizon/resources/get-offers-by-account-id.api.mdx (100%) rename {platforms => network}/horizon/resources/get-operations-by-account-id.api.mdx (100%) rename {platforms => network}/horizon/resources/get-payments-by-account-id.api.mdx (100%) rename {platforms => network}/horizon/resources/get-trades-by-account-id.api.mdx (100%) rename {platforms => network}/horizon/resources/get-trades-by-offer-id.api.mdx (100%) rename {platforms => network}/horizon/resources/get-transactions-by-account-id.api.mdx (100%) rename {platforms => network}/horizon/resources/index.mdx (100%) rename {platforms => network}/horizon/resources/ledgers/index.mdx (100%) rename {platforms => network}/horizon/resources/ledgers/object.mdx (100%) rename {platforms => network}/horizon/resources/liquiditypools/index.mdx (100%) rename {platforms => network}/horizon/resources/list-all-accounts.api.mdx (100%) rename {platforms => network}/horizon/resources/list-all-assets.api.mdx (100%) rename {platforms => network}/horizon/resources/list-all-claimable-balances.api.mdx (100%) rename {platforms => network}/horizon/resources/list-all-effects.api.mdx (100%) rename {platforms => network}/horizon/resources/list-all-ledgers.api.mdx (100%) rename {platforms => network}/horizon/resources/list-all-operations.api.mdx (100%) rename {platforms => network}/horizon/resources/list-all-payments.api.mdx (100%) rename {platforms => network}/horizon/resources/list-all-transactions.api.mdx (100%) rename {platforms => network}/horizon/resources/list-liquidity-pools.api.mdx (100%) rename {platforms => network}/horizon/resources/list-strict-receive-payment-paths.api.mdx (100%) rename {platforms => network}/horizon/resources/list-strict-send-payment-paths.api.mdx (100%) rename {platforms => network}/horizon/resources/list-trade-aggregations.api.mdx (100%) rename {platforms => network}/horizon/resources/lp-retrieve-related-operations.api.mdx (100%) rename {platforms => network}/horizon/resources/lp-retrieve-related-transactions.api.mdx (100%) rename {platforms => network}/horizon/resources/offers/index.mdx (100%) rename {platforms => network}/horizon/resources/offers/object.mdx (100%) rename {platforms => network}/horizon/resources/operations/index.mdx (100%) rename {platforms => network}/horizon/resources/operations/object/account-merge.mdx (100%) rename {platforms => network}/horizon/resources/operations/object/allow-trust.mdx (100%) rename {platforms => network}/horizon/resources/operations/object/begin-sponsoring-future-reserves.mdx (100%) rename {platforms => network}/horizon/resources/operations/object/bump-sequence.mdx (100%) rename {platforms => network}/horizon/resources/operations/object/buy-offer.mdx (100%) rename {platforms => network}/horizon/resources/operations/object/change-trust.mdx (100%) rename {platforms => network}/horizon/resources/operations/object/claim-claimable-balance.mdx (100%) rename {platforms => network}/horizon/resources/operations/object/create-account.mdx (100%) rename {platforms => network}/horizon/resources/operations/object/create-claimable-balance.mdx (100%) rename {platforms => network}/horizon/resources/operations/object/end-sponsoring-future-reserves.mdx (100%) rename {platforms => network}/horizon/resources/operations/object/extend-footprint-ttl.mdx (100%) rename {platforms => network}/horizon/resources/operations/object/index.mdx (100%) rename {platforms => network}/horizon/resources/operations/object/invoke-host-function.mdx (100%) rename {platforms => network}/horizon/resources/operations/object/liquidity-pool-deposit.mdx (100%) rename {platforms => network}/horizon/resources/operations/object/liquidity-pool-withdraw.mdx (100%) rename {platforms => network}/horizon/resources/operations/object/manage-data.mdx (100%) rename {platforms => network}/horizon/resources/operations/object/passive-sell-offer.mdx (100%) rename {platforms => network}/horizon/resources/operations/object/path-payment-strict-receive.mdx (100%) rename {platforms => network}/horizon/resources/operations/object/path-payment-strict-send.mdx (100%) rename {platforms => network}/horizon/resources/operations/object/payment.mdx (100%) rename {platforms => network}/horizon/resources/operations/object/restore-footprint.mdx (100%) rename {platforms => network}/horizon/resources/operations/object/revoke-sponsorship.mdx (100%) rename {platforms => network}/horizon/resources/operations/object/sell-offer.mdx (100%) rename {platforms => network}/horizon/resources/operations/object/set-options.mdx (100%) rename {platforms => network}/horizon/resources/retrieve-a-claimable-balance.api.mdx (100%) rename {platforms => network}/horizon/resources/retrieve-a-ledger.api.mdx (100%) rename {platforms => network}/horizon/resources/retrieve-a-ledgers-effects.api.mdx (100%) rename {platforms => network}/horizon/resources/retrieve-a-ledgers-operations.api.mdx (100%) rename {platforms => network}/horizon/resources/retrieve-a-ledgers-payments.api.mdx (100%) rename {platforms => network}/horizon/resources/retrieve-a-ledgers-transactions.api.mdx (100%) rename {platforms => network}/horizon/resources/retrieve-a-liquidity-pool.api.mdx (100%) rename {platforms => network}/horizon/resources/retrieve-a-transaction.api.mdx (100%) rename {platforms => network}/horizon/resources/retrieve-a-transactions-effects.api.mdx (100%) rename {platforms => network}/horizon/resources/retrieve-a-transactions-operations.api.mdx (100%) rename {platforms => network}/horizon/resources/retrieve-an-account.api.mdx (100%) rename {platforms => network}/horizon/resources/retrieve-an-operation.api.mdx (100%) rename {platforms => network}/horizon/resources/retrieve-an-operations-effects.api.mdx (100%) rename {platforms => network}/horizon/resources/retrieve-an-order-book.api.mdx (100%) rename {platforms => network}/horizon/resources/retrieve-fee-stats.api.mdx (100%) rename {platforms => network}/horizon/resources/retrieve-related-effects.api.mdx (100%) rename {platforms => network}/horizon/resources/retrieve-related-trades.api.mdx (100%) rename {platforms => network}/horizon/resources/sidebar.js (100%) rename {platforms => network}/horizon/resources/submit-a-transaction.api.mdx (100%) rename {platforms => network}/horizon/resources/trades/index.mdx (100%) rename {platforms => network}/horizon/resources/trades/object.mdx (100%) rename {platforms => network}/horizon/resources/transactions/index.mdx (100%) rename {platforms => network}/horizon/resources/transactions/object.mdx (100%) rename {platforms => network}/horizon/structure/README.mdx (100%) rename {platforms => network}/horizon/structure/pagination/README.mdx (100%) rename {platforms => network}/horizon/structure/pagination/page-arguments.mdx (100%) rename {platforms => network}/horizon/structure/rate-limiting.mdx (100%) rename {platforms => network}/horizon/structure/response-format.mdx (100%) rename {platforms => network}/horizon/structure/streaming.mdx (100%) rename {platforms => network}/horizon/structure/xdr.mdx (100%) rename {platforms => network}/hubble/connecting.mdx (100%) rename {platforms => network}/hubble/introduction.mdx (100%) rename {platforms => network}/hubble/optimizing-queries.mdx (100%) rename {platforms => network}/hubble/viewing-metadata.mdx (100%) rename {platforms => network}/index.mdx (100%) rename {platforms => network}/soroban-rpc/README.mdx (100%) rename {platforms => network}/soroban-rpc/admin-guide.mdx (100%) rename {platforms => network}/soroban-rpc/json-rpc.mdx (100%) rename {platforms => network}/soroban-rpc/methods/README.mdx (100%) rename {platforms => network}/soroban-rpc/methods/_category_.json (100%) rename {platforms => network}/soroban-rpc/methods/getEvents.mdx (100%) rename {platforms => network}/soroban-rpc/methods/getHealth.mdx (100%) rename {platforms => network}/soroban-rpc/methods/getLatestLedger.mdx (100%) rename {platforms => network}/soroban-rpc/methods/getLedgerEntries.mdx (100%) rename {platforms => network}/soroban-rpc/methods/getNetwork.mdx (100%) rename {platforms => network}/soroban-rpc/methods/getTransaction.mdx (100%) rename {platforms => network}/soroban-rpc/methods/sendTransaction.mdx (100%) rename {platforms => network}/soroban-rpc/methods/simulateTransaction.mdx (100%) rename {platforms => network}/soroban-rpc/pagination.mdx (100%) rename {platforms => network}/soroban-rpc/rpc-providers.mdx (100%) rename {platforms => network}/stellar-disbursement-platform/README.mdx (100%) rename {platforms => network}/stellar-disbursement-platform/admin-guide/README.mdx (100%) rename {platforms => network}/stellar-disbursement-platform/admin-guide/anchor-platform-integration-points.mdx (100%) rename {platforms => network}/stellar-disbursement-platform/admin-guide/deploy-the-sdp.mdx (100%) rename {platforms => network}/stellar-disbursement-platform/admin-guide/design-and-architecture.mdx (100%) rename {platforms => network}/stellar-disbursement-platform/admin-guide/getting-started.mdx (100%) rename {platforms => network}/stellar-disbursement-platform/admin-guide/making-your-wallet-sdp-ready.mdx (100%) rename {platforms => network}/stellar-disbursement-platform/admin-guide/overview.mdx (100%) rename {platforms => network}/stellar-disbursement-platform/admin-guide/secure-operation-manual.mdx (100%) rename {platforms => network}/stellar-disbursement-platform/admin-guide/user-interface/README.mdx (100%) rename {platforms => network}/stellar-disbursement-platform/admin-guide/user-interface/analytics.mdx (100%) rename {platforms => network}/stellar-disbursement-platform/admin-guide/user-interface/dashboard-home.mdx (100%) rename {platforms => network}/stellar-disbursement-platform/admin-guide/user-interface/disbursements.mdx (100%) rename {platforms => network}/stellar-disbursement-platform/admin-guide/user-interface/payments.mdx (100%) rename {platforms => network}/stellar-disbursement-platform/admin-guide/user-interface/receivers.mdx (100%) rename {platforms => network}/stellar-disbursement-platform/admin-guide/user-interface/wallets.mdx (100%) rename {platforms => network}/stellar-disbursement-platform/resources/README.mdx (100%) rename {platforms => network}/stellar-disbursement-platform/resources/auth/index.mdx (100%) rename {platforms => network}/stellar-disbursement-platform/resources/authenticate-mfa.api.mdx (100%) rename {platforms => network}/stellar-disbursement-platform/resources/create-asset.api.mdx (100%) rename {platforms => network}/stellar-disbursement-platform/resources/create-disbursement.api.mdx (100%) rename {platforms => network}/stellar-disbursement-platform/resources/create-user.api.mdx (100%) rename {platforms => network}/stellar-disbursement-platform/resources/delete-asset.api.mdx (100%) rename {platforms => network}/stellar-disbursement-platform/resources/disbursements/index.mdx (100%) rename {platforms => network}/stellar-disbursement-platform/resources/download-disbursement-instructions.api.mdx (100%) rename {platforms => network}/stellar-disbursement-platform/resources/forgot-password.api.mdx (100%) rename {platforms => network}/stellar-disbursement-platform/resources/get-all-assets.api.mdx (100%) rename {platforms => network}/stellar-disbursement-platform/resources/get-all-countries.api.mdx (100%) rename {platforms => network}/stellar-disbursement-platform/resources/get-all-roles.api.mdx (100%) rename {platforms => network}/stellar-disbursement-platform/resources/get-all-users.api.mdx (100%) rename {platforms => network}/stellar-disbursement-platform/resources/get-all-wallets.api.mdx (100%) rename {platforms => network}/stellar-disbursement-platform/resources/get-organization-info.api.mdx (100%) rename {platforms => network}/stellar-disbursement-platform/resources/get-organization-logo.api.mdx (100%) rename {platforms => network}/stellar-disbursement-platform/resources/get-profile.api.mdx (100%) rename {platforms => network}/stellar-disbursement-platform/resources/list-all-disbursement-receivers.api.mdx (100%) rename {platforms => network}/stellar-disbursement-platform/resources/list-all-disbursements.api.mdx (100%) rename {platforms => network}/stellar-disbursement-platform/resources/list-all-payments.api.mdx (100%) rename {platforms => network}/stellar-disbursement-platform/resources/list-all-receivers.api.mdx (100%) rename {platforms => network}/stellar-disbursement-platform/resources/log-in.api.mdx (100%) rename {platforms => network}/stellar-disbursement-platform/resources/organization/index.mdx (100%) rename {platforms => network}/stellar-disbursement-platform/resources/payments/index.mdx (100%) rename {platforms => network}/stellar-disbursement-platform/resources/profile/index.mdx (100%) rename {platforms => network}/stellar-disbursement-platform/resources/provide-signed-challenge-transaction.api.mdx (100%) rename {platforms => network}/stellar-disbursement-platform/resources/receivers/index.mdx (100%) rename {platforms => network}/stellar-disbursement-platform/resources/refresh-token.api.mdx (100%) rename {platforms => network}/stellar-disbursement-platform/resources/registration/index.mdx (100%) rename {platforms => network}/stellar-disbursement-platform/resources/request-challenge-transaction.api.mdx (100%) rename {platforms => network}/stellar-disbursement-platform/resources/request-registration-url.api.mdx (100%) rename {platforms => network}/stellar-disbursement-platform/resources/reset-password.api.mdx (100%) rename {platforms => network}/stellar-disbursement-platform/resources/retrieve-a-disbursement.api.mdx (100%) rename {platforms => network}/stellar-disbursement-platform/resources/retrieve-a-payment.api.mdx (100%) rename {platforms => network}/stellar-disbursement-platform/resources/retrieve-a-receiver.api.mdx (100%) rename {platforms => network}/stellar-disbursement-platform/resources/retrieve-all-statistics.api.mdx (100%) rename {platforms => network}/stellar-disbursement-platform/resources/retrieve-disbursement-statistics.api.mdx (100%) rename {platforms => network}/stellar-disbursement-platform/resources/retrieve-stellar-info-file.api.mdx (100%) rename {platforms => network}/stellar-disbursement-platform/resources/send-one-time-passcode.api.mdx (100%) rename {platforms => network}/stellar-disbursement-platform/resources/sidebar.js (100%) rename {platforms => network}/stellar-disbursement-platform/resources/start-wallet-registration.api.mdx (100%) rename {platforms => network}/stellar-disbursement-platform/resources/statistics/index.mdx (100%) rename {platforms => network}/stellar-disbursement-platform/resources/update-a-disbursement-status.api.mdx (100%) rename {platforms => network}/stellar-disbursement-platform/resources/update-a-receiver.api.mdx (100%) rename {platforms => network}/stellar-disbursement-platform/resources/update-organization-profile.api.mdx (100%) rename {platforms => network}/stellar-disbursement-platform/resources/update-user-activation-status.api.mdx (100%) rename {platforms => network}/stellar-disbursement-platform/resources/update-user-profile.api.mdx (100%) rename {platforms => network}/stellar-disbursement-platform/resources/update-user-role.api.mdx (100%) rename {platforms => network}/stellar-disbursement-platform/resources/upload-disbursement-instructions.api.mdx (100%) rename {platforms => network}/stellar-disbursement-platform/resources/users/index.mdx (100%) rename {platforms => network}/stellar-disbursement-platform/resources/verify-receiver-registration.api.mdx (100%) rename sidebarsPlatforms.js => sidebarsNetwork.js (100%) rename src/{sidebar-platforms-generator.js => sidebar-network-generator.js} (100%) diff --git a/platforms/READ_FIRST.md b/network/READ_FIRST.md similarity index 100% rename from platforms/READ_FIRST.md rename to network/READ_FIRST.md diff --git a/platforms/anchor-platform/admin-guide/README.mdx b/network/anchor-platform/admin-guide/README.mdx similarity index 100% rename from platforms/anchor-platform/admin-guide/README.mdx rename to network/anchor-platform/admin-guide/README.mdx diff --git a/platforms/anchor-platform/admin-guide/architecture.mdx b/network/anchor-platform/admin-guide/architecture.mdx similarity index 100% rename from platforms/anchor-platform/admin-guide/architecture.mdx rename to network/anchor-platform/admin-guide/architecture.mdx diff --git a/platforms/anchor-platform/admin-guide/component/observer/observer.mdx b/network/anchor-platform/admin-guide/component/observer/observer.mdx similarity index 100% rename from platforms/anchor-platform/admin-guide/component/observer/observer.mdx rename to network/anchor-platform/admin-guide/component/observer/observer.mdx diff --git a/platforms/anchor-platform/admin-guide/component/rpc/error.mdx b/network/anchor-platform/admin-guide/component/rpc/error.mdx similarity index 100% rename from platforms/anchor-platform/admin-guide/component/rpc/error.mdx rename to network/anchor-platform/admin-guide/component/rpc/error.mdx diff --git a/platforms/anchor-platform/admin-guide/component/rpc/request.mdx b/network/anchor-platform/admin-guide/component/rpc/request.mdx similarity index 100% rename from platforms/anchor-platform/admin-guide/component/rpc/request.mdx rename to network/anchor-platform/admin-guide/component/rpc/request.mdx diff --git a/platforms/anchor-platform/admin-guide/component/rpc/response.mdx b/network/anchor-platform/admin-guide/component/rpc/response.mdx similarity index 100% rename from platforms/anchor-platform/admin-guide/component/rpc/response.mdx rename to network/anchor-platform/admin-guide/component/rpc/response.mdx diff --git a/platforms/anchor-platform/admin-guide/component/rpc/rpc.mdx b/network/anchor-platform/admin-guide/component/rpc/rpc.mdx similarity index 100% rename from platforms/anchor-platform/admin-guide/component/rpc/rpc.mdx rename to network/anchor-platform/admin-guide/component/rpc/rpc.mdx diff --git a/platforms/anchor-platform/admin-guide/component/security/api_key.mdx b/network/anchor-platform/admin-guide/component/security/api_key.mdx similarity index 100% rename from platforms/anchor-platform/admin-guide/component/security/api_key.mdx rename to network/anchor-platform/admin-guide/component/security/api_key.mdx diff --git a/platforms/anchor-platform/admin-guide/component/security/jwt.mdx b/network/anchor-platform/admin-guide/component/security/jwt.mdx similarity index 100% rename from platforms/anchor-platform/admin-guide/component/security/jwt.mdx rename to network/anchor-platform/admin-guide/component/security/jwt.mdx diff --git a/platforms/anchor-platform/admin-guide/component/security/security.mdx b/network/anchor-platform/admin-guide/component/security/security.mdx similarity index 100% rename from platforms/anchor-platform/admin-guide/component/security/security.mdx rename to network/anchor-platform/admin-guide/component/security/security.mdx diff --git a/platforms/anchor-platform/admin-guide/custody-services/README.mdx b/network/anchor-platform/admin-guide/custody-services/README.mdx similarity index 100% rename from platforms/anchor-platform/admin-guide/custody-services/README.mdx rename to network/anchor-platform/admin-guide/custody-services/README.mdx diff --git a/platforms/anchor-platform/admin-guide/custody-services/configuration.mdx b/network/anchor-platform/admin-guide/custody-services/configuration.mdx similarity index 100% rename from platforms/anchor-platform/admin-guide/custody-services/configuration.mdx rename to network/anchor-platform/admin-guide/custody-services/configuration.mdx diff --git a/platforms/anchor-platform/admin-guide/custody-services/fireblocks/README.mdx b/network/anchor-platform/admin-guide/custody-services/fireblocks/README.mdx similarity index 100% rename from platforms/anchor-platform/admin-guide/custody-services/fireblocks/README.mdx rename to network/anchor-platform/admin-guide/custody-services/fireblocks/README.mdx diff --git a/platforms/anchor-platform/admin-guide/custody-services/fireblocks/configuration.mdx b/network/anchor-platform/admin-guide/custody-services/fireblocks/configuration.mdx similarity index 100% rename from platforms/anchor-platform/admin-guide/custody-services/fireblocks/configuration.mdx rename to network/anchor-platform/admin-guide/custody-services/fireblocks/configuration.mdx diff --git a/platforms/anchor-platform/admin-guide/custody-services/fireblocks/example.mdx b/network/anchor-platform/admin-guide/custody-services/fireblocks/example.mdx similarity index 100% rename from platforms/anchor-platform/admin-guide/custody-services/fireblocks/example.mdx rename to network/anchor-platform/admin-guide/custody-services/fireblocks/example.mdx diff --git a/platforms/anchor-platform/admin-guide/getting-started.mdx b/network/anchor-platform/admin-guide/getting-started.mdx similarity index 100% rename from platforms/anchor-platform/admin-guide/getting-started.mdx rename to network/anchor-platform/admin-guide/getting-started.mdx diff --git a/platforms/anchor-platform/admin-guide/overview.mdx b/network/anchor-platform/admin-guide/overview.mdx similarity index 100% rename from platforms/anchor-platform/admin-guide/overview.mdx rename to network/anchor-platform/admin-guide/overview.mdx diff --git a/platforms/anchor-platform/admin-guide/sep1/README.mdx b/network/anchor-platform/admin-guide/sep1/README.mdx similarity index 100% rename from platforms/anchor-platform/admin-guide/sep1/README.mdx rename to network/anchor-platform/admin-guide/sep1/README.mdx diff --git a/platforms/anchor-platform/admin-guide/sep10/README.mdx b/network/anchor-platform/admin-guide/sep10/README.mdx similarity index 100% rename from platforms/anchor-platform/admin-guide/sep10/README.mdx rename to network/anchor-platform/admin-guide/sep10/README.mdx diff --git a/platforms/anchor-platform/admin-guide/sep24/README.mdx b/network/anchor-platform/admin-guide/sep24/README.mdx similarity index 100% rename from platforms/anchor-platform/admin-guide/sep24/README.mdx rename to network/anchor-platform/admin-guide/sep24/README.mdx diff --git a/platforms/anchor-platform/admin-guide/sep24/configuration.mdx b/network/anchor-platform/admin-guide/sep24/configuration.mdx similarity index 100% rename from platforms/anchor-platform/admin-guide/sep24/configuration.mdx rename to network/anchor-platform/admin-guide/sep24/configuration.mdx diff --git a/platforms/anchor-platform/admin-guide/sep24/example.mdx b/network/anchor-platform/admin-guide/sep24/example.mdx similarity index 100% rename from platforms/anchor-platform/admin-guide/sep24/example.mdx rename to network/anchor-platform/admin-guide/sep24/example.mdx diff --git a/platforms/anchor-platform/admin-guide/sep24/faq.mdx b/network/anchor-platform/admin-guide/sep24/faq.mdx similarity index 100% rename from platforms/anchor-platform/admin-guide/sep24/faq.mdx rename to network/anchor-platform/admin-guide/sep24/faq.mdx diff --git a/platforms/anchor-platform/admin-guide/sep24/getting-started.mdx b/network/anchor-platform/admin-guide/sep24/getting-started.mdx similarity index 100% rename from platforms/anchor-platform/admin-guide/sep24/getting-started.mdx rename to network/anchor-platform/admin-guide/sep24/getting-started.mdx diff --git a/platforms/anchor-platform/admin-guide/sep24/integration.mdx b/network/anchor-platform/admin-guide/sep24/integration.mdx similarity index 100% rename from platforms/anchor-platform/admin-guide/sep24/integration.mdx rename to network/anchor-platform/admin-guide/sep24/integration.mdx diff --git a/platforms/anchor-platform/admin-guide/sep24/setting-up-production-server.mdx b/network/anchor-platform/admin-guide/sep24/setting-up-production-server.mdx similarity index 100% rename from platforms/anchor-platform/admin-guide/sep24/setting-up-production-server.mdx rename to network/anchor-platform/admin-guide/sep24/setting-up-production-server.mdx diff --git a/platforms/anchor-platform/admin-guide/sep31/README.mdx b/network/anchor-platform/admin-guide/sep31/README.mdx similarity index 100% rename from platforms/anchor-platform/admin-guide/sep31/README.mdx rename to network/anchor-platform/admin-guide/sep31/README.mdx diff --git a/platforms/anchor-platform/admin-guide/sep31/configuration.mdx b/network/anchor-platform/admin-guide/sep31/configuration.mdx similarity index 100% rename from platforms/anchor-platform/admin-guide/sep31/configuration.mdx rename to network/anchor-platform/admin-guide/sep31/configuration.mdx diff --git a/platforms/anchor-platform/admin-guide/sep31/getting-started.mdx b/network/anchor-platform/admin-guide/sep31/getting-started.mdx similarity index 100% rename from platforms/anchor-platform/admin-guide/sep31/getting-started.mdx rename to network/anchor-platform/admin-guide/sep31/getting-started.mdx diff --git a/platforms/anchor-platform/admin-guide/sep31/integration.mdx b/network/anchor-platform/admin-guide/sep31/integration.mdx similarity index 100% rename from platforms/anchor-platform/admin-guide/sep31/integration.mdx rename to network/anchor-platform/admin-guide/sep31/integration.mdx diff --git a/platforms/anchor-platform/admin-guide/sep6/README.mdx b/network/anchor-platform/admin-guide/sep6/README.mdx similarity index 100% rename from platforms/anchor-platform/admin-guide/sep6/README.mdx rename to network/anchor-platform/admin-guide/sep6/README.mdx diff --git a/platforms/anchor-platform/admin-guide/sep6/configuration.mdx b/network/anchor-platform/admin-guide/sep6/configuration.mdx similarity index 100% rename from platforms/anchor-platform/admin-guide/sep6/configuration.mdx rename to network/anchor-platform/admin-guide/sep6/configuration.mdx diff --git a/platforms/anchor-platform/admin-guide/sep6/getting-started.mdx b/network/anchor-platform/admin-guide/sep6/getting-started.mdx similarity index 100% rename from platforms/anchor-platform/admin-guide/sep6/getting-started.mdx rename to network/anchor-platform/admin-guide/sep6/getting-started.mdx diff --git a/platforms/anchor-platform/admin-guide/sep6/integration.mdx b/network/anchor-platform/admin-guide/sep6/integration.mdx similarity index 100% rename from platforms/anchor-platform/admin-guide/sep6/integration.mdx rename to network/anchor-platform/admin-guide/sep6/integration.mdx diff --git a/platforms/anchor-platform/callbacks/_category_.json b/network/anchor-platform/callbacks/_category_.json similarity index 100% rename from platforms/anchor-platform/callbacks/_category_.json rename to network/anchor-platform/callbacks/_category_.json diff --git a/platforms/anchor-platform/callbacks/customer/index.mdx b/network/anchor-platform/callbacks/customer/index.mdx similarity index 100% rename from platforms/anchor-platform/callbacks/customer/index.mdx rename to network/anchor-platform/callbacks/customer/index.mdx diff --git a/platforms/anchor-platform/callbacks/del-customer.api.mdx b/network/anchor-platform/callbacks/del-customer.api.mdx similarity index 100% rename from platforms/anchor-platform/callbacks/del-customer.api.mdx rename to network/anchor-platform/callbacks/del-customer.api.mdx diff --git a/platforms/anchor-platform/callbacks/event/index.mdx b/network/anchor-platform/callbacks/event/index.mdx similarity index 100% rename from platforms/anchor-platform/callbacks/event/index.mdx rename to network/anchor-platform/callbacks/event/index.mdx diff --git a/platforms/anchor-platform/callbacks/fee/index.mdx b/network/anchor-platform/callbacks/fee/index.mdx similarity index 100% rename from platforms/anchor-platform/callbacks/fee/index.mdx rename to network/anchor-platform/callbacks/fee/index.mdx diff --git a/platforms/anchor-platform/callbacks/gen-address.api.mdx b/network/anchor-platform/callbacks/gen-address.api.mdx similarity index 100% rename from platforms/anchor-platform/callbacks/gen-address.api.mdx rename to network/anchor-platform/callbacks/gen-address.api.mdx diff --git a/platforms/anchor-platform/callbacks/get-customer.api.mdx b/network/anchor-platform/callbacks/get-customer.api.mdx similarity index 100% rename from platforms/anchor-platform/callbacks/get-customer.api.mdx rename to network/anchor-platform/callbacks/get-customer.api.mdx diff --git a/platforms/anchor-platform/callbacks/get-fee.api.mdx b/network/anchor-platform/callbacks/get-fee.api.mdx similarity index 100% rename from platforms/anchor-platform/callbacks/get-fee.api.mdx rename to network/anchor-platform/callbacks/get-fee.api.mdx diff --git a/platforms/anchor-platform/callbacks/get-rates.api.mdx b/network/anchor-platform/callbacks/get-rates.api.mdx similarity index 100% rename from platforms/anchor-platform/callbacks/get-rates.api.mdx rename to network/anchor-platform/callbacks/get-rates.api.mdx diff --git a/platforms/anchor-platform/callbacks/index.mdx b/network/anchor-platform/callbacks/index.mdx similarity index 100% rename from platforms/anchor-platform/callbacks/index.mdx rename to network/anchor-platform/callbacks/index.mdx diff --git a/platforms/anchor-platform/callbacks/post-event.api.mdx b/network/anchor-platform/callbacks/post-event.api.mdx similarity index 100% rename from platforms/anchor-platform/callbacks/post-event.api.mdx rename to network/anchor-platform/callbacks/post-event.api.mdx diff --git a/platforms/anchor-platform/callbacks/put-customer.api.mdx b/network/anchor-platform/callbacks/put-customer.api.mdx similarity index 100% rename from platforms/anchor-platform/callbacks/put-customer.api.mdx rename to network/anchor-platform/callbacks/put-customer.api.mdx diff --git a/platforms/anchor-platform/callbacks/rate/index.mdx b/network/anchor-platform/callbacks/rate/index.mdx similarity index 100% rename from platforms/anchor-platform/callbacks/rate/index.mdx rename to network/anchor-platform/callbacks/rate/index.mdx diff --git a/platforms/anchor-platform/callbacks/sidebar.js b/network/anchor-platform/callbacks/sidebar.js similarity index 100% rename from platforms/anchor-platform/callbacks/sidebar.js rename to network/anchor-platform/callbacks/sidebar.js diff --git a/platforms/anchor-platform/callbacks/unique-address/index.mdx b/network/anchor-platform/callbacks/unique-address/index.mdx similarity index 100% rename from platforms/anchor-platform/callbacks/unique-address/index.mdx rename to network/anchor-platform/callbacks/unique-address/index.mdx diff --git a/platforms/anchor-platform/custody-server/_category_.json b/network/anchor-platform/custody-server/_category_.json similarity index 100% rename from platforms/anchor-platform/custody-server/_category_.json rename to network/anchor-platform/custody-server/_category_.json diff --git a/platforms/anchor-platform/custody-server/create-custody-transaction.api.mdx b/network/anchor-platform/custody-server/create-custody-transaction.api.mdx similarity index 100% rename from platforms/anchor-platform/custody-server/create-custody-transaction.api.mdx rename to network/anchor-platform/custody-server/create-custody-transaction.api.mdx diff --git a/platforms/anchor-platform/custody-server/custody-transactions/index.mdx b/network/anchor-platform/custody-server/custody-transactions/index.mdx similarity index 100% rename from platforms/anchor-platform/custody-server/custody-transactions/index.mdx rename to network/anchor-platform/custody-server/custody-transactions/index.mdx diff --git a/platforms/anchor-platform/custody-server/generate-unique-address.api.mdx b/network/anchor-platform/custody-server/generate-unique-address.api.mdx similarity index 100% rename from platforms/anchor-platform/custody-server/generate-unique-address.api.mdx rename to network/anchor-platform/custody-server/generate-unique-address.api.mdx diff --git a/platforms/anchor-platform/custody-server/index.mdx b/network/anchor-platform/custody-server/index.mdx similarity index 100% rename from platforms/anchor-platform/custody-server/index.mdx rename to network/anchor-platform/custody-server/index.mdx diff --git a/platforms/anchor-platform/custody-server/payments/index.mdx b/network/anchor-platform/custody-server/payments/index.mdx similarity index 100% rename from platforms/anchor-platform/custody-server/payments/index.mdx rename to network/anchor-platform/custody-server/payments/index.mdx diff --git a/platforms/anchor-platform/custody-server/refunds/index.mdx b/network/anchor-platform/custody-server/refunds/index.mdx similarity index 100% rename from platforms/anchor-platform/custody-server/refunds/index.mdx rename to network/anchor-platform/custody-server/refunds/index.mdx diff --git a/platforms/anchor-platform/custody-server/send-payment.api.mdx b/network/anchor-platform/custody-server/send-payment.api.mdx similarity index 100% rename from platforms/anchor-platform/custody-server/send-payment.api.mdx rename to network/anchor-platform/custody-server/send-payment.api.mdx diff --git a/platforms/anchor-platform/custody-server/send-refund.api.mdx b/network/anchor-platform/custody-server/send-refund.api.mdx similarity index 100% rename from platforms/anchor-platform/custody-server/send-refund.api.mdx rename to network/anchor-platform/custody-server/send-refund.api.mdx diff --git a/platforms/anchor-platform/custody-server/sidebar.js b/network/anchor-platform/custody-server/sidebar.js similarity index 100% rename from platforms/anchor-platform/custody-server/sidebar.js rename to network/anchor-platform/custody-server/sidebar.js diff --git a/platforms/anchor-platform/custody-server/unique-address/index.mdx b/network/anchor-platform/custody-server/unique-address/index.mdx similarity index 100% rename from platforms/anchor-platform/custody-server/unique-address/index.mdx rename to network/anchor-platform/custody-server/unique-address/index.mdx diff --git a/platforms/anchor-platform/events/_category_.json b/network/anchor-platform/events/_category_.json similarity index 100% rename from platforms/anchor-platform/events/_category_.json rename to network/anchor-platform/events/_category_.json diff --git a/platforms/anchor-platform/events/delivery.mdx b/network/anchor-platform/events/delivery.mdx similarity index 100% rename from platforms/anchor-platform/events/delivery.mdx rename to network/anchor-platform/events/delivery.mdx diff --git a/platforms/anchor-platform/events/index.mdx b/network/anchor-platform/events/index.mdx similarity index 100% rename from platforms/anchor-platform/events/index.mdx rename to network/anchor-platform/events/index.mdx diff --git a/platforms/anchor-platform/events/integration.mdx b/network/anchor-platform/events/integration.mdx similarity index 100% rename from platforms/anchor-platform/events/integration.mdx rename to network/anchor-platform/events/integration.mdx diff --git a/platforms/anchor-platform/introduction/_category_.json b/network/anchor-platform/introduction/_category_.json similarity index 100% rename from platforms/anchor-platform/introduction/_category_.json rename to network/anchor-platform/introduction/_category_.json diff --git a/platforms/anchor-platform/introduction/index.mdx b/network/anchor-platform/introduction/index.mdx similarity index 100% rename from platforms/anchor-platform/introduction/index.mdx rename to network/anchor-platform/introduction/index.mdx diff --git a/platforms/anchor-platform/resources/_category_.json b/network/anchor-platform/resources/_category_.json similarity index 100% rename from platforms/anchor-platform/resources/_category_.json rename to network/anchor-platform/resources/_category_.json diff --git a/platforms/anchor-platform/resources/get-transaction.api.mdx b/network/anchor-platform/resources/get-transaction.api.mdx similarity index 100% rename from platforms/anchor-platform/resources/get-transaction.api.mdx rename to network/anchor-platform/resources/get-transaction.api.mdx diff --git a/platforms/anchor-platform/resources/get-transactions.api.mdx b/network/anchor-platform/resources/get-transactions.api.mdx similarity index 100% rename from platforms/anchor-platform/resources/get-transactions.api.mdx rename to network/anchor-platform/resources/get-transactions.api.mdx diff --git a/platforms/anchor-platform/resources/index.mdx b/network/anchor-platform/resources/index.mdx similarity index 100% rename from platforms/anchor-platform/resources/index.mdx rename to network/anchor-platform/resources/index.mdx diff --git a/platforms/anchor-platform/resources/sidebar.js b/network/anchor-platform/resources/sidebar.js similarity index 100% rename from platforms/anchor-platform/resources/sidebar.js rename to network/anchor-platform/resources/sidebar.js diff --git a/platforms/anchor-platform/resources/transactions/index.mdx b/network/anchor-platform/resources/transactions/index.mdx similarity index 100% rename from platforms/anchor-platform/resources/transactions/index.mdx rename to network/anchor-platform/resources/transactions/index.mdx diff --git a/platforms/anchor-platform/rpc/_category_.json b/network/anchor-platform/rpc/_category_.json similarity index 100% rename from platforms/anchor-platform/rpc/_category_.json rename to network/anchor-platform/rpc/_category_.json diff --git a/platforms/anchor-platform/rpc/index.mdx b/network/anchor-platform/rpc/index.mdx similarity index 100% rename from platforms/anchor-platform/rpc/index.mdx rename to network/anchor-platform/rpc/index.mdx diff --git a/platforms/anchor-platform/rpc/methods/do_stellar_payment/index.mdx b/network/anchor-platform/rpc/methods/do_stellar_payment/index.mdx similarity index 100% rename from platforms/anchor-platform/rpc/methods/do_stellar_payment/index.mdx rename to network/anchor-platform/rpc/methods/do_stellar_payment/index.mdx diff --git a/platforms/anchor-platform/rpc/methods/do_stellar_refund/index.mdx b/network/anchor-platform/rpc/methods/do_stellar_refund/index.mdx similarity index 100% rename from platforms/anchor-platform/rpc/methods/do_stellar_refund/index.mdx rename to network/anchor-platform/rpc/methods/do_stellar_refund/index.mdx diff --git a/platforms/anchor-platform/rpc/methods/index.mdx b/network/anchor-platform/rpc/methods/index.mdx similarity index 100% rename from platforms/anchor-platform/rpc/methods/index.mdx rename to network/anchor-platform/rpc/methods/index.mdx diff --git a/platforms/anchor-platform/rpc/methods/notify_amounts_updated/index.mdx b/network/anchor-platform/rpc/methods/notify_amounts_updated/index.mdx similarity index 100% rename from platforms/anchor-platform/rpc/methods/notify_amounts_updated/index.mdx rename to network/anchor-platform/rpc/methods/notify_amounts_updated/index.mdx diff --git a/platforms/anchor-platform/rpc/methods/notify_customer_info_updated/index.mdx b/network/anchor-platform/rpc/methods/notify_customer_info_updated/index.mdx similarity index 100% rename from platforms/anchor-platform/rpc/methods/notify_customer_info_updated/index.mdx rename to network/anchor-platform/rpc/methods/notify_customer_info_updated/index.mdx diff --git a/platforms/anchor-platform/rpc/methods/notify_interactive_flow_completed/index.mdx b/network/anchor-platform/rpc/methods/notify_interactive_flow_completed/index.mdx similarity index 100% rename from platforms/anchor-platform/rpc/methods/notify_interactive_flow_completed/index.mdx rename to network/anchor-platform/rpc/methods/notify_interactive_flow_completed/index.mdx diff --git a/platforms/anchor-platform/rpc/methods/notify_offchain_funds_available/index.mdx b/network/anchor-platform/rpc/methods/notify_offchain_funds_available/index.mdx similarity index 100% rename from platforms/anchor-platform/rpc/methods/notify_offchain_funds_available/index.mdx rename to network/anchor-platform/rpc/methods/notify_offchain_funds_available/index.mdx diff --git a/platforms/anchor-platform/rpc/methods/notify_offchain_funds_pending/index.mdx b/network/anchor-platform/rpc/methods/notify_offchain_funds_pending/index.mdx similarity index 100% rename from platforms/anchor-platform/rpc/methods/notify_offchain_funds_pending/index.mdx rename to network/anchor-platform/rpc/methods/notify_offchain_funds_pending/index.mdx diff --git a/platforms/anchor-platform/rpc/methods/notify_offchain_funds_received/index.mdx b/network/anchor-platform/rpc/methods/notify_offchain_funds_received/index.mdx similarity index 100% rename from platforms/anchor-platform/rpc/methods/notify_offchain_funds_received/index.mdx rename to network/anchor-platform/rpc/methods/notify_offchain_funds_received/index.mdx diff --git a/platforms/anchor-platform/rpc/methods/notify_offchain_funds_sent/index.mdx b/network/anchor-platform/rpc/methods/notify_offchain_funds_sent/index.mdx similarity index 100% rename from platforms/anchor-platform/rpc/methods/notify_offchain_funds_sent/index.mdx rename to network/anchor-platform/rpc/methods/notify_offchain_funds_sent/index.mdx diff --git a/platforms/anchor-platform/rpc/methods/notify_onchain_funds_received/index.mdx b/network/anchor-platform/rpc/methods/notify_onchain_funds_received/index.mdx similarity index 100% rename from platforms/anchor-platform/rpc/methods/notify_onchain_funds_received/index.mdx rename to network/anchor-platform/rpc/methods/notify_onchain_funds_received/index.mdx diff --git a/platforms/anchor-platform/rpc/methods/notify_onchain_funds_sent/index.mdx b/network/anchor-platform/rpc/methods/notify_onchain_funds_sent/index.mdx similarity index 100% rename from platforms/anchor-platform/rpc/methods/notify_onchain_funds_sent/index.mdx rename to network/anchor-platform/rpc/methods/notify_onchain_funds_sent/index.mdx diff --git a/platforms/anchor-platform/rpc/methods/notify_refund_pending/index.mdx b/network/anchor-platform/rpc/methods/notify_refund_pending/index.mdx similarity index 100% rename from platforms/anchor-platform/rpc/methods/notify_refund_pending/index.mdx rename to network/anchor-platform/rpc/methods/notify_refund_pending/index.mdx diff --git a/platforms/anchor-platform/rpc/methods/notify_refund_sent/index.mdx b/network/anchor-platform/rpc/methods/notify_refund_sent/index.mdx similarity index 100% rename from platforms/anchor-platform/rpc/methods/notify_refund_sent/index.mdx rename to network/anchor-platform/rpc/methods/notify_refund_sent/index.mdx diff --git a/platforms/anchor-platform/rpc/methods/notify_transaction_error/index.mdx b/network/anchor-platform/rpc/methods/notify_transaction_error/index.mdx similarity index 100% rename from platforms/anchor-platform/rpc/methods/notify_transaction_error/index.mdx rename to network/anchor-platform/rpc/methods/notify_transaction_error/index.mdx diff --git a/platforms/anchor-platform/rpc/methods/notify_transaction_expired/index.mdx b/network/anchor-platform/rpc/methods/notify_transaction_expired/index.mdx similarity index 100% rename from platforms/anchor-platform/rpc/methods/notify_transaction_expired/index.mdx rename to network/anchor-platform/rpc/methods/notify_transaction_expired/index.mdx diff --git a/platforms/anchor-platform/rpc/methods/notify_transaction_recovery/index.mdx b/network/anchor-platform/rpc/methods/notify_transaction_recovery/index.mdx similarity index 100% rename from platforms/anchor-platform/rpc/methods/notify_transaction_recovery/index.mdx rename to network/anchor-platform/rpc/methods/notify_transaction_recovery/index.mdx diff --git a/platforms/anchor-platform/rpc/methods/notify_trust_set/index.mdx b/network/anchor-platform/rpc/methods/notify_trust_set/index.mdx similarity index 100% rename from platforms/anchor-platform/rpc/methods/notify_trust_set/index.mdx rename to network/anchor-platform/rpc/methods/notify_trust_set/index.mdx diff --git a/platforms/anchor-platform/rpc/methods/request_customer_info_update/index.mdx b/network/anchor-platform/rpc/methods/request_customer_info_update/index.mdx similarity index 100% rename from platforms/anchor-platform/rpc/methods/request_customer_info_update/index.mdx rename to network/anchor-platform/rpc/methods/request_customer_info_update/index.mdx diff --git a/platforms/anchor-platform/rpc/methods/request_offchain_funds/index.mdx b/network/anchor-platform/rpc/methods/request_offchain_funds/index.mdx similarity index 100% rename from platforms/anchor-platform/rpc/methods/request_offchain_funds/index.mdx rename to network/anchor-platform/rpc/methods/request_offchain_funds/index.mdx diff --git a/platforms/anchor-platform/rpc/methods/request_onchain_funds/index.mdx b/network/anchor-platform/rpc/methods/request_onchain_funds/index.mdx similarity index 100% rename from platforms/anchor-platform/rpc/methods/request_onchain_funds/index.mdx rename to network/anchor-platform/rpc/methods/request_onchain_funds/index.mdx diff --git a/platforms/anchor-platform/rpc/methods/request_trust/index.mdx b/network/anchor-platform/rpc/methods/request_trust/index.mdx similarity index 100% rename from platforms/anchor-platform/rpc/methods/request_trust/index.mdx rename to network/anchor-platform/rpc/methods/request_trust/index.mdx diff --git a/platforms/anchor-platform/rpc/notify_interactive_flow_completed.api.mdx b/network/anchor-platform/rpc/notify_interactive_flow_completed.api.mdx similarity index 100% rename from platforms/anchor-platform/rpc/notify_interactive_flow_completed.api.mdx rename to network/anchor-platform/rpc/notify_interactive_flow_completed.api.mdx diff --git a/platforms/anchor-platform/rpc/sidebar.js b/network/anchor-platform/rpc/sidebar.js similarity index 100% rename from platforms/anchor-platform/rpc/sidebar.js rename to network/anchor-platform/rpc/sidebar.js diff --git a/platforms/core-node/README.mdx b/network/core-node/README.mdx similarity index 100% rename from platforms/core-node/README.mdx rename to network/core-node/README.mdx diff --git a/platforms/core-node/admin-guide/README.mdx b/network/core-node/admin-guide/README.mdx similarity index 100% rename from platforms/core-node/admin-guide/README.mdx rename to network/core-node/admin-guide/README.mdx diff --git a/platforms/core-node/admin-guide/_category_.json b/network/core-node/admin-guide/_category_.json similarity index 100% rename from platforms/core-node/admin-guide/_category_.json rename to network/core-node/admin-guide/_category_.json diff --git a/platforms/core-node/admin-guide/commands.mdx b/network/core-node/admin-guide/commands.mdx similarity index 100% rename from platforms/core-node/admin-guide/commands.mdx rename to network/core-node/admin-guide/commands.mdx diff --git a/platforms/core-node/admin-guide/configuring.mdx b/network/core-node/admin-guide/configuring.mdx similarity index 100% rename from platforms/core-node/admin-guide/configuring.mdx rename to network/core-node/admin-guide/configuring.mdx diff --git a/platforms/core-node/admin-guide/installation.mdx b/network/core-node/admin-guide/installation.mdx similarity index 100% rename from platforms/core-node/admin-guide/installation.mdx rename to network/core-node/admin-guide/installation.mdx diff --git a/platforms/core-node/admin-guide/monitoring.mdx b/network/core-node/admin-guide/monitoring.mdx similarity index 100% rename from platforms/core-node/admin-guide/monitoring.mdx rename to network/core-node/admin-guide/monitoring.mdx diff --git a/platforms/core-node/admin-guide/network-upgrades.mdx b/network/core-node/admin-guide/network-upgrades.mdx similarity index 100% rename from platforms/core-node/admin-guide/network-upgrades.mdx rename to network/core-node/admin-guide/network-upgrades.mdx diff --git a/platforms/core-node/admin-guide/prerequisites.mdx b/network/core-node/admin-guide/prerequisites.mdx similarity index 100% rename from platforms/core-node/admin-guide/prerequisites.mdx rename to network/core-node/admin-guide/prerequisites.mdx diff --git a/platforms/core-node/admin-guide/publishing-history-archives.mdx b/network/core-node/admin-guide/publishing-history-archives.mdx similarity index 100% rename from platforms/core-node/admin-guide/publishing-history-archives.mdx rename to network/core-node/admin-guide/publishing-history-archives.mdx diff --git a/platforms/core-node/admin-guide/running-node.mdx b/network/core-node/admin-guide/running-node.mdx similarity index 100% rename from platforms/core-node/admin-guide/running-node.mdx rename to network/core-node/admin-guide/running-node.mdx diff --git a/platforms/core-node/tier-1-orgs.mdx b/network/core-node/tier-1-orgs.mdx similarity index 100% rename from platforms/core-node/tier-1-orgs.mdx rename to network/core-node/tier-1-orgs.mdx diff --git a/platforms/horizon/README.mdx b/network/horizon/README.mdx similarity index 100% rename from platforms/horizon/README.mdx rename to network/horizon/README.mdx diff --git a/platforms/horizon/admin-guide/README.mdx b/network/horizon/admin-guide/README.mdx similarity index 100% rename from platforms/horizon/admin-guide/README.mdx rename to network/horizon/admin-guide/README.mdx diff --git a/platforms/horizon/admin-guide/configuring.mdx b/network/horizon/admin-guide/configuring.mdx similarity index 100% rename from platforms/horizon/admin-guide/configuring.mdx rename to network/horizon/admin-guide/configuring.mdx diff --git a/platforms/horizon/admin-guide/ingestion-filtering.mdx b/network/horizon/admin-guide/ingestion-filtering.mdx similarity index 100% rename from platforms/horizon/admin-guide/ingestion-filtering.mdx rename to network/horizon/admin-guide/ingestion-filtering.mdx diff --git a/platforms/horizon/admin-guide/ingestion.mdx b/network/horizon/admin-guide/ingestion.mdx similarity index 100% rename from platforms/horizon/admin-guide/ingestion.mdx rename to network/horizon/admin-guide/ingestion.mdx diff --git a/platforms/horizon/admin-guide/installing.mdx b/network/horizon/admin-guide/installing.mdx similarity index 100% rename from platforms/horizon/admin-guide/installing.mdx rename to network/horizon/admin-guide/installing.mdx diff --git a/platforms/horizon/admin-guide/monitoring.mdx b/network/horizon/admin-guide/monitoring.mdx similarity index 100% rename from platforms/horizon/admin-guide/monitoring.mdx rename to network/horizon/admin-guide/monitoring.mdx diff --git a/platforms/horizon/admin-guide/overview.mdx b/network/horizon/admin-guide/overview.mdx similarity index 100% rename from platforms/horizon/admin-guide/overview.mdx rename to network/horizon/admin-guide/overview.mdx diff --git a/platforms/horizon/admin-guide/prerequisites.mdx b/network/horizon/admin-guide/prerequisites.mdx similarity index 100% rename from platforms/horizon/admin-guide/prerequisites.mdx rename to network/horizon/admin-guide/prerequisites.mdx diff --git a/platforms/horizon/admin-guide/running.mdx b/network/horizon/admin-guide/running.mdx similarity index 100% rename from platforms/horizon/admin-guide/running.mdx rename to network/horizon/admin-guide/running.mdx diff --git a/platforms/horizon/admin-guide/scaling.mdx b/network/horizon/admin-guide/scaling.mdx similarity index 100% rename from platforms/horizon/admin-guide/scaling.mdx rename to network/horizon/admin-guide/scaling.mdx diff --git a/platforms/horizon/admin-guide/upgrading.mdx b/network/horizon/admin-guide/upgrading.mdx similarity index 100% rename from platforms/horizon/admin-guide/upgrading.mdx rename to network/horizon/admin-guide/upgrading.mdx diff --git a/platforms/horizon/aggregations/README.mdx b/network/horizon/aggregations/README.mdx similarity index 100% rename from platforms/horizon/aggregations/README.mdx rename to network/horizon/aggregations/README.mdx diff --git a/platforms/horizon/aggregations/fee-stats/_category_.json b/network/horizon/aggregations/fee-stats/_category_.json similarity index 100% rename from platforms/horizon/aggregations/fee-stats/_category_.json rename to network/horizon/aggregations/fee-stats/_category_.json diff --git a/platforms/horizon/aggregations/fee-stats/index.mdx b/network/horizon/aggregations/fee-stats/index.mdx similarity index 100% rename from platforms/horizon/aggregations/fee-stats/index.mdx rename to network/horizon/aggregations/fee-stats/index.mdx diff --git a/platforms/horizon/aggregations/fee-stats/object.mdx b/network/horizon/aggregations/fee-stats/object.mdx similarity index 100% rename from platforms/horizon/aggregations/fee-stats/object.mdx rename to network/horizon/aggregations/fee-stats/object.mdx diff --git a/platforms/horizon/aggregations/fee-stats/single.mdx b/network/horizon/aggregations/fee-stats/single.mdx similarity index 100% rename from platforms/horizon/aggregations/fee-stats/single.mdx rename to network/horizon/aggregations/fee-stats/single.mdx diff --git a/platforms/horizon/aggregations/order-books/_category_.json b/network/horizon/aggregations/order-books/_category_.json similarity index 100% rename from platforms/horizon/aggregations/order-books/_category_.json rename to network/horizon/aggregations/order-books/_category_.json diff --git a/platforms/horizon/aggregations/order-books/index.mdx b/network/horizon/aggregations/order-books/index.mdx similarity index 100% rename from platforms/horizon/aggregations/order-books/index.mdx rename to network/horizon/aggregations/order-books/index.mdx diff --git a/platforms/horizon/aggregations/order-books/object.mdx b/network/horizon/aggregations/order-books/object.mdx similarity index 100% rename from platforms/horizon/aggregations/order-books/object.mdx rename to network/horizon/aggregations/order-books/object.mdx diff --git a/platforms/horizon/aggregations/order-books/single.mdx b/network/horizon/aggregations/order-books/single.mdx similarity index 100% rename from platforms/horizon/aggregations/order-books/single.mdx rename to network/horizon/aggregations/order-books/single.mdx diff --git a/platforms/horizon/aggregations/paths/_category_.json b/network/horizon/aggregations/paths/_category_.json similarity index 100% rename from platforms/horizon/aggregations/paths/_category_.json rename to network/horizon/aggregations/paths/_category_.json diff --git a/platforms/horizon/aggregations/paths/index.mdx b/network/horizon/aggregations/paths/index.mdx similarity index 100% rename from platforms/horizon/aggregations/paths/index.mdx rename to network/horizon/aggregations/paths/index.mdx diff --git a/platforms/horizon/aggregations/paths/object.mdx b/network/horizon/aggregations/paths/object.mdx similarity index 100% rename from platforms/horizon/aggregations/paths/object.mdx rename to network/horizon/aggregations/paths/object.mdx diff --git a/platforms/horizon/aggregations/paths/strict-receive.mdx b/network/horizon/aggregations/paths/strict-receive.mdx similarity index 100% rename from platforms/horizon/aggregations/paths/strict-receive.mdx rename to network/horizon/aggregations/paths/strict-receive.mdx diff --git a/platforms/horizon/aggregations/paths/strict-send.mdx b/network/horizon/aggregations/paths/strict-send.mdx similarity index 100% rename from platforms/horizon/aggregations/paths/strict-send.mdx rename to network/horizon/aggregations/paths/strict-send.mdx diff --git a/platforms/horizon/aggregations/trade-aggregations/_category_.json b/network/horizon/aggregations/trade-aggregations/_category_.json similarity index 100% rename from platforms/horizon/aggregations/trade-aggregations/_category_.json rename to network/horizon/aggregations/trade-aggregations/_category_.json diff --git a/platforms/horizon/aggregations/trade-aggregations/index.mdx b/network/horizon/aggregations/trade-aggregations/index.mdx similarity index 100% rename from platforms/horizon/aggregations/trade-aggregations/index.mdx rename to network/horizon/aggregations/trade-aggregations/index.mdx diff --git a/platforms/horizon/aggregations/trade-aggregations/list.mdx b/network/horizon/aggregations/trade-aggregations/list.mdx similarity index 100% rename from platforms/horizon/aggregations/trade-aggregations/list.mdx rename to network/horizon/aggregations/trade-aggregations/list.mdx diff --git a/platforms/horizon/aggregations/trade-aggregations/object.mdx b/network/horizon/aggregations/trade-aggregations/object.mdx similarity index 100% rename from platforms/horizon/aggregations/trade-aggregations/object.mdx rename to network/horizon/aggregations/trade-aggregations/object.mdx diff --git a/platforms/horizon/errors/_category_.json b/network/horizon/errors/_category_.json similarity index 100% rename from platforms/horizon/errors/_category_.json rename to network/horizon/errors/_category_.json diff --git a/platforms/horizon/errors/http-status-codes/_category_.json b/network/horizon/errors/http-status-codes/_category_.json similarity index 100% rename from platforms/horizon/errors/http-status-codes/_category_.json rename to network/horizon/errors/http-status-codes/_category_.json diff --git a/platforms/horizon/errors/http-status-codes/horizon-specific/before-history.mdx b/network/horizon/errors/http-status-codes/horizon-specific/before-history.mdx similarity index 100% rename from platforms/horizon/errors/http-status-codes/horizon-specific/before-history.mdx rename to network/horizon/errors/http-status-codes/horizon-specific/before-history.mdx diff --git a/platforms/horizon/errors/http-status-codes/horizon-specific/index.mdx b/network/horizon/errors/http-status-codes/horizon-specific/index.mdx similarity index 100% rename from platforms/horizon/errors/http-status-codes/horizon-specific/index.mdx rename to network/horizon/errors/http-status-codes/horizon-specific/index.mdx diff --git a/platforms/horizon/errors/http-status-codes/horizon-specific/stale-history.mdx b/network/horizon/errors/http-status-codes/horizon-specific/stale-history.mdx similarity index 100% rename from platforms/horizon/errors/http-status-codes/horizon-specific/stale-history.mdx rename to network/horizon/errors/http-status-codes/horizon-specific/stale-history.mdx diff --git a/platforms/horizon/errors/http-status-codes/horizon-specific/timeout.mdx b/network/horizon/errors/http-status-codes/horizon-specific/timeout.mdx similarity index 100% rename from platforms/horizon/errors/http-status-codes/horizon-specific/timeout.mdx rename to network/horizon/errors/http-status-codes/horizon-specific/timeout.mdx diff --git a/platforms/horizon/errors/http-status-codes/horizon-specific/transaction-failed.mdx b/network/horizon/errors/http-status-codes/horizon-specific/transaction-failed.mdx similarity index 100% rename from platforms/horizon/errors/http-status-codes/horizon-specific/transaction-failed.mdx rename to network/horizon/errors/http-status-codes/horizon-specific/transaction-failed.mdx diff --git a/platforms/horizon/errors/http-status-codes/horizon-specific/transaction-malformed.mdx b/network/horizon/errors/http-status-codes/horizon-specific/transaction-malformed.mdx similarity index 100% rename from platforms/horizon/errors/http-status-codes/horizon-specific/transaction-malformed.mdx rename to network/horizon/errors/http-status-codes/horizon-specific/transaction-malformed.mdx diff --git a/platforms/horizon/errors/http-status-codes/index.mdx b/network/horizon/errors/http-status-codes/index.mdx similarity index 100% rename from platforms/horizon/errors/http-status-codes/index.mdx rename to network/horizon/errors/http-status-codes/index.mdx diff --git a/platforms/horizon/errors/http-status-codes/standard.mdx b/network/horizon/errors/http-status-codes/standard.mdx similarity index 100% rename from platforms/horizon/errors/http-status-codes/standard.mdx rename to network/horizon/errors/http-status-codes/standard.mdx diff --git a/platforms/horizon/errors/index.mdx b/network/horizon/errors/index.mdx similarity index 100% rename from platforms/horizon/errors/index.mdx rename to network/horizon/errors/index.mdx diff --git a/platforms/horizon/errors/response.mdx b/network/horizon/errors/response.mdx similarity index 100% rename from platforms/horizon/errors/response.mdx rename to network/horizon/errors/response.mdx diff --git a/platforms/horizon/errors/result-codes/_category_.json b/network/horizon/errors/result-codes/_category_.json similarity index 100% rename from platforms/horizon/errors/result-codes/_category_.json rename to network/horizon/errors/result-codes/_category_.json diff --git a/platforms/horizon/errors/result-codes/index.mdx b/network/horizon/errors/result-codes/index.mdx similarity index 100% rename from platforms/horizon/errors/result-codes/index.mdx rename to network/horizon/errors/result-codes/index.mdx diff --git a/platforms/horizon/errors/result-codes/operation-specific/account-merge.mdx b/network/horizon/errors/result-codes/operation-specific/account-merge.mdx similarity index 100% rename from platforms/horizon/errors/result-codes/operation-specific/account-merge.mdx rename to network/horizon/errors/result-codes/operation-specific/account-merge.mdx diff --git a/platforms/horizon/errors/result-codes/operation-specific/allow-trust.mdx b/network/horizon/errors/result-codes/operation-specific/allow-trust.mdx similarity index 100% rename from platforms/horizon/errors/result-codes/operation-specific/allow-trust.mdx rename to network/horizon/errors/result-codes/operation-specific/allow-trust.mdx diff --git a/platforms/horizon/errors/result-codes/operation-specific/bump-sequence.mdx b/network/horizon/errors/result-codes/operation-specific/bump-sequence.mdx similarity index 100% rename from platforms/horizon/errors/result-codes/operation-specific/bump-sequence.mdx rename to network/horizon/errors/result-codes/operation-specific/bump-sequence.mdx diff --git a/platforms/horizon/errors/result-codes/operation-specific/category.json b/network/horizon/errors/result-codes/operation-specific/category.json similarity index 100% rename from platforms/horizon/errors/result-codes/operation-specific/category.json rename to network/horizon/errors/result-codes/operation-specific/category.json diff --git a/platforms/horizon/errors/result-codes/operation-specific/change-trust.mdx b/network/horizon/errors/result-codes/operation-specific/change-trust.mdx similarity index 100% rename from platforms/horizon/errors/result-codes/operation-specific/change-trust.mdx rename to network/horizon/errors/result-codes/operation-specific/change-trust.mdx diff --git a/platforms/horizon/errors/result-codes/operation-specific/create-account.mdx b/network/horizon/errors/result-codes/operation-specific/create-account.mdx similarity index 100% rename from platforms/horizon/errors/result-codes/operation-specific/create-account.mdx rename to network/horizon/errors/result-codes/operation-specific/create-account.mdx diff --git a/platforms/horizon/errors/result-codes/operation-specific/create-passive-sell-offer.mdx b/network/horizon/errors/result-codes/operation-specific/create-passive-sell-offer.mdx similarity index 100% rename from platforms/horizon/errors/result-codes/operation-specific/create-passive-sell-offer.mdx rename to network/horizon/errors/result-codes/operation-specific/create-passive-sell-offer.mdx diff --git a/platforms/horizon/errors/result-codes/operation-specific/index.mdx b/network/horizon/errors/result-codes/operation-specific/index.mdx similarity index 100% rename from platforms/horizon/errors/result-codes/operation-specific/index.mdx rename to network/horizon/errors/result-codes/operation-specific/index.mdx diff --git a/platforms/horizon/errors/result-codes/operation-specific/manage-buy-offer.mdx b/network/horizon/errors/result-codes/operation-specific/manage-buy-offer.mdx similarity index 100% rename from platforms/horizon/errors/result-codes/operation-specific/manage-buy-offer.mdx rename to network/horizon/errors/result-codes/operation-specific/manage-buy-offer.mdx diff --git a/platforms/horizon/errors/result-codes/operation-specific/manage-data.mdx b/network/horizon/errors/result-codes/operation-specific/manage-data.mdx similarity index 100% rename from platforms/horizon/errors/result-codes/operation-specific/manage-data.mdx rename to network/horizon/errors/result-codes/operation-specific/manage-data.mdx diff --git a/platforms/horizon/errors/result-codes/operation-specific/manage-sell-offer.mdx b/network/horizon/errors/result-codes/operation-specific/manage-sell-offer.mdx similarity index 100% rename from platforms/horizon/errors/result-codes/operation-specific/manage-sell-offer.mdx rename to network/horizon/errors/result-codes/operation-specific/manage-sell-offer.mdx diff --git a/platforms/horizon/errors/result-codes/operation-specific/path-payment-strict-receive.mdx b/network/horizon/errors/result-codes/operation-specific/path-payment-strict-receive.mdx similarity index 100% rename from platforms/horizon/errors/result-codes/operation-specific/path-payment-strict-receive.mdx rename to network/horizon/errors/result-codes/operation-specific/path-payment-strict-receive.mdx diff --git a/platforms/horizon/errors/result-codes/operation-specific/path-payment-strict-send.mdx b/network/horizon/errors/result-codes/operation-specific/path-payment-strict-send.mdx similarity index 100% rename from platforms/horizon/errors/result-codes/operation-specific/path-payment-strict-send.mdx rename to network/horizon/errors/result-codes/operation-specific/path-payment-strict-send.mdx diff --git a/platforms/horizon/errors/result-codes/operation-specific/payment.mdx b/network/horizon/errors/result-codes/operation-specific/payment.mdx similarity index 100% rename from platforms/horizon/errors/result-codes/operation-specific/payment.mdx rename to network/horizon/errors/result-codes/operation-specific/payment.mdx diff --git a/platforms/horizon/errors/result-codes/operation-specific/set-options.mdx b/network/horizon/errors/result-codes/operation-specific/set-options.mdx similarity index 100% rename from platforms/horizon/errors/result-codes/operation-specific/set-options.mdx rename to network/horizon/errors/result-codes/operation-specific/set-options.mdx diff --git a/platforms/horizon/errors/result-codes/operations.mdx b/network/horizon/errors/result-codes/operations.mdx similarity index 100% rename from platforms/horizon/errors/result-codes/operations.mdx rename to network/horizon/errors/result-codes/operations.mdx diff --git a/platforms/horizon/errors/result-codes/transactions.mdx b/network/horizon/errors/result-codes/transactions.mdx similarity index 100% rename from platforms/horizon/errors/result-codes/transactions.mdx rename to network/horizon/errors/result-codes/transactions.mdx diff --git a/platforms/horizon/resources/_category_.json b/network/horizon/resources/_category_.json similarity index 100% rename from platforms/horizon/resources/_category_.json rename to network/horizon/resources/_category_.json diff --git a/platforms/horizon/resources/accounts/index.mdx b/network/horizon/resources/accounts/index.mdx similarity index 100% rename from platforms/horizon/resources/accounts/index.mdx rename to network/horizon/resources/accounts/index.mdx diff --git a/platforms/horizon/resources/accounts/object.mdx b/network/horizon/resources/accounts/object.mdx similarity index 100% rename from platforms/horizon/resources/accounts/object.mdx rename to network/horizon/resources/accounts/object.mdx diff --git a/platforms/horizon/resources/assets/index.mdx b/network/horizon/resources/assets/index.mdx similarity index 100% rename from platforms/horizon/resources/assets/index.mdx rename to network/horizon/resources/assets/index.mdx diff --git a/platforms/horizon/resources/assets/object.mdx b/network/horizon/resources/assets/object.mdx similarity index 100% rename from platforms/horizon/resources/assets/object.mdx rename to network/horizon/resources/assets/object.mdx diff --git a/platforms/horizon/resources/cb-retrieve-related-operations.api.mdx b/network/horizon/resources/cb-retrieve-related-operations.api.mdx similarity index 100% rename from platforms/horizon/resources/cb-retrieve-related-operations.api.mdx rename to network/horizon/resources/cb-retrieve-related-operations.api.mdx diff --git a/platforms/horizon/resources/cb-retrieve-related-transactions.api.mdx b/network/horizon/resources/cb-retrieve-related-transactions.api.mdx similarity index 100% rename from platforms/horizon/resources/cb-retrieve-related-transactions.api.mdx rename to network/horizon/resources/cb-retrieve-related-transactions.api.mdx diff --git a/platforms/horizon/resources/claimablebalances/index.mdx b/network/horizon/resources/claimablebalances/index.mdx similarity index 100% rename from platforms/horizon/resources/claimablebalances/index.mdx rename to network/horizon/resources/claimablebalances/index.mdx diff --git a/platforms/horizon/resources/claimablebalances/object.mdx b/network/horizon/resources/claimablebalances/object.mdx similarity index 100% rename from platforms/horizon/resources/claimablebalances/object.mdx rename to network/horizon/resources/claimablebalances/object.mdx diff --git a/platforms/horizon/resources/effects/index.mdx b/network/horizon/resources/effects/index.mdx similarity index 100% rename from platforms/horizon/resources/effects/index.mdx rename to network/horizon/resources/effects/index.mdx diff --git a/platforms/horizon/resources/effects/types.mdx b/network/horizon/resources/effects/types.mdx similarity index 100% rename from platforms/horizon/resources/effects/types.mdx rename to network/horizon/resources/effects/types.mdx diff --git a/platforms/horizon/resources/get-all-offers.api.mdx b/network/horizon/resources/get-all-offers.api.mdx similarity index 100% rename from platforms/horizon/resources/get-all-offers.api.mdx rename to network/horizon/resources/get-all-offers.api.mdx diff --git a/platforms/horizon/resources/get-all-trades.api.mdx b/network/horizon/resources/get-all-trades.api.mdx similarity index 100% rename from platforms/horizon/resources/get-all-trades.api.mdx rename to network/horizon/resources/get-all-trades.api.mdx diff --git a/platforms/horizon/resources/get-data-by-account-id.api.mdx b/network/horizon/resources/get-data-by-account-id.api.mdx similarity index 100% rename from platforms/horizon/resources/get-data-by-account-id.api.mdx rename to network/horizon/resources/get-data-by-account-id.api.mdx diff --git a/platforms/horizon/resources/get-effects-by-account-id.api.mdx b/network/horizon/resources/get-effects-by-account-id.api.mdx similarity index 100% rename from platforms/horizon/resources/get-effects-by-account-id.api.mdx rename to network/horizon/resources/get-effects-by-account-id.api.mdx diff --git a/platforms/horizon/resources/get-offer-by-offer-id.api.mdx b/network/horizon/resources/get-offer-by-offer-id.api.mdx similarity index 100% rename from platforms/horizon/resources/get-offer-by-offer-id.api.mdx rename to network/horizon/resources/get-offer-by-offer-id.api.mdx diff --git a/platforms/horizon/resources/get-offers-by-account-id.api.mdx b/network/horizon/resources/get-offers-by-account-id.api.mdx similarity index 100% rename from platforms/horizon/resources/get-offers-by-account-id.api.mdx rename to network/horizon/resources/get-offers-by-account-id.api.mdx diff --git a/platforms/horizon/resources/get-operations-by-account-id.api.mdx b/network/horizon/resources/get-operations-by-account-id.api.mdx similarity index 100% rename from platforms/horizon/resources/get-operations-by-account-id.api.mdx rename to network/horizon/resources/get-operations-by-account-id.api.mdx diff --git a/platforms/horizon/resources/get-payments-by-account-id.api.mdx b/network/horizon/resources/get-payments-by-account-id.api.mdx similarity index 100% rename from platforms/horizon/resources/get-payments-by-account-id.api.mdx rename to network/horizon/resources/get-payments-by-account-id.api.mdx diff --git a/platforms/horizon/resources/get-trades-by-account-id.api.mdx b/network/horizon/resources/get-trades-by-account-id.api.mdx similarity index 100% rename from platforms/horizon/resources/get-trades-by-account-id.api.mdx rename to network/horizon/resources/get-trades-by-account-id.api.mdx diff --git a/platforms/horizon/resources/get-trades-by-offer-id.api.mdx b/network/horizon/resources/get-trades-by-offer-id.api.mdx similarity index 100% rename from platforms/horizon/resources/get-trades-by-offer-id.api.mdx rename to network/horizon/resources/get-trades-by-offer-id.api.mdx diff --git a/platforms/horizon/resources/get-transactions-by-account-id.api.mdx b/network/horizon/resources/get-transactions-by-account-id.api.mdx similarity index 100% rename from platforms/horizon/resources/get-transactions-by-account-id.api.mdx rename to network/horizon/resources/get-transactions-by-account-id.api.mdx diff --git a/platforms/horizon/resources/index.mdx b/network/horizon/resources/index.mdx similarity index 100% rename from platforms/horizon/resources/index.mdx rename to network/horizon/resources/index.mdx diff --git a/platforms/horizon/resources/ledgers/index.mdx b/network/horizon/resources/ledgers/index.mdx similarity index 100% rename from platforms/horizon/resources/ledgers/index.mdx rename to network/horizon/resources/ledgers/index.mdx diff --git a/platforms/horizon/resources/ledgers/object.mdx b/network/horizon/resources/ledgers/object.mdx similarity index 100% rename from platforms/horizon/resources/ledgers/object.mdx rename to network/horizon/resources/ledgers/object.mdx diff --git a/platforms/horizon/resources/liquiditypools/index.mdx b/network/horizon/resources/liquiditypools/index.mdx similarity index 100% rename from platforms/horizon/resources/liquiditypools/index.mdx rename to network/horizon/resources/liquiditypools/index.mdx diff --git a/platforms/horizon/resources/list-all-accounts.api.mdx b/network/horizon/resources/list-all-accounts.api.mdx similarity index 100% rename from platforms/horizon/resources/list-all-accounts.api.mdx rename to network/horizon/resources/list-all-accounts.api.mdx diff --git a/platforms/horizon/resources/list-all-assets.api.mdx b/network/horizon/resources/list-all-assets.api.mdx similarity index 100% rename from platforms/horizon/resources/list-all-assets.api.mdx rename to network/horizon/resources/list-all-assets.api.mdx diff --git a/platforms/horizon/resources/list-all-claimable-balances.api.mdx b/network/horizon/resources/list-all-claimable-balances.api.mdx similarity index 100% rename from platforms/horizon/resources/list-all-claimable-balances.api.mdx rename to network/horizon/resources/list-all-claimable-balances.api.mdx diff --git a/platforms/horizon/resources/list-all-effects.api.mdx b/network/horizon/resources/list-all-effects.api.mdx similarity index 100% rename from platforms/horizon/resources/list-all-effects.api.mdx rename to network/horizon/resources/list-all-effects.api.mdx diff --git a/platforms/horizon/resources/list-all-ledgers.api.mdx b/network/horizon/resources/list-all-ledgers.api.mdx similarity index 100% rename from platforms/horizon/resources/list-all-ledgers.api.mdx rename to network/horizon/resources/list-all-ledgers.api.mdx diff --git a/platforms/horizon/resources/list-all-operations.api.mdx b/network/horizon/resources/list-all-operations.api.mdx similarity index 100% rename from platforms/horizon/resources/list-all-operations.api.mdx rename to network/horizon/resources/list-all-operations.api.mdx diff --git a/platforms/horizon/resources/list-all-payments.api.mdx b/network/horizon/resources/list-all-payments.api.mdx similarity index 100% rename from platforms/horizon/resources/list-all-payments.api.mdx rename to network/horizon/resources/list-all-payments.api.mdx diff --git a/platforms/horizon/resources/list-all-transactions.api.mdx b/network/horizon/resources/list-all-transactions.api.mdx similarity index 100% rename from platforms/horizon/resources/list-all-transactions.api.mdx rename to network/horizon/resources/list-all-transactions.api.mdx diff --git a/platforms/horizon/resources/list-liquidity-pools.api.mdx b/network/horizon/resources/list-liquidity-pools.api.mdx similarity index 100% rename from platforms/horizon/resources/list-liquidity-pools.api.mdx rename to network/horizon/resources/list-liquidity-pools.api.mdx diff --git a/platforms/horizon/resources/list-strict-receive-payment-paths.api.mdx b/network/horizon/resources/list-strict-receive-payment-paths.api.mdx similarity index 100% rename from platforms/horizon/resources/list-strict-receive-payment-paths.api.mdx rename to network/horizon/resources/list-strict-receive-payment-paths.api.mdx diff --git a/platforms/horizon/resources/list-strict-send-payment-paths.api.mdx b/network/horizon/resources/list-strict-send-payment-paths.api.mdx similarity index 100% rename from platforms/horizon/resources/list-strict-send-payment-paths.api.mdx rename to network/horizon/resources/list-strict-send-payment-paths.api.mdx diff --git a/platforms/horizon/resources/list-trade-aggregations.api.mdx b/network/horizon/resources/list-trade-aggregations.api.mdx similarity index 100% rename from platforms/horizon/resources/list-trade-aggregations.api.mdx rename to network/horizon/resources/list-trade-aggregations.api.mdx diff --git a/platforms/horizon/resources/lp-retrieve-related-operations.api.mdx b/network/horizon/resources/lp-retrieve-related-operations.api.mdx similarity index 100% rename from platforms/horizon/resources/lp-retrieve-related-operations.api.mdx rename to network/horizon/resources/lp-retrieve-related-operations.api.mdx diff --git a/platforms/horizon/resources/lp-retrieve-related-transactions.api.mdx b/network/horizon/resources/lp-retrieve-related-transactions.api.mdx similarity index 100% rename from platforms/horizon/resources/lp-retrieve-related-transactions.api.mdx rename to network/horizon/resources/lp-retrieve-related-transactions.api.mdx diff --git a/platforms/horizon/resources/offers/index.mdx b/network/horizon/resources/offers/index.mdx similarity index 100% rename from platforms/horizon/resources/offers/index.mdx rename to network/horizon/resources/offers/index.mdx diff --git a/platforms/horizon/resources/offers/object.mdx b/network/horizon/resources/offers/object.mdx similarity index 100% rename from platforms/horizon/resources/offers/object.mdx rename to network/horizon/resources/offers/object.mdx diff --git a/platforms/horizon/resources/operations/index.mdx b/network/horizon/resources/operations/index.mdx similarity index 100% rename from platforms/horizon/resources/operations/index.mdx rename to network/horizon/resources/operations/index.mdx diff --git a/platforms/horizon/resources/operations/object/account-merge.mdx b/network/horizon/resources/operations/object/account-merge.mdx similarity index 100% rename from platforms/horizon/resources/operations/object/account-merge.mdx rename to network/horizon/resources/operations/object/account-merge.mdx diff --git a/platforms/horizon/resources/operations/object/allow-trust.mdx b/network/horizon/resources/operations/object/allow-trust.mdx similarity index 100% rename from platforms/horizon/resources/operations/object/allow-trust.mdx rename to network/horizon/resources/operations/object/allow-trust.mdx diff --git a/platforms/horizon/resources/operations/object/begin-sponsoring-future-reserves.mdx b/network/horizon/resources/operations/object/begin-sponsoring-future-reserves.mdx similarity index 100% rename from platforms/horizon/resources/operations/object/begin-sponsoring-future-reserves.mdx rename to network/horizon/resources/operations/object/begin-sponsoring-future-reserves.mdx diff --git a/platforms/horizon/resources/operations/object/bump-sequence.mdx b/network/horizon/resources/operations/object/bump-sequence.mdx similarity index 100% rename from platforms/horizon/resources/operations/object/bump-sequence.mdx rename to network/horizon/resources/operations/object/bump-sequence.mdx diff --git a/platforms/horizon/resources/operations/object/buy-offer.mdx b/network/horizon/resources/operations/object/buy-offer.mdx similarity index 100% rename from platforms/horizon/resources/operations/object/buy-offer.mdx rename to network/horizon/resources/operations/object/buy-offer.mdx diff --git a/platforms/horizon/resources/operations/object/change-trust.mdx b/network/horizon/resources/operations/object/change-trust.mdx similarity index 100% rename from platforms/horizon/resources/operations/object/change-trust.mdx rename to network/horizon/resources/operations/object/change-trust.mdx diff --git a/platforms/horizon/resources/operations/object/claim-claimable-balance.mdx b/network/horizon/resources/operations/object/claim-claimable-balance.mdx similarity index 100% rename from platforms/horizon/resources/operations/object/claim-claimable-balance.mdx rename to network/horizon/resources/operations/object/claim-claimable-balance.mdx diff --git a/platforms/horizon/resources/operations/object/create-account.mdx b/network/horizon/resources/operations/object/create-account.mdx similarity index 100% rename from platforms/horizon/resources/operations/object/create-account.mdx rename to network/horizon/resources/operations/object/create-account.mdx diff --git a/platforms/horizon/resources/operations/object/create-claimable-balance.mdx b/network/horizon/resources/operations/object/create-claimable-balance.mdx similarity index 100% rename from platforms/horizon/resources/operations/object/create-claimable-balance.mdx rename to network/horizon/resources/operations/object/create-claimable-balance.mdx diff --git a/platforms/horizon/resources/operations/object/end-sponsoring-future-reserves.mdx b/network/horizon/resources/operations/object/end-sponsoring-future-reserves.mdx similarity index 100% rename from platforms/horizon/resources/operations/object/end-sponsoring-future-reserves.mdx rename to network/horizon/resources/operations/object/end-sponsoring-future-reserves.mdx diff --git a/platforms/horizon/resources/operations/object/extend-footprint-ttl.mdx b/network/horizon/resources/operations/object/extend-footprint-ttl.mdx similarity index 100% rename from platforms/horizon/resources/operations/object/extend-footprint-ttl.mdx rename to network/horizon/resources/operations/object/extend-footprint-ttl.mdx diff --git a/platforms/horizon/resources/operations/object/index.mdx b/network/horizon/resources/operations/object/index.mdx similarity index 100% rename from platforms/horizon/resources/operations/object/index.mdx rename to network/horizon/resources/operations/object/index.mdx diff --git a/platforms/horizon/resources/operations/object/invoke-host-function.mdx b/network/horizon/resources/operations/object/invoke-host-function.mdx similarity index 100% rename from platforms/horizon/resources/operations/object/invoke-host-function.mdx rename to network/horizon/resources/operations/object/invoke-host-function.mdx diff --git a/platforms/horizon/resources/operations/object/liquidity-pool-deposit.mdx b/network/horizon/resources/operations/object/liquidity-pool-deposit.mdx similarity index 100% rename from platforms/horizon/resources/operations/object/liquidity-pool-deposit.mdx rename to network/horizon/resources/operations/object/liquidity-pool-deposit.mdx diff --git a/platforms/horizon/resources/operations/object/liquidity-pool-withdraw.mdx b/network/horizon/resources/operations/object/liquidity-pool-withdraw.mdx similarity index 100% rename from platforms/horizon/resources/operations/object/liquidity-pool-withdraw.mdx rename to network/horizon/resources/operations/object/liquidity-pool-withdraw.mdx diff --git a/platforms/horizon/resources/operations/object/manage-data.mdx b/network/horizon/resources/operations/object/manage-data.mdx similarity index 100% rename from platforms/horizon/resources/operations/object/manage-data.mdx rename to network/horizon/resources/operations/object/manage-data.mdx diff --git a/platforms/horizon/resources/operations/object/passive-sell-offer.mdx b/network/horizon/resources/operations/object/passive-sell-offer.mdx similarity index 100% rename from platforms/horizon/resources/operations/object/passive-sell-offer.mdx rename to network/horizon/resources/operations/object/passive-sell-offer.mdx diff --git a/platforms/horizon/resources/operations/object/path-payment-strict-receive.mdx b/network/horizon/resources/operations/object/path-payment-strict-receive.mdx similarity index 100% rename from platforms/horizon/resources/operations/object/path-payment-strict-receive.mdx rename to network/horizon/resources/operations/object/path-payment-strict-receive.mdx diff --git a/platforms/horizon/resources/operations/object/path-payment-strict-send.mdx b/network/horizon/resources/operations/object/path-payment-strict-send.mdx similarity index 100% rename from platforms/horizon/resources/operations/object/path-payment-strict-send.mdx rename to network/horizon/resources/operations/object/path-payment-strict-send.mdx diff --git a/platforms/horizon/resources/operations/object/payment.mdx b/network/horizon/resources/operations/object/payment.mdx similarity index 100% rename from platforms/horizon/resources/operations/object/payment.mdx rename to network/horizon/resources/operations/object/payment.mdx diff --git a/platforms/horizon/resources/operations/object/restore-footprint.mdx b/network/horizon/resources/operations/object/restore-footprint.mdx similarity index 100% rename from platforms/horizon/resources/operations/object/restore-footprint.mdx rename to network/horizon/resources/operations/object/restore-footprint.mdx diff --git a/platforms/horizon/resources/operations/object/revoke-sponsorship.mdx b/network/horizon/resources/operations/object/revoke-sponsorship.mdx similarity index 100% rename from platforms/horizon/resources/operations/object/revoke-sponsorship.mdx rename to network/horizon/resources/operations/object/revoke-sponsorship.mdx diff --git a/platforms/horizon/resources/operations/object/sell-offer.mdx b/network/horizon/resources/operations/object/sell-offer.mdx similarity index 100% rename from platforms/horizon/resources/operations/object/sell-offer.mdx rename to network/horizon/resources/operations/object/sell-offer.mdx diff --git a/platforms/horizon/resources/operations/object/set-options.mdx b/network/horizon/resources/operations/object/set-options.mdx similarity index 100% rename from platforms/horizon/resources/operations/object/set-options.mdx rename to network/horizon/resources/operations/object/set-options.mdx diff --git a/platforms/horizon/resources/retrieve-a-claimable-balance.api.mdx b/network/horizon/resources/retrieve-a-claimable-balance.api.mdx similarity index 100% rename from platforms/horizon/resources/retrieve-a-claimable-balance.api.mdx rename to network/horizon/resources/retrieve-a-claimable-balance.api.mdx diff --git a/platforms/horizon/resources/retrieve-a-ledger.api.mdx b/network/horizon/resources/retrieve-a-ledger.api.mdx similarity index 100% rename from platforms/horizon/resources/retrieve-a-ledger.api.mdx rename to network/horizon/resources/retrieve-a-ledger.api.mdx diff --git a/platforms/horizon/resources/retrieve-a-ledgers-effects.api.mdx b/network/horizon/resources/retrieve-a-ledgers-effects.api.mdx similarity index 100% rename from platforms/horizon/resources/retrieve-a-ledgers-effects.api.mdx rename to network/horizon/resources/retrieve-a-ledgers-effects.api.mdx diff --git a/platforms/horizon/resources/retrieve-a-ledgers-operations.api.mdx b/network/horizon/resources/retrieve-a-ledgers-operations.api.mdx similarity index 100% rename from platforms/horizon/resources/retrieve-a-ledgers-operations.api.mdx rename to network/horizon/resources/retrieve-a-ledgers-operations.api.mdx diff --git a/platforms/horizon/resources/retrieve-a-ledgers-payments.api.mdx b/network/horizon/resources/retrieve-a-ledgers-payments.api.mdx similarity index 100% rename from platforms/horizon/resources/retrieve-a-ledgers-payments.api.mdx rename to network/horizon/resources/retrieve-a-ledgers-payments.api.mdx diff --git a/platforms/horizon/resources/retrieve-a-ledgers-transactions.api.mdx b/network/horizon/resources/retrieve-a-ledgers-transactions.api.mdx similarity index 100% rename from platforms/horizon/resources/retrieve-a-ledgers-transactions.api.mdx rename to network/horizon/resources/retrieve-a-ledgers-transactions.api.mdx diff --git a/platforms/horizon/resources/retrieve-a-liquidity-pool.api.mdx b/network/horizon/resources/retrieve-a-liquidity-pool.api.mdx similarity index 100% rename from platforms/horizon/resources/retrieve-a-liquidity-pool.api.mdx rename to network/horizon/resources/retrieve-a-liquidity-pool.api.mdx diff --git a/platforms/horizon/resources/retrieve-a-transaction.api.mdx b/network/horizon/resources/retrieve-a-transaction.api.mdx similarity index 100% rename from platforms/horizon/resources/retrieve-a-transaction.api.mdx rename to network/horizon/resources/retrieve-a-transaction.api.mdx diff --git a/platforms/horizon/resources/retrieve-a-transactions-effects.api.mdx b/network/horizon/resources/retrieve-a-transactions-effects.api.mdx similarity index 100% rename from platforms/horizon/resources/retrieve-a-transactions-effects.api.mdx rename to network/horizon/resources/retrieve-a-transactions-effects.api.mdx diff --git a/platforms/horizon/resources/retrieve-a-transactions-operations.api.mdx b/network/horizon/resources/retrieve-a-transactions-operations.api.mdx similarity index 100% rename from platforms/horizon/resources/retrieve-a-transactions-operations.api.mdx rename to network/horizon/resources/retrieve-a-transactions-operations.api.mdx diff --git a/platforms/horizon/resources/retrieve-an-account.api.mdx b/network/horizon/resources/retrieve-an-account.api.mdx similarity index 100% rename from platforms/horizon/resources/retrieve-an-account.api.mdx rename to network/horizon/resources/retrieve-an-account.api.mdx diff --git a/platforms/horizon/resources/retrieve-an-operation.api.mdx b/network/horizon/resources/retrieve-an-operation.api.mdx similarity index 100% rename from platforms/horizon/resources/retrieve-an-operation.api.mdx rename to network/horizon/resources/retrieve-an-operation.api.mdx diff --git a/platforms/horizon/resources/retrieve-an-operations-effects.api.mdx b/network/horizon/resources/retrieve-an-operations-effects.api.mdx similarity index 100% rename from platforms/horizon/resources/retrieve-an-operations-effects.api.mdx rename to network/horizon/resources/retrieve-an-operations-effects.api.mdx diff --git a/platforms/horizon/resources/retrieve-an-order-book.api.mdx b/network/horizon/resources/retrieve-an-order-book.api.mdx similarity index 100% rename from platforms/horizon/resources/retrieve-an-order-book.api.mdx rename to network/horizon/resources/retrieve-an-order-book.api.mdx diff --git a/platforms/horizon/resources/retrieve-fee-stats.api.mdx b/network/horizon/resources/retrieve-fee-stats.api.mdx similarity index 100% rename from platforms/horizon/resources/retrieve-fee-stats.api.mdx rename to network/horizon/resources/retrieve-fee-stats.api.mdx diff --git a/platforms/horizon/resources/retrieve-related-effects.api.mdx b/network/horizon/resources/retrieve-related-effects.api.mdx similarity index 100% rename from platforms/horizon/resources/retrieve-related-effects.api.mdx rename to network/horizon/resources/retrieve-related-effects.api.mdx diff --git a/platforms/horizon/resources/retrieve-related-trades.api.mdx b/network/horizon/resources/retrieve-related-trades.api.mdx similarity index 100% rename from platforms/horizon/resources/retrieve-related-trades.api.mdx rename to network/horizon/resources/retrieve-related-trades.api.mdx diff --git a/platforms/horizon/resources/sidebar.js b/network/horizon/resources/sidebar.js similarity index 100% rename from platforms/horizon/resources/sidebar.js rename to network/horizon/resources/sidebar.js diff --git a/platforms/horizon/resources/submit-a-transaction.api.mdx b/network/horizon/resources/submit-a-transaction.api.mdx similarity index 100% rename from platforms/horizon/resources/submit-a-transaction.api.mdx rename to network/horizon/resources/submit-a-transaction.api.mdx diff --git a/platforms/horizon/resources/trades/index.mdx b/network/horizon/resources/trades/index.mdx similarity index 100% rename from platforms/horizon/resources/trades/index.mdx rename to network/horizon/resources/trades/index.mdx diff --git a/platforms/horizon/resources/trades/object.mdx b/network/horizon/resources/trades/object.mdx similarity index 100% rename from platforms/horizon/resources/trades/object.mdx rename to network/horizon/resources/trades/object.mdx diff --git a/platforms/horizon/resources/transactions/index.mdx b/network/horizon/resources/transactions/index.mdx similarity index 100% rename from platforms/horizon/resources/transactions/index.mdx rename to network/horizon/resources/transactions/index.mdx diff --git a/platforms/horizon/resources/transactions/object.mdx b/network/horizon/resources/transactions/object.mdx similarity index 100% rename from platforms/horizon/resources/transactions/object.mdx rename to network/horizon/resources/transactions/object.mdx diff --git a/platforms/horizon/structure/README.mdx b/network/horizon/structure/README.mdx similarity index 100% rename from platforms/horizon/structure/README.mdx rename to network/horizon/structure/README.mdx diff --git a/platforms/horizon/structure/pagination/README.mdx b/network/horizon/structure/pagination/README.mdx similarity index 100% rename from platforms/horizon/structure/pagination/README.mdx rename to network/horizon/structure/pagination/README.mdx diff --git a/platforms/horizon/structure/pagination/page-arguments.mdx b/network/horizon/structure/pagination/page-arguments.mdx similarity index 100% rename from platforms/horizon/structure/pagination/page-arguments.mdx rename to network/horizon/structure/pagination/page-arguments.mdx diff --git a/platforms/horizon/structure/rate-limiting.mdx b/network/horizon/structure/rate-limiting.mdx similarity index 100% rename from platforms/horizon/structure/rate-limiting.mdx rename to network/horizon/structure/rate-limiting.mdx diff --git a/platforms/horizon/structure/response-format.mdx b/network/horizon/structure/response-format.mdx similarity index 100% rename from platforms/horizon/structure/response-format.mdx rename to network/horizon/structure/response-format.mdx diff --git a/platforms/horizon/structure/streaming.mdx b/network/horizon/structure/streaming.mdx similarity index 100% rename from platforms/horizon/structure/streaming.mdx rename to network/horizon/structure/streaming.mdx diff --git a/platforms/horizon/structure/xdr.mdx b/network/horizon/structure/xdr.mdx similarity index 100% rename from platforms/horizon/structure/xdr.mdx rename to network/horizon/structure/xdr.mdx diff --git a/platforms/hubble/connecting.mdx b/network/hubble/connecting.mdx similarity index 100% rename from platforms/hubble/connecting.mdx rename to network/hubble/connecting.mdx diff --git a/platforms/hubble/introduction.mdx b/network/hubble/introduction.mdx similarity index 100% rename from platforms/hubble/introduction.mdx rename to network/hubble/introduction.mdx diff --git a/platforms/hubble/optimizing-queries.mdx b/network/hubble/optimizing-queries.mdx similarity index 100% rename from platforms/hubble/optimizing-queries.mdx rename to network/hubble/optimizing-queries.mdx diff --git a/platforms/hubble/viewing-metadata.mdx b/network/hubble/viewing-metadata.mdx similarity index 100% rename from platforms/hubble/viewing-metadata.mdx rename to network/hubble/viewing-metadata.mdx diff --git a/platforms/index.mdx b/network/index.mdx similarity index 100% rename from platforms/index.mdx rename to network/index.mdx diff --git a/platforms/soroban-rpc/README.mdx b/network/soroban-rpc/README.mdx similarity index 100% rename from platforms/soroban-rpc/README.mdx rename to network/soroban-rpc/README.mdx diff --git a/platforms/soroban-rpc/admin-guide.mdx b/network/soroban-rpc/admin-guide.mdx similarity index 100% rename from platforms/soroban-rpc/admin-guide.mdx rename to network/soroban-rpc/admin-guide.mdx diff --git a/platforms/soroban-rpc/json-rpc.mdx b/network/soroban-rpc/json-rpc.mdx similarity index 100% rename from platforms/soroban-rpc/json-rpc.mdx rename to network/soroban-rpc/json-rpc.mdx diff --git a/platforms/soroban-rpc/methods/README.mdx b/network/soroban-rpc/methods/README.mdx similarity index 100% rename from platforms/soroban-rpc/methods/README.mdx rename to network/soroban-rpc/methods/README.mdx diff --git a/platforms/soroban-rpc/methods/_category_.json b/network/soroban-rpc/methods/_category_.json similarity index 100% rename from platforms/soroban-rpc/methods/_category_.json rename to network/soroban-rpc/methods/_category_.json diff --git a/platforms/soroban-rpc/methods/getEvents.mdx b/network/soroban-rpc/methods/getEvents.mdx similarity index 100% rename from platforms/soroban-rpc/methods/getEvents.mdx rename to network/soroban-rpc/methods/getEvents.mdx diff --git a/platforms/soroban-rpc/methods/getHealth.mdx b/network/soroban-rpc/methods/getHealth.mdx similarity index 100% rename from platforms/soroban-rpc/methods/getHealth.mdx rename to network/soroban-rpc/methods/getHealth.mdx diff --git a/platforms/soroban-rpc/methods/getLatestLedger.mdx b/network/soroban-rpc/methods/getLatestLedger.mdx similarity index 100% rename from platforms/soroban-rpc/methods/getLatestLedger.mdx rename to network/soroban-rpc/methods/getLatestLedger.mdx diff --git a/platforms/soroban-rpc/methods/getLedgerEntries.mdx b/network/soroban-rpc/methods/getLedgerEntries.mdx similarity index 100% rename from platforms/soroban-rpc/methods/getLedgerEntries.mdx rename to network/soroban-rpc/methods/getLedgerEntries.mdx diff --git a/platforms/soroban-rpc/methods/getNetwork.mdx b/network/soroban-rpc/methods/getNetwork.mdx similarity index 100% rename from platforms/soroban-rpc/methods/getNetwork.mdx rename to network/soroban-rpc/methods/getNetwork.mdx diff --git a/platforms/soroban-rpc/methods/getTransaction.mdx b/network/soroban-rpc/methods/getTransaction.mdx similarity index 100% rename from platforms/soroban-rpc/methods/getTransaction.mdx rename to network/soroban-rpc/methods/getTransaction.mdx diff --git a/platforms/soroban-rpc/methods/sendTransaction.mdx b/network/soroban-rpc/methods/sendTransaction.mdx similarity index 100% rename from platforms/soroban-rpc/methods/sendTransaction.mdx rename to network/soroban-rpc/methods/sendTransaction.mdx diff --git a/platforms/soroban-rpc/methods/simulateTransaction.mdx b/network/soroban-rpc/methods/simulateTransaction.mdx similarity index 100% rename from platforms/soroban-rpc/methods/simulateTransaction.mdx rename to network/soroban-rpc/methods/simulateTransaction.mdx diff --git a/platforms/soroban-rpc/pagination.mdx b/network/soroban-rpc/pagination.mdx similarity index 100% rename from platforms/soroban-rpc/pagination.mdx rename to network/soroban-rpc/pagination.mdx diff --git a/platforms/soroban-rpc/rpc-providers.mdx b/network/soroban-rpc/rpc-providers.mdx similarity index 100% rename from platforms/soroban-rpc/rpc-providers.mdx rename to network/soroban-rpc/rpc-providers.mdx diff --git a/platforms/stellar-disbursement-platform/README.mdx b/network/stellar-disbursement-platform/README.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/README.mdx rename to network/stellar-disbursement-platform/README.mdx diff --git a/platforms/stellar-disbursement-platform/admin-guide/README.mdx b/network/stellar-disbursement-platform/admin-guide/README.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/admin-guide/README.mdx rename to network/stellar-disbursement-platform/admin-guide/README.mdx diff --git a/platforms/stellar-disbursement-platform/admin-guide/anchor-platform-integration-points.mdx b/network/stellar-disbursement-platform/admin-guide/anchor-platform-integration-points.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/admin-guide/anchor-platform-integration-points.mdx rename to network/stellar-disbursement-platform/admin-guide/anchor-platform-integration-points.mdx diff --git a/platforms/stellar-disbursement-platform/admin-guide/deploy-the-sdp.mdx b/network/stellar-disbursement-platform/admin-guide/deploy-the-sdp.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/admin-guide/deploy-the-sdp.mdx rename to network/stellar-disbursement-platform/admin-guide/deploy-the-sdp.mdx diff --git a/platforms/stellar-disbursement-platform/admin-guide/design-and-architecture.mdx b/network/stellar-disbursement-platform/admin-guide/design-and-architecture.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/admin-guide/design-and-architecture.mdx rename to network/stellar-disbursement-platform/admin-guide/design-and-architecture.mdx diff --git a/platforms/stellar-disbursement-platform/admin-guide/getting-started.mdx b/network/stellar-disbursement-platform/admin-guide/getting-started.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/admin-guide/getting-started.mdx rename to network/stellar-disbursement-platform/admin-guide/getting-started.mdx diff --git a/platforms/stellar-disbursement-platform/admin-guide/making-your-wallet-sdp-ready.mdx b/network/stellar-disbursement-platform/admin-guide/making-your-wallet-sdp-ready.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/admin-guide/making-your-wallet-sdp-ready.mdx rename to network/stellar-disbursement-platform/admin-guide/making-your-wallet-sdp-ready.mdx diff --git a/platforms/stellar-disbursement-platform/admin-guide/overview.mdx b/network/stellar-disbursement-platform/admin-guide/overview.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/admin-guide/overview.mdx rename to network/stellar-disbursement-platform/admin-guide/overview.mdx diff --git a/platforms/stellar-disbursement-platform/admin-guide/secure-operation-manual.mdx b/network/stellar-disbursement-platform/admin-guide/secure-operation-manual.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/admin-guide/secure-operation-manual.mdx rename to network/stellar-disbursement-platform/admin-guide/secure-operation-manual.mdx diff --git a/platforms/stellar-disbursement-platform/admin-guide/user-interface/README.mdx b/network/stellar-disbursement-platform/admin-guide/user-interface/README.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/admin-guide/user-interface/README.mdx rename to network/stellar-disbursement-platform/admin-guide/user-interface/README.mdx diff --git a/platforms/stellar-disbursement-platform/admin-guide/user-interface/analytics.mdx b/network/stellar-disbursement-platform/admin-guide/user-interface/analytics.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/admin-guide/user-interface/analytics.mdx rename to network/stellar-disbursement-platform/admin-guide/user-interface/analytics.mdx diff --git a/platforms/stellar-disbursement-platform/admin-guide/user-interface/dashboard-home.mdx b/network/stellar-disbursement-platform/admin-guide/user-interface/dashboard-home.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/admin-guide/user-interface/dashboard-home.mdx rename to network/stellar-disbursement-platform/admin-guide/user-interface/dashboard-home.mdx diff --git a/platforms/stellar-disbursement-platform/admin-guide/user-interface/disbursements.mdx b/network/stellar-disbursement-platform/admin-guide/user-interface/disbursements.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/admin-guide/user-interface/disbursements.mdx rename to network/stellar-disbursement-platform/admin-guide/user-interface/disbursements.mdx diff --git a/platforms/stellar-disbursement-platform/admin-guide/user-interface/payments.mdx b/network/stellar-disbursement-platform/admin-guide/user-interface/payments.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/admin-guide/user-interface/payments.mdx rename to network/stellar-disbursement-platform/admin-guide/user-interface/payments.mdx diff --git a/platforms/stellar-disbursement-platform/admin-guide/user-interface/receivers.mdx b/network/stellar-disbursement-platform/admin-guide/user-interface/receivers.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/admin-guide/user-interface/receivers.mdx rename to network/stellar-disbursement-platform/admin-guide/user-interface/receivers.mdx diff --git a/platforms/stellar-disbursement-platform/admin-guide/user-interface/wallets.mdx b/network/stellar-disbursement-platform/admin-guide/user-interface/wallets.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/admin-guide/user-interface/wallets.mdx rename to network/stellar-disbursement-platform/admin-guide/user-interface/wallets.mdx diff --git a/platforms/stellar-disbursement-platform/resources/README.mdx b/network/stellar-disbursement-platform/resources/README.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/resources/README.mdx rename to network/stellar-disbursement-platform/resources/README.mdx diff --git a/platforms/stellar-disbursement-platform/resources/auth/index.mdx b/network/stellar-disbursement-platform/resources/auth/index.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/resources/auth/index.mdx rename to network/stellar-disbursement-platform/resources/auth/index.mdx diff --git a/platforms/stellar-disbursement-platform/resources/authenticate-mfa.api.mdx b/network/stellar-disbursement-platform/resources/authenticate-mfa.api.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/resources/authenticate-mfa.api.mdx rename to network/stellar-disbursement-platform/resources/authenticate-mfa.api.mdx diff --git a/platforms/stellar-disbursement-platform/resources/create-asset.api.mdx b/network/stellar-disbursement-platform/resources/create-asset.api.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/resources/create-asset.api.mdx rename to network/stellar-disbursement-platform/resources/create-asset.api.mdx diff --git a/platforms/stellar-disbursement-platform/resources/create-disbursement.api.mdx b/network/stellar-disbursement-platform/resources/create-disbursement.api.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/resources/create-disbursement.api.mdx rename to network/stellar-disbursement-platform/resources/create-disbursement.api.mdx diff --git a/platforms/stellar-disbursement-platform/resources/create-user.api.mdx b/network/stellar-disbursement-platform/resources/create-user.api.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/resources/create-user.api.mdx rename to network/stellar-disbursement-platform/resources/create-user.api.mdx diff --git a/platforms/stellar-disbursement-platform/resources/delete-asset.api.mdx b/network/stellar-disbursement-platform/resources/delete-asset.api.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/resources/delete-asset.api.mdx rename to network/stellar-disbursement-platform/resources/delete-asset.api.mdx diff --git a/platforms/stellar-disbursement-platform/resources/disbursements/index.mdx b/network/stellar-disbursement-platform/resources/disbursements/index.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/resources/disbursements/index.mdx rename to network/stellar-disbursement-platform/resources/disbursements/index.mdx diff --git a/platforms/stellar-disbursement-platform/resources/download-disbursement-instructions.api.mdx b/network/stellar-disbursement-platform/resources/download-disbursement-instructions.api.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/resources/download-disbursement-instructions.api.mdx rename to network/stellar-disbursement-platform/resources/download-disbursement-instructions.api.mdx diff --git a/platforms/stellar-disbursement-platform/resources/forgot-password.api.mdx b/network/stellar-disbursement-platform/resources/forgot-password.api.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/resources/forgot-password.api.mdx rename to network/stellar-disbursement-platform/resources/forgot-password.api.mdx diff --git a/platforms/stellar-disbursement-platform/resources/get-all-assets.api.mdx b/network/stellar-disbursement-platform/resources/get-all-assets.api.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/resources/get-all-assets.api.mdx rename to network/stellar-disbursement-platform/resources/get-all-assets.api.mdx diff --git a/platforms/stellar-disbursement-platform/resources/get-all-countries.api.mdx b/network/stellar-disbursement-platform/resources/get-all-countries.api.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/resources/get-all-countries.api.mdx rename to network/stellar-disbursement-platform/resources/get-all-countries.api.mdx diff --git a/platforms/stellar-disbursement-platform/resources/get-all-roles.api.mdx b/network/stellar-disbursement-platform/resources/get-all-roles.api.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/resources/get-all-roles.api.mdx rename to network/stellar-disbursement-platform/resources/get-all-roles.api.mdx diff --git a/platforms/stellar-disbursement-platform/resources/get-all-users.api.mdx b/network/stellar-disbursement-platform/resources/get-all-users.api.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/resources/get-all-users.api.mdx rename to network/stellar-disbursement-platform/resources/get-all-users.api.mdx diff --git a/platforms/stellar-disbursement-platform/resources/get-all-wallets.api.mdx b/network/stellar-disbursement-platform/resources/get-all-wallets.api.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/resources/get-all-wallets.api.mdx rename to network/stellar-disbursement-platform/resources/get-all-wallets.api.mdx diff --git a/platforms/stellar-disbursement-platform/resources/get-organization-info.api.mdx b/network/stellar-disbursement-platform/resources/get-organization-info.api.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/resources/get-organization-info.api.mdx rename to network/stellar-disbursement-platform/resources/get-organization-info.api.mdx diff --git a/platforms/stellar-disbursement-platform/resources/get-organization-logo.api.mdx b/network/stellar-disbursement-platform/resources/get-organization-logo.api.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/resources/get-organization-logo.api.mdx rename to network/stellar-disbursement-platform/resources/get-organization-logo.api.mdx diff --git a/platforms/stellar-disbursement-platform/resources/get-profile.api.mdx b/network/stellar-disbursement-platform/resources/get-profile.api.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/resources/get-profile.api.mdx rename to network/stellar-disbursement-platform/resources/get-profile.api.mdx diff --git a/platforms/stellar-disbursement-platform/resources/list-all-disbursement-receivers.api.mdx b/network/stellar-disbursement-platform/resources/list-all-disbursement-receivers.api.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/resources/list-all-disbursement-receivers.api.mdx rename to network/stellar-disbursement-platform/resources/list-all-disbursement-receivers.api.mdx diff --git a/platforms/stellar-disbursement-platform/resources/list-all-disbursements.api.mdx b/network/stellar-disbursement-platform/resources/list-all-disbursements.api.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/resources/list-all-disbursements.api.mdx rename to network/stellar-disbursement-platform/resources/list-all-disbursements.api.mdx diff --git a/platforms/stellar-disbursement-platform/resources/list-all-payments.api.mdx b/network/stellar-disbursement-platform/resources/list-all-payments.api.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/resources/list-all-payments.api.mdx rename to network/stellar-disbursement-platform/resources/list-all-payments.api.mdx diff --git a/platforms/stellar-disbursement-platform/resources/list-all-receivers.api.mdx b/network/stellar-disbursement-platform/resources/list-all-receivers.api.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/resources/list-all-receivers.api.mdx rename to network/stellar-disbursement-platform/resources/list-all-receivers.api.mdx diff --git a/platforms/stellar-disbursement-platform/resources/log-in.api.mdx b/network/stellar-disbursement-platform/resources/log-in.api.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/resources/log-in.api.mdx rename to network/stellar-disbursement-platform/resources/log-in.api.mdx diff --git a/platforms/stellar-disbursement-platform/resources/organization/index.mdx b/network/stellar-disbursement-platform/resources/organization/index.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/resources/organization/index.mdx rename to network/stellar-disbursement-platform/resources/organization/index.mdx diff --git a/platforms/stellar-disbursement-platform/resources/payments/index.mdx b/network/stellar-disbursement-platform/resources/payments/index.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/resources/payments/index.mdx rename to network/stellar-disbursement-platform/resources/payments/index.mdx diff --git a/platforms/stellar-disbursement-platform/resources/profile/index.mdx b/network/stellar-disbursement-platform/resources/profile/index.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/resources/profile/index.mdx rename to network/stellar-disbursement-platform/resources/profile/index.mdx diff --git a/platforms/stellar-disbursement-platform/resources/provide-signed-challenge-transaction.api.mdx b/network/stellar-disbursement-platform/resources/provide-signed-challenge-transaction.api.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/resources/provide-signed-challenge-transaction.api.mdx rename to network/stellar-disbursement-platform/resources/provide-signed-challenge-transaction.api.mdx diff --git a/platforms/stellar-disbursement-platform/resources/receivers/index.mdx b/network/stellar-disbursement-platform/resources/receivers/index.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/resources/receivers/index.mdx rename to network/stellar-disbursement-platform/resources/receivers/index.mdx diff --git a/platforms/stellar-disbursement-platform/resources/refresh-token.api.mdx b/network/stellar-disbursement-platform/resources/refresh-token.api.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/resources/refresh-token.api.mdx rename to network/stellar-disbursement-platform/resources/refresh-token.api.mdx diff --git a/platforms/stellar-disbursement-platform/resources/registration/index.mdx b/network/stellar-disbursement-platform/resources/registration/index.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/resources/registration/index.mdx rename to network/stellar-disbursement-platform/resources/registration/index.mdx diff --git a/platforms/stellar-disbursement-platform/resources/request-challenge-transaction.api.mdx b/network/stellar-disbursement-platform/resources/request-challenge-transaction.api.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/resources/request-challenge-transaction.api.mdx rename to network/stellar-disbursement-platform/resources/request-challenge-transaction.api.mdx diff --git a/platforms/stellar-disbursement-platform/resources/request-registration-url.api.mdx b/network/stellar-disbursement-platform/resources/request-registration-url.api.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/resources/request-registration-url.api.mdx rename to network/stellar-disbursement-platform/resources/request-registration-url.api.mdx diff --git a/platforms/stellar-disbursement-platform/resources/reset-password.api.mdx b/network/stellar-disbursement-platform/resources/reset-password.api.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/resources/reset-password.api.mdx rename to network/stellar-disbursement-platform/resources/reset-password.api.mdx diff --git a/platforms/stellar-disbursement-platform/resources/retrieve-a-disbursement.api.mdx b/network/stellar-disbursement-platform/resources/retrieve-a-disbursement.api.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/resources/retrieve-a-disbursement.api.mdx rename to network/stellar-disbursement-platform/resources/retrieve-a-disbursement.api.mdx diff --git a/platforms/stellar-disbursement-platform/resources/retrieve-a-payment.api.mdx b/network/stellar-disbursement-platform/resources/retrieve-a-payment.api.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/resources/retrieve-a-payment.api.mdx rename to network/stellar-disbursement-platform/resources/retrieve-a-payment.api.mdx diff --git a/platforms/stellar-disbursement-platform/resources/retrieve-a-receiver.api.mdx b/network/stellar-disbursement-platform/resources/retrieve-a-receiver.api.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/resources/retrieve-a-receiver.api.mdx rename to network/stellar-disbursement-platform/resources/retrieve-a-receiver.api.mdx diff --git a/platforms/stellar-disbursement-platform/resources/retrieve-all-statistics.api.mdx b/network/stellar-disbursement-platform/resources/retrieve-all-statistics.api.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/resources/retrieve-all-statistics.api.mdx rename to network/stellar-disbursement-platform/resources/retrieve-all-statistics.api.mdx diff --git a/platforms/stellar-disbursement-platform/resources/retrieve-disbursement-statistics.api.mdx b/network/stellar-disbursement-platform/resources/retrieve-disbursement-statistics.api.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/resources/retrieve-disbursement-statistics.api.mdx rename to network/stellar-disbursement-platform/resources/retrieve-disbursement-statistics.api.mdx diff --git a/platforms/stellar-disbursement-platform/resources/retrieve-stellar-info-file.api.mdx b/network/stellar-disbursement-platform/resources/retrieve-stellar-info-file.api.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/resources/retrieve-stellar-info-file.api.mdx rename to network/stellar-disbursement-platform/resources/retrieve-stellar-info-file.api.mdx diff --git a/platforms/stellar-disbursement-platform/resources/send-one-time-passcode.api.mdx b/network/stellar-disbursement-platform/resources/send-one-time-passcode.api.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/resources/send-one-time-passcode.api.mdx rename to network/stellar-disbursement-platform/resources/send-one-time-passcode.api.mdx diff --git a/platforms/stellar-disbursement-platform/resources/sidebar.js b/network/stellar-disbursement-platform/resources/sidebar.js similarity index 100% rename from platforms/stellar-disbursement-platform/resources/sidebar.js rename to network/stellar-disbursement-platform/resources/sidebar.js diff --git a/platforms/stellar-disbursement-platform/resources/start-wallet-registration.api.mdx b/network/stellar-disbursement-platform/resources/start-wallet-registration.api.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/resources/start-wallet-registration.api.mdx rename to network/stellar-disbursement-platform/resources/start-wallet-registration.api.mdx diff --git a/platforms/stellar-disbursement-platform/resources/statistics/index.mdx b/network/stellar-disbursement-platform/resources/statistics/index.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/resources/statistics/index.mdx rename to network/stellar-disbursement-platform/resources/statistics/index.mdx diff --git a/platforms/stellar-disbursement-platform/resources/update-a-disbursement-status.api.mdx b/network/stellar-disbursement-platform/resources/update-a-disbursement-status.api.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/resources/update-a-disbursement-status.api.mdx rename to network/stellar-disbursement-platform/resources/update-a-disbursement-status.api.mdx diff --git a/platforms/stellar-disbursement-platform/resources/update-a-receiver.api.mdx b/network/stellar-disbursement-platform/resources/update-a-receiver.api.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/resources/update-a-receiver.api.mdx rename to network/stellar-disbursement-platform/resources/update-a-receiver.api.mdx diff --git a/platforms/stellar-disbursement-platform/resources/update-organization-profile.api.mdx b/network/stellar-disbursement-platform/resources/update-organization-profile.api.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/resources/update-organization-profile.api.mdx rename to network/stellar-disbursement-platform/resources/update-organization-profile.api.mdx diff --git a/platforms/stellar-disbursement-platform/resources/update-user-activation-status.api.mdx b/network/stellar-disbursement-platform/resources/update-user-activation-status.api.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/resources/update-user-activation-status.api.mdx rename to network/stellar-disbursement-platform/resources/update-user-activation-status.api.mdx diff --git a/platforms/stellar-disbursement-platform/resources/update-user-profile.api.mdx b/network/stellar-disbursement-platform/resources/update-user-profile.api.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/resources/update-user-profile.api.mdx rename to network/stellar-disbursement-platform/resources/update-user-profile.api.mdx diff --git a/platforms/stellar-disbursement-platform/resources/update-user-role.api.mdx b/network/stellar-disbursement-platform/resources/update-user-role.api.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/resources/update-user-role.api.mdx rename to network/stellar-disbursement-platform/resources/update-user-role.api.mdx diff --git a/platforms/stellar-disbursement-platform/resources/upload-disbursement-instructions.api.mdx b/network/stellar-disbursement-platform/resources/upload-disbursement-instructions.api.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/resources/upload-disbursement-instructions.api.mdx rename to network/stellar-disbursement-platform/resources/upload-disbursement-instructions.api.mdx diff --git a/platforms/stellar-disbursement-platform/resources/users/index.mdx b/network/stellar-disbursement-platform/resources/users/index.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/resources/users/index.mdx rename to network/stellar-disbursement-platform/resources/users/index.mdx diff --git a/platforms/stellar-disbursement-platform/resources/verify-receiver-registration.api.mdx b/network/stellar-disbursement-platform/resources/verify-receiver-registration.api.mdx similarity index 100% rename from platforms/stellar-disbursement-platform/resources/verify-receiver-registration.api.mdx rename to network/stellar-disbursement-platform/resources/verify-receiver-registration.api.mdx diff --git a/sidebarsPlatforms.js b/sidebarsNetwork.js similarity index 100% rename from sidebarsPlatforms.js rename to sidebarsNetwork.js diff --git a/src/sidebar-platforms-generator.js b/src/sidebar-network-generator.js similarity index 100% rename from src/sidebar-platforms-generator.js rename to src/sidebar-network-generator.js From 7e8acb1203ab0367134644ffd71cc8e0afdcde5c Mon Sep 17 00:00:00 2001 From: Elliot Voris Date: Fri, 1 Mar 2024 13:36:48 -0600 Subject: [PATCH 119/133] fix broken links, styles, etc. --- docs/encyclopedia/anchors.mdx | 2 +- .../stellar-stack.mdx | 4 +- docusaurus.config.js | 40 +++++++++---------- .../admin-guide/sep31/configuration.mdx | 2 +- .../admin-guide/sep31/integration.mdx | 28 ++++++------- .../callbacks/gen-address.api.mdx | 4 +- network/horizon/README.mdx | 10 ++--- network/horizon/admin-guide/overview.mdx | 2 +- network/index.mdx | 4 +- src/css/custom.scss | 4 +- src/theme/ApiItem/index.js | 4 +- src/theme/DocSidebar/index.js | 2 +- 12 files changed, 53 insertions(+), 53 deletions(-) diff --git a/docs/encyclopedia/anchors.mdx b/docs/encyclopedia/anchors.mdx index 64544d2c3..3e61a5799 100644 --- a/docs/encyclopedia/anchors.mdx +++ b/docs/encyclopedia/anchors.mdx @@ -8,7 +8,7 @@ Stellar has anchor services operating worldwide. View the [Anchor Directory](htt Anchors can issue their own assets on the Stellar network, or they can honor assets that already exist. -You can set up an anchor by using the SDF-maintained [Anchor Platform](/platforms/anchor-platform), which is the easiest way to deploy an anchor service compatible with Stellar Ecosystem Proposals (SEPs). +You can set up an anchor by using the SDF-maintained [Anchor Platform](/network/anchor-platform), which is the easiest way to deploy an anchor service compatible with Stellar Ecosystem Proposals (SEPs). Learn how to integrate anchor services into your blockchain-based application by viewing the [Build Apps section](../building-apps/overview.mdx). If you’re looking specifically for MoneyGram Access, see the Integrate with MoneyGram Access tutorial. diff --git a/docs/fundamentals-and-concepts/stellar-stack.mdx b/docs/fundamentals-and-concepts/stellar-stack.mdx index 3038e167f..74acdd04e 100644 --- a/docs/fundamentals-and-concepts/stellar-stack.mdx +++ b/docs/fundamentals-and-concepts/stellar-stack.mdx @@ -13,13 +13,13 @@ Stellar Core is the program used by the individual nodes (or computers) that mak Nodes reach consensus using the Stellar Consensus Protocol, which can you can learn more about here: [Stellar Consensus Protocol](./stellar-consensus-protocol) -Anyone can run a Stellar Core node, but you don’t have to in order to build on Stellar. We recommend you do so if you issue an asset and want to ensure the accuracy of the ledger, if you want to participate in network governance by voting on protocol version, minimum fees, and resource and ledger limits, and/or if you want to contribute to Stellar’s overall health and decentralization. Check out our tutorial on installing, configuring, and maintaining your own node here: [Run a Core Node Tutorial](../run-core-node). +Anyone can run a Stellar Core node, but you don’t have to in order to build on Stellar. We recommend you do so if you issue an asset and want to ensure the accuracy of the ledger, if you want to participate in network governance by voting on protocol version, minimum fees, and resource and ledger limits, and/or if you want to contribute to Stellar’s overall health and decentralization. Check out our tutorial on installing, configuring, and maintaining your own node here: [Run a Core Node Tutorial](/network/core-node). ## Platform Services Horizon is the client-facing RESTful HTTP API server in the platform layer which allows programmatic access to submit transactions and query the network’s historical data. It acts as the interface for applications that want to access the Stellar network. You can communicate with Horizon using an SDK, a web browser, or with simple command tools like cURL. -You do not need to run your own Horizon instance — when you're getting started, you can use the free SDF Horizon instance to access the network — but it is recommended that you do when you’re ready to launch a finished product. Check out how to do so here: [Run Platform Services Tutorial](/platforms/horizon/admin-guide) +You do not need to run your own Horizon instance — when you're getting started, you can use the free SDF Horizon instance to access the network — but it is recommended that you do when you’re ready to launch a finished product. Check out how to do so here: [Run Platform Services Tutorial](/network/horizon/admin-guide) Learn all there is to know about using Horizon in the Horizon [API Reference documentation](https://developers.stellar.org/api). diff --git a/docusaurus.config.js b/docusaurus.config.js index 9558bcd0c..44c73a367 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -28,18 +28,18 @@ const config = { "docusaurus-plugin-openapi-docs", { id: "openapi", - docsPluginId: "platforms", + docsPluginId: "network", config: { horizon: { specPath: "openapi/horizon/bundled.yml", // Path to designated spec file - outputDir: "platforms/horizon/resources", // Output directory for generated .mdx docs + outputDir: "network/horizon/resources", // Output directory for generated .mdx docs sidebarOptions: { groupPathsBy: "tag", }, }, anchor_platform_api: { specPath: "openapi/anchor-platform/bundled.yml", // Path to designated spec file - outputDir: "platforms/anchor-platform/resources", // Output directory for generated .mdx docs + outputDir: "network/anchor-platform/resources", // Output directory for generated .mdx docs sidebarOptions: { groupPathsBy: "tag", }, @@ -47,7 +47,7 @@ const config = { }, anchor_platform_callbacks: { specPath: "openapi/anchor-platform/bundled_callback.yml", // Path to designated spec file - outputDir: "platforms/anchor-platform/callbacks", // Output directory for generated .mdx docs + outputDir: "network/anchor-platform/callbacks", // Output directory for generated .mdx docs sidebarOptions: { groupPathsBy: "tag", }, @@ -55,7 +55,7 @@ const config = { }, anchor_custody_api: { specPath: "openapi/anchor-platform/bundled_custody.yml", // Path to designated spec file - outputDir: "platforms/anchor-platform/custody-server", // Output directory for generated .mdx docs + outputDir: "network/anchor-platform/custody-server", // Output directory for generated .mdx docs sidebarOptions: { groupPathsBy: "tag", }, @@ -63,7 +63,7 @@ const config = { }, stellar_disbursement_platform: { specPath: "openapi/stellar-disbursement-platform/bundled.yml", // Path to designated spec file - outputDir: "platforms/stellar-disbursement-platform/resources", // Output directory for generated .mdx docs + outputDir: "network/stellar-disbursement-platform/resources", // Output directory for generated .mdx docs sidebarOptions: { groupPathsBy: "tag", }, @@ -75,13 +75,13 @@ const config = { [ "@docusaurus/plugin-content-docs", { - id: "platforms", - path: "platforms", - routeBasePath: "/platforms", + id: "network", + path: "network", + routeBasePath: "/network", docLayoutComponent: "@theme/DocPage", docItemComponent: "@theme/ApiItem", - sidebarPath: require.resolve("./sidebarsPlatforms.js"), - sidebarItemsGenerator: require("./src/sidebar-platforms-generator"), + sidebarPath: require.resolve("./sidebarsNetwork.js"), + sidebarItemsGenerator: require("./src/sidebar-network-generator"), editUrl: "https://github.com/stellar/stellar-docs/tree/main", showLastUpdateTime: true, showLastUpdateAuthor: true, @@ -168,40 +168,40 @@ const config = { { type: 'html', value: 'Data Availability', - className: 'platformsSubtitle', + className: 'subtitle', }, { - to: "/platforms/soroban-rpc", + to: "/network/soroban-rpc", label: "Soroban RPC", }, { - to: "/platforms/hubble", + to: "/network/hubble", label: "Hubble", }, { - to: "/platforms/horizon", + to: "/network/horizon", label: "Horizon", }, { type: 'html', value: '
SDF Platforms', - className: 'platformsSubtitle', + className: 'subtitle', }, { - to: "/platforms/anchor-platform", + to: "/network/anchor-platform", label: "Anchor Platform", }, { - to: "/platforms/stellar-disbursement-platform", + to: "/network/stellar-disbursement-platform", label: "Stellar Disbursement Platform", }, { type: 'html', value: '
Network Infrastructure', - className: 'platformsSubtitle', + className: 'subtitle', }, { - to: "/platforms/core-node", + to: "/network/core-node", label: "Validator Node", }, ] diff --git a/network/anchor-platform/admin-guide/sep31/configuration.mdx b/network/anchor-platform/admin-guide/sep31/configuration.mdx index 8c0877cd7..3077c3882 100644 --- a/network/anchor-platform/admin-guide/sep31/configuration.mdx +++ b/network/anchor-platform/admin-guide/sep31/configuration.mdx @@ -374,4 +374,4 @@ We'll define the server that implements the endpoints defined in the Callback AP [sep1-ap]: ../sep1/README.mdx [sep38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md [sep38-post-quote]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md#post-quote -[platform-api-kyc]: /platforms/anchor-platform/callbacks/customer +[platform-api-kyc]: ../../callbacks/customer/index.mdx diff --git a/network/anchor-platform/admin-guide/sep31/integration.mdx b/network/anchor-platform/admin-guide/sep31/integration.mdx index 580be041c..603fb37a5 100644 --- a/network/anchor-platform/admin-guide/sep31/integration.mdx +++ b/network/anchor-platform/admin-guide/sep31/integration.mdx @@ -673,22 +673,22 @@ This endpoint may be removed during future major version updates of the Anchor P ::: -[ap-api]: /platforms/anchor-platform +[ap-api]: ../../introduction/index.mdx [ap-sep10]: ../sep10/README.mdx [sep12]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md [demo-wallet]: https://demo-wallet.stellar.org [indicative]: https://www.investopedia.com/terms/i/indicativequote.asp [firm]: https://www.investopedia.com/terms/f/firmquote.asp -[get-unique-address]: /platforms/anchor-platform/callbacks/gen-address -[get-customer]: /platforms/anchor-platform/callbacks/get-customer -[put-customer]: /platforms/anchor-platform/callbacks/put-customer -[get-rate]: /platforms/anchor-platform/callbacks/get-rates -[get-fee]: /platforms/anchor-platform/callbacks/get-fee -[get-unique-address]: /platforms/anchor-platform/callbacks/gen-address -[put-customer-callback]: /platforms/anchor-platform/callbacks/put-customer-callback -[delete-customer]: /platforms/anchor-platform/callbacks/del-customer -[json-rpc-methods]: /platforms/anchor-platform/rpc/methods -[sep24-integration-make-json-rpc-request]: /platforms/anchor-platform/admin-guide/sep24/integration#making-json-rpc-requests -[sep24-integration-rpc-request]: /platforms/anchor-platform/admin-guide/sep24/integration#json-rpc-request -[sep24-integration-rpc-response]: /platforms/anchor-platform/admin-guide/sep24/integration#json-rpc-response -[sep24-integration-error-codes]: /platforms/anchor-platform/admin-guide/sep24/integration#error-codes +[get-unique-address]: ../../callbacks/gen-address +[get-customer]: ../../callbacks/get-customer +[put-customer]: ../../callbacks/put-customer +[get-rate]: ../../callbacks/get-rates +[get-fee]: ../../callbacks/get-fee +[get-unique-address]: ../../callbacks/gen-address +[put-customer-callback]: ../../callbacks/put-customer-callback +[delete-customer]: ../../callbacks/del-customer +[json-rpc-methods]: ../../rpc/methods/index.mdx +[sep24-integration-make-json-rpc-request]: ../sep24/integration.mdx#making-json-rpc-requests +[sep24-integration-rpc-request]: ../sep24/integration.mdx#json-rpc-request +[sep24-integration-rpc-response]: ../sep24/integration.mdx#json-rpc-response +[sep24-integration-error-codes]: ../sep24/integration.mdx#error-codes diff --git a/network/anchor-platform/callbacks/gen-address.api.mdx b/network/anchor-platform/callbacks/gen-address.api.mdx index 7cbb97b09..ead939f82 100644 --- a/network/anchor-platform/callbacks/gen-address.api.mdx +++ b/network/anchor-platform/callbacks/gen-address.api.mdx @@ -5,7 +5,7 @@ description: "If the platform is configured with `depositInfoGeneratorType: api` sidebar_label: "Generate Unique Address" hide_title: true hide_table_of_contents: true -api: {"description":"If the platform is configured with `depositInfoGeneratorType: api`, the Platform make this request to\nthe Anchor backend every time a transaction is initiated by a client application.\n\nThe Anchor must guarantee that the memo returned in this request is unique, so it can be mapped 1-to-1 to a Platform\nresource such as a [SEP-31](https://stellar.org/protocol/sep-31) transaction.\n\nHere is how this flow would be used for Receiving Anchors that need to create their unique `(account, memo)` pairs\noutside the platform, using Circle:\n\n[![](https://mermaid.ink/img/pako:eNqlVctu2zAQ_JUFTy1iOwhyE9AUhuu0ORQ1YvdmIKDJVUSYIlWSihEY_veuRMuPhHaTVCc9VjPD4exyzYSVyDLm8U-NRuA3xR8dL-cG6AoqaMxgOp70r69g5rjxXARlDdxqu4KVCgXM2VpwrRdcLIeTu81lbRQhPXApHXo_ZxGp4i4ooSpuAkwDas1d4gMaqcwjDI0obOL7p3sUqJ6o5DNMNA-5deX5qlNII-WExvj-mLV_c3OR4slg8ms6g7XH6vpqcxn2XvgIYyuCJSPgnB2w4B4lkIGhQKi22CCsydVj7XiDF-GaK6WD9KXlTfkTwoGsf8JcvDYqg-_j2dkFfD1geFDyS5plb2U0mnDRIC0PgcNCW7EUBVcGtqCDPUqs79Ov_ZS8ewy1Mx4MriAKo_z5mKdOYlZiaeeM9lu5wVl9L1n2Zn6Qh5IUb5KWn9y6W2WUL5DSUSvdZrFJx7brDgyPDdd8e4emU1L6x7nfrznNPTjRLNtmzuAnX2LX2sT_XKIJ3U_xbf9Mb3WdIDGgCJ5i8gIKCl5VFCIJte8c-l8Xjvej82GnxdNaGyUHc2_81EjZbcPhRLwzuU2Q7YxKUjkrEIlkh0jyA9i8vc9pxvZaFd2COy-CbR93iDDSam93uhNPGD-cjX7AuptEbcenE1dJal-ZSqUPPNR-8JHk_25RW4KTiG-dz-3oSozny0zJxjFRoFi2VBG-s_l1yN_ZMq_kK9P80Q7zAeuxEulBSTpk1w3-nFF9iXOW0a3EnNc6NMfkhkqjy2OpgnUsy7n22GO8Dnb6bATLgquxK9oe1NuqzV8v2LI1)](https://mermaid.live/edit#pako:eNqlVctu2zAQ_JUFTy1iOwhyE9AUhuu0ORQ1YvdmIKDJVUSYIlWSihEY_veuRMuPhHaTVCc9VjPD4exyzYSVyDLm8U-NRuA3xR8dL-cG6AoqaMxgOp70r69g5rjxXARlDdxqu4KVCgXM2VpwrRdcLIeTu81lbRQhPXApHXo_ZxGp4i4ooSpuAkwDas1d4gMaqcwjDI0obOL7p3sUqJ6o5DNMNA-5deX5qlNII-WExvj-mLV_c3OR4slg8ms6g7XH6vpqcxn2XvgIYyuCJSPgnB2w4B4lkIGhQKi22CCsydVj7XiDF-GaK6WD9KXlTfkTwoGsf8JcvDYqg-_j2dkFfD1geFDyS5plb2U0mnDRIC0PgcNCW7EUBVcGtqCDPUqs79Ov_ZS8ewy1Mx4MriAKo_z5mKdOYlZiaeeM9lu5wVl9L1n2Zn6Qh5IUb5KWn9y6W2WUL5DSUSvdZrFJx7brDgyPDdd8e4emU1L6x7nfrznNPTjRLNtmzuAnX2LX2sT_XKIJ3U_xbf9Mb3WdIDGgCJ5i8gIKCl5VFCIJte8c-l8Xjvej82GnxdNaGyUHc2_81EjZbcPhRLwzuU2Q7YxKUjkrEIlkh0jyA9i8vc9pxvZaFd2COy-CbR93iDDSam93uhNPGD-cjX7AuptEbcenE1dJal-ZSqUPPNR-8JHk_25RW4KTiG-dz-3oSozny0zJxjFRoFi2VBG-s_l1yN_ZMq_kK9P80Q7zAeuxEulBSTpk1w3-nFF9iXOW0a3EnNc6NMfkhkqjy2OpgnUsy7n22GO8Dnb6bATLgquxK9oe1NuqzV8v2LI1)\n","operationId":"genAddress","tags":["Unique Address","SEP-31"],"parameters":[{"in":"query","name":"transaction_id","description":"The platform server will save the posted transaction and pass the `transaction_id` through this endpoint.\nIf the anchor wishes to return transaction-dependent unique_address, the anchor may query the [`GET /transactions` endpoint of the Platform API](/platforms/anchor-platform/resources/get-transaction).\n","schema":{"type":"string"},"required":true}],"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"type":"object","properties":{"unique_address":{"description":"An object containing the unique `stellar_address:memo` pair used to identify a destination.","type":"object","properties":{"stellar_address":{"description":"A `G...` stellar address or a `M...` [muxed stellar address](https://developers.stellar.org/docs/glossary/muxed-accounts/) of an **existing** account in the Stellar network.","type":"string"},"memo":{"description":"The memo to attach to the Stellar payment.","type":"string"},"memo_type":{"description":"The type of memo to attach to the Stellar payment (text, hash, or id).","type":"string","enum":["text","hash","id"]}},"required":["stellar_address"]}}}}}},"500":{"description":"Error. The Platform will respond to the client application with the same response code and body.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"id":{"type":"string"}},"required":["error"],"title":"Error"}}}}},"method":"get","path":"/unique_address","info":{"version":"2.0.0","description":"The Synchronous Callbacks API specification for the Stellar Anchor Platform project.\n\nThe Synchronous Callbacks API defines requests made by the Platform while it is processing a request from a client application. The\nanchor's responses to these requests affect the Platform responses to the client application.\n","title":"Synchronous Callbacks API"},"postman":{"name":"Generate Unique Address","description":{"content":"If the platform is configured with `depositInfoGeneratorType: api`, the Platform make this request to\nthe Anchor backend every time a transaction is initiated by a client application.\n\nThe Anchor must guarantee that the memo returned in this request is unique, so it can be mapped 1-to-1 to a Platform\nresource such as a [SEP-31](https://stellar.org/protocol/sep-31) transaction.\n\nHere is how this flow would be used for Receiving Anchors that need to create their unique `(account, memo)` pairs\noutside the platform, using Circle:\n\n[![](https://mermaid.ink/img/pako:eNqlVctu2zAQ_JUFTy1iOwhyE9AUhuu0ORQ1YvdmIKDJVUSYIlWSihEY_veuRMuPhHaTVCc9VjPD4exyzYSVyDLm8U-NRuA3xR8dL-cG6AoqaMxgOp70r69g5rjxXARlDdxqu4KVCgXM2VpwrRdcLIeTu81lbRQhPXApHXo_ZxGp4i4ooSpuAkwDas1d4gMaqcwjDI0obOL7p3sUqJ6o5DNMNA-5deX5qlNII-WExvj-mLV_c3OR4slg8ms6g7XH6vpqcxn2XvgIYyuCJSPgnB2w4B4lkIGhQKi22CCsydVj7XiDF-GaK6WD9KXlTfkTwoGsf8JcvDYqg-_j2dkFfD1geFDyS5plb2U0mnDRIC0PgcNCW7EUBVcGtqCDPUqs79Ov_ZS8ewy1Mx4MriAKo_z5mKdOYlZiaeeM9lu5wVl9L1n2Zn6Qh5IUb5KWn9y6W2WUL5DSUSvdZrFJx7brDgyPDdd8e4emU1L6x7nfrznNPTjRLNtmzuAnX2LX2sT_XKIJ3U_xbf9Mb3WdIDGgCJ5i8gIKCl5VFCIJte8c-l8Xjvej82GnxdNaGyUHc2_81EjZbcPhRLwzuU2Q7YxKUjkrEIlkh0jyA9i8vc9pxvZaFd2COy-CbR93iDDSam93uhNPGD-cjX7AuptEbcenE1dJal-ZSqUPPNR-8JHk_25RW4KTiG-dz-3oSozny0zJxjFRoFi2VBG-s_l1yN_ZMq_kK9P80Q7zAeuxEulBSTpk1w3-nFF9iXOW0a3EnNc6NMfkhkqjy2OpgnUsy7n22GO8Dnb6bATLgquxK9oe1NuqzV8v2LI1)](https://mermaid.live/edit#pako:eNqlVctu2zAQ_JUFTy1iOwhyE9AUhuu0ORQ1YvdmIKDJVUSYIlWSihEY_veuRMuPhHaTVCc9VjPD4exyzYSVyDLm8U-NRuA3xR8dL-cG6AoqaMxgOp70r69g5rjxXARlDdxqu4KVCgXM2VpwrRdcLIeTu81lbRQhPXApHXo_ZxGp4i4ooSpuAkwDas1d4gMaqcwjDI0obOL7p3sUqJ6o5DNMNA-5deX5qlNII-WExvj-mLV_c3OR4slg8ms6g7XH6vpqcxn2XvgIYyuCJSPgnB2w4B4lkIGhQKi22CCsydVj7XiDF-GaK6WD9KXlTfkTwoGsf8JcvDYqg-_j2dkFfD1geFDyS5plb2U0mnDRIC0PgcNCW7EUBVcGtqCDPUqs79Ov_ZS8ewy1Mx4MriAKo_z5mKdOYlZiaeeM9lu5wVl9L1n2Zn6Qh5IUb5KWn9y6W2WUL5DSUSvdZrFJx7brDgyPDdd8e4emU1L6x7nfrznNPTjRLNtmzuAnX2LX2sT_XKIJ3U_xbf9Mb3WdIDGgCJ5i8gIKCl5VFCIJte8c-l8Xjvej82GnxdNaGyUHc2_81EjZbcPhRLwzuU2Q7YxKUjkrEIlkh0jyA9i8vc9pxvZaFd2COy-CbR93iDDSam93uhNPGD-cjX7AuptEbcenE1dJal-ZSqUPPNR-8JHk_25RW4KTiG-dz-3oSozny0zJxjFRoFi2VBG-s_l1yN_ZMq_kK9P80Q7zAeuxEulBSTpk1w3-nFF9iXOW0a3EnNc6NMfkhkqjy2OpgnUsy7n22GO8Dnb6bATLgquxK9oe1NuqzV8v2LI1)\n","type":"text/plain"},"url":{"path":["unique_address"],"host":["{{baseUrl}}"],"query":[{"disabled":false,"description":{"content":"(Required) The platform server will save the posted transaction and pass the `transaction_id` through this endpoint.\nIf the anchor wishes to return transaction-dependent unique_address, the anchor may query the [`GET /transactions` endpoint of the Platform API](/platforms/anchor-platform/resources/get-transaction).\n","type":"text/plain"},"key":"transaction_id","value":""}],"variable":[]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET"}} +api: {"description":"If the platform is configured with `depositInfoGeneratorType: api`, the Platform make this request to\nthe Anchor backend every time a transaction is initiated by a client application.\n\nThe Anchor must guarantee that the memo returned in this request is unique, so it can be mapped 1-to-1 to a Platform\nresource such as a [SEP-31](https://stellar.org/protocol/sep-31) transaction.\n\nHere is how this flow would be used for Receiving Anchors that need to create their unique `(account, memo)` pairs\noutside the platform, using Circle:\n\n[![](https://mermaid.ink/img/pako:eNqlVctu2zAQ_JUFTy1iOwhyE9AUhuu0ORQ1YvdmIKDJVUSYIlWSihEY_veuRMuPhHaTVCc9VjPD4exyzYSVyDLm8U-NRuA3xR8dL-cG6AoqaMxgOp70r69g5rjxXARlDdxqu4KVCgXM2VpwrRdcLIeTu81lbRQhPXApHXo_ZxGp4i4ooSpuAkwDas1d4gMaqcwjDI0obOL7p3sUqJ6o5DNMNA-5deX5qlNII-WExvj-mLV_c3OR4slg8ms6g7XH6vpqcxn2XvgIYyuCJSPgnB2w4B4lkIGhQKi22CCsydVj7XiDF-GaK6WD9KXlTfkTwoGsf8JcvDYqg-_j2dkFfD1geFDyS5plb2U0mnDRIC0PgcNCW7EUBVcGtqCDPUqs79Ov_ZS8ewy1Mx4MriAKo_z5mKdOYlZiaeeM9lu5wVl9L1n2Zn6Qh5IUb5KWn9y6W2WUL5DSUSvdZrFJx7brDgyPDdd8e4emU1L6x7nfrznNPTjRLNtmzuAnX2LX2sT_XKIJ3U_xbf9Mb3WdIDGgCJ5i8gIKCl5VFCIJte8c-l8Xjvej82GnxdNaGyUHc2_81EjZbcPhRLwzuU2Q7YxKUjkrEIlkh0jyA9i8vc9pxvZaFd2COy-CbR93iDDSam93uhNPGD-cjX7AuptEbcenE1dJal-ZSqUPPNR-8JHk_25RW4KTiG-dz-3oSozny0zJxjFRoFi2VBG-s_l1yN_ZMq_kK9P80Q7zAeuxEulBSTpk1w3-nFF9iXOW0a3EnNc6NMfkhkqjy2OpgnUsy7n22GO8Dnb6bATLgquxK9oe1NuqzV8v2LI1)](https://mermaid.live/edit#pako:eNqlVctu2zAQ_JUFTy1iOwhyE9AUhuu0ORQ1YvdmIKDJVUSYIlWSihEY_veuRMuPhHaTVCc9VjPD4exyzYSVyDLm8U-NRuA3xR8dL-cG6AoqaMxgOp70r69g5rjxXARlDdxqu4KVCgXM2VpwrRdcLIeTu81lbRQhPXApHXo_ZxGp4i4ooSpuAkwDas1d4gMaqcwjDI0obOL7p3sUqJ6o5DNMNA-5deX5qlNII-WExvj-mLV_c3OR4slg8ms6g7XH6vpqcxn2XvgIYyuCJSPgnB2w4B4lkIGhQKi22CCsydVj7XiDF-GaK6WD9KXlTfkTwoGsf8JcvDYqg-_j2dkFfD1geFDyS5plb2U0mnDRIC0PgcNCW7EUBVcGtqCDPUqs79Ov_ZS8ewy1Mx4MriAKo_z5mKdOYlZiaeeM9lu5wVl9L1n2Zn6Qh5IUb5KWn9y6W2WUL5DSUSvdZrFJx7brDgyPDdd8e4emU1L6x7nfrznNPTjRLNtmzuAnX2LX2sT_XKIJ3U_xbf9Mb3WdIDGgCJ5i8gIKCl5VFCIJte8c-l8Xjvej82GnxdNaGyUHc2_81EjZbcPhRLwzuU2Q7YxKUjkrEIlkh0jyA9i8vc9pxvZaFd2COy-CbR93iDDSam93uhNPGD-cjX7AuptEbcenE1dJal-ZSqUPPNR-8JHk_25RW4KTiG-dz-3oSozny0zJxjFRoFi2VBG-s_l1yN_ZMq_kK9P80Q7zAeuxEulBSTpk1w3-nFF9iXOW0a3EnNc6NMfkhkqjy2OpgnUsy7n22GO8Dnb6bATLgquxK9oe1NuqzV8v2LI1)\n","operationId":"genAddress","tags":["Unique Address","SEP-31"],"parameters":[{"in":"query","name":"transaction_id","description":"The platform server will save the posted transaction and pass the `transaction_id` through this endpoint.\nIf the anchor wishes to return transaction-dependent unique_address, the anchor may query the [`GET /transactions` endpoint of the Platform API](/network/anchor-platform/resources/get-transaction).\n","schema":{"type":"string"},"required":true}],"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"type":"object","properties":{"unique_address":{"description":"An object containing the unique `stellar_address:memo` pair used to identify a destination.","type":"object","properties":{"stellar_address":{"description":"A `G...` stellar address or a `M...` [muxed stellar address](https://developers.stellar.org/docs/glossary/muxed-accounts/) of an **existing** account in the Stellar network.","type":"string"},"memo":{"description":"The memo to attach to the Stellar payment.","type":"string"},"memo_type":{"description":"The type of memo to attach to the Stellar payment (text, hash, or id).","type":"string","enum":["text","hash","id"]}},"required":["stellar_address"]}}}}}},"500":{"description":"Error. The Platform will respond to the client application with the same response code and body.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"id":{"type":"string"}},"required":["error"],"title":"Error"}}}}},"method":"get","path":"/unique_address","info":{"version":"2.0.0","description":"The Synchronous Callbacks API specification for the Stellar Anchor Platform project.\n\nThe Synchronous Callbacks API defines requests made by the Platform while it is processing a request from a client application. The\nanchor's responses to these requests affect the Platform responses to the client application.\n","title":"Synchronous Callbacks API"},"postman":{"name":"Generate Unique Address","description":{"content":"If the platform is configured with `depositInfoGeneratorType: api`, the Platform make this request to\nthe Anchor backend every time a transaction is initiated by a client application.\n\nThe Anchor must guarantee that the memo returned in this request is unique, so it can be mapped 1-to-1 to a Platform\nresource such as a [SEP-31](https://stellar.org/protocol/sep-31) transaction.\n\nHere is how this flow would be used for Receiving Anchors that need to create their unique `(account, memo)` pairs\noutside the platform, using Circle:\n\n[![](https://mermaid.ink/img/pako:eNqlVctu2zAQ_JUFTy1iOwhyE9AUhuu0ORQ1YvdmIKDJVUSYIlWSihEY_veuRMuPhHaTVCc9VjPD4exyzYSVyDLm8U-NRuA3xR8dL-cG6AoqaMxgOp70r69g5rjxXARlDdxqu4KVCgXM2VpwrRdcLIeTu81lbRQhPXApHXo_ZxGp4i4ooSpuAkwDas1d4gMaqcwjDI0obOL7p3sUqJ6o5DNMNA-5deX5qlNII-WExvj-mLV_c3OR4slg8ms6g7XH6vpqcxn2XvgIYyuCJSPgnB2w4B4lkIGhQKi22CCsydVj7XiDF-GaK6WD9KXlTfkTwoGsf8JcvDYqg-_j2dkFfD1geFDyS5plb2U0mnDRIC0PgcNCW7EUBVcGtqCDPUqs79Ov_ZS8ewy1Mx4MriAKo_z5mKdOYlZiaeeM9lu5wVl9L1n2Zn6Qh5IUb5KWn9y6W2WUL5DSUSvdZrFJx7brDgyPDdd8e4emU1L6x7nfrznNPTjRLNtmzuAnX2LX2sT_XKIJ3U_xbf9Mb3WdIDGgCJ5i8gIKCl5VFCIJte8c-l8Xjvej82GnxdNaGyUHc2_81EjZbcPhRLwzuU2Q7YxKUjkrEIlkh0jyA9i8vc9pxvZaFd2COy-CbR93iDDSam93uhNPGD-cjX7AuptEbcenE1dJal-ZSqUPPNR-8JHk_25RW4KTiG-dz-3oSozny0zJxjFRoFi2VBG-s_l1yN_ZMq_kK9P80Q7zAeuxEulBSTpk1w3-nFF9iXOW0a3EnNc6NMfkhkqjy2OpgnUsy7n22GO8Dnb6bATLgquxK9oe1NuqzV8v2LI1)](https://mermaid.live/edit#pako:eNqlVctu2zAQ_JUFTy1iOwhyE9AUhuu0ORQ1YvdmIKDJVUSYIlWSihEY_veuRMuPhHaTVCc9VjPD4exyzYSVyDLm8U-NRuA3xR8dL-cG6AoqaMxgOp70r69g5rjxXARlDdxqu4KVCgXM2VpwrRdcLIeTu81lbRQhPXApHXo_ZxGp4i4ooSpuAkwDas1d4gMaqcwjDI0obOL7p3sUqJ6o5DNMNA-5deX5qlNII-WExvj-mLV_c3OR4slg8ms6g7XH6vpqcxn2XvgIYyuCJSPgnB2w4B4lkIGhQKi22CCsydVj7XiDF-GaK6WD9KXlTfkTwoGsf8JcvDYqg-_j2dkFfD1geFDyS5plb2U0mnDRIC0PgcNCW7EUBVcGtqCDPUqs79Ov_ZS8ewy1Mx4MriAKo_z5mKdOYlZiaeeM9lu5wVl9L1n2Zn6Qh5IUb5KWn9y6W2WUL5DSUSvdZrFJx7brDgyPDdd8e4emU1L6x7nfrznNPTjRLNtmzuAnX2LX2sT_XKIJ3U_xbf9Mb3WdIDGgCJ5i8gIKCl5VFCIJte8c-l8Xjvej82GnxdNaGyUHc2_81EjZbcPhRLwzuU2Q7YxKUjkrEIlkh0jyA9i8vc9pxvZaFd2COy-CbR93iDDSam93uhNPGD-cjX7AuptEbcenE1dJal-ZSqUPPNR-8JHk_25RW4KTiG-dz-3oSozny0zJxjFRoFi2VBG-s_l1yN_ZMq_kK9P80Q7zAeuxEulBSTpk1w3-nFF9iXOW0a3EnNc6NMfkhkqjy2OpgnUsy7n22GO8Dnb6bATLgquxK9oe1NuqzV8v2LI1)\n","type":"text/plain"},"url":{"path":["unique_address"],"host":["{{baseUrl}}"],"query":[{"disabled":false,"description":{"content":"(Required) The platform server will save the posted transaction and pass the `transaction_id` through this endpoint.\nIf the anchor wishes to return transaction-dependent unique_address, the anchor may query the [`GET /transactions` endpoint of the Platform API](/network/anchor-platform/resources/get-transaction).\n","type":"text/plain"},"key":"transaction_id","value":""}],"variable":[]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET"}} sidebar_class_name: "get api-method" info_path: api/anchor-platform/callbacks/synchronous-callbacks-api custom_edit_url: null @@ -40,7 +40,7 @@ outside the platform, using Circle: [![](https://mermaid.ink/img/pako:eNqlVctu2zAQ_JUFTy1iOwhyE9AUhuu0ORQ1YvdmIKDJVUSYIlWSihEY_veuRMuPhHaTVCc9VjPD4exyzYSVyDLm8U-NRuA3xR8dL-cG6AoqaMxgOp70r69g5rjxXARlDdxqu4KVCgXM2VpwrRdcLIeTu81lbRQhPXApHXo_ZxGp4i4ooSpuAkwDas1d4gMaqcwjDI0obOL7p3sUqJ6o5DNMNA-5deX5qlNII-WExvj-mLV_c3OR4slg8ms6g7XH6vpqcxn2XvgIYyuCJSPgnB2w4B4lkIGhQKi22CCsydVj7XiDF-GaK6WD9KXlTfkTwoGsf8JcvDYqg-_j2dkFfD1geFDyS5plb2U0mnDRIC0PgcNCW7EUBVcGtqCDPUqs79Ov_ZS8ewy1Mx4MriAKo_z5mKdOYlZiaeeM9lu5wVl9L1n2Zn6Qh5IUb5KWn9y6W2WUL5DSUSvdZrFJx7brDgyPDdd8e4emU1L6x7nfrznNPTjRLNtmzuAnX2LX2sT_XKIJ3U_xbf9Mb3WdIDGgCJ5i8gIKCl5VFCIJte8c-l8Xjvej82GnxdNaGyUHc2_81EjZbcPhRLwzuU2Q7YxKUjkrEIlkh0jyA9i8vc9pxvZaFd2COy-CbR93iDDSam93uhNPGD-cjX7AuptEbcenE1dJal-ZSqUPPNR-8JHk_25RW4KTiG-dz-3oSozny0zJxjFRoFi2VBG-s_l1yN_ZMq_kK9P80Q7zAeuxEulBSTpk1w3-nFF9iXOW0a3EnNc6NMfkhkqjy2OpgnUsy7n22GO8Dnb6bATLgquxK9oe1NuqzV8v2LI1)](https://mermaid.live/edit#pako:eNqlVctu2zAQ_JUFTy1iOwhyE9AUhuu0ORQ1YvdmIKDJVUSYIlWSihEY_veuRMuPhHaTVCc9VjPD4exyzYSVyDLm8U-NRuA3xR8dL-cG6AoqaMxgOp70r69g5rjxXARlDdxqu4KVCgXM2VpwrRdcLIeTu81lbRQhPXApHXo_ZxGp4i4ooSpuAkwDas1d4gMaqcwjDI0obOL7p3sUqJ6o5DNMNA-5deX5qlNII-WExvj-mLV_c3OR4slg8ms6g7XH6vpqcxn2XvgIYyuCJSPgnB2w4B4lkIGhQKi22CCsydVj7XiDF-GaK6WD9KXlTfkTwoGsf8JcvDYqg-_j2dkFfD1geFDyS5plb2U0mnDRIC0PgcNCW7EUBVcGtqCDPUqs79Ov_ZS8ewy1Mx4MriAKo_z5mKdOYlZiaeeM9lu5wVl9L1n2Zn6Qh5IUb5KWn9y6W2WUL5DSUSvdZrFJx7brDgyPDdd8e4emU1L6x7nfrznNPTjRLNtmzuAnX2LX2sT_XKIJ3U_xbf9Mb3WdIDGgCJ5i8gIKCl5VFCIJte8c-l8Xjvej82GnxdNaGyUHc2_81EjZbcPhRLwzuU2Q7YxKUjkrEIlkh0jyA9i8vc9pxvZaFd2COy-CbR93iDDSam93uhNPGD-cjX7AuptEbcenE1dJal-ZSqUPPNR-8JHk_25RW4KTiG-dz-3oSozny0zJxjFRoFi2VBG-s_l1yN_ZMq_kK9P80Q7zAeuxEulBSTpk1w3-nFF9iXOW0a3EnNc6NMfkhkqjy2OpgnUsy7n22GO8Dnb6bATLgquxK9oe1NuqzV8v2LI1) -
Query Parameters
+
Query Parameters
Success. diff --git a/network/horizon/README.mdx b/network/horizon/README.mdx index cfc3e16c9..d2a56f032 100644 --- a/network/horizon/README.mdx +++ b/network/horizon/README.mdx @@ -3,7 +3,7 @@ title: Introduction sidebar_position: 10 --- -Horizon provides an HTTP API to data in the Stellar network. It ingests and re-serves the data produced by the Stellar network in a form that is easier to consume by the average application relative to the performance-oriented data representations used by Stellar Core. This API serves the bridge between apps and [Stellar Core](/docs/run-core-node). Projects like wallets, decentralized exchanges, and asset issuers use Horizon to submit transactions, query an account balance, or stream events like transactions to an account. +Horizon provides an HTTP API to data in the Stellar network. It ingests and re-serves the data produced by the Stellar network in a form that is easier to consume by the average application relative to the performance-oriented data representations used by Stellar Core. This API serves the bridge between apps and [Stellar Core](../core-node/README.mdx). Projects like wallets, decentralized exchanges, and asset issuers use Horizon to submit transactions, query an account balance, or stream events like transactions to an account. Horizon can be accessed via cURL, a browser, or one of the [Stellar SDKs](/docs/tools/sdks). To reduce the complexity of your project, we recommend you use an SDK instead of making direct API calls. @@ -26,7 +26,7 @@ The Stellar Development Foundation (SDF) runs two instances of Horizon: ## In These Docs - [Admin Guide](./admin-guide): how to set up your own Horizon instance. -- [Structure](./structure): how Horizon is structured. -- [Resources](./resources/index.mdx): descriptions of resources and their endpoints. -- [Aggregations](./aggregations/README.mdx): descriptions of specialized endpoints. -- [Errors](./errors/index.mdx): potential errors and what they mean. +- [Structure](./structure): how Horizon is structured. +- [Resources](./resources/index.mdx): descriptions of resources and their endpoints. +- [Aggregations](./aggregations/README.mdx): descriptions of specialized endpoints. +- [Errors](./errors/index.mdx): potential errors and what they mean. diff --git a/network/horizon/admin-guide/overview.mdx b/network/horizon/admin-guide/overview.mdx index 50d8584d4..382c2cd53 100644 --- a/network/horizon/admin-guide/overview.mdx +++ b/network/horizon/admin-guide/overview.mdx @@ -7,7 +7,7 @@ Horizon is a central component of the Stellar platform: it provides an HTTP API This guide describes how to administer a production Horizon instance (refer to the [Developers' Blog](https://www.stellar.org/developers-blog/a-new-sun-on-the-horizon) for some background on the performance and architectural improvements of this major version bump). For information about developing on the Horizon codebase, check out the [Development Guide](https://github.com/stellar/go/blob/master/services/horizon/internal/docs/developing.md). -Before we begin, it's worth reiterating the sentiment echoed in the [Run a Core Node](/docs/run-core-node) guide: **we do not endorse running Horizon backed by a standalone Stellar Core instance**, and especially not by a _validating_ Stellar Core. These are two separate concerns, and decoupling them is important for both reliability and performance. Horizon instead 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). +Before we begin, it's worth reiterating the sentiment echoed in the [Run a Core Node](../../core-node/README.mdx) guide: **we do not endorse running Horizon backed by a standalone Stellar Core instance**, and especially not by a _validating_ Stellar Core. These are two separate concerns, and decoupling them is important for both reliability and performance. Horizon instead 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). ## Why Run Horizon? diff --git a/network/index.mdx b/network/index.mdx index 9fb21b548..8589fa212 100644 --- a/network/index.mdx +++ b/network/index.mdx @@ -1,9 +1,9 @@ --- -title: 'Platforms Overview' +title: 'Network Overview' slug: / --- -We have lots of amazing Platforms. Go ahead, check 'em out! +The network architechture of Stellar is amazing. Go ahead, check it out! ## Horizon diff --git a/src/css/custom.scss b/src/css/custom.scss index 8e1df63f4..b5891eb8f 100644 --- a/src/css/custom.scss +++ b/src/css/custom.scss @@ -132,9 +132,9 @@ div[class^='announcementBar_'] { ); } -/* Navbar customizations for "Platforms" section */ +/* Navbar customizations for "Network" section */ -.platformsSubtitle { +.navbar .subtitle { small { text-transform: uppercase; diff --git a/src/theme/ApiItem/index.js b/src/theme/ApiItem/index.js index afe0cabe5..619dd35db 100644 --- a/src/theme/ApiItem/index.js +++ b/src/theme/ApiItem/index.js @@ -5,8 +5,8 @@ import DocItem from '@theme-original/DocItem'; export default function ApiItemWrapper(props) { if ( props.location?.pathname?.includes('admin-guide') - || props.location?.pathname?.startsWith('/platforms/hubble') - || props.location?.pathname?.startsWith('/platforms/soroban-rpc') + || props.location?.pathname?.startsWith('/network/hubble') + || props.location?.pathname?.startsWith('/network/soroban-rpc') ) { return ( <> diff --git a/src/theme/DocSidebar/index.js b/src/theme/DocSidebar/index.js index e27e12c59..81ca44ccb 100644 --- a/src/theme/DocSidebar/index.js +++ b/src/theme/DocSidebar/index.js @@ -5,7 +5,7 @@ export default function DocSidebarWrapper(props) { let newProps // For all `/api` sidebars, remove the parent category from the sidebar - if (props.path.startsWith('/platforms')) { + if (props.path.startsWith('/network')) { newProps = { ...props, sidebar: props.sidebar[0].items From 6a19b5c223b314e360ee97b7b45ce747e0c36e22 Mon Sep 17 00:00:00 2001 From: Elliot Voris Date: Fri, 1 Mar 2024 13:47:54 -0600 Subject: [PATCH 120/133] use default DocItem for core-node docs --- docusaurus.config.js | 2 +- src/theme/ApiItem/index.js | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/docusaurus.config.js b/docusaurus.config.js index 44c73a367..b4d37d742 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -202,7 +202,7 @@ const config = { }, { to: "/network/core-node", - label: "Validator Node", + label: "Core Validator Node", }, ] }, diff --git a/src/theme/ApiItem/index.js b/src/theme/ApiItem/index.js index 619dd35db..e0fa24ac4 100644 --- a/src/theme/ApiItem/index.js +++ b/src/theme/ApiItem/index.js @@ -7,6 +7,7 @@ export default function ApiItemWrapper(props) { props.location?.pathname?.includes('admin-guide') || props.location?.pathname?.startsWith('/network/hubble') || props.location?.pathname?.startsWith('/network/soroban-rpc') + || props.location?.pathname?.startsWith('/network/core-node') ) { return ( <> From 6f4b65999eeb68a29d3ec62c93f37175a10c20b6 Mon Sep 17 00:00:00 2001 From: Elliot Voris Date: Fri, 1 Mar 2024 13:55:53 -0600 Subject: [PATCH 121/133] add link to Network dropdown and style the active dropdown item --- docusaurus.config.js | 1 + src/css/custom.scss | 7 +++++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/docusaurus.config.js b/docusaurus.config.js index b4d37d742..d2203bfc1 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -164,6 +164,7 @@ const config = { type: "dropdown", label: "Network", position: "left", + to: '/network', items: [ { type: 'html', diff --git a/src/css/custom.scss b/src/css/custom.scss index b5891eb8f..85cf6a191 100644 --- a/src/css/custom.scss +++ b/src/css/custom.scss @@ -132,10 +132,9 @@ div[class^='announcementBar_'] { ); } -/* Navbar customizations for "Network" section */ +/* Navbar customizations */ .navbar .subtitle { - small { text-transform: uppercase; color: #999; @@ -151,6 +150,10 @@ div[class^='announcementBar_'] { } } +.navbar .dropdown > a.active { + color: var(--ifm-color-primary) +} + /* Customizations to metamask openrpc package styles */ select[data-testid="example-pairing-select"] { From 33b090a45c7a461f09ed4c04bad55c25a066c6a0 Mon Sep 17 00:00:00 2001 From: Elliot Voris Date: Fri, 1 Mar 2024 15:12:40 -0600 Subject: [PATCH 122/133] more README.mdx uses in anchor platform --- .../{introduction/index.mdx => README.mdx} | 4 ++-- network/anchor-platform/admin-guide/README.mdx | 2 +- network/anchor-platform/admin-guide/events/README.mdx | 10 ++++++++++ .../{ => admin-guide}/events/delivery.mdx | 0 .../events/getting-started.mdx} | 4 ++-- .../{ => admin-guide}/events/integration.mdx | 0 .../callbacks/{index.mdx => README.mdx} | 10 +++++----- network/anchor-platform/callbacks/_category_.json | 5 ----- .../callbacks/customer/{index.mdx => README.mdx} | 0 .../callbacks/event/{index.mdx => README.mdx} | 0 .../callbacks/fee/{index.mdx => README.mdx} | 0 .../callbacks/rate/{index.mdx => README.mdx} | 0 .../unique-address/{index.mdx => README.mdx} | 0 .../custody-server/{index.mdx => README.mdx} | 10 +++++----- .../anchor-platform/custody-server/_category_.json | 5 ----- .../custody-transactions/{index.mdx => README.mdx} | 0 .../custody-server/payments/{index.mdx => README.mdx} | 0 .../custody-server/refunds/{index.mdx => README.mdx} | 0 .../unique-address/{index.mdx => README.mdx} | 0 network/anchor-platform/events/_category_.json | 7 ------- network/anchor-platform/introduction/_category_.json | 4 ---- .../resources/{index.mdx => README.mdx} | 4 ++-- network/anchor-platform/resources/_category_.json | 5 ----- .../resources/transactions/{index.mdx => README.mdx} | 3 +-- network/anchor-platform/rpc/README.mdx | 11 +++++++++++ network/anchor-platform/rpc/_category_.json | 5 ----- .../rpc/methods/{index.mdx => README.mdx} | 1 + .../anchor-platform/rpc/{index.mdx => overview.mdx} | 9 ++++++--- 28 files changed, 46 insertions(+), 53 deletions(-) rename network/anchor-platform/{introduction/index.mdx => README.mdx} (92%) create mode 100644 network/anchor-platform/admin-guide/events/README.mdx rename network/anchor-platform/{ => admin-guide}/events/delivery.mdx (100%) rename network/anchor-platform/{events/index.mdx => admin-guide/events/getting-started.mdx} (89%) rename network/anchor-platform/{ => admin-guide}/events/integration.mdx (100%) rename network/anchor-platform/callbacks/{index.mdx => README.mdx} (61%) delete mode 100644 network/anchor-platform/callbacks/_category_.json rename network/anchor-platform/callbacks/customer/{index.mdx => README.mdx} (100%) rename network/anchor-platform/callbacks/event/{index.mdx => README.mdx} (100%) rename network/anchor-platform/callbacks/fee/{index.mdx => README.mdx} (100%) rename network/anchor-platform/callbacks/rate/{index.mdx => README.mdx} (100%) rename network/anchor-platform/callbacks/unique-address/{index.mdx => README.mdx} (100%) rename network/anchor-platform/custody-server/{index.mdx => README.mdx} (59%) delete mode 100644 network/anchor-platform/custody-server/_category_.json rename network/anchor-platform/custody-server/custody-transactions/{index.mdx => README.mdx} (100%) rename network/anchor-platform/custody-server/payments/{index.mdx => README.mdx} (100%) rename network/anchor-platform/custody-server/refunds/{index.mdx => README.mdx} (100%) rename network/anchor-platform/custody-server/unique-address/{index.mdx => README.mdx} (100%) delete mode 100644 network/anchor-platform/events/_category_.json delete mode 100644 network/anchor-platform/introduction/_category_.json rename network/anchor-platform/resources/{index.mdx => README.mdx} (82%) delete mode 100644 network/anchor-platform/resources/_category_.json rename network/anchor-platform/resources/transactions/{index.mdx => README.mdx} (95%) create mode 100644 network/anchor-platform/rpc/README.mdx delete mode 100644 network/anchor-platform/rpc/_category_.json rename network/anchor-platform/rpc/methods/{index.mdx => README.mdx} (98%) rename network/anchor-platform/rpc/{index.mdx => overview.mdx} (91%) diff --git a/network/anchor-platform/introduction/index.mdx b/network/anchor-platform/README.mdx similarity index 92% rename from network/anchor-platform/introduction/index.mdx rename to network/anchor-platform/README.mdx index f97db72e5..b37c2ce24 100644 --- a/network/anchor-platform/introduction/index.mdx +++ b/network/anchor-platform/README.mdx @@ -1,11 +1,11 @@ --- title: Anchor Platform API Reference sidebar_position: 10 -slug: /anchor-platform +sidebar_label: Introduction --- 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. -You can read more about integrating with the Anchor Platform [in the Admin Guide](../admin-guide/README.mdx). +You can read more about integrating with the Anchor Platform [in the Admin Guide](./admin-guide/README.mdx). diff --git a/network/anchor-platform/admin-guide/README.mdx b/network/anchor-platform/admin-guide/README.mdx index 10ca6646a..3930a6340 100644 --- a/network/anchor-platform/admin-guide/README.mdx +++ b/network/anchor-platform/admin-guide/README.mdx @@ -1,6 +1,6 @@ --- title: Admin Guide -sidebar_position: 15 +sidebar_position: 20 --- import DocCardList from "@theme/DocCardList"; diff --git a/network/anchor-platform/admin-guide/events/README.mdx b/network/anchor-platform/admin-guide/events/README.mdx new file mode 100644 index 000000000..43cc58bd9 --- /dev/null +++ b/network/anchor-platform/admin-guide/events/README.mdx @@ -0,0 +1,10 @@ +--- +title: Event Handling +sidebar_position: 85 +--- + +import DocCardList from "@theme/DocCardList"; + +Receive transaction updates through HTTP webhook events. + + diff --git a/network/anchor-platform/events/delivery.mdx b/network/anchor-platform/admin-guide/events/delivery.mdx similarity index 100% rename from network/anchor-platform/events/delivery.mdx rename to network/anchor-platform/admin-guide/events/delivery.mdx diff --git a/network/anchor-platform/events/index.mdx b/network/anchor-platform/admin-guide/events/getting-started.mdx similarity index 89% rename from network/anchor-platform/events/index.mdx rename to network/anchor-platform/admin-guide/events/getting-started.mdx index 4152515fc..d2156a6d8 100644 --- a/network/anchor-platform/events/index.mdx +++ b/network/anchor-platform/admin-guide/events/getting-started.mdx @@ -1,5 +1,5 @@ --- -title: "Getting Started" +title: Getting Started sidebar_position: 10 --- @@ -9,4 +9,4 @@ By integrating your business server with the event service, you will be able to The event service is **required** for the [SEP-6 integration][sep-6] as there are no SEP-6 callbacks. -[sep-6]: ../admin-guide/sep6/README.mdx +[sep-6]: ../sep6/README.mdx diff --git a/network/anchor-platform/events/integration.mdx b/network/anchor-platform/admin-guide/events/integration.mdx similarity index 100% rename from network/anchor-platform/events/integration.mdx rename to network/anchor-platform/admin-guide/events/integration.mdx diff --git a/network/anchor-platform/callbacks/index.mdx b/network/anchor-platform/callbacks/README.mdx similarity index 61% rename from network/anchor-platform/callbacks/index.mdx rename to network/anchor-platform/callbacks/README.mdx index 872ca68fa..8cd63ad79 100644 --- a/network/anchor-platform/callbacks/index.mdx +++ b/network/anchor-platform/callbacks/README.mdx @@ -1,6 +1,6 @@ --- title: Callbacks -sidebar_position: 20 +sidebar_position: 40 --- import {MethodTable} from "@site/src/components/MethodTable"; @@ -11,9 +11,9 @@ The Anchor Platform provides several callback functionalities for your business | | | | --------------------------------------------------- | --- | -| [Customer](./customer/index.mdx) | | -| [Fee](./fee/index.mdx) | | -| [Rate](./rate/index.mdx) | | -| [Unique address generation](./unique-address/index.mdx) | | +| [Customer](./customer/README.mdx) | | +| [Fee](./fee/README.mdx) | | +| [Rate](./rate/README.mdx) | | +| [Unique address generation](./unique-address/README.mdx) | | diff --git a/network/anchor-platform/callbacks/_category_.json b/network/anchor-platform/callbacks/_category_.json deleted file mode 100644 index e12fdc242..000000000 --- a/network/anchor-platform/callbacks/_category_.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "position": 30, - "label": "Callbacks" - } - \ No newline at end of file diff --git a/network/anchor-platform/callbacks/customer/index.mdx b/network/anchor-platform/callbacks/customer/README.mdx similarity index 100% rename from network/anchor-platform/callbacks/customer/index.mdx rename to network/anchor-platform/callbacks/customer/README.mdx diff --git a/network/anchor-platform/callbacks/event/index.mdx b/network/anchor-platform/callbacks/event/README.mdx similarity index 100% rename from network/anchor-platform/callbacks/event/index.mdx rename to network/anchor-platform/callbacks/event/README.mdx diff --git a/network/anchor-platform/callbacks/fee/index.mdx b/network/anchor-platform/callbacks/fee/README.mdx similarity index 100% rename from network/anchor-platform/callbacks/fee/index.mdx rename to network/anchor-platform/callbacks/fee/README.mdx diff --git a/network/anchor-platform/callbacks/rate/index.mdx b/network/anchor-platform/callbacks/rate/README.mdx similarity index 100% rename from network/anchor-platform/callbacks/rate/index.mdx rename to network/anchor-platform/callbacks/rate/README.mdx diff --git a/network/anchor-platform/callbacks/unique-address/index.mdx b/network/anchor-platform/callbacks/unique-address/README.mdx similarity index 100% rename from network/anchor-platform/callbacks/unique-address/index.mdx rename to network/anchor-platform/callbacks/unique-address/README.mdx diff --git a/network/anchor-platform/custody-server/index.mdx b/network/anchor-platform/custody-server/README.mdx similarity index 59% rename from network/anchor-platform/custody-server/index.mdx rename to network/anchor-platform/custody-server/README.mdx index 808b91d5d..fb139d433 100644 --- a/network/anchor-platform/custody-server/index.mdx +++ b/network/anchor-platform/custody-server/README.mdx @@ -1,6 +1,6 @@ --- title: Custody Server -sidebar_position: 20 +sidebar_position: 50 --- import {MethodTable} from "@site/src/components/MethodTable"; @@ -11,9 +11,9 @@ The Custody Server provides a set of endpoints to interact with custody services | | | | --------------------------------------------------- | --- | -| [Custody Transaction](./custody-transactions/index.mdx) | | -| [Payment](./payments/index.mdx) | | -| [Refund](./refunds/index.mdx) | | -| [Unique address generation](./unique-address/index.mdx) | | +| [Custody Transaction](./custody-transactions/README.mdx) | | +| [Payment](./payments/README.mdx) | | +| [Refund](./refunds/README.mdx) | | +| [Unique address generation](./unique-address/README.mdx) | | diff --git a/network/anchor-platform/custody-server/_category_.json b/network/anchor-platform/custody-server/_category_.json deleted file mode 100644 index c5bb385f2..000000000 --- a/network/anchor-platform/custody-server/_category_.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "position": 30, - "label": "Custody Server" - } - \ No newline at end of file diff --git a/network/anchor-platform/custody-server/custody-transactions/index.mdx b/network/anchor-platform/custody-server/custody-transactions/README.mdx similarity index 100% rename from network/anchor-platform/custody-server/custody-transactions/index.mdx rename to network/anchor-platform/custody-server/custody-transactions/README.mdx diff --git a/network/anchor-platform/custody-server/payments/index.mdx b/network/anchor-platform/custody-server/payments/README.mdx similarity index 100% rename from network/anchor-platform/custody-server/payments/index.mdx rename to network/anchor-platform/custody-server/payments/README.mdx diff --git a/network/anchor-platform/custody-server/refunds/index.mdx b/network/anchor-platform/custody-server/refunds/README.mdx similarity index 100% rename from network/anchor-platform/custody-server/refunds/index.mdx rename to network/anchor-platform/custody-server/refunds/README.mdx diff --git a/network/anchor-platform/custody-server/unique-address/index.mdx b/network/anchor-platform/custody-server/unique-address/README.mdx similarity index 100% rename from network/anchor-platform/custody-server/unique-address/index.mdx rename to network/anchor-platform/custody-server/unique-address/README.mdx diff --git a/network/anchor-platform/events/_category_.json b/network/anchor-platform/events/_category_.json deleted file mode 100644 index 41cf0e027..000000000 --- a/network/anchor-platform/events/_category_.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "position": 85, - "label": "Event Handling", - "link": { - "type": "generated-index" - } -} \ No newline at end of file diff --git a/network/anchor-platform/introduction/_category_.json b/network/anchor-platform/introduction/_category_.json deleted file mode 100644 index a1b7fe4ed..000000000 --- a/network/anchor-platform/introduction/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "position": 10, - "label": "Introduction" -} diff --git a/network/anchor-platform/resources/index.mdx b/network/anchor-platform/resources/README.mdx similarity index 82% rename from network/anchor-platform/resources/index.mdx rename to network/anchor-platform/resources/README.mdx index 16b337d96..f2ccc6eaf 100644 --- a/network/anchor-platform/resources/index.mdx +++ b/network/anchor-platform/resources/README.mdx @@ -1,6 +1,6 @@ --- title: Resources -sidebar_position: 20 +sidebar_position: 30 --- import {MethodTable} from "@site/src/components/MethodTable"; @@ -11,6 +11,6 @@ Data on the Anchor Platform is organized according to resources. Each resource h | | | | --------------------------------------------------- | --- | -| [Transactions](./transactions/index.mdx) | | +| [Transactions](./transactions/README.mdx) | | diff --git a/network/anchor-platform/resources/_category_.json b/network/anchor-platform/resources/_category_.json deleted file mode 100644 index d81f55563..000000000 --- a/network/anchor-platform/resources/_category_.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "position": 20, - "label": "Resources" - } - \ No newline at end of file diff --git a/network/anchor-platform/resources/transactions/index.mdx b/network/anchor-platform/resources/transactions/README.mdx similarity index 95% rename from network/anchor-platform/resources/transactions/index.mdx rename to network/anchor-platform/resources/transactions/README.mdx index 9bdffd61a..086e6e865 100644 --- a/network/anchor-platform/resources/transactions/index.mdx +++ b/network/anchor-platform/resources/transactions/README.mdx @@ -1,13 +1,12 @@ --- title: Transactions -order: 0 --- import {EndpointsTable} from "@site/src/components/EndpointsTable"; Transactions are representations of a SEP transaction. It holds information about the protocol being used, and all necessary information passed by an external party (such as wallet or an anchor). -Should not be confused with stellar [transactions](/docs/glossary/#transaction). +Should not be confused with stellar [transactions](/docs/glossary#transaction). diff --git a/network/anchor-platform/rpc/README.mdx b/network/anchor-platform/rpc/README.mdx new file mode 100644 index 000000000..0fef3870b --- /dev/null +++ b/network/anchor-platform/rpc/README.mdx @@ -0,0 +1,11 @@ +--- +title: JSON-RPC API +sidebar_position: 60 +--- + +import DocCardList from "@theme/DocCardList"; + +Interact with your Anchor Platform instance through the use of lightweight, +easy-to-use RPC requests. + + diff --git a/network/anchor-platform/rpc/_category_.json b/network/anchor-platform/rpc/_category_.json deleted file mode 100644 index 612c9820d..000000000 --- a/network/anchor-platform/rpc/_category_.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "position": 40, - "label": "JSON-RPC API" - } - \ No newline at end of file diff --git a/network/anchor-platform/rpc/methods/index.mdx b/network/anchor-platform/rpc/methods/README.mdx similarity index 98% rename from network/anchor-platform/rpc/methods/index.mdx rename to network/anchor-platform/rpc/methods/README.mdx index 88c27d149..495a88ddc 100644 --- a/network/anchor-platform/rpc/methods/index.mdx +++ b/network/anchor-platform/rpc/methods/README.mdx @@ -1,6 +1,7 @@ --- title: JSON-RPC Methods order: 20 +sidebar_label: Methods --- import {EndpointsTable} from "@site/src/components/EndpointsTable"; diff --git a/network/anchor-platform/rpc/index.mdx b/network/anchor-platform/rpc/overview.mdx similarity index 91% rename from network/anchor-platform/rpc/index.mdx rename to network/anchor-platform/rpc/overview.mdx index 14303f917..7ccb3e5bf 100644 --- a/network/anchor-platform/rpc/index.mdx +++ b/network/anchor-platform/rpc/overview.mdx @@ -1,6 +1,6 @@ --- -title: JSON-RPC API -sidebar_position: 10 +title: Overview +sidebar_position: 60 --- JSON-RPC is a stateless, light-weight remote procedure call (RPC) protocol. @@ -8,8 +8,11 @@ JSON-RPC is a stateless, light-weight remote procedure call (RPC) protocol. It's simple and easy to use, as it uses a single HTTP endpoint and a JSON object that contains the method name and parameters. It is transport agnostic in that the concepts can be used within the same process, over sockets, over http, or in many various message passing environments. It uses [JSON](http://www.json.org/) ([RFC 4627](http://www.ietf.org/rfc/rfc4627.txt)) as data format. + :::note + All member names exchanged between the Client and the Server that are considered for matching of any kind should be considered to be case-sensitive. + ::: -You can read more about JSON-RPC protocol [here](https://www.jsonrpc.org/specification). \ No newline at end of file +You can read more about JSON-RPC protocol [here](https://www.jsonrpc.org/specification). From b2eb98cad7dbcce6e407dbbb2d8e8016450ff5e7 Mon Sep 17 00:00:00 2001 From: Elliot Voris Date: Fri, 1 Mar 2024 15:27:28 -0600 Subject: [PATCH 123/133] fix broken links --- network/anchor-platform/admin-guide/architecture.mdx | 4 ++-- network/anchor-platform/admin-guide/events/integration.mdx | 2 +- network/anchor-platform/admin-guide/sep24/integration.mdx | 2 +- network/anchor-platform/admin-guide/sep31/configuration.mdx | 2 +- network/anchor-platform/admin-guide/sep31/integration.mdx | 4 ++-- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/network/anchor-platform/admin-guide/architecture.mdx b/network/anchor-platform/admin-guide/architecture.mdx index 9e753f87c..c8e0eb769 100644 --- a/network/anchor-platform/admin-guide/architecture.mdx +++ b/network/anchor-platform/admin-guide/architecture.mdx @@ -70,5 +70,5 @@ The event service is a new component that will push events to both the client an The custody server is a new component that allows businesses to connect to a custodial service (such as Fireblocks) to send and receive payments on the Stellar network. When used in self-custodial mode, this service is a next generation of the existing Stellar Observer. [seps]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/README.md -[platform-api]: ../resources/index.mdx -[callback-api]: ../callbacks/index.mdx +[platform-api]: ../resources/README.mdx +[callback-api]: ../callbacks/README.mdx diff --git a/network/anchor-platform/admin-guide/events/integration.mdx b/network/anchor-platform/admin-guide/events/integration.mdx index 0136a74e1..488acd763 100644 --- a/network/anchor-platform/admin-guide/events/integration.mdx +++ b/network/anchor-platform/admin-guide/events/integration.mdx @@ -112,7 +112,7 @@ Anchor Platform signs the callback requests it sends to client applications. The ### As a Business Server -In addition to SEP transaction status updates, business servers can receive events about SEP-31 quote creation or SEP-12 customer information updates. The schema of the event data will depend on the type of event being sent. Visit the [Event API documentation](../callbacks/post-event) for more information about the schema of the event data. +In addition to SEP transaction status updates, business servers can receive events about SEP-31 quote creation or SEP-12 customer information updates. The schema of the event data will depend on the type of event being sent. Visit the [Event API documentation](../../callbacks/post-event) for more information about the schema of the event data. To receive events as a business server, you will need to expose a callback URL that the event service can send events to. The event service will send a POST request to this endpoint with the event data in the request body. diff --git a/network/anchor-platform/admin-guide/sep24/integration.mdx b/network/anchor-platform/admin-guide/sep24/integration.mdx index 18cb55581..0c98af044 100644 --- a/network/anchor-platform/admin-guide/sep24/integration.mdx +++ b/network/anchor-platform/admin-guide/sep24/integration.mdx @@ -969,4 +969,4 @@ Works in the same manner as for the deposit flow. For more details, see [Transac [sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md [sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[json-rpc-methods]: ../../rpc/methods/index.mdx +[json-rpc-methods]: ../../rpc/methods/README.mdx diff --git a/network/anchor-platform/admin-guide/sep31/configuration.mdx b/network/anchor-platform/admin-guide/sep31/configuration.mdx index 3077c3882..a4e2754b4 100644 --- a/network/anchor-platform/admin-guide/sep31/configuration.mdx +++ b/network/anchor-platform/admin-guide/sep31/configuration.mdx @@ -374,4 +374,4 @@ We'll define the server that implements the endpoints defined in the Callback AP [sep1-ap]: ../sep1/README.mdx [sep38]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md [sep38-post-quote]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0038.md#post-quote -[platform-api-kyc]: ../../callbacks/customer/index.mdx +[platform-api-kyc]: ../../callbacks/customer/README.mdx diff --git a/network/anchor-platform/admin-guide/sep31/integration.mdx b/network/anchor-platform/admin-guide/sep31/integration.mdx index 603fb37a5..e01bf9f31 100644 --- a/network/anchor-platform/admin-guide/sep31/integration.mdx +++ b/network/anchor-platform/admin-guide/sep31/integration.mdx @@ -673,7 +673,7 @@ This endpoint may be removed during future major version updates of the Anchor P ::: -[ap-api]: ../../introduction/index.mdx +[ap-api]: ../../README.mdx [ap-sep10]: ../sep10/README.mdx [sep12]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0012.md [demo-wallet]: https://demo-wallet.stellar.org @@ -687,7 +687,7 @@ This endpoint may be removed during future major version updates of the Anchor P [get-unique-address]: ../../callbacks/gen-address [put-customer-callback]: ../../callbacks/put-customer-callback [delete-customer]: ../../callbacks/del-customer -[json-rpc-methods]: ../../rpc/methods/index.mdx +[json-rpc-methods]: ../../rpc/methods/README.mdx [sep24-integration-make-json-rpc-request]: ../sep24/integration.mdx#making-json-rpc-requests [sep24-integration-rpc-request]: ../sep24/integration.mdx#json-rpc-request [sep24-integration-rpc-response]: ../sep24/integration.mdx#json-rpc-response From a970e86d6256c931bcd6baaebb37a0e46cb703c0 Mon Sep 17 00:00:00 2001 From: Elliot Voris Date: Fri, 1 Mar 2024 15:27:45 -0600 Subject: [PATCH 124/133] change filepaths in redocly scripts `api/` -> `network/` --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 34b987649..6d752f340 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,7 @@ "bundle-horizon": "redocly bundle openapi/horizon/main.yml --output openapi/horizon/bundled.yml", "bundle-anchor-platform": "redocly bundle openapi/anchor-platform/Platform\\ API.yml --output openapi/anchor-platform/bundled.yml && yarn redocly bundle openapi/anchor-platform/Callbacks\\ API.yml --output openapi/anchor-platform/bundled_callback.yml && yarn redocly bundle openapi/anchor-platform/Custody\\ API.yml --output openapi/anchor-platform/bundled_custody.yml", "bundle-stellar-disbursement-platform": "redocly bundle openapi/stellar-disbursement-platform/main.yml --output openapi/stellar-disbursement-platform/bundled.yml", - "api:gen": "docusaurus gen-api-docs all && rm api/horizon/resources/*.info.mdx && rm api/anchor-platform/resources/*.info.mdx && rm api/anchor-platform/callbacks/*.info.mdx && rm api/stellar-disbursement-platform/resources/*.info.mdx && rm api/anchor-platform/custody-server/*.info.mdx", + "api:gen": "docusaurus gen-api-docs all && rm network/horizon/resources/*.info.mdx && rm network/anchor-platform/resources/*.info.mdx && rm network/anchor-platform/callbacks/*.info.mdx && rm network/stellar-disbursement-platform/resources/*.info.mdx && rm network/anchor-platform/custody-server/*.info.mdx", "api": "yarn api:clean && yarn api:bundle && yarn api:gen", "write-translations": "docusaurus write-translations", "write-heading-ids": "docusaurus write-heading-ids", From 9cb8603c49469bb584d2a4bf34d674fd7127ea99 Mon Sep 17 00:00:00 2001 From: Elliot Voris Date: Fri, 1 Mar 2024 16:01:37 -0600 Subject: [PATCH 125/133] first stab at nginx redirects --- nginx/includes/redirects.conf | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/nginx/includes/redirects.conf b/nginx/includes/redirects.conf index 096a7642d..09efaa407 100644 --- a/nginx/includes/redirects.conf +++ b/nginx/includes/redirects.conf @@ -30,7 +30,20 @@ rewrite ^/docs/tutorials/handling-errors$ "/docs/encyclopedia/error-handling" pe rewrite ^/docs/tutorials/securing-projects$ "/docs/encyclopedia/securing-web-based-projects" permanent; rewrite ^/docs/tutorials/moneygram-access-integration-guide$ "/docs/building-apps/moneygram-access-integration-guide" permanent; rewrite ^/docs/fundamentals-and-concepts/testnet-and-pubnet$ "/docs/fundamentals-and-concepts/networks" permanent; +rewrite ^/api/?$ "/network" permanent; # moving /api/* locations to /api/horizon (leaving /api intact for the "overview page") -rewrite ^/api(/(?!horizon|(anchor|stellar-disbursement)-platform).+)$ /api/horizon$1 permanent; +rewrite ^/api(/(?!horizon|(anchor|stellar-disbursement)-platform).+)$ "/network/horizon$1" permanent; +rewrite ^/api/(horizon|(anchor|stellar-disbursement)-platform)(.+)$ "/network/$1$2" permanent; # moving /ap_api locations to /api/anchor-platform -rewrite ^/ap_api(/.*)?$ /api/anchor-platform$1 permanent; +rewrite ^/ap_api(/.*)?$ "/network/anchor-platform$1" permanent; +rewrite ^/docs/category/anchor-platform$ "/network/anchor-platform/admin-guide" permanent; +rewrite ^/docs/anchoring-assets/overview$ "/docs/encyclopedia/anchors" permanent; +rewrite ^/docs/category/use-the-stellar-disbursement-platform$ "/network/stellar-disbursement-platform/admin-guide" permanent; +rewrite ^/docs/stellar-disbursement-platform(.*)$ "/network/stellar-disbursement-platform/admin-guide$1" permanent; +rewrite ^/docs/run-platform-server/?$ "/network/horizon/admin-guide/overview" permanent; +rewrite ^/docs/run-platform-server(.*)$ "/network/horizon/admin-guide$1" permanent; +rewrite ^/docs/run-core-node/?$ "/network/core-node" permanent; +rewrite ^/docs/run-core-node(.*)$ "/network/core-node/admin-guide$1" permanent; +rewrite ^/docs/category/access-historical-data$ "/network/hubble" permanent; +rewrite ^/docs/accessing-data/overview$ "/network/hubble" permanent; +rewrite ^/docs/accessing-data(.*)$ "/network/hubble$1" permanent; From 452fdfb966a0f3f14bcfea164a2a7488ef2b6ba4 Mon Sep 17 00:00:00 2001 From: Elliot Voris Date: Fri, 1 Mar 2024 16:20:34 -0600 Subject: [PATCH 126/133] use more README.mdx in horizon --- network/horizon/README.mdx | 8 ++++---- network/horizon/aggregations/README.mdx | 12 ++++++------ .../aggregations/fee-stats/{index.mdx => README.mdx} | 2 +- .../horizon/aggregations/fee-stats/_category_.json | 5 ----- .../order-books/{index.mdx => README.mdx} | 2 +- .../horizon/aggregations/order-books/_category_.json | 4 ---- .../aggregations/paths/{index.mdx => README.mdx} | 2 +- network/horizon/aggregations/paths/_category_.json | 4 ---- .../trade-aggregations/{index.mdx => README.mdx} | 2 +- .../aggregations/trade-aggregations/_category_.json | 4 ---- network/horizon/errors/{index.mdx => README.mdx} | 6 +++--- network/horizon/errors/_category_.json | 4 ---- .../http-status-codes/{index.mdx => README.mdx} | 6 +++--- .../horizon/errors/http-status-codes/_category_.json | 4 ---- .../horizon-specific/{index.mdx => README.mdx} | 0 .../errors/result-codes/{index.mdx => README.mdx} | 6 +++--- network/horizon/errors/result-codes/_category_.json | 4 ---- .../operation-specific/{index.mdx => README.mdx} | 2 +- .../result-codes/operation-specific/category.json | 4 ---- network/horizon/structure/streaming.mdx | 2 +- 20 files changed, 25 insertions(+), 58 deletions(-) rename network/horizon/aggregations/fee-stats/{index.mdx => README.mdx} (94%) delete mode 100644 network/horizon/aggregations/fee-stats/_category_.json rename network/horizon/aggregations/order-books/{index.mdx => README.mdx} (95%) delete mode 100644 network/horizon/aggregations/order-books/_category_.json rename network/horizon/aggregations/paths/{index.mdx => README.mdx} (97%) delete mode 100644 network/horizon/aggregations/paths/_category_.json rename network/horizon/aggregations/trade-aggregations/{index.mdx => README.mdx} (96%) delete mode 100644 network/horizon/aggregations/trade-aggregations/_category_.json rename network/horizon/errors/{index.mdx => README.mdx} (62%) delete mode 100644 network/horizon/errors/_category_.json rename network/horizon/errors/http-status-codes/{index.mdx => README.mdx} (87%) delete mode 100644 network/horizon/errors/http-status-codes/_category_.json rename network/horizon/errors/http-status-codes/horizon-specific/{index.mdx => README.mdx} (100%) rename network/horizon/errors/result-codes/{index.mdx => README.mdx} (83%) delete mode 100644 network/horizon/errors/result-codes/_category_.json rename network/horizon/errors/result-codes/operation-specific/{index.mdx => README.mdx} (99%) delete mode 100644 network/horizon/errors/result-codes/operation-specific/category.json diff --git a/network/horizon/README.mdx b/network/horizon/README.mdx index d2a56f032..6ea610935 100644 --- a/network/horizon/README.mdx +++ b/network/horizon/README.mdx @@ -9,7 +9,7 @@ Horizon can be accessed via cURL, a browser, or one of the [Stellar SDKs](/docs/ This guide describes how to administer a production Horizon instance (refer to the [Developers' Blog](https://www.stellar.org/developers-blog/a-new-sun-on-the-horizon) for some background on the performance and architectural improvements of this major version bump). For information about developing on the Horizon codebase, check out the [Development Guide](https://github.com/stellar/go/blob/master/services/horizon/internal/docs/GUIDE_FOR_DEVELOPERS.md). -Before we begin, it's worth reiterating the sentiment echoed in the [Run a Core Node](https://developers.stellar.org/docs/run-core-node/) guide: **we do not endorse running Horizon backed by a standalone Stellar Core instance**, and especially not by a _validating_ Stellar Core. These are two separate concerns, and decoupling them is important for both reliability and performance. Horizon instead 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). +Before we begin, it's worth reiterating the sentiment echoed in the [Core Node](../core-node/README.mdx) documentation: **we do not endorse running Horizon backed by a standalone Stellar Core instance**, and especially not by a _validating_ Stellar Core. These are two separate concerns, and decoupling them is important for both reliability and performance. Horizon instead 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). ## Why Run Horizon? @@ -25,8 +25,8 @@ The Stellar Development Foundation (SDF) runs two instances of Horizon: ## In These Docs -- [Admin Guide](./admin-guide): how to set up your own Horizon instance. -- [Structure](./structure): how Horizon is structured. +- [Admin Guide](./admin-guide/README.mdx): how to set up your own Horizon instance. +- [Structure](./structure/README.mdx): how Horizon is structured. - [Resources](./resources/index.mdx): descriptions of resources and their endpoints. - [Aggregations](./aggregations/README.mdx): descriptions of specialized endpoints. -- [Errors](./errors/index.mdx): potential errors and what they mean. +- [Errors](./errors/README.mdx): potential errors and what they mean. diff --git a/network/horizon/aggregations/README.mdx b/network/horizon/aggregations/README.mdx index ba205857d..4fee24b56 100644 --- a/network/horizon/aggregations/README.mdx +++ b/network/horizon/aggregations/README.mdx @@ -9,11 +9,11 @@ Endpoints that aggregate data about the ledger. -| | | -| ---------------------------------------------------- | --- | -| [Order Books](./order-books/index.mdx) | | -| [Paths](./paths/index.mdx) | | -| [Trade Aggregations](./trade-aggregations/index.mdx) | | -| [Fee Stats](./fee-stats/index.mdx) | | +| | | +| ----------------------------------------------------- | --- | +| [Order Books](./order-books/README.mdx) | | +| [Paths](./paths/README.mdx) | | +| [Trade Aggregations](./trade-aggregations/README.mdx) | | +| [Fee Stats](./fee-stats/README.mdx) | | diff --git a/network/horizon/aggregations/fee-stats/index.mdx b/network/horizon/aggregations/fee-stats/README.mdx similarity index 94% rename from network/horizon/aggregations/fee-stats/index.mdx rename to network/horizon/aggregations/fee-stats/README.mdx index f098d441d..21e7eb919 100644 --- a/network/horizon/aggregations/fee-stats/index.mdx +++ b/network/horizon/aggregations/fee-stats/README.mdx @@ -1,6 +1,6 @@ --- title: Fee Stats -sidebar_position: 10 +sidebar_position: 50 --- import { EndpointsTable } from "@site/src/components/EndpointsTable"; diff --git a/network/horizon/aggregations/fee-stats/_category_.json b/network/horizon/aggregations/fee-stats/_category_.json deleted file mode 100644 index a0286cd87..000000000 --- a/network/horizon/aggregations/fee-stats/_category_.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "position": 50, - "label": "Fee Stats" - } - \ No newline at end of file diff --git a/network/horizon/aggregations/order-books/index.mdx b/network/horizon/aggregations/order-books/README.mdx similarity index 95% rename from network/horizon/aggregations/order-books/index.mdx rename to network/horizon/aggregations/order-books/README.mdx index b64b0334d..e788714d1 100644 --- a/network/horizon/aggregations/order-books/index.mdx +++ b/network/horizon/aggregations/order-books/README.mdx @@ -1,6 +1,6 @@ --- title: Order Books -sidebar_position: 0 +sidebar_position: 10 --- import { EndpointsTable } from "@site/src/components/EndpointsTable"; diff --git a/network/horizon/aggregations/order-books/_category_.json b/network/horizon/aggregations/order-books/_category_.json deleted file mode 100644 index c54ff2d09..000000000 --- a/network/horizon/aggregations/order-books/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "position": 10, - "label": "Order Books" -} diff --git a/network/horizon/aggregations/paths/index.mdx b/network/horizon/aggregations/paths/README.mdx similarity index 97% rename from network/horizon/aggregations/paths/index.mdx rename to network/horizon/aggregations/paths/README.mdx index b2b1936c6..439aea268 100644 --- a/network/horizon/aggregations/paths/index.mdx +++ b/network/horizon/aggregations/paths/README.mdx @@ -1,6 +1,6 @@ --- title: Paths -sidebar_position: 0 +sidebar_position: 20 --- import { EndpointsTable } from "@site/src/components/EndpointsTable"; diff --git a/network/horizon/aggregations/paths/_category_.json b/network/horizon/aggregations/paths/_category_.json deleted file mode 100644 index be2ed9917..000000000 --- a/network/horizon/aggregations/paths/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "position": 20, - "label": "Paths" -} \ No newline at end of file diff --git a/network/horizon/aggregations/trade-aggregations/index.mdx b/network/horizon/aggregations/trade-aggregations/README.mdx similarity index 96% rename from network/horizon/aggregations/trade-aggregations/index.mdx rename to network/horizon/aggregations/trade-aggregations/README.mdx index 70a3f23d9..2c0d0c192 100644 --- a/network/horizon/aggregations/trade-aggregations/index.mdx +++ b/network/horizon/aggregations/trade-aggregations/README.mdx @@ -1,6 +1,6 @@ --- title: Trade Aggregations -sidebar_position: 0 +sidebar_position: 40 --- import { EndpointsTable } from "@site/src/components/EndpointsTable"; diff --git a/network/horizon/aggregations/trade-aggregations/_category_.json b/network/horizon/aggregations/trade-aggregations/_category_.json deleted file mode 100644 index 30bb79bc5..000000000 --- a/network/horizon/aggregations/trade-aggregations/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "position": 40, - "label": "Trade Aggregations" -} \ No newline at end of file diff --git a/network/horizon/errors/index.mdx b/network/horizon/errors/README.mdx similarity index 62% rename from network/horizon/errors/index.mdx rename to network/horizon/errors/README.mdx index 63810a6fb..73c42fec9 100644 --- a/network/horizon/errors/index.mdx +++ b/network/horizon/errors/README.mdx @@ -7,13 +7,13 @@ import { MethodTable } from "@site/src/components/MethodTable"; After processing a request, Horizon returns a success or error response to the client. A success response will return a Status Code of 200, and an error response will return a Status Code in the range of 4XX - 5XX along with additional information about why the request could not complete successfully. -There are two categories of errors: [HTTP Status Codes](./http-status-codes/index.mdx) and [Result Codes](./result-codes/index.mdx). Result Codes only follow a Transaction Failed (400) HTTP Status Code. +There are two categories of errors: [HTTP Status Codes](./http-status-codes/README.mdx) and [Result Codes](./result-codes/README.mdx). Result Codes only follow a Transaction Failed (400) HTTP Status Code. | | | | --- | --- | -| [HTTP Status Codes](./http-status-codes/index.mdx) | Errors that occur at the Horizon Server level. | -| [Result Codes](./result-codes/index.mdx) | Errors that occur at the Stellar Core level. | +| [HTTP Status Codes](./http-status-codes/README.mdx) | Errors that occur at the Horizon Server level. | +| [Result Codes](./result-codes/README.mdx) | Errors that occur at the Stellar Core level. | diff --git a/network/horizon/errors/_category_.json b/network/horizon/errors/_category_.json deleted file mode 100644 index 6eeb91392..000000000 --- a/network/horizon/errors/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "Errors", - "position": 40 -} diff --git a/network/horizon/errors/http-status-codes/index.mdx b/network/horizon/errors/http-status-codes/README.mdx similarity index 87% rename from network/horizon/errors/http-status-codes/index.mdx rename to network/horizon/errors/http-status-codes/README.mdx index 5e937c6f4..e5c00ccec 100644 --- a/network/horizon/errors/http-status-codes/index.mdx +++ b/network/horizon/errors/http-status-codes/README.mdx @@ -1,6 +1,6 @@ --- title: HTTP Status Codes -order: 0 +order: 30 --- import { MethodTable } from "@site/src/components/MethodTable"; @@ -13,13 +13,13 @@ Stellar uses conventional HTTP response codes to indicate the success or failure - Codes in the 4xx range indicate an error that failed given the information provided - Codes in the 5xx range indicate an error with the Horizon server. -There are two types of Status Codes: [Standard Status Codes](./standard.mdx) and [Horizon-Specific Status Codes](./horizon-specific/index.mdx). +There are two types of Status Codes: [Standard Status Codes](./standard.mdx) and [Horizon-Specific Status Codes](./horizon-specific/README.mdx). | | | | --- | --- | | [Standard Status Codes](./standard.mdx) | Generic HTTP responses. | -| [Horizon-Specific Status Codes](./horizon-specific/index.mdx) | Errors that are unique to Horizon. | +| [Horizon-Specific Status Codes](./horizon-specific/README.mdx) | Errors that are unique to Horizon. | diff --git a/network/horizon/errors/http-status-codes/_category_.json b/network/horizon/errors/http-status-codes/_category_.json deleted file mode 100644 index 18e58b600..000000000 --- a/network/horizon/errors/http-status-codes/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "HTTP Status Codes", - "position": 30 -} diff --git a/network/horizon/errors/http-status-codes/horizon-specific/index.mdx b/network/horizon/errors/http-status-codes/horizon-specific/README.mdx similarity index 100% rename from network/horizon/errors/http-status-codes/horizon-specific/index.mdx rename to network/horizon/errors/http-status-codes/horizon-specific/README.mdx diff --git a/network/horizon/errors/result-codes/index.mdx b/network/horizon/errors/result-codes/README.mdx similarity index 83% rename from network/horizon/errors/result-codes/index.mdx rename to network/horizon/errors/result-codes/README.mdx index c6e61c797..b4265d703 100644 --- a/network/horizon/errors/result-codes/index.mdx +++ b/network/horizon/errors/result-codes/README.mdx @@ -1,6 +1,6 @@ --- title: Result Codes -order: 0 +order: 40 --- import { MethodTable } from "@site/src/components/MethodTable"; @@ -9,7 +9,7 @@ Result Codes describe why a transaction or operation failed in Stellar Core and In the “extras” field, the errors returned are referred to as “Result Codes” and are Horizon’s abstraction of “Stellar Protocol Codes”, which are more specific codes available in the XDR. Result Codes are Horizon’s way of normalizing Stellar Protocol Codes. -There are three types of Result Codes: [Transaction Result Codes](./transactions.mdx), [Operation Result Codes](./operations.mdx), and [Operation-Specific Result Codes](./operation-specific/index.mdx). +There are three types of Result Codes: [Transaction Result Codes](./transactions.mdx), [Operation Result Codes](./operations.mdx), and [Operation-Specific Result Codes](./operation-specific/README.mdx). @@ -17,6 +17,6 @@ There are three types of Result Codes: [Transaction Result Codes](./transactions | --- | --- | | [Transaction Result Codes](./transactions.mdx) | Generic errors about transaction failures. | | [Operation Result Codes](./operations.mdx) | Generic errors about operation failures. | -| [Operation-Specific Result Codes](./operation-specific/index.mdx) | Errors specific to each operation type. | +| [Operation-Specific Result Codes](./operation-specific/README.mdx) | Errors specific to each operation type. | diff --git a/network/horizon/errors/result-codes/_category_.json b/network/horizon/errors/result-codes/_category_.json deleted file mode 100644 index a18fe45fd..000000000 --- a/network/horizon/errors/result-codes/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "Result Codes", - "position": 40 -} diff --git a/network/horizon/errors/result-codes/operation-specific/index.mdx b/network/horizon/errors/result-codes/operation-specific/README.mdx similarity index 99% rename from network/horizon/errors/result-codes/operation-specific/index.mdx rename to network/horizon/errors/result-codes/operation-specific/README.mdx index eb13da3dc..940d60351 100644 --- a/network/horizon/errors/result-codes/operation-specific/index.mdx +++ b/network/horizon/errors/result-codes/operation-specific/README.mdx @@ -1,6 +1,6 @@ --- title: Operation-Specific Result Codes -order: 0 +order: 30 --- import { MethodTable } from "@site/src/components/MethodTable"; diff --git a/network/horizon/errors/result-codes/operation-specific/category.json b/network/horizon/errors/result-codes/operation-specific/category.json deleted file mode 100644 index ea317e56c..000000000 --- a/network/horizon/errors/result-codes/operation-specific/category.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "title": "Operation-Specific Result Codes", - "order": 30 -} diff --git a/network/horizon/structure/streaming.mdx b/network/horizon/structure/streaming.mdx index 09365e105..11b19bf48 100644 --- a/network/horizon/structure/streaming.mdx +++ b/network/horizon/structure/streaming.mdx @@ -22,6 +22,6 @@ All attributes for the endpoints that allow streaming are the same as regular re | [Effects](../resources/effects/index.mdx) | | [Accounts](../resources/accounts/index.mdx) | | [Trades](../resources/trades/index.mdx) | -| [Order Books](../aggregations/order-books/index.mdx) | +| [Order Books](../aggregations/order-books/README.mdx) | From 5e2e893ee40a751df24be2d2a65d5f5f8d117a7a Mon Sep 17 00:00:00 2001 From: Elliot Voris Date: Fri, 1 Mar 2024 16:35:53 -0600 Subject: [PATCH 127/133] more README.mdx files in horizon --- network/horizon/resources/README.mdx | 25 +++++++++++++++++++ network/horizon/resources/_category_.json | 5 ---- .../accounts/{index.mdx => README.mdx} | 0 .../assets/{index.mdx => README.mdx} | 0 .../{index.mdx => README.mdx} | 0 .../effects/{index.mdx => README.mdx} | 0 .../ledgers/{index.mdx => README.mdx} | 0 .../liquiditypools/{index.mdx => README.mdx} | 0 .../offers/{index.mdx => README.mdx} | 0 .../operations/{index.mdx => README.mdx} | 0 .../object/{index.mdx => README.mdx} | 0 .../trades/{index.mdx => README.mdx} | 0 .../transactions/{index.mdx => README.mdx} | 0 13 files changed, 25 insertions(+), 5 deletions(-) create mode 100644 network/horizon/resources/README.mdx delete mode 100644 network/horizon/resources/_category_.json rename network/horizon/resources/accounts/{index.mdx => README.mdx} (100%) rename network/horizon/resources/assets/{index.mdx => README.mdx} (100%) rename network/horizon/resources/claimablebalances/{index.mdx => README.mdx} (100%) rename network/horizon/resources/effects/{index.mdx => README.mdx} (100%) rename network/horizon/resources/ledgers/{index.mdx => README.mdx} (100%) rename network/horizon/resources/liquiditypools/{index.mdx => README.mdx} (100%) rename network/horizon/resources/offers/{index.mdx => README.mdx} (100%) rename network/horizon/resources/operations/{index.mdx => README.mdx} (100%) rename network/horizon/resources/operations/object/{index.mdx => README.mdx} (100%) rename network/horizon/resources/trades/{index.mdx => README.mdx} (100%) rename network/horizon/resources/transactions/{index.mdx => README.mdx} (100%) diff --git a/network/horizon/resources/README.mdx b/network/horizon/resources/README.mdx new file mode 100644 index 000000000..1d8b2668a --- /dev/null +++ b/network/horizon/resources/README.mdx @@ -0,0 +1,25 @@ +--- +title: Resources +sidebar_position: 20 +--- + +import { MethodTable } from "@site/src/components/MethodTable"; + +Data on the Stellar ledger is organized according to resources. Each resource has several different endpoints. + + + +| | | +| ---------------------------------------------------- | --- | +| [Ledgers](./ledgers/README.mdx) | | +| [Transactions](./transactions/README.mdx) | | +| [Operations](./operations/README.mdx) | | +| [Effects](./effects/README.mdx) | | +| [Accounts](./accounts/README.mdx) | | +| [Offers](./offers/README.mdx) | | +| [Claimable Balances](./claimablebalances/README.mdx) | | +| [Trades](./trades/README.mdx) | | +| [Assets](./assets/README.mdx) | | +| [Liquidity Pools](./liquiditypools/README.mdx) | | + + diff --git a/network/horizon/resources/_category_.json b/network/horizon/resources/_category_.json deleted file mode 100644 index d81f55563..000000000 --- a/network/horizon/resources/_category_.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "position": 20, - "label": "Resources" - } - \ No newline at end of file diff --git a/network/horizon/resources/accounts/index.mdx b/network/horizon/resources/accounts/README.mdx similarity index 100% rename from network/horizon/resources/accounts/index.mdx rename to network/horizon/resources/accounts/README.mdx diff --git a/network/horizon/resources/assets/index.mdx b/network/horizon/resources/assets/README.mdx similarity index 100% rename from network/horizon/resources/assets/index.mdx rename to network/horizon/resources/assets/README.mdx diff --git a/network/horizon/resources/claimablebalances/index.mdx b/network/horizon/resources/claimablebalances/README.mdx similarity index 100% rename from network/horizon/resources/claimablebalances/index.mdx rename to network/horizon/resources/claimablebalances/README.mdx diff --git a/network/horizon/resources/effects/index.mdx b/network/horizon/resources/effects/README.mdx similarity index 100% rename from network/horizon/resources/effects/index.mdx rename to network/horizon/resources/effects/README.mdx diff --git a/network/horizon/resources/ledgers/index.mdx b/network/horizon/resources/ledgers/README.mdx similarity index 100% rename from network/horizon/resources/ledgers/index.mdx rename to network/horizon/resources/ledgers/README.mdx diff --git a/network/horizon/resources/liquiditypools/index.mdx b/network/horizon/resources/liquiditypools/README.mdx similarity index 100% rename from network/horizon/resources/liquiditypools/index.mdx rename to network/horizon/resources/liquiditypools/README.mdx diff --git a/network/horizon/resources/offers/index.mdx b/network/horizon/resources/offers/README.mdx similarity index 100% rename from network/horizon/resources/offers/index.mdx rename to network/horizon/resources/offers/README.mdx diff --git a/network/horizon/resources/operations/index.mdx b/network/horizon/resources/operations/README.mdx similarity index 100% rename from network/horizon/resources/operations/index.mdx rename to network/horizon/resources/operations/README.mdx diff --git a/network/horizon/resources/operations/object/index.mdx b/network/horizon/resources/operations/object/README.mdx similarity index 100% rename from network/horizon/resources/operations/object/index.mdx rename to network/horizon/resources/operations/object/README.mdx diff --git a/network/horizon/resources/trades/index.mdx b/network/horizon/resources/trades/README.mdx similarity index 100% rename from network/horizon/resources/trades/index.mdx rename to network/horizon/resources/trades/README.mdx diff --git a/network/horizon/resources/transactions/index.mdx b/network/horizon/resources/transactions/README.mdx similarity index 100% rename from network/horizon/resources/transactions/index.mdx rename to network/horizon/resources/transactions/README.mdx From e926bbdf7b8d0d612f0baa8cc84b13efbc9e2902 Mon Sep 17 00:00:00 2001 From: Elliot Voris Date: Fri, 1 Mar 2024 16:48:26 -0600 Subject: [PATCH 128/133] more README.mdx files (almost done i think?) --- network/{index.mdx => README.mdx} | 10 ++++---- network/horizon/README.mdx | 2 +- network/horizon/resources/index.mdx | 25 ------------------- network/horizon/structure/streaming.mdx | 14 +++++------ network/horizon/structure/xdr.mdx | 2 +- .../hubble/{introduction.mdx => README.mdx} | 3 +-- .../resources/README.mdx | 20 +++++++-------- .../resources/auth/{index.mdx => README.mdx} | 0 .../disbursements/{index.mdx => README.mdx} | 0 .../organization/{index.mdx => README.mdx} | 0 .../payments/{index.mdx => README.mdx} | 0 .../profile/{index.mdx => README.mdx} | 0 .../receivers/{index.mdx => README.mdx} | 0 .../registration/{index.mdx => README.mdx} | 0 .../statistics/{index.mdx => README.mdx} | 0 .../resources/users/{index.mdx => README.mdx} | 0 16 files changed, 25 insertions(+), 51 deletions(-) rename network/{index.mdx => README.mdx} (85%) delete mode 100644 network/horizon/resources/index.mdx rename network/hubble/{introduction.mdx => README.mdx} (98%) rename network/stellar-disbursement-platform/resources/auth/{index.mdx => README.mdx} (100%) rename network/stellar-disbursement-platform/resources/disbursements/{index.mdx => README.mdx} (100%) rename network/stellar-disbursement-platform/resources/organization/{index.mdx => README.mdx} (100%) rename network/stellar-disbursement-platform/resources/payments/{index.mdx => README.mdx} (100%) rename network/stellar-disbursement-platform/resources/profile/{index.mdx => README.mdx} (100%) rename network/stellar-disbursement-platform/resources/receivers/{index.mdx => README.mdx} (100%) rename network/stellar-disbursement-platform/resources/registration/{index.mdx => README.mdx} (100%) rename network/stellar-disbursement-platform/resources/statistics/{index.mdx => README.mdx} (100%) rename network/stellar-disbursement-platform/resources/users/{index.mdx => README.mdx} (100%) diff --git a/network/index.mdx b/network/README.mdx similarity index 85% rename from network/index.mdx rename to network/README.mdx index 8589fa212..d00e8943e 100644 --- a/network/index.mdx +++ b/network/README.mdx @@ -13,21 +13,21 @@ This API serves the bridge between apps and Stellar Core. Projects like wallets, decentralized exchanges, and asset issuers use Horizon to submit transactions, query an account balance, or stream events like transactions to an account. -[Learn more about the Horizon API here!](./horizon) +[Learn more about the Horizon API here!](./horizon/README.mdx) ## Hubble Hubble is your go-to source for viewing, analyzing, and understanding historic data from the Stellar network. -[Learn more about Hubble here!](./hubble) +[Learn more about Hubble here!](./hubble/README.mdx) ## Soroban RPC If you are writing or interacting with smart contracts, you'll need to use RPC. This is the best platform to see current state of the Stellar network. -[Learn more about Soroban RPC here!](./soroban-rpc) +[Learn more about Soroban RPC here!](./soroban-rpc/README.mdx) ## Anchor Platform @@ -37,11 +37,11 @@ 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. -[Learn more about the Anchor Platform API here!](./anchor-platform) +[Learn more about the Anchor Platform API here!](./anchor-platform/README.mdx) ## Stellar Disbursement Platform The Stellar Disbursement Platform (SDP) enables organizations to disburse bulk payments to recipients using Stellar. -[Learn more about the Stellar Disbursement Platform API here!](./stellar-disbursement-platform) +[Learn more about the Stellar Disbursement Platform API here!](./stellar-disbursement-platform/README.mdx) diff --git a/network/horizon/README.mdx b/network/horizon/README.mdx index 6ea610935..f4a9dc592 100644 --- a/network/horizon/README.mdx +++ b/network/horizon/README.mdx @@ -27,6 +27,6 @@ The Stellar Development Foundation (SDF) runs two instances of Horizon: - [Admin Guide](./admin-guide/README.mdx): how to set up your own Horizon instance. - [Structure](./structure/README.mdx): how Horizon is structured. -- [Resources](./resources/index.mdx): descriptions of resources and their endpoints. +- [Resources](./resources/README.mdx): descriptions of resources and their endpoints. - [Aggregations](./aggregations/README.mdx): descriptions of specialized endpoints. - [Errors](./errors/README.mdx): potential errors and what they mean. diff --git a/network/horizon/resources/index.mdx b/network/horizon/resources/index.mdx deleted file mode 100644 index a3cdc02bc..000000000 --- a/network/horizon/resources/index.mdx +++ /dev/null @@ -1,25 +0,0 @@ ---- -title: Resources -sidebar_position: 20 ---- - -import { MethodTable } from "@site/src/components/MethodTable"; - -Data on the Stellar ledger is organized according to resources. Each resource has several different endpoints. - - - -| | | -| --------------------------------------------------- | --- | -| [Ledgers](./ledgers/index.mdx) | | -| [Transactions](./transactions/index.mdx) | | -| [Operations](./operations/index.mdx) | | -| [Effects](./effects/index.mdx) | | -| [Accounts](./accounts/index.mdx) | | -| [Offers](./offers/index.mdx) | | -| [Claimable Balances](./claimablebalances/index.mdx) | | -| [Trades](./trades/index.mdx) | | -| [Assets](./assets/index.mdx) | | -| [Liquidity Pools](./liquiditypools/index.mdx) | | - - diff --git a/network/horizon/structure/streaming.mdx b/network/horizon/structure/streaming.mdx index 11b19bf48..ef487c82d 100644 --- a/network/horizon/structure/streaming.mdx +++ b/network/horizon/structure/streaming.mdx @@ -15,13 +15,13 @@ All attributes for the endpoints that allow streaming are the same as regular re | | | ------------------------------------------------------ | -| [Ledgers](../resources/ledgers/index.mdx) | -| [Transactions](../resources/transactions/index.mdx) | -| [Operations](../resources/operations/index.mdx) | +| [Ledgers](../resources/ledgers/README.mdx) | +| [Transactions](../resources/transactions/README.mdx) | +| [Operations](../resources/operations/README.mdx) | | [Payments](../resources/operations/object/payment.mdx) | -| [Effects](../resources/effects/index.mdx) | -| [Accounts](../resources/accounts/index.mdx) | -| [Trades](../resources/trades/index.mdx) | -| [Order Books](../aggregations/order-books/README.mdx) | +| [Effects](../resources/effects/README.mdx) | +| [Accounts](../resources/accounts/README.mdx) | +| [Trades](../resources/trades/README.mdx) | +| [Order Books](../aggregations/order-books/README.mdx) | diff --git a/network/horizon/structure/xdr.mdx b/network/horizon/structure/xdr.mdx index 4a2f0ca44..ef5495262 100644 --- a/network/horizon/structure/xdr.mdx +++ b/network/horizon/structure/xdr.mdx @@ -8,7 +8,7 @@ import { AttributeTable } from "@site/src/components/AttributeTable"; In the Stellar network, transactions are encoded using a standardized protocol called [External Data Representation](https://en.wikipedia.org/wiki/External_Data_Representation) (XDR). -In Horizon, you will only encounter XDR when [posting](../resources/submit-a-transaction.api.mdx) and [getting](../resources/retrieve-a-transaction.api.mdx) transactions and in the [ledger](../resources/ledgers/index.mdx) header. +In Horizon, you will only encounter XDR when [posting](../resources/submit-a-transaction.api.mdx) and [getting](../resources/retrieve-a-transaction.api.mdx) transactions and in the [ledger](../resources/ledgers/README.mdx) header. When you post a transaction, a client will encode the transaction as XDR before submitting it to Horizon. diff --git a/network/hubble/introduction.mdx b/network/hubble/README.mdx similarity index 98% rename from network/hubble/introduction.mdx rename to network/hubble/README.mdx index 74c404ca6..9eacc67bc 100644 --- a/network/hubble/introduction.mdx +++ b/network/hubble/README.mdx @@ -1,7 +1,6 @@ --- -title: "Introduction" +title: Introduction sidebar_position: 0 -slug: /hubble --- ## What is Hubble? diff --git a/network/stellar-disbursement-platform/resources/README.mdx b/network/stellar-disbursement-platform/resources/README.mdx index ab834de2c..cafc03e7f 100644 --- a/network/stellar-disbursement-platform/resources/README.mdx +++ b/network/stellar-disbursement-platform/resources/README.mdx @@ -11,14 +11,14 @@ Data on the Stellar Disbursement Platform is organized according to resources. E | | | | --------------------------------------------------- | --- | -| [Authentication](./auth/index.mdx) | | -| [Disbursements](./disbursements/index.mdx) | | -| [Organization](./organization/index.mdx) | | -| [Payments](./payments/index.mdx) | | -| [Profiles](./profile/index.mdx) | | -| [Receivers](./receivers/index.mdx) | | -| [Registration](./registration/index.mdx) | | -| [Statistics](./statistics/index.mdx) | | -| [Users](./users/index.mdx) | | +| [Authentication](./auth/README.mdx) | | +| [Disbursements](./disbursements/README.mdx) | | +| [Organization](./organization/README.mdx) | | +| [Payments](./payments/README.mdx) | | +| [Profiles](./profile/README.mdx) | | +| [Receivers](./receivers/README.mdx) | | +| [Registration](./registration/README.mdx) | | +| [Statistics](./statistics/README.mdx) | | +| [Users](./users/README.mdx) | | - \ No newline at end of file + diff --git a/network/stellar-disbursement-platform/resources/auth/index.mdx b/network/stellar-disbursement-platform/resources/auth/README.mdx similarity index 100% rename from network/stellar-disbursement-platform/resources/auth/index.mdx rename to network/stellar-disbursement-platform/resources/auth/README.mdx diff --git a/network/stellar-disbursement-platform/resources/disbursements/index.mdx b/network/stellar-disbursement-platform/resources/disbursements/README.mdx similarity index 100% rename from network/stellar-disbursement-platform/resources/disbursements/index.mdx rename to network/stellar-disbursement-platform/resources/disbursements/README.mdx diff --git a/network/stellar-disbursement-platform/resources/organization/index.mdx b/network/stellar-disbursement-platform/resources/organization/README.mdx similarity index 100% rename from network/stellar-disbursement-platform/resources/organization/index.mdx rename to network/stellar-disbursement-platform/resources/organization/README.mdx diff --git a/network/stellar-disbursement-platform/resources/payments/index.mdx b/network/stellar-disbursement-platform/resources/payments/README.mdx similarity index 100% rename from network/stellar-disbursement-platform/resources/payments/index.mdx rename to network/stellar-disbursement-platform/resources/payments/README.mdx diff --git a/network/stellar-disbursement-platform/resources/profile/index.mdx b/network/stellar-disbursement-platform/resources/profile/README.mdx similarity index 100% rename from network/stellar-disbursement-platform/resources/profile/index.mdx rename to network/stellar-disbursement-platform/resources/profile/README.mdx diff --git a/network/stellar-disbursement-platform/resources/receivers/index.mdx b/network/stellar-disbursement-platform/resources/receivers/README.mdx similarity index 100% rename from network/stellar-disbursement-platform/resources/receivers/index.mdx rename to network/stellar-disbursement-platform/resources/receivers/README.mdx diff --git a/network/stellar-disbursement-platform/resources/registration/index.mdx b/network/stellar-disbursement-platform/resources/registration/README.mdx similarity index 100% rename from network/stellar-disbursement-platform/resources/registration/index.mdx rename to network/stellar-disbursement-platform/resources/registration/README.mdx diff --git a/network/stellar-disbursement-platform/resources/statistics/index.mdx b/network/stellar-disbursement-platform/resources/statistics/README.mdx similarity index 100% rename from network/stellar-disbursement-platform/resources/statistics/index.mdx rename to network/stellar-disbursement-platform/resources/statistics/README.mdx diff --git a/network/stellar-disbursement-platform/resources/users/index.mdx b/network/stellar-disbursement-platform/resources/users/README.mdx similarity index 100% rename from network/stellar-disbursement-platform/resources/users/index.mdx rename to network/stellar-disbursement-platform/resources/users/README.mdx From 4ef9e349171553eaf0d371a5d5af2023658ddb79 Mon Sep 17 00:00:00 2001 From: Elliot Voris Date: Fri, 1 Mar 2024 17:00:59 -0600 Subject: [PATCH 129/133] final batch of README.mdx files --- .../anchor-platform/rpc/methods/README.mdx | 43 ++++++++++--------- .../{index.mdx => README.mdx} | 0 .../{index.mdx => README.mdx} | 0 .../{index.mdx => README.mdx} | 0 .../{index.mdx => README.mdx} | 0 .../{index.mdx => README.mdx} | 0 .../{index.mdx => README.mdx} | 0 .../{index.mdx => README.mdx} | 0 .../{index.mdx => README.mdx} | 0 .../{index.mdx => README.mdx} | 0 .../{index.mdx => README.mdx} | 0 .../{index.mdx => README.mdx} | 0 .../{index.mdx => README.mdx} | 0 .../{index.mdx => README.mdx} | 0 .../{index.mdx => README.mdx} | 0 .../{index.mdx => README.mdx} | 0 .../{index.mdx => README.mdx} | 0 .../{index.mdx => README.mdx} | 0 .../{index.mdx => README.mdx} | 0 .../{index.mdx => README.mdx} | 0 .../{index.mdx => README.mdx} | 0 .../request_trust/{index.mdx => README.mdx} | 0 22 files changed, 22 insertions(+), 21 deletions(-) rename network/anchor-platform/rpc/methods/do_stellar_payment/{index.mdx => README.mdx} (100%) rename network/anchor-platform/rpc/methods/do_stellar_refund/{index.mdx => README.mdx} (100%) rename network/anchor-platform/rpc/methods/notify_amounts_updated/{index.mdx => README.mdx} (100%) rename network/anchor-platform/rpc/methods/notify_customer_info_updated/{index.mdx => README.mdx} (100%) rename network/anchor-platform/rpc/methods/notify_interactive_flow_completed/{index.mdx => README.mdx} (100%) rename network/anchor-platform/rpc/methods/notify_offchain_funds_available/{index.mdx => README.mdx} (100%) rename network/anchor-platform/rpc/methods/notify_offchain_funds_pending/{index.mdx => README.mdx} (100%) rename network/anchor-platform/rpc/methods/notify_offchain_funds_received/{index.mdx => README.mdx} (100%) rename network/anchor-platform/rpc/methods/notify_offchain_funds_sent/{index.mdx => README.mdx} (100%) rename network/anchor-platform/rpc/methods/notify_onchain_funds_received/{index.mdx => README.mdx} (100%) rename network/anchor-platform/rpc/methods/notify_onchain_funds_sent/{index.mdx => README.mdx} (100%) rename network/anchor-platform/rpc/methods/notify_refund_pending/{index.mdx => README.mdx} (100%) rename network/anchor-platform/rpc/methods/notify_refund_sent/{index.mdx => README.mdx} (100%) rename network/anchor-platform/rpc/methods/notify_transaction_error/{index.mdx => README.mdx} (100%) rename network/anchor-platform/rpc/methods/notify_transaction_expired/{index.mdx => README.mdx} (100%) rename network/anchor-platform/rpc/methods/notify_transaction_recovery/{index.mdx => README.mdx} (100%) rename network/anchor-platform/rpc/methods/notify_trust_set/{index.mdx => README.mdx} (100%) rename network/anchor-platform/rpc/methods/request_customer_info_update/{index.mdx => README.mdx} (100%) rename network/anchor-platform/rpc/methods/request_offchain_funds/{index.mdx => README.mdx} (100%) rename network/anchor-platform/rpc/methods/request_onchain_funds/{index.mdx => README.mdx} (100%) rename network/anchor-platform/rpc/methods/request_trust/{index.mdx => README.mdx} (100%) diff --git a/network/anchor-platform/rpc/methods/README.mdx b/network/anchor-platform/rpc/methods/README.mdx index 495a88ddc..4b46abd2b 100644 --- a/network/anchor-platform/rpc/methods/README.mdx +++ b/network/anchor-platform/rpc/methods/README.mdx @@ -16,26 +16,27 @@ Postman collection is available [here](https://documenter.getpostman.com/view/92 | | | | --- | --------------------- | -| | [notify_interactive_flow_completed](notify_interactive_flow_completed/index.mdx) | -| | [request_offchain_funds](request_offchain_funds/index.mdx) | -| | [request_onchain_funds](request_onchain_funds/index.mdx) | -| | [notify_offchain_funds_received](notify_offchain_funds_received/index.mdx) | -| | [notify_onchain_funds_received](notify_onchain_funds_received/index.mdx) | -| | [notify_amounts_updated](notify_amounts_updated/index.mdx) | -| | [notify_refund_pending](notify_refund_pending/index.mdx) | -| | [notify_refund_sent](notify_refund_sent/index.mdx) | -| | [do_stellar_payment](do_stellar_payment/index.mdx) | -| | [do_stellar_refund](do_stellar_refund/index.mdx) | -| | [notify_onchain_funds_sent](notify_onchain_funds_sent/index.mdx) | -| | [notify_offchain_funds_sent](notify_offchain_funds_sent/index.mdx) | -| | [notify_offchain_funds_available](notify_offchain_funds_available/index.mdx) | -| | [notify_offchain_funds_pending](notify_offchain_funds_pending/index.mdx) | -| | [request_trust](request_trust/index.mdx) | -| | [notify_trust_set](notify_trust_set/index.mdx) | -| | [request_customer_info_update](request_customer_info_update/index.mdx) | -| | [notify_customer_info_updated](notify_customer_info_updated/index.mdx) | -| | [notify_transaction_error](notify_transaction_error/index.mdx) | -| | [notify_transaction_expired](notify_transaction_expired/index.mdx) | -| | [notify_transaction_recovery](notify_transaction_recovery/index.mdx) | +| | [notify_interactive_flow_completed](notify_interactive_flow_completed/README.mdx) | +| | [request_offchain_funds](request_offchain_funds/README.mdx) | +| | [request_onchain_funds](request_onchain_funds/README.mdx) | +| | [notify_offchain_funds_received](notify_offchain_funds_received/README.mdx) | +| | [notify_onchain_funds_received](notify_onchain_funds_received/README.mdx) | +| | [notify_amounts_updated](notify_amounts_updated/README.mdx) | +| | [notify_refund_pending](notify_refund_pending/README.mdx) | +| | [notify_refund_sent](notify_refund_sent/README.mdx) | +| | [do_stellar_payment](do_stellar_payment/README.mdx) | +| | [do_stellar_refund](do_stellar_refund/README.mdx) | +| | [notify_onchain_funds_sent](notify_onchain_funds_sent/README.mdx) | +| | [notify_offchain_funds_sent](notify_offchain_funds_sent/README.mdx) | +| | [notify_offchain_funds_available](notify_offchain_funds_available/README.mdx) | +| | [notify_offchain_funds_pending](notify_offchain_funds_pending/README.mdx) | +| | [request_trust](request_trust/README.mdx) | +| | [notify_trust_set](notify_trust_set/README.mdx) | +| | [request_customer_info_update](request_customer_info_update/README.mdx) | +| | [notify_customer_info_updated](notify_customer_info_updated/README.mdx) | +| | [notify_transaction_error](notify_transaction_error/README.mdx) | +| | [notify_transaction_expired](notify_transaction_expired/README.mdx) | +| | [notify_transaction_recovery](notify_transaction_recovery/README.mdx) | + diff --git a/network/anchor-platform/rpc/methods/do_stellar_payment/index.mdx b/network/anchor-platform/rpc/methods/do_stellar_payment/README.mdx similarity index 100% rename from network/anchor-platform/rpc/methods/do_stellar_payment/index.mdx rename to network/anchor-platform/rpc/methods/do_stellar_payment/README.mdx diff --git a/network/anchor-platform/rpc/methods/do_stellar_refund/index.mdx b/network/anchor-platform/rpc/methods/do_stellar_refund/README.mdx similarity index 100% rename from network/anchor-platform/rpc/methods/do_stellar_refund/index.mdx rename to network/anchor-platform/rpc/methods/do_stellar_refund/README.mdx diff --git a/network/anchor-platform/rpc/methods/notify_amounts_updated/index.mdx b/network/anchor-platform/rpc/methods/notify_amounts_updated/README.mdx similarity index 100% rename from network/anchor-platform/rpc/methods/notify_amounts_updated/index.mdx rename to network/anchor-platform/rpc/methods/notify_amounts_updated/README.mdx diff --git a/network/anchor-platform/rpc/methods/notify_customer_info_updated/index.mdx b/network/anchor-platform/rpc/methods/notify_customer_info_updated/README.mdx similarity index 100% rename from network/anchor-platform/rpc/methods/notify_customer_info_updated/index.mdx rename to network/anchor-platform/rpc/methods/notify_customer_info_updated/README.mdx diff --git a/network/anchor-platform/rpc/methods/notify_interactive_flow_completed/index.mdx b/network/anchor-platform/rpc/methods/notify_interactive_flow_completed/README.mdx similarity index 100% rename from network/anchor-platform/rpc/methods/notify_interactive_flow_completed/index.mdx rename to network/anchor-platform/rpc/methods/notify_interactive_flow_completed/README.mdx diff --git a/network/anchor-platform/rpc/methods/notify_offchain_funds_available/index.mdx b/network/anchor-platform/rpc/methods/notify_offchain_funds_available/README.mdx similarity index 100% rename from network/anchor-platform/rpc/methods/notify_offchain_funds_available/index.mdx rename to network/anchor-platform/rpc/methods/notify_offchain_funds_available/README.mdx diff --git a/network/anchor-platform/rpc/methods/notify_offchain_funds_pending/index.mdx b/network/anchor-platform/rpc/methods/notify_offchain_funds_pending/README.mdx similarity index 100% rename from network/anchor-platform/rpc/methods/notify_offchain_funds_pending/index.mdx rename to network/anchor-platform/rpc/methods/notify_offchain_funds_pending/README.mdx diff --git a/network/anchor-platform/rpc/methods/notify_offchain_funds_received/index.mdx b/network/anchor-platform/rpc/methods/notify_offchain_funds_received/README.mdx similarity index 100% rename from network/anchor-platform/rpc/methods/notify_offchain_funds_received/index.mdx rename to network/anchor-platform/rpc/methods/notify_offchain_funds_received/README.mdx diff --git a/network/anchor-platform/rpc/methods/notify_offchain_funds_sent/index.mdx b/network/anchor-platform/rpc/methods/notify_offchain_funds_sent/README.mdx similarity index 100% rename from network/anchor-platform/rpc/methods/notify_offchain_funds_sent/index.mdx rename to network/anchor-platform/rpc/methods/notify_offchain_funds_sent/README.mdx diff --git a/network/anchor-platform/rpc/methods/notify_onchain_funds_received/index.mdx b/network/anchor-platform/rpc/methods/notify_onchain_funds_received/README.mdx similarity index 100% rename from network/anchor-platform/rpc/methods/notify_onchain_funds_received/index.mdx rename to network/anchor-platform/rpc/methods/notify_onchain_funds_received/README.mdx diff --git a/network/anchor-platform/rpc/methods/notify_onchain_funds_sent/index.mdx b/network/anchor-platform/rpc/methods/notify_onchain_funds_sent/README.mdx similarity index 100% rename from network/anchor-platform/rpc/methods/notify_onchain_funds_sent/index.mdx rename to network/anchor-platform/rpc/methods/notify_onchain_funds_sent/README.mdx diff --git a/network/anchor-platform/rpc/methods/notify_refund_pending/index.mdx b/network/anchor-platform/rpc/methods/notify_refund_pending/README.mdx similarity index 100% rename from network/anchor-platform/rpc/methods/notify_refund_pending/index.mdx rename to network/anchor-platform/rpc/methods/notify_refund_pending/README.mdx diff --git a/network/anchor-platform/rpc/methods/notify_refund_sent/index.mdx b/network/anchor-platform/rpc/methods/notify_refund_sent/README.mdx similarity index 100% rename from network/anchor-platform/rpc/methods/notify_refund_sent/index.mdx rename to network/anchor-platform/rpc/methods/notify_refund_sent/README.mdx diff --git a/network/anchor-platform/rpc/methods/notify_transaction_error/index.mdx b/network/anchor-platform/rpc/methods/notify_transaction_error/README.mdx similarity index 100% rename from network/anchor-platform/rpc/methods/notify_transaction_error/index.mdx rename to network/anchor-platform/rpc/methods/notify_transaction_error/README.mdx diff --git a/network/anchor-platform/rpc/methods/notify_transaction_expired/index.mdx b/network/anchor-platform/rpc/methods/notify_transaction_expired/README.mdx similarity index 100% rename from network/anchor-platform/rpc/methods/notify_transaction_expired/index.mdx rename to network/anchor-platform/rpc/methods/notify_transaction_expired/README.mdx diff --git a/network/anchor-platform/rpc/methods/notify_transaction_recovery/index.mdx b/network/anchor-platform/rpc/methods/notify_transaction_recovery/README.mdx similarity index 100% rename from network/anchor-platform/rpc/methods/notify_transaction_recovery/index.mdx rename to network/anchor-platform/rpc/methods/notify_transaction_recovery/README.mdx diff --git a/network/anchor-platform/rpc/methods/notify_trust_set/index.mdx b/network/anchor-platform/rpc/methods/notify_trust_set/README.mdx similarity index 100% rename from network/anchor-platform/rpc/methods/notify_trust_set/index.mdx rename to network/anchor-platform/rpc/methods/notify_trust_set/README.mdx diff --git a/network/anchor-platform/rpc/methods/request_customer_info_update/index.mdx b/network/anchor-platform/rpc/methods/request_customer_info_update/README.mdx similarity index 100% rename from network/anchor-platform/rpc/methods/request_customer_info_update/index.mdx rename to network/anchor-platform/rpc/methods/request_customer_info_update/README.mdx diff --git a/network/anchor-platform/rpc/methods/request_offchain_funds/index.mdx b/network/anchor-platform/rpc/methods/request_offchain_funds/README.mdx similarity index 100% rename from network/anchor-platform/rpc/methods/request_offchain_funds/index.mdx rename to network/anchor-platform/rpc/methods/request_offchain_funds/README.mdx diff --git a/network/anchor-platform/rpc/methods/request_onchain_funds/index.mdx b/network/anchor-platform/rpc/methods/request_onchain_funds/README.mdx similarity index 100% rename from network/anchor-platform/rpc/methods/request_onchain_funds/index.mdx rename to network/anchor-platform/rpc/methods/request_onchain_funds/README.mdx diff --git a/network/anchor-platform/rpc/methods/request_trust/index.mdx b/network/anchor-platform/rpc/methods/request_trust/README.mdx similarity index 100% rename from network/anchor-platform/rpc/methods/request_trust/index.mdx rename to network/anchor-platform/rpc/methods/request_trust/README.mdx From ad80875d3885673395c3fee5eedd6446e05c5789 Mon Sep 17 00:00:00 2001 From: Elliot Voris Date: Fri, 1 Mar 2024 17:07:26 -0600 Subject: [PATCH 130/133] change platforms to network in soroban-rpc openrpc URLs --- .../src/contentDescriptors/Pagination.json | 2 +- openrpc/src/methods/getEvents.json | 2 +- openrpc/src/methods/getHealth.json | 2 +- openrpc/src/methods/getLatestLedger.json | 2 +- openrpc/src/methods/getLedgerEntries.json | 2 +- openrpc/src/methods/getNetwork.json | 2 +- openrpc/src/methods/getTransaction.json | 2 +- openrpc/src/methods/sendTransaction.json | 2 +- openrpc/src/methods/simulateTransaction.json | 2 +- openrpc/src/schemas/Pagination.json | 2 +- static/openrpc.json | 20 +++++++++---------- 11 files changed, 20 insertions(+), 20 deletions(-) diff --git a/openrpc/src/contentDescriptors/Pagination.json b/openrpc/src/contentDescriptors/Pagination.json index 6537ffbde..94b1872a8 100644 --- a/openrpc/src/contentDescriptors/Pagination.json +++ b/openrpc/src/contentDescriptors/Pagination.json @@ -2,7 +2,7 @@ "Pagination": { "name": "pagination", "summary": "pagination options", - "description": "Pagination in soroban-rpc is similar to pagination in Horizon. See [Pagination](https://developers.stellar.org/platforms/soroban-rpc/pagination).", + "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" diff --git a/openrpc/src/methods/getEvents.json b/openrpc/src/methods/getEvents.json index 77d971345..dd57ee2d9 100644 --- a/openrpc/src/methods/getEvents.json +++ b/openrpc/src/methods/getEvents.json @@ -3,7 +3,7 @@ "summary": "returns contract events", "description": "Clients can request a filtered list of events emitted by a given ledger range.\n\nSoroban-RPC will support querying within a maximum 24 hours of recent ledgers.\n\nNote, this could be used by the client to only prompt a refresh when there is a new ledger with relevant events. It should also be used by backend Dapp components to \"ingest\" events into their own database for querying and serving.\n\nIf making multiple requests, clients should deduplicate any events received, based on the event's unique id field. This prevents double-processing in the case of duplicate events being received.\n\nBy default soroban-rpc retains the most recent 24 hours of events.", "externalDocs": { - "url": "https://developers.stellar.org/platforms/soroban-rpc/methods/getEvents" + "url": "https://developers.stellar.org/network/soroban-rpc/methods/getEvents" }, "paramStructure": "by-name", "params": [ diff --git a/openrpc/src/methods/getHealth.json b/openrpc/src/methods/getHealth.json index d0ec325fd..348b3a642 100644 --- a/openrpc/src/methods/getHealth.json +++ b/openrpc/src/methods/getHealth.json @@ -3,7 +3,7 @@ "summary": "returns node health", "description": "General node health check.", "externalDocs": { - "url": "https://developers.stellar.org/platforms/soroban-rpc/methods/getHealth" + "url": "https://developers.stellar.org/network/soroban-rpc/methods/getHealth" }, "paramStructure": "by-name", "params": [], diff --git a/openrpc/src/methods/getLatestLedger.json b/openrpc/src/methods/getLatestLedger.json index 7c1abf68a..210835ab0 100644 --- a/openrpc/src/methods/getLatestLedger.json +++ b/openrpc/src/methods/getLatestLedger.json @@ -3,7 +3,7 @@ "summary": "returns latest known ledger", "description": "For finding out the current latest known ledger of this node. This is a subset of the ledger info from Horizon.", "externalDocs": { - "url": "https://developers.stellar.org/platforms/soroban-rpc/methods/getLatestLedger" + "url": "https://developers.stellar.org/network/soroban-rpc/methods/getLatestLedger" }, "paramStructure": "by-name", "params": [], diff --git a/openrpc/src/methods/getLedgerEntries.json b/openrpc/src/methods/getLedgerEntries.json index 74730a86b..a9ad27d0b 100644 --- a/openrpc/src/methods/getLedgerEntries.json +++ b/openrpc/src/methods/getLedgerEntries.json @@ -3,7 +3,7 @@ "summary": "returns ledger entries", "description": "For reading the current value of ledger entries directly.\n\nAllows you to directly inspect the current state of a contract, a contract's code, or any other ledger entry. This is a backup way to access your contract data which may not be available via events or `simulateTransaction`.\n\nTo fetch contract wasm byte-code, use the ContractCode ledger entry key.", "externalDocs": { - "url": "https://developers.stellar.org/platforms/soroban-rpc/methods/getLedgerEntries" + "url": "https://developers.stellar.org/network/soroban-rpc/methods/getLedgerEntries" }, "paramStructure": "by-name", "params": [ diff --git a/openrpc/src/methods/getNetwork.json b/openrpc/src/methods/getNetwork.json index d54b69bd3..181e0a494 100644 --- a/openrpc/src/methods/getNetwork.json +++ b/openrpc/src/methods/getNetwork.json @@ -3,7 +3,7 @@ "summary": "returns network config", "description": "General information about the currently configured network. This response will contain all the information needed to successfully submit transactions to the network this node serves.", "externalDocs": { - "url": "https://developers.stellar.org/platforms/soroban-rpc/methods/getNetwork" + "url": "https://developers.stellar.org/network/soroban-rpc/methods/getNetwork" }, "paramStructure": "by-name", "params": [], diff --git a/openrpc/src/methods/getTransaction.json b/openrpc/src/methods/getTransaction.json index 3a60f6bb8..b4dd95b17 100644 --- a/openrpc/src/methods/getTransaction.json +++ b/openrpc/src/methods/getTransaction.json @@ -3,7 +3,7 @@ "summary": "returns transaction details", "description": "The getTransaction method provides details about the specified transaction. Clients are expected to periodically query this method to ascertain when a transaction has been successfully recorded on the blockchain. The soroban-rpc system maintains a restricted history of recently processed transactions, with the default retention window set at 1440 ledgers, approximately equivalent to a 2-hour timeframe. For private soroban-rpc instances, it is possible to modify the retention window value by adjusting the transaction-retention-window configuration setting. For comprehensive debugging needs that extend beyond the 2-hour timeframe, it is advisable to retrieve transaction information from Horizon, as it provides a lasting and persistent record.", "externalDocs": { - "url": "https://developers.stellar.org/platforms/soroban-rpc/methods/getTransaction" + "url": "https://developers.stellar.org/network/soroban-rpc/methods/getTransaction" }, "paramStructure": "by-name", "params": [ diff --git a/openrpc/src/methods/sendTransaction.json b/openrpc/src/methods/sendTransaction.json index 10056d0fd..81696df11 100644 --- a/openrpc/src/methods/sendTransaction.json +++ b/openrpc/src/methods/sendTransaction.json @@ -3,7 +3,7 @@ "summary": "submits a transaction", "description": "Submit a real transaction to the Stellar network. This is the only way to make changes on-chain.\n\n Unlike Horizon, this does not wait for transaction completion. It simply validates and enqueues the transaction. Clients should call `getTransaction` to learn about transaction success/failure.\n\nThis supports all transactions, not only smart contract-related transactions.", "externalDocs": { - "url": "https://developers.stellar.org/platforms/soroban-rpc/methods/sendTransaction" + "url": "https://developers.stellar.org/network/soroban-rpc/methods/sendTransaction" }, "paramStructure": "by-name", "params": [ diff --git a/openrpc/src/methods/simulateTransaction.json b/openrpc/src/methods/simulateTransaction.json index c29839caf..197fc13b4 100644 --- a/openrpc/src/methods/simulateTransaction.json +++ b/openrpc/src/methods/simulateTransaction.json @@ -3,7 +3,7 @@ "summary": "submits a trial contract invocation transaction", "description": "Submit a trial contract invocation to simulate how it would be executed by the network. This endpoint calculates the effective transaction data, required authorizations, and minimal resource fee. It provides a way to test and analyze the potential outcomes of a transaction without actually submitting it to the network.", "externalDocs": { - "url": "https://developers.stellar.org/platforms/soroban-rpc/methods/simulateTransaction" + "url": "https://developers.stellar.org/network/soroban-rpc/methods/simulateTransaction" }, "paramStructure": "by-name", "params": [ diff --git a/openrpc/src/schemas/Pagination.json b/openrpc/src/schemas/Pagination.json index bfbcf8291..42732a542 100644 --- a/openrpc/src/schemas/Pagination.json +++ b/openrpc/src/schemas/Pagination.json @@ -8,7 +8,7 @@ }, "limit": { "type": "number", - "description": "The maximum number of records returned. The limit for [getEvents](https://developers.stellar.org/platforms/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](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." } }, "required": [] diff --git a/static/openrpc.json b/static/openrpc.json index f81a024b9..0ae4794bf 100644 --- a/static/openrpc.json +++ b/static/openrpc.json @@ -35,7 +35,7 @@ "summary": "returns contract events", "description": "Clients can request a filtered list of events emitted by a given ledger range.\n\nSoroban-RPC will support querying within a maximum 24 hours of recent ledgers.\n\nNote, this could be used by the client to only prompt a refresh when there is a new ledger with relevant events. It should also be used by backend Dapp components to \"ingest\" events into their own database for querying and serving.\n\nIf making multiple requests, clients should deduplicate any events received, based on the event's unique id field. This prevents double-processing in the case of duplicate events being received.\n\nBy default soroban-rpc retains the most recent 24 hours of events.", "externalDocs": { - "url": "https://developers.stellar.org/platforms/soroban-rpc/methods/getEvents" + "url": "https://developers.stellar.org/network/soroban-rpc/methods/getEvents" }, "paramStructure": "by-name", "params": [ @@ -101,7 +101,7 @@ { "name": "pagination", "summary": "pagination options", - "description": "Pagination in soroban-rpc is similar to pagination in Horizon. See [Pagination](https://developers.stellar.org/platforms/soroban-rpc/pagination).", + "description": "Pagination in soroban-rpc is similar to pagination in Horizon. See [Pagination](https://developers.stellar.org/network/soroban-rpc/pagination).", "required": false, "schema": { "type": "object", @@ -113,7 +113,7 @@ }, "limit": { "type": "number", - "description": "The maximum number of records returned. The limit for [getEvents](https://developers.stellar.org/platforms/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](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." } } } @@ -341,7 +341,7 @@ "summary": "returns node health", "description": "General node health check.", "externalDocs": { - "url": "https://developers.stellar.org/platforms/soroban-rpc/methods/getHealth" + "url": "https://developers.stellar.org/network/soroban-rpc/methods/getHealth" }, "paramStructure": "by-name", "params": [], @@ -376,7 +376,7 @@ "summary": "returns latest known ledger", "description": "For finding out the current latest known ledger of this node. This is a subset of the ledger info from Horizon.", "externalDocs": { - "url": "https://developers.stellar.org/platforms/soroban-rpc/methods/getLatestLedger" + "url": "https://developers.stellar.org/network/soroban-rpc/methods/getLatestLedger" }, "paramStructure": "by-name", "params": [], @@ -427,7 +427,7 @@ "summary": "returns ledger entries", "description": "For reading the current value of ledger entries directly.\n\nAllows you to directly inspect the current state of a contract, a contract's code, or any other ledger entry. This is a backup way to access your contract data which may not be available via events or `simulateTransaction`.\n\nTo fetch contract wasm byte-code, use the ContractCode ledger entry key.", "externalDocs": { - "url": "https://developers.stellar.org/platforms/soroban-rpc/methods/getLedgerEntries" + "url": "https://developers.stellar.org/network/soroban-rpc/methods/getLedgerEntries" }, "paramStructure": "by-name", "params": [ @@ -585,7 +585,7 @@ "summary": "returns network config", "description": "General information about the currently configured network. This response will contain all the information needed to successfully submit transactions to the network this node serves.", "externalDocs": { - "url": "https://developers.stellar.org/platforms/soroban-rpc/methods/getNetwork" + "url": "https://developers.stellar.org/network/soroban-rpc/methods/getNetwork" }, "paramStructure": "by-name", "params": [], @@ -649,7 +649,7 @@ "summary": "returns transaction details", "description": "The getTransaction method provides details about the specified transaction. Clients are expected to periodically query this method to ascertain when a transaction has been successfully recorded on the blockchain. The soroban-rpc system maintains a restricted history of recently processed transactions, with the default retention window set at 1440 ledgers, approximately equivalent to a 2-hour timeframe. For private soroban-rpc instances, it is possible to modify the retention window value by adjusting the transaction-retention-window configuration setting. For comprehensive debugging needs that extend beyond the 2-hour timeframe, it is advisable to retrieve transaction information from Horizon, as it provides a lasting and persistent record.", "externalDocs": { - "url": "https://developers.stellar.org/platforms/soroban-rpc/methods/getTransaction" + "url": "https://developers.stellar.org/network/soroban-rpc/methods/getTransaction" }, "paramStructure": "by-name", "params": [ @@ -828,7 +828,7 @@ "summary": "submits a transaction", "description": "Submit a real transaction to the Stellar network. This is the only way to make changes on-chain.\n\n Unlike Horizon, this does not wait for transaction completion. It simply validates and enqueues the transaction. Clients should call `getTransaction` to learn about transaction success/failure.\n\nThis supports all transactions, not only smart contract-related transactions.", "externalDocs": { - "url": "https://developers.stellar.org/platforms/soroban-rpc/methods/sendTransaction" + "url": "https://developers.stellar.org/network/soroban-rpc/methods/sendTransaction" }, "paramStructure": "by-name", "params": [ @@ -994,7 +994,7 @@ "summary": "submits a trial contract invocation transaction", "description": "Submit a trial contract invocation to simulate how it would be executed by the network. This endpoint calculates the effective transaction data, required authorizations, and minimal resource fee. It provides a way to test and analyze the potential outcomes of a transaction without actually submitting it to the network.", "externalDocs": { - "url": "https://developers.stellar.org/platforms/soroban-rpc/methods/simulateTransaction" + "url": "https://developers.stellar.org/network/soroban-rpc/methods/simulateTransaction" }, "paramStructure": "by-name", "params": [ From a91fc0f47026bd0763febe9b46ebf10dbec252f6 Mon Sep 17 00:00:00 2001 From: Elliot Voris Date: Tue, 5 Mar 2024 09:28:55 -0600 Subject: [PATCH 131/133] fix a broken link --- network/anchor-platform/admin-guide/sep24/faq.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/network/anchor-platform/admin-guide/sep24/faq.mdx b/network/anchor-platform/admin-guide/sep24/faq.mdx index 825baccce..297df7fdb 100644 --- a/network/anchor-platform/admin-guide/sep24/faq.mdx +++ b/network/anchor-platform/admin-guide/sep24/faq.mdx @@ -36,4 +36,4 @@ Utilize the `data.client_domain` attributes within the JWT token. In the presenc [sep-9]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md [sep-24]: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md -[clients]: docs/anchoring-assets/anchor-platform/sep10/configuration.mdx +[clients]: ../sep10/README.mdx From 2717acc195b1ddc6228651c224f7165074b834d3 Mon Sep 17 00:00:00 2001 From: Elliot Voris Date: Tue, 5 Mar 2024 09:29:18 -0600 Subject: [PATCH 132/133] add the rpcspec command to the docker build file --- Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Dockerfile b/Dockerfile index 0c8154f15..3303c5942 100644 --- a/Dockerfile +++ b/Dockerfile @@ -17,6 +17,7 @@ RUN apt-get update && apt-get install --no-install-recommends -y gpg curl git ma COPY . /app/ RUN yarn install +RUN yarn rpcspec:build RUN yarn build FROM nginx:1.17 From e8658b15f003a2b147c4a7e01e6d2442fd37de42 Mon Sep 17 00:00:00 2001 From: Elliot Voris Date: Tue, 5 Mar 2024 10:27:47 -0600 Subject: [PATCH 133/133] move updated getLedgerEntries page into the correct location --- api/methods/getLedgerEntries.mdx | 338 ------------------ .../soroban-rpc/methods/getLedgerEntries.mdx | 128 +++---- 2 files changed, 65 insertions(+), 401 deletions(-) delete mode 100644 api/methods/getLedgerEntries.mdx diff --git a/api/methods/getLedgerEntries.mdx b/api/methods/getLedgerEntries.mdx deleted file mode 100644 index efd9a0f65..000000000 --- a/api/methods/getLedgerEntries.mdx +++ /dev/null @@ -1,338 +0,0 @@ ---- -hide_title: true -description: Returns ledger entries ---- - -import { RpcMethod } from "@site/src/components/RpcMethod"; - - - -### Generating `keys` Parameters - -The example above is querying a deployment of the [`increment` example contract] to find out what value is stored in the `COUNTER` ledger entry. This value can be derived using the following code snippets. You should be able to extrapolate from the provided examples how to get `keys` parameters for other types and values. - -#### Python - -:::note - -If you are using the [Python](https://stellar-sdk.readthedocs.io/en/latest/) `stellar_sdk` to generate these keys, you will need to install the latest version of the SDK. This can be done like so: - -```bash -pip install --upgrade stellar-sdk -``` - -::: - -```python -from stellar_sdk import xdr, scval, Address - -def get_ledger_key_symbol(contract_id: str, symbol_text: str) -> str: - ledger_key = xdr.LedgerKey( - type=xdr.LedgerEntryType.CONTRACT_DATA, - contract_data=xdr.LedgerKeyContractData( - contract=Address(contract_id).to_xdr_sc_address(), - key=scval.to_symbol(symbol_text), - durability=xdr.ContractDataDurability.PERSISTENT - ), - ) - return ledger_key.to_xdr() - -print( - get_ledger_key_symbol( - "CCPYZFKEAXHHS5VVW5J45TOU7S2EODJ7TZNJIA5LKDVL3PESCES6FNCI", - "COUNTER" - ) -) -``` - -#### JavaScript - -If you are using the [JavaScript](https://stellar.github.io/js-stellar-sdk/) `stellar-sdk` to generate these keys, you will need to install the latest pre-release version of the SDK. This can be done like so: - -```bash -yarn add @stellar/stellar-sdk -``` - -```js -import { xdr, Address } from "@stellar/stellar-sdk"; - -const getLedgerKeySymbol = (contractId, symbolText) => { - const ledgerKey = xdr.LedgerKey.contractData( - new xdr.LedgerKeyContractData({ - contract: new Address(contractId).toScAddress(), - key: xdr.ScVal.scvSymbol(symbolText), - durability: xdr.ContractDataDurability.persistent(), - }), - ); - return ledgerKey.toXDR("base64"); -}; - -console.log( - getLedgerKeySymbol( - "CCPYZFKEAXHHS5VVW5J45TOU7S2EODJ7TZNJIA5LKDVL3PESCES6FNCI", - "COUNTER", - ), -); -``` - -### Requesting an Account - -:::note - -This functionality is included in the JavaScript [`stellar-sdk`](https://www.npmjs.com/package/stellar-sdk) package as `SorobanRpc.Server.getAccount(address)`. - -::: - -Accounts are stored as ledger entries, so we can use this method to look up an account along with it's current sequence number. - -```js -import { xdr, Keypair } from '@stellar/stellar-sdk' - -const getLedgerKeyAccount = (address) => { - const ledgerKey = xdr.LedgerKey.account( - new xdr.LedgerKeyAccount({ - accountId: Keypair.fromPublicKey(address).xdrPublicKey(), - }) - ) - return ledgerKey.toXDR('base64') -} - -console.log(getLedgerKeyAccount( - 'GCU5YE6IVBOEZ5LUU5N2NB55VPB5YZNFERT65SSTVXTNMS7IEQWXKBM2' -)) - -# OUTPUT: AAAAAAAAAACp3BPIqFxM9XSnW6aHvavD3GWlJGfuylOt5tZL6CQtdQ== -``` - -We then take our output from this function, and use it as the element in the `keys` array parameter in our call to the `getLedgerEntries` method. - -```json -{ - "jsonrpc": "2.0", - "id": 8675309, - "method": "getLedgerEntries", - "params": { - "keys": ["AAAAAAAAAACp3BPIqFxM9XSnW6aHvavD3GWlJGfuylOt5tZL6CQtdQ=="] - } -} -``` - -And the response we get contains the `LedgerEntryData` with the current information about this account. - -```json -{ - "jsonrpc": "2.0", - "id": 8675309, - "result": { - "entries": [ - { - "key": "AAAAAAAAAACp3BPIqFxM9XSnW6aHvavD3GWlJGfuylOt5tZL6CQtdQ==", - "xdr": "AAAAAAAAAACp3BPIqFxM9XSnW6aHvavD3GWlJGfuylOt5tZL6CQtdQAAABdIdugAAAWpygAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAA", - "lastModifiedLedgerSeq": "164303" - } - ], - "latestLedger": 246819 - } -} -``` - -We can then parse this result as an `xdr.LedgerEntryData` type. - -```js -const parsed = xdr.LedgerEntryData.fromXDR( - "AAAAAAAAAACp3BPIqFxM9XSnW6aHvavD3GWlJGfuylOt5tZL6CQtdQAAABdIdugAAAWpygAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAA", - "base64", -); -console.log(parsed); -``` - -### Requesting a Contract's Wasm Code - -This can be a bit tricky to wrap your head around, but the conventions do make sense once you let it sink in. - -In the previous examples, the `COUNTER` _key_ was used as a `LedgerKey` while the incremented _value_ was stored in a **`LedgerEntry`**. "Ledger Entry" is the relevant term to keep in mind during this discussion. That `LedgerEntry` was stored on the Stellar ledger, and was associated with a corresponding `LedgerKey`. `LedgerKey: LedgerEntry` works the same way you would think of almost any `key: value` storage system. - -#### How Soroban Contract Deployment Works - -When you deploy a contract, first the code is "installed" (i.e. it is uploaded onto the blockchain). This creates a `LedgerEntry` containing the Wasm byte-code, which is uniquely identified by its hash (that is, the hash of the uploaded code itself). Then, when the contract is "deployed," we create a `LedgerEntry` with a reference to that code's hash. So fetching the contract code is a two-step process: - -1. First, we look up the contract itself, to see which code hash it is referencing. -2. Then, we can look up the raw Wasm byte-code using that hash. - -#### Request the `LedgerKey` for the Contract Code - -##### Python - -```python -from stellar_sdk import xdr, Address - -def get_ledger_key_contract_code(contract_id: str) -> str: - ledger_key = xdr.LedgerKey( - type=xdr.LedgerEntryType.CONTRACT_DATA, - contract_data=xdr.LedgerKeyContractData( - contract=Address(contract_id).to_xdr_sc_address(), - key=xdr.SCVal(xdr.SCValType.SCV_LEDGER_KEY_CONTRACT_INSTANCE), - durability=xdr.ContractDataDurability.PERSISTENT - ) - ) - return ledger_key.to_xdr() - -print( - get_ledger_key_contract_code( - "CCPYZFKEAXHHS5VVW5J45TOU7S2EODJ7TZNJIA5LKDVL3PESCES6FNCI" - ) -) -# OUTPUT: AAAABgAAAAGfjJVEBc55drW3U87N1Py0Rw0/nlqUA6tQ6r28khEl4gAAABQAAAAB -``` - -##### JavaScript - -```javascript -import { Contract } from "@stellar/stellar-sdk"; - -function getLedgerKeyContractCode(contractId) { - const instance = new Contract(contractId).getFootprint(); - return instance.toXDR("base64"); -} - -console.log( - getLedgerKeyContractCode( - "CCPYZFKEAXHHS5VVW5J45TOU7S2EODJ7TZNJIA5LKDVL3PESCES6FNCI", - ), -); -// OUTPUT: AAAABgAAAAGfjJVEBc55drW3U87N1Py0Rw0/nlqUA6tQ6r28khEl4gAAABQAAAAB -``` - -We then take our output from this function, and use it as the element in the `keys` array parameter in our call to the `getLedgerEntries` method. - -```json -{ - "jsonrpc": "2.0", - "id": 8675309, - "method": "getLedgerEntries", - "params": { - "keys": ["AAAABgAAAAGfjJVEBc55drW3U87N1Py0Rw0/nlqUA6tQ6r28khEl4gAAABQAAAAB"] - } -} -``` - -And the response we get contains the `LedgerEntryData` that can be used to find the `hash` we must use to request the Wasm byte-code. This hash is the `LedgerKey` that's been associated with the deployed contract code. - -```json -{ - "jsonrpc": "2.0", - "id": 8675309, - "result": { - "entries": [ - { - "key": "AAAABgAAAAGfjJVEBc55drW3U87N1Py0Rw0/nlqUA6tQ6r28khEl4gAAABQAAAAB", - "xdr": "AAAABgAAAAAAAAABn4yVRAXOeXa1t1POzdT8tEcNP55alAOrUOq9vJIRJeIAAAAUAAAAAQAAABMAAAAA5DNtbckOGVRsNVb8L7X/lIhAOy2o5G6GkLKXvc7W8foAAAAA", - "lastModifiedLedgerSeq": "261603" - } - ], - "latestLedger": 262322 - } -} -``` - -#### Request the `ContractCode` Using the Retrieved `LedgerKey` - -Now take the `xdr` field from the previous response's `result` object, and create a `LedgerKey` from the hash contained inside. - -##### Python - -```python -from stellar_sdk import xdr - -def get_ledger_key_wasm_id(contract_code_ledger_entry_data: str) -> str: - # First, we dig the wasm_id hash out of the xdr we received from RPC - contract_code_wasm_hash = xdr.LedgerEntryData.from_xdr( - contract_code_ledger_entry_data - ).contract_data.val.instance.executable.wasm_hash - # Now, we can create the `LedgerKey` as we've done in previous examples - ledger_key = xdr.LedgerKey( - type=xdr.LedgerEntryType.CONTRACT_CODE, - contract_code=xdr.LedgerKeyContractCode( - hash=contract_code_wasm_hash - ), - ) - return ledger_key.to_xdr() - -print( - get_ledger_key_wasm_id( - "AAAABgAAAAAAAAABn4yVRAXOeXa1t1POzdT8tEcNP55alAOrUOq9vJIRJeIAAAAUAAAAAQAAABMAAAAA5DNtbckOGVRsNVb8L7X/lIhAOy2o5G6GkLKXvc7W8foAAAAA" - ) -) -# OUTPUT: AAAAB+QzbW3JDhlUbDVW/C+1/5SIQDstqORuhpCyl73O1vH6 -``` - -##### JavaScript - -```javascript -import { xdr } from "@stellar/stellar-sdk"; - -function getLedgerKeyWasmId(contractCodeLedgerEntryData) { - const entry = xdr.LedgerEntryData.fromXDR( - contractCodeLedgerEntryData, - "base64", - ); - - const wasmHash = entry - .contractData() - .val() - .instance() - .executable() - .wasmHash(); - - let ledgerKey = xdr.LedgerKey.contractCode( - new xdr.LedgerKeyContractCode({ - hash: wasmHash, - }), - ); - - return ledgerKey.toXDR("base64"); -} - -console.log( - getLedgerKeyWasmId( - "AAAABgAAAAAAAAABn4yVRAXOeXa1t1POzdT8tEcNP55alAOrUOq9vJIRJeIAAAAUAAAAAQAAABMAAAAA5DNtbckOGVRsNVb8L7X/lIhAOy2o5G6GkLKXvc7W8foAAAAA", - ), -); -// OUTPUT: AAAAB+QzbW3JDhlUbDVW/C+1/5SIQDstqORuhpCyl73O1vH6 -``` - -Now, finally we have a `LedgerKey` that correspond to the Wasm byte-code that has been deployed under the `ContractId` we started out with so very long ago. This `LedgerKey` can be used in a final request to the Soroban-RPC endpoint. - -```json -{ - "jsonrpc": "2.0", - "id": 8675309, - "method": "getLedgerEntries", - "params": { - "keys": ["AAAAB+QzbW3JDhlUbDVW/C+1/5SIQDstqORuhpCyl73O1vH6"] - } -} -``` - -And the response we get contains (even more) `LedgerEntryData` that we can decode and parse to get the actual, deployed, real-life contract byte-code. We'll leave that exercise up to you. You can check out what is contained using the ["View XDR" page of the Stellar Laboratory]. - -```json -{ - "jsonrpc": "2.0", - "id": 8675309, - "result": { - "entries": [ - { - "key": "AAAAB+QzbW3JDhlUbDVW/C+1/5SIQDstqORuhpCyl73O1vH6", - "xdr": "AAAABwAAAADkM21tyQ4ZVGw1Vvwvtf+UiEA7LajkboaQspe9ztbx+gAAAkgAYXNtAQAAAAEVBGACfn4BfmADfn5+AX5gAAF+YAAAAhkEAWwBMAAAAWwBMQAAAWwBXwABAWwBOAAAAwUEAgMDAwUDAQAQBhkDfwFBgIDAAAt/AEGAgMAAC38AQYCAwAALBzUFBm1lbW9yeQIACWluY3JlbWVudAAEAV8ABwpfX2RhdGFfZW5kAwELX19oZWFwX2Jhc2UDAgqnAQSSAQIBfwF+QQAhAAJAAkACQEKOutCvhtQ5QgEQgICAgABCAVINAEKOutCvhtQ5QgEQgYCAgAAiAUL/AYNCBFINASABQiCIpyEACyAAQQFqIgBFDQFCjrrQr4bUOSAArUIghkIEhCIBQgEQgoCAgAAaQoSAgICgBkKEgICAwAwQg4CAgAAaIAEPCwAACxCFgICAAAALCQAQhoCAgAAACwQAAAALAgALAHMOY29udHJhY3RzcGVjdjAAAAAAAAAAQEluY3JlbWVudCBpbmNyZW1lbnRzIGFuIGludGVybmFsIGNvdW50ZXIsIGFuZCByZXR1cm5zIHRoZSB2YWx1ZS4AAAAJaW5jcmVtZW50AAAAAAAAAAAAAAEAAAAEAB4RY29udHJhY3RlbnZtZXRhdjAAAAAAAAAAFAAAAAAAbw5jb250cmFjdG1ldGF2MAAAAAAAAAAFcnN2ZXIAAAAAAAAGMS43Ni4wAAAAAAAAAAAACHJzc2RrdmVyAAAALzIwLjMuMSNiYTA0NWE1N2FmOTcxZmM4M2U0NzU3NDZiNTlhNTAzYjdlZjQxNjQ5AA==", - "lastModifiedLedgerSeq": 368441, - "liveUntilLedgerSeq": 2442040 - } - ], - "latestLedger": 370940 - } -} -``` - -[`increment` example contract]: /docs/getting-started/storing-data -["View XDR" page of the Stellar Laboratory]: https://laboratory.stellar.org/#xdr-viewer?type=LedgerEntryData&network=testnet diff --git a/network/soroban-rpc/methods/getLedgerEntries.mdx b/network/soroban-rpc/methods/getLedgerEntries.mdx index c0205953b..aefc1f9db 100644 --- a/network/soroban-rpc/methods/getLedgerEntries.mdx +++ b/network/soroban-rpc/methods/getLedgerEntries.mdx @@ -24,25 +24,24 @@ pip install --upgrade stellar-sdk ::: ```python -from stellar_sdk import xdr -from stellar_sdk.strkey import StrKey -from stellar_sdk.soroban import Symbol +from stellar_sdk import xdr, scval, Address def get_ledger_key_symbol(contract_id: str, symbol_text: str) -> str: - ledger_key = xdr.LedgerKey( - type=xdr.LedgerEntryType.CONTRACT_DATA, - contract_data=xdr.LedgerKeyContractData( - contract_id=xdr.hash.Hash(StrKey.decode_contract(contract_id)), - key=Symbol(symbol_text).to_xdr_sc_val(), - ), - ) - return ledger_key.to_xdr() + ledger_key = xdr.LedgerKey( + type=xdr.LedgerEntryType.CONTRACT_DATA, + contract_data=xdr.LedgerKeyContractData( + contract=Address(contract_id).to_xdr_sc_address(), + key=scval.to_symbol(symbol_text), + durability=xdr.ContractDataDurability.PERSISTENT + ), + ) + return ledger_key.to_xdr() print( - get_ledger_key_symbol( - "CA3D5KRYM6CB7OWQ6TWYRR3Z4T7GNZLKERYNZGGA5SOAOPIFY6YQGAXE", - "COUNTER" - ) + get_ledger_key_symbol( + "CCPYZFKEAXHHS5VVW5J45TOU7S2EODJ7TZNJIA5LKDVL3PESCES6FNCI", + "COUNTER" + ) ) ``` @@ -55,13 +54,14 @@ yarn add @stellar/stellar-sdk ``` ```js -import { xdr, StrKey } from "@stellar/stellar-sdk"; +import { xdr, Address } from "@stellar/stellar-sdk"; const getLedgerKeySymbol = (contractId, symbolText) => { const ledgerKey = xdr.LedgerKey.contractData( new xdr.LedgerKeyContractData({ - contractId: StrKey.decodeContract(contractId), + contract: new Address(contractId).toScAddress(), key: xdr.ScVal.scvSymbol(symbolText), + durability: xdr.ContractDataDurability.persistent(), }), ); return ledgerKey.toXDR("base64"); @@ -69,7 +69,7 @@ const getLedgerKeySymbol = (contractId, symbolText) => { console.log( getLedgerKeySymbol( - "CA3D5KRYM6CB7OWQ6TWYRR3Z4T7GNZLKERYNZGGA5SOAOPIFY6YQGAXE", + "CCPYZFKEAXHHS5VVW5J45TOU7S2EODJ7TZNJIA5LKDVL3PESCES6FNCI", "COUNTER", ), ); @@ -86,13 +86,12 @@ This functionality is included in the JavaScript [`stellar-sdk`](https://www.npm Accounts are stored as ledger entries, so we can use this method to look up an account along with it's current sequence number. ```js -import { xdr, Keypair, StrKey } from '@stellar/stellar-sdk' +import { xdr, Keypair } from '@stellar/stellar-sdk' const getLedgerKeyAccount = (address) => { - const publicKey = StrKey.decodeEd25519PublicKey(address) const ledgerKey = xdr.LedgerKey.account( new xdr.LedgerKeyAccount({ - accountId: Keypair.fromPublicKey(publicKey).xdrPublicKey(), + accountId: Keypair.fromPublicKey(address).xdrPublicKey(), }) ) return ledgerKey.toXDR('base64') @@ -128,11 +127,11 @@ And the response we get contains the `LedgerEntryData` with the current informat "entries": [ { "key": "AAAAAAAAAACp3BPIqFxM9XSnW6aHvavD3GWlJGfuylOt5tZL6CQtdQ==", - "xdr": "AAAAAAAAAACp3BPIqFxM9XSnW6aHvavD3GWlJGfuylOt5tZL6CQtdQAAABdIdugAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAA", + "xdr": "AAAAAAAAAACp3BPIqFxM9XSnW6aHvavD3GWlJGfuylOt5tZL6CQtdQAAABdIdugAAAWpygAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAA", "lastModifiedLedgerSeq": "164303" } ], - "latestLedger": "246819" + "latestLedger": 246819 } } ``` @@ -141,7 +140,7 @@ We can then parse this result as an `xdr.LedgerEntryData` type. ```js const parsed = xdr.LedgerEntryData.fromXDR( - "AAAAAAAAAACp3BPIqFxM9XSnW6aHvavD3GWlJGfuylOt5tZL6CQtdQAAABdIdugAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAA", + "AAAAAAAAAACp3BPIqFxM9XSnW6aHvavD3GWlJGfuylOt5tZL6CQtdQAAABdIdugAAAWpygAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAA", "base64", ); console.log(parsed); @@ -165,45 +164,43 @@ When you deploy a contract, first the code is "installed" (i.e. it is uploaded o ##### Python ```python -from stellar_sdk import xdr -from stellar_sdk.strkey import StrKey +from stellar_sdk import xdr, Address def get_ledger_key_contract_code(contract_id: str) -> str: - ledger_key = xdr.LedgerKey( - type=xdr.LedgerEntryType.CONTRACT_DATA, - contract_data=xdr.LedgerKeyContractData( - contract_id=xdr.Hash(StrKey.decodeContract(contract_id)), - key=xdr.SCVal( - type=xdr.SCValType.SCV_LEDGER_KEY_CONTRACT_EXECUTABLE, - ), - ), - ) - return ledger_key.to_xdr() + ledger_key = xdr.LedgerKey( + type=xdr.LedgerEntryType.CONTRACT_DATA, + contract_data=xdr.LedgerKeyContractData( + contract=Address(contract_id).to_xdr_sc_address(), + key=xdr.SCVal(xdr.SCValType.SCV_LEDGER_KEY_CONTRACT_INSTANCE), + durability=xdr.ContractDataDurability.PERSISTENT + ) + ) + return ledger_key.to_xdr() print( - get_ledger_key_contract_code( - "CA3D5KRYM6CB7OWQ6TWYRR3Z4T7GNZLKERYNZGGA5SOAOPIFY6YQGAXE" - ) + get_ledger_key_contract_code( + "CCPYZFKEAXHHS5VVW5J45TOU7S2EODJ7TZNJIA5LKDVL3PESCES6FNCI" + ) ) -# OUTPUT: AAAABq+aJSfjs7VXHWOwJGujK30xpTI3Zt98YN/As+O6b98jAAAAFA== +# OUTPUT: AAAABgAAAAGfjJVEBc55drW3U87N1Py0Rw0/nlqUA6tQ6r28khEl4gAAABQAAAAB ``` ##### JavaScript ```javascript -import { Address, xdr } from "@stellar/stellar-sdk"; +import { Contract } from "@stellar/stellar-sdk"; function getLedgerKeyContractCode(contractId) { - const instance = new ContractId(contractId).getFootprint(); + const instance = new Contract(contractId).getFootprint(); return instance.toXDR("base64"); } console.log( getLedgerKeyContractCode( - "CA3D5KRYM6CB7OWQ6TWYRR3Z4T7GNZLKERYNZGGA5SOAOPIFY6YQGAXE", + "CCPYZFKEAXHHS5VVW5J45TOU7S2EODJ7TZNJIA5LKDVL3PESCES6FNCI", ), ); -// OUTPUT: AAAABq+aJSfjs7VXHWOwJGujK30xpTI3Zt98YN/As+O6b98jAAAAFA== +// OUTPUT: AAAABgAAAAGfjJVEBc55drW3U87N1Py0Rw0/nlqUA6tQ6r28khEl4gAAABQAAAAB ``` We then take our output from this function, and use it as the element in the `keys` array parameter in our call to the `getLedgerEntries` method. @@ -214,7 +211,7 @@ We then take our output from this function, and use it as the element in the `ke "id": 8675309, "method": "getLedgerEntries", "params": { - "keys": ["AAAABq+aJSfjs7VXHWOwJGujK30xpTI3Zt98YN/As+O6b98jAAAAFA=="] + "keys": ["AAAABgAAAAGfjJVEBc55drW3U87N1Py0Rw0/nlqUA6tQ6r28khEl4gAAABQAAAAB"] } } ``` @@ -228,12 +225,12 @@ And the response we get contains the `LedgerEntryData` that can be used to find "result": { "entries": [ { - "key": "AAAABq+aJSfjs7VXHWOwJGujK30xpTI3Zt98YN/As+O6b98jAAAAFA==", - "xdr": "AAAABq+aJSfjs7VXHWOwJGujK30xpTI3Zt98YN/As+O6b98jAAAAFAAAABIAAAAAZBYoEJT3IaPMMk3FoRmnEQHoDxewPZL+Uor+xWI4uII=", + "key": "AAAABgAAAAGfjJVEBc55drW3U87N1Py0Rw0/nlqUA6tQ6r28khEl4gAAABQAAAAB", + "xdr": "AAAABgAAAAAAAAABn4yVRAXOeXa1t1POzdT8tEcNP55alAOrUOq9vJIRJeIAAAAUAAAAAQAAABMAAAAA5DNtbckOGVRsNVb8L7X/lIhAOy2o5G6GkLKXvc7W8foAAAAA", "lastModifiedLedgerSeq": "261603" } ], - "latestLedger": "262322" + "latestLedger": 262322 } } ``` @@ -251,28 +248,28 @@ def get_ledger_key_wasm_id(contract_code_ledger_entry_data: str) -> str: # First, we dig the wasm_id hash out of the xdr we received from RPC contract_code_wasm_hash = xdr.LedgerEntryData.from_xdr( contract_code_ledger_entry_data - ).contract_data.val.exec.wasm_id.hash + ).contract_data.val.instance.executable.wasm_hash # Now, we can create the `LedgerKey` as we've done in previous examples ledger_key = xdr.LedgerKey( type=xdr.LedgerEntryType.CONTRACT_CODE, contract_code=xdr.LedgerKeyContractCode( - hash=xdr.hash.Hash(contract_code_wasm_hash) + hash=contract_code_wasm_hash ), ) return ledger_key.to_xdr() print( get_ledger_key_wasm_id( - "AAAABq+aJSfjs7VXHWOwJGujK30xpTI3Zt98YN/As+O6b98jAAAAFAAAABIAAAAAZBYoEJT3IaPMMk3FoRmnEQHoDxewPZL+Uor+xWI4uII=" + "AAAABgAAAAAAAAABn4yVRAXOeXa1t1POzdT8tEcNP55alAOrUOq9vJIRJeIAAAAUAAAAAQAAABMAAAAA5DNtbckOGVRsNVb8L7X/lIhAOy2o5G6GkLKXvc7W8foAAAAA" ) ) -# OUTPUT: AAAAB2QWKBCU9yGjzDJNxaEZpxEB6A8XsD2S/lKK/sViOLiC +# OUTPUT: AAAAB+QzbW3JDhlUbDVW/C+1/5SIQDstqORuhpCyl73O1vH6 ``` ##### JavaScript ```javascript -const { xdr } = require("@stellar/stellar-sdk"); +import { xdr } from "@stellar/stellar-sdk"; function getLedgerKeyWasmId(contractCodeLedgerEntryData) { const entry = xdr.LedgerEntryData.fromXDR( @@ -280,11 +277,16 @@ function getLedgerKeyWasmId(contractCodeLedgerEntryData) { "base64", ); - const instance = entry.contractData().val().instance(); + const wasmHash = entry + .contractData() + .val() + .instance() + .executable() + .wasmHash(); let ledgerKey = xdr.LedgerKey.contractCode( new xdr.LedgerKeyContractCode({ - hash: instance.wasmHash(), + hash: wasmHash, }), ); @@ -293,10 +295,10 @@ function getLedgerKeyWasmId(contractCodeLedgerEntryData) { console.log( getLedgerKeyWasmId( - "AAAABq+aJSfjs7VXHWOwJGujK30xpTI3Zt98YN/As+O6b98jAAAAFAAAABIAAAAAZBYoEJT3IaPMMk3FoRmnEQHoDxewPZL+Uor+xWI4uII=", + "AAAABgAAAAAAAAABn4yVRAXOeXa1t1POzdT8tEcNP55alAOrUOq9vJIRJeIAAAAUAAAAAQAAABMAAAAA5DNtbckOGVRsNVb8L7X/lIhAOy2o5G6GkLKXvc7W8foAAAAA", ), ); -// OUTPUT: AAAAB2QWKBCU9yGjzDJNxaEZpxEB6A8XsD2S/lKK/sViOLiC +// OUTPUT: AAAAB+QzbW3JDhlUbDVW/C+1/5SIQDstqORuhpCyl73O1vH6 ``` Now, finally we have a `LedgerKey` that correspond to the Wasm byte-code that has been deployed under the `ContractId` we started out with so very long ago. This `LedgerKey` can be used in a final request to the Soroban-RPC endpoint. @@ -307,7 +309,7 @@ Now, finally we have a `LedgerKey` that correspond to the Wasm byte-code that ha "id": 8675309, "method": "getLedgerEntries", "params": { - "keys": ["AAAAB2QWKBCU9yGjzDJNxaEZpxEB6A8XsD2S/lKK/sViOLiC"] + "keys": ["AAAAB+QzbW3JDhlUbDVW/C+1/5SIQDstqORuhpCyl73O1vH6"] } } ``` @@ -321,13 +323,13 @@ And the response we get contains (even more) `LedgerEntryData` that we can decod "result": { "entries": [ { - "key": "AAAAB2QWKBCU9yGjzDJNxaEZpxEB6A8XsD2S/lKK/sViOLiC", - "xdr": "AAAABwAAAABkFigQlPcho8wyTcWhGacRAegPF7A9kv5Siv7FYji4ggAAAlQAYXNtAQAAAAEPA2ACfn4BfmABfgF+YAAAAgcBAXYBRwAAAwQDAQICBQMBABEGGQN/AUGAgMAAC38AQYWAwAALfwBBkIDAAAsHMQUGbWVtb3J5AgAFaGVsbG8AAQFfAAMKX19kYXRhX2VuZAMBC19faGVhcF9iYXNlAwIK4QID1gIDAn8CfgF/I4CAgIAAQSBrIgEkgICAgAACQAJAIACnQf8BcSICQQ5GDQAgAkHKAEcNAQtCACEDQXshAgNAAkACQAJAAkAgAkUNAEIBIQQgAkGFgMCAAGotAAAiBUHfAEYNAyAFrSEEIAVBUGpBCkkNAiAFQb9/akEaSQ0BAkAgBUGff2pBGk8NACAEQkV8IQQMBAsQgoCAgAAACyABIAA3AwggASADQgiGQg6ENwMAQQAhAgNAAkAgAkEQRw0AQQAhAgJAA0AgAkEQRg0BIAFBEGogAmogASACaikDADcDACACQQhqIQIMAAsLIAFBEGqtQiCGQgSEQoSAgIAgEICAgIAAIQQgAUEgaiSAgICAACAEDwsgAUEQaiACakICNwMAIAJBCGohAgwACwsgBEJLfCEEDAELIARCUnwhBAsgAkEBaiECIAQgA0IGhoQhAwwACwsAAAsEAAAACwIACwsOAQBBgIDAAAsFSGVsbG8AHhFjb250cmFjdGVudm1ldGF2MAAAAAAAAAAUAAAAJQBDDmNvbnRyYWN0c3BlY3YwAAAAAAAAAAAAAAAFaGVsbG8AAAAAAAABAAAAAAAAAAJ0bwAAAAAAEQAAAAEAAAPqAAAAEQ==", - "lastModifiedLedgerSeq": "75206", - "liveUntilLedgerSeq": "320384" + "key": "AAAAB+QzbW3JDhlUbDVW/C+1/5SIQDstqORuhpCyl73O1vH6", + "xdr": "AAAABwAAAADkM21tyQ4ZVGw1Vvwvtf+UiEA7LajkboaQspe9ztbx+gAAAkgAYXNtAQAAAAEVBGACfn4BfmADfn5+AX5gAAF+YAAAAhkEAWwBMAAAAWwBMQAAAWwBXwABAWwBOAAAAwUEAgMDAwUDAQAQBhkDfwFBgIDAAAt/AEGAgMAAC38AQYCAwAALBzUFBm1lbW9yeQIACWluY3JlbWVudAAEAV8ABwpfX2RhdGFfZW5kAwELX19oZWFwX2Jhc2UDAgqnAQSSAQIBfwF+QQAhAAJAAkACQEKOutCvhtQ5QgEQgICAgABCAVINAEKOutCvhtQ5QgEQgYCAgAAiAUL/AYNCBFINASABQiCIpyEACyAAQQFqIgBFDQFCjrrQr4bUOSAArUIghkIEhCIBQgEQgoCAgAAaQoSAgICgBkKEgICAwAwQg4CAgAAaIAEPCwAACxCFgICAAAALCQAQhoCAgAAACwQAAAALAgALAHMOY29udHJhY3RzcGVjdjAAAAAAAAAAQEluY3JlbWVudCBpbmNyZW1lbnRzIGFuIGludGVybmFsIGNvdW50ZXIsIGFuZCByZXR1cm5zIHRoZSB2YWx1ZS4AAAAJaW5jcmVtZW50AAAAAAAAAAAAAAEAAAAEAB4RY29udHJhY3RlbnZtZXRhdjAAAAAAAAAAFAAAAAAAbw5jb250cmFjdG1ldGF2MAAAAAAAAAAFcnN2ZXIAAAAAAAAGMS43Ni4wAAAAAAAAAAAACHJzc2RrdmVyAAAALzIwLjMuMSNiYTA0NWE1N2FmOTcxZmM4M2U0NzU3NDZiNTlhNTAzYjdlZjQxNjQ5AA==", + "lastModifiedLedgerSeq": 368441, + "liveUntilLedgerSeq": 2442040 } ], - "latestLedger": "262384" + "latestLedger": 370940 } } ```