diff --git a/astro.config.mjs b/astro.config.mjs index bde75cc..faabde0 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -20,7 +20,7 @@ export default defineConfig({ locales: { root: { label: 'English', lang: 'en' }, es: { label: 'Español', lang: 'es' }, - 'br': { label: 'Português (Brasil)', lang: 'br' }, + 'pt-br': { label: 'Português (Brasil)', lang: 'pt-BR' }, ja: { label: '日本語', lang: 'ja' }, }, tableOfContents: { @@ -76,12 +76,12 @@ export default defineConfig({ sidebar: [ { label: 'Get started', - translations: { es: 'Primeros pasos', ja: 'はじめる', 'br': 'Primeiros Passos' }, + translations: { es: 'Primeros pasos', ja: 'はじめる', 'pt-BR': 'Primeiros Passos' }, items: ['docs', 'docs/what-is-different'], }, { label: 'Features', - translations: { es: 'Características', ja: '機能', 'br': 'Recursos' }, + translations: { es: 'Características', ja: '機能', 'pt-BR': 'Recursos' }, items: [ 'docs/features/public-nodes-rpc', 'docs/features/amendments', @@ -90,7 +90,7 @@ export default defineConfig({ translations: { es: 'Firma de Transacciones', ja: 'トランザクション署名', - 'br': 'Assinatura de Transações', + 'pt-BR': 'Assinatura de Transações', }, autogenerate: { directory: 'docs/features/transaction-signing' }, collapsed: true, @@ -100,7 +100,7 @@ export default defineConfig({ translations: { es: 'Herramientas para Desarrolladores', ja: '開発者ツール', - 'br': 'Ferramentas para Desenvolvedores', + 'pt-BR': 'Ferramentas para Desenvolvedores', }, autogenerate: { directory: 'docs/features/developer-tooling' }, collapsed: true, @@ -110,7 +110,7 @@ export default defineConfig({ translations: { es: 'APIs HTTP / WebSocket', ja: 'HTTP / WebSocket API', - 'br': 'APIs HTTP / WebSocket', + 'pt-BR': 'APIs HTTP / WebSocket', }, autogenerate: { directory: 'docs/features/http-websocket-apis' }, collapsed: true, @@ -120,7 +120,7 @@ export default defineConfig({ translations: { es: 'Funcionalidades de Red', ja: 'ネットワーク機能', - 'br': 'Funcionalidades da Rede', + 'pt-BR': 'Funcionalidades da Rede', }, autogenerate: { directory: 'docs/features/network-features' }, collapsed: true, @@ -137,12 +137,12 @@ export default defineConfig({ translations: { es: 'Referencia del Protocolo', ja: 'プロトコルリファレンス', - 'br': 'Referência do Protocolo', + 'pt-BR': 'Referência do Protocolo', }, items: [ { label: 'Transactions', - translations: { es: 'Transacciones', ja: 'トランザクション', 'br': 'Transações' }, + translations: { es: 'Transacciones', ja: 'トランザクション', 'pt-BR': 'Transações' }, collapsed: true, items: [ 'docs/protocol-reference/transactions', @@ -151,7 +151,7 @@ export default defineConfig({ translations: { es: 'Tipos de Transacción', ja: 'トランザクションタイプ', - 'br': 'Tipos de Transação', + 'pt-BR': 'Tipos de Transação', }, autogenerate: { directory: @@ -164,7 +164,7 @@ export default defineConfig({ translations: { es: 'Tipos de Pseudotransacción', ja: '擬似トランザクションタイプ', - 'br': 'Tipos de Pseudotransação', + 'pt-BR': 'Tipos de Pseudotransação', }, autogenerate: { directory: @@ -177,7 +177,7 @@ export default defineConfig({ translations: { es: 'Resultados de Transacción', ja: 'トランザクション結果', - 'br': 'Resultados de Transação', + 'pt-BR': 'Resultados de Transação', }, autogenerate: { directory: @@ -191,7 +191,7 @@ export default defineConfig({ }, { label: 'Ledger Data', - translations: { es: 'Datos del Ledger', ja: 'レジャーデータ', 'br': 'Dados do Ledger' }, + translations: { es: 'Datos del Ledger', ja: 'レジャーデータ', 'pt-BR': 'Dados do Ledger' }, collapsed: true, items: [ 'docs/protocol-reference/ledger-data', @@ -200,7 +200,7 @@ export default defineConfig({ translations: { es: 'Tipos de Objetos del Ledger', ja: 'レジャーオブジェクトタイプ', - 'br': 'Tipos de Objetos do Ledger', + 'pt-BR': 'Tipos de Objetos do Ledger', }, autogenerate: { directory: @@ -214,7 +214,7 @@ export default defineConfig({ }, { label: 'Data Types', - translations: { es: 'Tipos de Datos', ja: 'データ型', 'br': 'Tipos de Dados' }, + translations: { es: 'Tipos de Datos', ja: 'データ型', 'pt-BR': 'Tipos de Dados' }, collapsed: true, items: [ 'docs/protocol-reference/data-types', @@ -231,7 +231,7 @@ export default defineConfig({ 'docs/hooks', { label: 'Concepts', - translations: { es: 'Conceptos', ja: 'コンセプト', 'br': 'Conceitos' }, + translations: { es: 'Conceptos', ja: 'コンセプト', 'pt-BR': 'Conceitos' }, collapsed: true, items: [ 'docs/hooks/concepts/introduction', @@ -259,12 +259,12 @@ export default defineConfig({ }, { label: 'Functions', - translations: { es: 'Funciones', ja: '関数', 'br': 'Funções' }, + translations: { es: 'Funciones', ja: '関数', 'pt-BR': 'Funções' }, collapsed: true, items: [ { label: 'Overview', - translations: { es: 'Descripción General', ja: '概要', 'br': 'Visão Geral' }, + translations: { es: 'Descripción General', ja: '概要', 'pt-BR': 'Visão Geral' }, collapsed: true, autogenerate: { directory: 'docs/hooks/functions/overview' }, }, @@ -273,7 +273,7 @@ export default defineConfig({ translations: { es: 'Definidas por el Desarrollador', ja: '開発者定義', - 'br': 'Definidas pelo Desenvolvedor', + 'pt-BR': 'Definidas pelo Desenvolvedor', }, collapsed: true, autogenerate: { @@ -287,7 +287,7 @@ export default defineConfig({ }, { label: 'Utilities', - translations: { es: 'Utilidades', ja: 'ユーティリティ', 'br': 'Utilitários' }, + translations: { es: 'Utilidades', ja: 'ユーティリティ', 'pt-BR': 'Utilitários' }, collapsed: true, autogenerate: { directory: 'docs/hooks/functions/utilities' }, }, @@ -296,7 +296,7 @@ export default defineConfig({ translations: { es: 'Serialización', ja: 'シリアライゼーション', - 'br': 'Serialização', + 'pt-BR': 'Serialização', }, collapsed: true, autogenerate: { @@ -308,7 +308,7 @@ export default defineConfig({ translations: { es: 'Transacción Emitida', ja: '発行トランザクション', - 'br': 'Transação Emitida', + 'pt-BR': 'Transação Emitida', }, collapsed: true, autogenerate: { @@ -330,7 +330,7 @@ export default defineConfig({ translations: { es: 'Contexto del Hook', ja: 'フックコンテキスト', - 'br': 'Contexto do Hook', + 'pt-BR': 'Contexto do Hook', }, collapsed: true, autogenerate: { @@ -344,7 +344,7 @@ export default defineConfig({ }, { label: 'State', - translations: { es: 'Estado', ja: '状態', 'br': 'Estado' }, + translations: { es: 'Estado', ja: '状態', 'pt-BR': 'Estado' }, collapsed: true, autogenerate: { directory: 'docs/hooks/functions/state' }, }, @@ -353,7 +353,7 @@ export default defineConfig({ translations: { es: 'Traza (Debug)', ja: 'トレース(デバッグ)', - 'br': 'Rastreamento (Debug)', + 'pt-BR': 'Rastreamento (Debug)', }, collapsed: true, autogenerate: { @@ -365,7 +365,7 @@ export default defineConfig({ translations: { es: 'Transacción de Origen', ja: '発信トランザクション', - 'br': 'Transação de Origem', + 'pt-BR': 'Transação de Origem', }, collapsed: true, autogenerate: { @@ -389,7 +389,7 @@ export default defineConfig({ }, { label: 'Compliance', - translations: { es: 'Cumplimiento', ja: 'コンプライアンス', 'br': 'Conformidade' }, + translations: { es: 'Cumplimiento', ja: 'コンプライアンス', 'pt-BR': 'Conformidade' }, items: [ 'docs/compliance/security-audit', 'docs/compliance/responsible-disclosure', @@ -397,7 +397,7 @@ export default defineConfig({ }, { label: 'Infrastructure', - translations: { es: 'Infraestructura', ja: 'インフラストラクチャ', 'br': 'Infraestrutura' }, + translations: { es: 'Infraestructura', ja: 'インフラストラクチャ', 'pt-BR': 'Infraestrutura' }, items: [ 'docs/infrastructure/system-requirements', 'docs/infrastructure/installing-xahaud', @@ -411,7 +411,7 @@ export default defineConfig({ translations: { es: 'Compilar xahaud (Avanzado)', ja: 'xahaudをビルド(上級)', - 'br': 'Compilar xahaud (Avançado)', + 'pt-BR': 'Compilar xahaud (Avançado)', }, collapsed: true, items: [ @@ -424,12 +424,12 @@ export default defineConfig({ }, { label: 'Resources', - translations: { es: 'Recursos', ja: 'リソース', 'br': 'Recursos' }, + translations: { es: 'Recursos', ja: 'リソース', 'pt-BR': 'Recursos' }, items: ['docs/resources/whitepaper', 'docs/resources/media-kit'], }, { label: 'Support', - translations: { es: 'Soporte', ja: 'サポート', 'br': 'Suporte' }, + translations: { es: 'Soporte', ja: 'サポート', 'pt-BR': 'Suporte' }, autogenerate: { directory: 'docs/support' }, }, ], diff --git a/src/components/DocsSidebar.astro b/src/components/DocsSidebar.astro index f7e7224..4b612bd 100644 --- a/src/components/DocsSidebar.astro +++ b/src/components/DocsSidebar.astro @@ -4,6 +4,7 @@ import SidebarPersister from '@astrojs/starlight/components/SidebarPersister.ast import SidebarSublist from '@astrojs/starlight/components/SidebarSublist.astro' const _sidebar = Astro.locals.starlightRoute.sidebar +console.log(_sidebar) --- diff --git a/src/components/Header.jsx b/src/components/Header.jsx index 44f7257..206b2fd 100644 --- a/src/components/Header.jsx +++ b/src/components/Header.jsx @@ -25,7 +25,7 @@ import { getAlternateLocaleHref } from '../utils/localizedHref' const languages = [ { code: 'en', label: 'English' }, { code: 'es', label: 'Español' }, - { code: 'br', label: 'Português (Brasil)' }, + { code: 'pt-BR', label: 'Português (Brasil)' }, // { code: 'ja', label: '日本語' }, ] @@ -58,7 +58,7 @@ const nav = { infra: 'Infraestructura', discord: 'Discord de la Comunidad', }, - 'br': { + 'pt-BR': { about: 'Sobre', features: 'Recursos', ecosystem: 'Ecossistema', diff --git a/src/components/XahauAboutPtBR.astro b/src/components/XahauAboutPtBR.astro new file mode 100644 index 0000000..ce19b78 --- /dev/null +++ b/src/components/XahauAboutPtBR.astro @@ -0,0 +1,480 @@ +--- +/** + * XahauAbout.astro — Hand-crafted editorial layout (English) + * + * No JSON loops. Three thematic acts: Network · Protocol · Currency. + * Matches XahauFeatures.astro philosophy exactly. + * For ES/JA: see XahauAboutEs.astro / XahauAboutJa.astro + */ + +import networkGraphic from '../assets/enterprise/about-network.svg' +import protocolGraphic from '../assets/enterprise/about-protocol.svg' +import xahGraphic from '../assets/enterprise/about-xah.svg' + +const videoId = '4pruN6sWJho' +--- + +
+ +
+
+

Sobre o Xahau

+

+ Blockchain L1 empresarial com programabilidade baseada em conta +

+
+
+ Fund. Outubro 2023 + 200k+ Contas + ~4s Liquidação + 10k tx / ledger +
+
+ + +
+

A Rede

+ + +
+
+ Visão Geral +

+ O que é o Xahau? +
+ A explicação rápida +

+

+ O Xahau é uma blockchain L1 com uma composição única de recursos e uma + abordagem inovadora à programabilidade de blockchain, também conhecida + como contratos inteligentes. +

+

+ A tecnologia comprovada a longo prazo liquida transações em ~4 segundos + com custos muito baixos, chegando a frações de um centavo de dólar. É + escalável, atualmente com até 10.000 transações por ledger, e é uma + blockchain inerentemente verde e amigável ao meio ambiente. +

+

+ O Xahau oferece recursos nativos para emissão e negociação de moedas na + exchange descentralizada integrada, tokens não fungíveis nativos e + infinitas oportunidades de DeFi com lógica personalizada através dos + contratos inteligentes do Xahau, conhecidos como Hooks. +

+

+ Os Hooks vivem nas contas, oferecendo uma visão renovada de como a + lógica personalizada pode ser usada para reagir a eventos baseados em + conta, como o recebimento de transações. Os Hooks são desenvolvidos + atualmente em C, mas o suporte a JavaScript já está desenvolvido e em + testes, com outras linguagens de programação também no escopo. Isso + coloca o mundo dos contratos inteligentes ao alcance de milhões de + desenvolvedores, sem uma curva de aprendizado íngreme. +

+
+
+ Ilustração da topologia de rede do Xahau +
+
+ + +
+
+ +
+
+
+ + +
+

+ O Protocolo +

+ + +
+
+ Tecnologia +

+ Qual é a tecnologia +
+ por trás do Xahau? +

+

+ O Xahau é uma tecnologia comprovada, sendo uma evolução do código do + XRP Ledger, aprimorada com contrato inteligente, programabilidade + baseada em conta (Hooks) e suporte igualitário para moedas emitidas + em recursos nativos como escrows e canais de pagamento. +

+

+ O Xahau, assim como o XRPL, utiliza um mecanismo de Consenso Federado + para validar transações. As transações são confirmadas através de um + protocolo de consenso, no qual servidores independentes designados, + chamados de validadores, chegam a um acordo sobre a ordem e o resultado + das transações. Todos os servidores da rede processam cada transação + segundo as mesmas regras, e qualquer transação que siga o protocolo é + confirmada imediatamente. Todas as transações são públicas e + transparentes, e qualquer pessoa pode operar um validador. +

+

+ O Xahau introduz um jogo de governança para garantir uma abordagem + centrada na comunidade para a tomada de decisões da rede. Para + participar, os membros das mesas votam. Os temas discutidos neste + sistema de 2 camadas de mesas incluem assentos, hooks e recompensas. +

+
+
+ Ilustração da arquitetura do protocolo Xahau +
+
+
+ + +
+

+ A Moeda +

+ + +
+
+ Economia +

+ XAH, a moeda +
+ nativa do Xahau +

+

+ A moeda nativa do Xahau é chamada XAH e é uma moeda inflacionária. + Toda conta pode participar do ajuste de saldo interagindo com um Hook + na conta genesis, acumulando mensalmente 4% do saldo da conta. +

+

+ O XAH é usado para prevenir spam na rede, adicionando um custo às + transações. Transações normais custam frações de um XAH, enquanto o + custo aumenta ao interagir com Hooks. O XAH também é exigido como + saldo bloqueado, ou reserva, para possuir uma conta, objetos ou + armazenar dados para consumo de contratos inteligentes. +

+

+ Por causa dos Hooks, a taxa de queima do XAH é maior em comparação + com o XRPL. Para projetos que dependem de Hooks para lógica + personalizada, recomenda-se manter um saldo de XAH capaz de gerar um + ajuste de saldo mensal para cobrir as taxas. +

+
+
+ Ilustração da moeda XAH +
+
+
+
+ + diff --git a/src/components/XahauConnect.astro b/src/components/XahauConnect.astro index e7645ca..e7b5996 100644 --- a/src/components/XahauConnect.astro +++ b/src/components/XahauConnect.astro @@ -12,9 +12,10 @@ */ import connectData from '../data/connect.json' +import { normalizeLocale } from '../utils/localizedHref' -type Locale = 'en' | 'es' | 'ja' -const locale = (Astro.currentLocale ?? 'en') as Locale +type Locale = 'en' | 'es' | 'ja' | 'pt-BR' +const locale = normalizeLocale(Astro.currentLocale ?? 'en') as Locale // ── Date-based split (build time) ──────────────────────────────────────────── const today = new Date() @@ -114,6 +115,33 @@ const ui = { contact_on_x: '(X)', contact_or: 'またはメール:', }, + 'pt-BR': { + page_title: 'Xahau Connect', + page_sub: + 'Eventos profissionais de blockchain para discussões sérias e inovação', + chip_inftf: 'Por INFTF', + chip_location: 'Madri, Espanha', + chip_upcoming: (n: number) => (n === 1 ? '1 Próximo' : `${n} Próximos`), + lbl_upcoming: 'Próximos Eventos', + lbl_past: 'Eventos Anteriores', + lbl_about: 'Sobre', + lbl_contact: 'Participe', + no_upcoming: 'Nenhum evento agendado no momento.', + no_upcoming_sub: + 'Siga @XahauNetwork ou envie um e-mail para connect@xahau.org para receber comunicados.', + location_view: 'Ver no mapa', + about_title: 'Sobre o Xahau Connect', + mission_title: 'Nossa Missão', + contact_title: 'Palestrantes, Patrocinadores e Contato', + contact_body: + 'Agradecemos aos nossos parceiros que apoiam a missão do Xahau Connect de promover o debate profissional sobre blockchain. Detalhes sobre parceiros e palestrantes serão divulgados conforme confirmarmos a participação nos próximos eventos.', + contact_speaking: 'Propostas de palestras e patrocínio:', + contact_updates: 'Inscreva-se para receber novidades:', + contact_follow: 'Siga', + contact_follow2: 'e', + contact_on_x: 'no X', + contact_or: 'ou envie um e-mail para', + } } const t = ui[locale] --- diff --git a/src/components/XahauEcosystem.astro b/src/components/XahauEcosystem.astro index 198c584..d68022c 100644 --- a/src/components/XahauEcosystem.astro +++ b/src/components/XahauEcosystem.astro @@ -11,6 +11,7 @@ */ import { Image } from 'astro:assets' +import { normalizeLocale } from '../utils/localizedHref' import logoAfricanUnion from '../assets/ecosystem-logos/AUPF.png' import logoBithomp from '../assets/ecosystem-logos/bithomp.png' import logoBitmart from '../assets/ecosystem-logos/bitmart.png' @@ -44,7 +45,7 @@ const logoMap: Record = { quantoz: logoQuantoz, } -type Locale = 'en' | 'es' | 'ja' +type Locale = 'en' | 'es' | 'ja' | 'pt-br' const locale = (Astro.currentLocale ?? 'en') as Locale // Projects sorted alphabetically at build time; others keep editorial order. diff --git a/src/components/XahauFeaturesPtBR.astro b/src/components/XahauFeaturesPtBR.astro new file mode 100644 index 0000000..09a12ae --- /dev/null +++ b/src/components/XahauFeaturesPtBR.astro @@ -0,0 +1,729 @@ +--- +/** + * XahauFeatures.astro — Hand-crafted editorial layout + * + * No JSON, no loops. Each feature section is individually composed. + * Three thematic acts: Protocol · Finance · Governance. + * Statement openers + varied pair/trio detail sections. + * + * Edit content directly in this file. + * For ES/JA: duplicate this file and translate in-place. + */ + +import consensusGraphic from '../assets/enterprise/consensus.svg' +import globalGraphic from '../assets/enterprise/global.svg' +import hooksGraphic from '../assets/enterprise/hooks.svg' + +interface Props { + lang?: string +} +const { lang = 'pt-BR' } = Astro.props +--- + +
+ +
+
+

Funcionalidades

+

Tecnologia comprovada com uma abordagem inovadora

+
+
+ 10+ Funcionalidades de Protocolo + DEX Nativa + NFTs Integrados + Sem Overhead em Tempo de Execução +
+
+ + +
+

+ Camada de Protocolo +

+ + +
+
+ Programabilidade +

+ Hooks: Lógica de +
+ Contrato Inteligente +
+ no Nível da Conta +

+

+ O Xahau introduz os Hooks — uma forma única de lógica de contrato inteligente + no ledger que é executada diretamente no nível da conta. Ao contrário dos contratos + inteligentes na maioria das blockchains, que exigem interação com endereços de + contrato externos, os Hooks são programas leves embutidos nas próprias contas dos + usuários. Esses Hooks podem inspecionar, modificar ou rejeitar automaticamente + qualquer transação envolvendo aquela conta, sem necessidade de chamadas de função + explícitas. +

+

+ Por serem executados de forma inline e dentro do consenso, os Hooks oferecem + programabilidade em tempo real com overhead mínimo. Isso permite casos de uso + poderosos, como rejeitar transferências de tokens não autorizadas, disparar ações + em depósitos ou implementar lógica de conformidade — tudo sem desacelerar a rede. + Os Hooks representam um novo paradigma de segurança e programabilidade, tornando + as contas participantes ativas na lógica de transações. +

+
+
+ Hooks smart contract logic illustration +
+
+ + +
+
+ Exchange +

Offers: Exchange Descentralizado (DEX) Nativo

+

+ O Xahau inclui um sistema nativo de Offers, que alimenta uma exchange + descentralizada integrada ao ledger. Os usuários podem criar entradas de Offer + para comprar ou vender ativos (como tokens ou moedas emitidas) diretamente na + rede, e essas ofertas são automaticamente combinadas pelo livro de ordens do + protocolo. +

+

+ Ao contrário de muitas blockchains que exigem contratos inteligentes ou + plataformas externas para negociação, a DEX do Xahau é uma funcionalidade de + primeira classe do ledger. Essa exchange no ledger oferece liquidação rápida e + taxas baixas, tornando a negociação de ativos fluida para usuários e aplicações. +

+
+ +
+ Economia +

Taxas Baixas com Queima de Taxas

+

+ O Xahau mantém taxas de transação consistentemente baixas, com um modelo + integrado de queima de taxas que reduz spam e recompensa a saúde de longo prazo + da rede. Cada transação paga uma taxa mínima em XAH, e uma parte dessa taxa é + permanentemente destruída — criando um efeito deflacionário ao longo do tempo. +

+

+ Essa abordagem desencoraja o abuso da rede enquanto preserva a acessibilidade, + especialmente para aplicações de alto volume ou sensíveis a custos. Ao contrário + de modelos inflacionários ou taxas estilo leilão, o Xahau oferece + previsibilidade e alinhamento econômico para todos os usuários. +

+
+
+ + +
+ Infraestrutura +

Rápido, Verde e Escalável

+
+

+ Construído sobre uma versão aprimorada do protocolo de consenso do XRPL, o + Xahau oferece finalidade rápida, baixo consumo de energia e escalabilidade + confiável. As transações são confirmadas em segundos, sem mineração e com + requisitos mínimos de hardware. O resultado é uma rede capaz de atender a casos + de uso financeiros e empresariais do mundo real sem comprometer o meio ambiente + ou a experiência do usuário. +

+

+ A arquitetura do Xahau é ideal para sistemas de pagamento globais, plataformas + de ativos tokenizados ou aplicações de alto volume onde desempenho e + sustentabilidade são inegociáveis. +

+
+
+
+ + +
+

+ Primitivas Financeiras +

+ + +
+
+ Pagamentos +

+ Pagamentos: +
+ Transferências Multi-Ativo +
+ & Canais +

+

+ A funcionalidade de Pagamentos do Xahau é projetada para facilitar a + transferência de valor de forma rápida e flexível pela rede. De forma única, o + Xahau (como o XRPL) suporta pagamentos multi-ativo por meio de um sistema de + linhas de confiança e moedas emitidas. Usando uma transação TrustSet, duas + partes podem estabelecer uma linha de confiança para transacionar em um ativo + personalizado ou IOU, habilitando suporte nativo a múltiplas moedas ou tokens + sem necessidade de contratos inteligentes. +

+

+ Isso significa que empresas podem emitir stablecoins ou tokens no Xahau e os + usuários podem enviá-los ou trocá-los nativamente. O conjunto de Pagamentos + também inclui funcionalidades avançadas como Pré-autorização de Depósito, que + permite a uma conta criar uma lista de permissão de quem pode enviar fundos, + adicionando segurança contra transações indesejadas. +

+

+ Além disso, o Xahau suporta canais de pagamento para escalabilidade. Os canais + de pagamento permitem que duas partes realizem transações rápidas e de alto + volume fora do ledger e depois liquidem o resultado líquido na blockchain. Com + transações como PaymentChannelCreate, Fund e Claim, o Xahau viabiliza + micropagamentos ou pagamentos em streaming que são assegurados pelo ledger sem + congestioná-lo. +

+
+
+ Global network infrastructure illustration +
+
+ + +
+
+ Controle de Ativos +

Controle de Tokens e Ativos por Design

+

+ O Xahau oferece a emissores e usuários controle granular sobre tokens e linhas + de confiança. Funcionalidades como TrustSet, Clawback, Freeze e Autorização de + Depósito permitem personalização completa de como os tokens podem ser usados ou + recebidos. Os ativos podem ser autorizados, bloqueados ou destruídos, tudo + aplicado no nível do protocolo. +

+

+ Isso torna o Xahau excepcionalmente adequado para instrumentos financeiros + regulados, stablecoins, programas de fidelidade ou cadeias de suprimentos + empresariais — qualquer cenário onde conformidade, segurança e precisão são + críticos. +

+
+ +
+ Economia +

Recompensas de Saldo: Rendimento Passivo Sem Staking

+

+ O Xahau oferece um sistema de Recompensas de Saldo que permite às contas + acumular valor passivamente apenas por manter ativos. Essas recompensas são + calculadas com base no saldo da conta e distribuídas por um mecanismo aplicado + pelo consenso, sem necessidade de staking, delegação ou contratos de terceiros. +

+

+ O mecanismo é alimentado por lógica no nível do protocolo e Hooks on-chain, + garantindo que as recompensas sejam automáticas, justas e sustentáveis. Ao + contrário do yield farming ou sistemas de staking em outras blockchains, o + modelo de recompensas do Xahau não exige que os usuários travem ativos ou + persigam estratégias complexas de DeFi — ele funciona nativamente, com + transparência e simplicidade. +

+
+
+ + +
+
+ Primitivas +

Escrow: Transferências Condicionais para Qualquer Ativo

+

+ O Xahau suporta escrow no ledger de tokens nativos e emitidos, permitindo + transferências condicionais seguras para uma ampla gama de casos de uso + empresariais e financeiros. Fundos ou tokens podem ser bloqueados com lógica de + liberação baseada em tempo ou condição, aplicada pela própria rede. +

+

+ Seja para construir um sistema de pagamento baseado em marcos, liquidação de + marketplace ou distribuição confiável de tokens, os escrows do Xahau oferecem + uma ferramenta simples mas poderosa — sem necessidade de contratos inteligentes + externos. O suporte nativo a ativos fungíveis e não fungíveis em escrow torna + esse um recurso excepcionalmente versátil. +

+
+ +
+ Pagamentos +

Remit: Transferências Nativas Entre Contas

+

+ O recurso Remit permite transações simplificadas e multi-operação entre contas + — ideal para fluxos de pagamento complexos ou de alto volume. Em vez de enviar + múltiplas instruções separadas, uma única transação Remit pode distribuir valor + para múltiplos destinatários ou acionar múltiplas alterações de saldo + atomicamente. +

+

+ Isso melhora a eficiência e a confiabilidade, especialmente para processadores + de pagamento, marketplaces ou aplicações que precisam realizar operações + agrupadas. Por ser integrado ao protocolo, o Remit garante desempenho + previsível, baixa latência e forte auditabilidade. +

+
+ +
+ Pagamentos +

Checks: Sistema de Pagamento Diferido

+

+ O Xahau suporta Checks, um sistema de pagamento diferido semelhante a emitir + cheques digitais na blockchain. Uma parte pode emitir um Check (promessa de + pagamento) que o destinatário pretendido pode sacar posteriormente ou cancelar + se necessário. Esse recurso permite transações seguras e flexíveis — por + exemplo, uma empresa pode emitir um pagamento que o receptor irá resgatar + quando determinadas condições forem atendidas. +

+

+ O ledger possui transações dedicadas para criar, sacar ou cancelar um cheque. + Poucas outras plataformas possuem esse tipo de instrumento de pagamento diferido + nativo; o sistema de checks do Xahau oferece uma camada extra de controle de + pagamentos, tudo aplicado pelas regras da rede sem necessidade de contratos + inteligentes personalizados. +

+
+
+
+ + +
+

+ Governança & Identidade +

+ + +
+
+ Governança +

+ Jogo de Governança: +
+ Coordenação Descentralizada +
+ com Propósito +

+

+ O Xahau apresenta um sistema de governança inovador sustentado pelo Jogo de + Governança, um mecanismo transparente e no ledger para propor, revisar e votar + em emendas. Os operadores de validadores (Governadores) participam diretamente + na modelagem do protocolo, enquanto também competem em um sistema de recompensas + estruturado com base em responsabilidade e engajamento. +

+

+ Este sistema garante que as atualizações do protocolo e as decisões de política + sejam abertas e participativas, não ditadas por uma entidade centralizada. Ele + combina os benefícios da coordenação empresarial estruturada com a transparência + e resiliência do consenso descentralizado. Ao gamificar a governança de forma + segura e com incentivos alinhados, o Xahau estabelece um novo padrão para + coordenação on-chain. +

+
+
+ Consensus mechanism illustration +
+
+ + +
+
+ NFTs +

URITokens: NFTs Nativos no Xahau

+

+ Os URITokens representam a abordagem do Xahau para tokens não fungíveis (NFTs), + implementados como parte nativa do ledger em vez de contratos inteligentes + separados. Um URIToken é um objeto de primeira classe no ledger, identificado + exclusivamente pela conta emissora e por um Identificador Uniforme de Recurso + (URI) que normalmente aponta para os metadados ou conteúdo do token. Apenas um + URIToken com um determinado URI pode existir por conta, garantindo verdadeira + unicidade para cada ativo digital. +

+

+ Esse padrão de NFT integrado significa que criadores podem cunhar, negociar ou + destruir NFTs com transações simples (ex.: URITokenMint, URITokenBuy, + URITokenBurn) sem implantar código personalizado. O emissor de um URIToken pode + até permitir que ele seja destruído (queimado) configurando uma flag, dando + flexibilidade na gestão dos NFTs. Ao integrar NFTs no nível do protocolo, o + Xahau torna a emissão e o gerenciamento de colecionáveis digitais ou + credenciais mais eficientes e seguros. +

+
+
+
+
+ + diff --git a/src/content/docs/br/docs/protocol-reference/ledger-data/ledger-objects-types/deposit-pre-auth.mdx b/src/content/docs/br/docs/protocol-reference/ledger-data/ledger-objects-types/deposit-pre-auth.mdx deleted file mode 100644 index 46ba0aa..0000000 --- a/src/content/docs/br/docs/protocol-reference/ledger-data/ledger-objects-types/deposit-pre-auth.mdx +++ /dev/null @@ -1,45 +0,0 @@ ---- -title: Deposit Pre Auth ---- -[\[Source\]](https://github.com/ripple/rippled/blob/master/src/ripple/protocol/impl/LedgerFormats.cpp#L172-L178) - -A `DepositPreauth` object tracks a preauthorization from one account to another. \[DepositPreauth transactions]\[] create these objects. - -This has no effect on the processing of transactions unless the account that provided the preauthorization requires Deposit Authorization. In that case, the account that was preauthorized can send payments and other transactions directly to the account that provided the preauthorization. Preauthorizations are one-directional and have no effect on payments going the opposite direction. - -### Example JSON - -```json -{ - "LedgerEntryType": "DepositPreauth", - "Account": "rsUiUMpnrgxQp24dJYZDhmV4bE3aBtQyt8", - "Authorize": "rEhxGqkqPPSxQ3P25J66ft5TwpzV14k2de", - "Flags": 0, - "OwnerNode": "0000000000000000", - "PreviousTxnID": "3E8964D5A86B3CD6B9ECB33310D4E073D64C865A5B866200AD2B7E29F8326702", - "PreviousTxnLgrSeq": 7, - "index": "4A255038CC3ADCC1A9C91509279B59908251728D0DAADB248FFE297D0F7E068C" -} -``` - -### Fields - -A `DepositPreauth` object has the following fields: - -| Field | JSON Type | \[Internal Type]\[] | Required? | Description | -| ------------------- | --------- | ------------------- | --------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `Account` | String | Account | Yes | The account that granted the preauthorization. (The destination of the preauthorized payments.) | -| `Authorize` | String | Account | Yes | The account that received the preauthorization. (The sender of the preauthorized payments.) | -| `Flags` | Number | UInt32 | Yes | A bit-map of boolean flags enabled for this object. Currently, the protocol defines no flags for `DepositPreauth` objects. The value is always `0`. | -| `LedgerEntryType` | String | UInt16 | Yes | The value `0x0070`, mapped to the string `DepositPreauth`, indicates that this is a DepositPreauth object. | -| `OwnerNode` | String | UInt64 | Yes | A hint indicating which page of the sender's owner directory links to this object, in case the directory consists of multiple pages. **Note:** The object does not contain a direct link to the owner directory containing it, since that value can be derived from the `Account`. | -| `PreviousTxnID` | String | Hash256 | Yes | The identifying hash of the transaction that most recently modified this object. | -| `PreviousTxnLgrSeq` | Number | UInt32 | Yes | The \[index of the ledger]\[Ledger Index] that contains the transaction that most recently modified this object. | - -### DepositPreauth ID Format - -The ID of a `DepositPreauth` object is the \[SHA-512Half]\[] of the following values, concatenated in order: - -* The DepositPreauth space key (`0x0070`) -* The AccountID of the owner of this object (the sender of the \[DepositPreauth transaction]\[] that created this object; in other words, the one that granted the preauthorization) -* The AccountID of the preauthorized account (the `Authorized` field of the \[DepositPreauth transaction]\[] that created this object; in other words, the one that received the preauthorization) diff --git a/src/content/docs/br/docs/protocol-reference/ledger-data/ledger-objects-types/directory-node.mdx b/src/content/docs/br/docs/protocol-reference/ledger-data/ledger-objects-types/directory-node.mdx deleted file mode 100644 index 3a8c266..0000000 --- a/src/content/docs/br/docs/protocol-reference/ledger-data/ledger-objects-types/directory-node.mdx +++ /dev/null @@ -1,96 +0,0 @@ ---- -title: Directory Node ---- -[\[Source\]](https://github.com/ripple/rippled/blob/5d2d88209f1732a0f8d592012094e345cbe3e675/src/ripple/protocol/impl/LedgerFormats.cpp#L44) - -The `DirectoryNode` object type provides a list of links to other objects in the ledger's state tree. A single conceptual _Directory_ takes the form of a doubly linked list, with one or more DirectoryNode objects each containing up to 32 IDs of other objects. The first object is called the root of the directory, and all objects other than the root object can be added or deleted as necessary. - -There are two kinds of Directories: - -* **Owner directories** list other objects owned by an account, such as `RippleState` (trust line) or `Offer` objects. -* **Offer directories** list the offers available in the decentralized exchange. A single Offer directory contains all the offers that have the same exchange rate for the same token (currency code and issuer). - -### Example JSON - -_Offer Directory_ - -```json -{ - "ExchangeRate": "4F069BA8FF484000", - "Flags": 0, - "Indexes": [ - "AD7EAE148287EF12D213A251015F86E6D4BD34B3C4A0A1ED9A17198373F908AD" - ], - "LedgerEntryType": "DirectoryNode", - "RootIndex": "1BBEF97EDE88D40CEE2ADE6FEF121166AFE80D99EBADB01A4F069BA8FF484000", - "TakerGetsCurrency": "0000000000000000000000000000000000000000", - "TakerGetsIssuer": "0000000000000000000000000000000000000000", - "TakerPaysCurrency": "0000000000000000000000004A50590000000000", - "TakerPaysIssuer": "5BBC0F22F61D9224A110650CFE21CC0C4BE13098", - "index": "1BBEF97EDE88D40CEE2ADE6FEF121166AFE80D99EBADB01A4F069BA8FF484000" -} -``` - -_Owner Directory_ - -```json -{ - "Flags": 0, - "Indexes": [ - "AD7EAE148287EF12D213A251015F86E6D4BD34B3C4A0A1ED9A17198373F908AD", - "E83BBB58949A8303DF07172B16FB8EFBA66B9191F3836EC27A4568ED5997BAC5" - ], - "ReferenceCount": "1", - "LedgerEntryType": "DirectoryNode", - "Owner": "rpR95n1iFkTqpoy1e878f4Z1pVHVtWKMNQ", - "RootIndex": "193C591BF62482468422313F9D3274B5927CA80B4DD3707E42015DD609E39C94", - "index": "193C591BF62482468422313F9D3274B5927CA80B4DD3707E42015DD609E39C94" -} -``` - -### Fields - -| Name | JSON Type | \[Internal Type]\[] | Required? | Description | -| ------------------- | --------- | ------------------- | --------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `Owner` | String | AccountID | No | (Owner Directories only) The address of the account that owns the objects in this directory. | -| `TakerGetsCurrency` | String | Hash160 | No | (Offer Directories only) The currency code of the `TakerGets` amount from the offers in this directory. | -| `TakerGetsIssuer` | String | Hash160 | No | (Offer Directories only) The issuer of the `TakerGets` amount from the offers in this directory. | -| `TakerPaysCurrency` | String | Hash160 | No | (Offer Directories only) The currency code of the `TakerPays` amount from the offers in this directory. | -| `TakerPaysIssuer` | String | Hash160 | No | (Offer Directories only) The issuer of the `TakerPays` amount from the offers in this directory. | -| `ExchangeRate` | String | UInt64 | No | (Offer Directories only) **DEPRECATED**. Do not use. | -| `ReferenceCount` | String | UInt64 | No | Reference counting in the ledger reduces storage burden and fees by allowing multiple installations of the same Hook to point to the same object on the ledger, only removing it when no accounts have the Hook installed. | -| `Indexes` | Array | Vector256 | Yes | The contents of this Directory: an array of IDs of other objects. | -| `IndexNext` | Number | UInt64 | No | If this Directory consists of multiple pages, this ID links to the next object in the chain, wrapping around at the end. | -| `IndexPrevious` | Number | UInt64 | No | If this Directory consists of multiple pages, this ID links to the previous object in the chain, wrapping around at the beginning. | -| `NFTokenID` | String | Hash256 | No | Unused | - -### Directory ID Formats - -There are three different formulas for creating the ID of a DirectoryNode, depending on which of the following the DirectoryNode represents: - -* The first page (also called the root) of an Owner Directory -* The first page of an Offer Directory -* Later pages of either type - -**The first page of an Owner Directory** has an ID that is the \[SHA-512Half]\[] of the following values, concatenated in order: - -* The Owner Directory space key (`0x004F`) -* The AccountID from the `Owner` field. - -**The first page of an Offer Directory** has a special ID: the higher 192 bits define the order book, and the remaining 64 bits define the exchange rate of the offers in that directory. (The ID is big-endian, so the book is in the more significant bits, which come first, and the quality is in the less significant bits which come last.) - -This provides a way to iterate through an order book from best offers to worst. Specifically: the first 192 bits are the first 192 bits of the \[SHA-512Half]\[] of the following values, concatenated in order: - -* The Book Directory space key (`0x0042`) -* The 160-bit currency code from the `TakerPaysCurrency` -* The 160-bit currency code from the `TakerGetsCurrency` -* The AccountID from the `TakerPaysIssuer` -* The AccountID from the `TakerGetsIssuer` - -The lower 64 bits of an Offer Directory's ID represent the `TakerPays` amount divided by `TakerGets` amount from the offer(s) in that directory as a 64-bit number in Xahau's internal amount format. - -**If the DirectoryNode is not the first page in the Directory** (regardless of whether it is an Owner Directory or an Offer Directory), then it has an ID that is the \[SHA-512Half]\[] of the following values, concatenated in order: - -* The DirectoryNode space key (`0x0064`) -* The ID of the root DirectoryNode -* The page number of this object. (Since 0 is the root DirectoryNode, this value is an integer 1 or higher.) diff --git a/src/content/docs/br/docs/protocol-reference/ledger-data/ledger-objects-types/emitted-txn.mdx b/src/content/docs/br/docs/protocol-reference/ledger-data/ledger-objects-types/emitted-txn.mdx deleted file mode 100644 index 42d5b08..0000000 --- a/src/content/docs/br/docs/protocol-reference/ledger-data/ledger-objects-types/emitted-txn.mdx +++ /dev/null @@ -1,61 +0,0 @@ ---- -title: Emitted Txn ---- -_(Added by the \[Hooks amendment]\[].)_ - -An `EmittedTxn` object describes a transaction that has been emitted by a hook. The object contains all the fields of the original transaction, along with additional details about the emission. - -### Example JSON - -```json -{ - "Account": "rMPwD1b8dJUaqZHaBgEvFx4ENhtpPVvDsv", - "Amount": "999999", - "Destination": "rfCarbonVNTuXckX6x2qTMFmFSnm6dEWGX", - "DestinationTag": 0, - "EmitDetails": { - "EmitBurden": "1", - "EmitCallback": "rMPwD1b8dJUaqZHaBgEvFx4ENhtpPVvDsv", - "EmitGeneration": 1, - "EmitHookHash": "A9B5411F4A4368008B4736EEE47A34B0EFCBE74016B9B94CC6208FBC0BF5C0C2", - "EmitNonce": "6B2A27D6864903A479614581A79D18E8C8ADCE01E3440C6E993BE07298ADC2A4", - "EmitParentTxnID": "9763EB6B74AEF0F55F642243AD51F48490594434439002A6142E545E47318D56" - }, - "Fee": "31", - "FirstLedgerSequence": 7186113, - "Flags": 2147483648, - "LastLedgerSequence": 7186117, - "Sequence": 0, - "SigningPubKey": "000000000000000000000000000000000000000000000000000000000000000000", - "SourceTag": 0, - "TransactionType": "Payment" -} -``` - -### Fields - -An `EmittedTxn` object has the following fields: - -| Field | JSON Type | \[Internal Type]\[] | Required? | Description | -| ----------------- | --------- | ------------------- | --------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `EmitDetails` | Object | Object | Yes | Contains details about the emission. This includes the generation of the emission, the burden of the emission, the callback address, the hash of the hook that emitted the transaction, the nonce of the emission, and the ID of the parent transaction. | -| `TransactionType` | String | UInt16 | Yes | The type of the transaction that was emitted. | -| `Account` | String | Account | Yes | The account that emitted the transaction. | -| `Fee` | String | Amount | Yes | The fee paid for the transaction. | -| `Sequence` | Number | UInt32 | Yes | The sequence number of the transaction. | -| `SigningPubKey` | String | Blob | Yes | The public key that signs the transaction. | - -The `EmittedTxn` object also contains all the fields of the original transaction. - -### EmitDetails Fields - -An `EmitDetails` object has the following fields: - -| Field | JSON Type | \[Internal Type]\[] | Required? | Description | -| ----------------- | --------- | ------------------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `EmitGeneration` | Number | UInt32 | Yes | This field keeps track of a chain of emitted transactions that in turn cause other transactions to be emitted. | -| `EmitBurden` | String | UInt64 | Yes | This field is a heuristic for detecting forkbombs. Fees are based on burden and will increase exponentially when a chain reaction is started to prevent the network becoming overun by self-reinforcing emitted transactions. | -| `EmitParentTxnID` | String | Hash256 | Yes | The Hook Execution that emitted the transaction is connected to the Originating Transaction. Therefore this field is always required for the efficient tracing of behaviour. | -| `EmitNonce` | String | Hash256 | Yes | Emitted Transactions would be identical with the same fields and therefore have identical transaction hashes if a nonce were not used. However every node on the network needs to agree on the nonce, so a special Hook API to produce a deterministic nonce is made available. | -| `EmitCallback` | String | AccountID | No | This field is used by xahld when it needs to intitate a callback, such that it knows which Hook and account to initate the callback on. Callbacks happen when an emitted transaction is accepted into a ledger. | -| `EmitHookHash` | String | Hash256 | Yes | The SHA512H of the Hook at the time it was executed. | diff --git a/src/content/docs/br/docs/protocol-reference/ledger-data/ledger-objects-types/escrow.mdx b/src/content/docs/br/docs/protocol-reference/ledger-data/ledger-objects-types/escrow.mdx deleted file mode 100644 index 8c445cb..0000000 --- a/src/content/docs/br/docs/protocol-reference/ledger-data/ledger-objects-types/escrow.mdx +++ /dev/null @@ -1,67 +0,0 @@ ---- -title: Escrow ---- -[\[Source\]](https://github.com/ripple/rippled/blob/c6b6d82a754fe449cc533e18659df483c10a5c98/src/ripple/protocol/impl/LedgerFormats.cpp#L90-L101) - -_(Added by the \[Escrow amendment]\[].)_ - -The `Escrow` object type represents a held payment of XAH or IOU waiting to be executed or canceled. An \[EscrowCreate transaction]\[] creates an `Escrow` object in the ledger. A successful \[EscrowFinish]\[] or \[EscrowCancel]\[] transaction deletes the object. - -If the `Escrow` object has a [_crypto-condition_](https://tools.ietf.org/html/draft-thomas-crypto-conditions-02), the payment can only succeed if an EscrowFinish transaction provides the corresponding _fulfillment_ that satisfies the condition. (The only supported crypto-condition type is [PREIMAGE-SHA-256](https://tools.ietf.org/html/draft-thomas-crypto-conditions-02#section-8.1).) If the `Escrow` object has a `FinishAfter` time, the held payment can only execute after that time. - -An `Escrow` object is associated with two addresses: - -* The owner, who provides the XAH or IOU when creating the `Escrow` object. If the held payment is canceled, the XAH or IOU returns to the owner. -* The destination, where the XAH or IOU is paid when the held payment succeeds. The destination can be the same as the owner. - -### Example JSON - -```json -{ - "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "Amount": "10000", - "CancelAfter": 545440232, - "Condition": "A0258020A82A88B2DF843A54F58772E4A3861866ECDB4157645DD9AE528C1D3AEEDABAB6810120", - "Destination": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", - "DestinationTag": 23480, - "FinishAfter": 545354132, - "Flags": 0, - "LedgerEntryType": "Escrow", - "OwnerNode": "0000000000000000", - "DestinationNode": "0000000000000000", - "PreviousTxnID": "C44F2EB84196B9AD820313DBEBA6316A15C9A2D35787579ED172B87A30131DA7", - "PreviousTxnLgrSeq": 28991004, - "SourceTag": 11747, - "index": "DC5F3851D8A1AB622F957761E5963BC5BD439D5C24AC6AD7AC4523F0640244AC" -} -``` - -### Fields - -An `Escrow` object has the following fields: - -| Name | JSON Type | \[Internal Type]\[] | Required? | Description | -| ------------------- | ---------------- | ------------------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `Account` | String | AccountID | Yes | The address of the owner (sender) of this held payment. This is the account that provided the amount, and gets it back if the held payment is canceled. | -| `Amount` | String or Object | Amount | Yes | The amount to be delivered by the held payment. | -| `CancelAfter` | Number | UInt32 | No | The held payment can be canceled if and only if this field is present _and_ the time it specifies has passed. Specifically, this is specified as \[seconds since the Ripple Epoch]\[] and it "has passed" if it's earlier than the close time of the previous validated ledger. | -| `Condition` | String | Blob | No | A [PREIMAGE-SHA-256 crypto-condition](https://tools.ietf.org/html/draft-thomas-crypto-conditions-02#section-8.1), as hexadecimal. If present, the \[EscrowFinish transaction]\[] must contain a fulfillment that satisfies this condition. | -| `Destination` | String | AccountID | Yes | The destination address where the amount is paid if the held payment is successful. | -| `DestinationNode` | String | UInt64 | No | A hint indicating which page of the destination's owner directory links to this object, in case the directory consists of multiple pages. Omitted on escrows created before enabling the \[fix1523 amendment]\[]. | -| `DestinationTag` | Number | UInt32 | No | An arbitrary tag to further specify the destination for this held payment, such as a hosted recipient at the destination address. | -| `FinishAfter` | Number | UInt32 | No | The time, in \[seconds since the Ripple Epoch]\[], after which this held payment can be finished. Any \[EscrowFinish transaction]\[] before this time fails. (Specifically, this is compared with the close time of the previous validated ledger.) | -| `Flags` | Number | UInt32 | Yes | A bit-map of boolean flags enabled for this object. Currently, the protocol defines no flags for `Escrow` objects. The value is always `0`. | -| `LedgerEntryType` | String | UInt16 | Yes | The value `0x0075`, mapped to the string `Escrow`, indicates that this object is an `Escrow` object. | -| `OwnerNode` | String | UInt64 | Yes | A hint indicating which page of the owner directory links to this object, in case the directory consists of multiple pages. **Note:** The object does not contain a direct link to the owner directory containing it, since that value can be derived from the `Account`. | -| `PreviousTxnID` | String | Hash256 | Yes | The identifying hash of the transaction that most recently modified this object. | -| `PreviousTxnLgrSeq` | Number | UInt32 | Yes | The \[index of the ledger]\[Ledger Index] that contains the transaction that most recently modified this object. | -| `SourceTag` | Number | UInt32 | No | An arbitrary tag to further specify the source for this held payment, such as a hosted recipient at the owner's address. | -| `TransferRate` | Number | UInt32 | No | | - -### Escrow ID Format - -The ID of an `Escrow` object is the \[SHA-512Half]\[] of the following values, concatenated in order: - -* The Escrow space key (`0x0075`) -* The AccountID of the sender of the \[EscrowCreate transaction]\[] that created the `Escrow` object -* The Sequence number of the \[EscrowCreate transaction]\[] that created the `Escrow` object If the EscrowCreate transaction used a Ticket, use the `TicketSequence` value instead. diff --git a/src/content/docs/br/docs/protocol-reference/ledger-data/ledger-objects-types/fee-settings.mdx b/src/content/docs/br/docs/protocol-reference/ledger-data/ledger-objects-types/fee-settings.mdx deleted file mode 100644 index d5e163c..0000000 --- a/src/content/docs/br/docs/protocol-reference/ledger-data/ledger-objects-types/fee-settings.mdx +++ /dev/null @@ -1,64 +0,0 @@ ---- -title: Fee Settings ---- -[\[Source\]](https://github.com/ripple/rippled/blob/master/src/ripple/protocol/impl/LedgerFormats.cpp#L115-L120) - -The `FeeSettings` object type contains the current base transaction cost and reserve amounts as determined by fee voting. Each ledger version contains **at most one** `FeeSettings` object. - -### Example JSON - -Example `FeeSettings` object: - -```json -{ - "BaseFee": "000000000000000A", - "Flags": 0, - "LedgerEntryType": "FeeSettings", - "ReferenceFeeUnits": 10, - "ReserveBase": 20000000, - "ReserveIncrement": 5000000, - "XahauActivationLgrSeq": 0, - "NetworkID": 21337, - "AccountCount": 0, - "index": "4BC50C9B0D8515D3EAAE1E74B29A95804346C491EE1A95BF25E4AAB854A6A651" -} -``` - -### Fields - -The `FeeSettings` object has the following fields: - -| Name | JSON Type | \[Internal Type]\[] | Required? | Description | -| ----------------------- | --------- | ------------------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------ | -| `BaseFee` | String | UInt64 | Yes | The transaction cost of the "reference transaction" in drops of XAH as hexadecimal. | -| `Flags` | Number | UInt32 | Yes | A bit-map of boolean flags enabled for this object. Currently, the protocol defines no flags for `FeeSettings` objects. The value is always `0`. | -| `LedgerEntryType` | String | UInt16 | Yes | The value `0x0073`, mapped to the string `FeeSettings`, indicates that this object contains the ledger's fee settings. | -| `ReferenceFeeUnits` | Number | UInt32 | Yes | The `BaseFee` translated into "fee units". | -| `ReserveBase` | Number | UInt32 | Yes | The base reserve for an account in Xahau, as drops of XAH. | -| `ReserveIncrement` | Number | UInt32 | Yes | The incremental owner reserve for owning objects, as drops of XAH. | -| `XahauActivationLgrSeq` | Number | UInt32 | No | The ledger index where Xahau genesis was activated. | -| `AccountCount` | Number | UInt32 | No | The number of accounts created on the Xahau network. | -| `NetworkID` | Number | UInt32 | No | The ID of the network | - -**Warning:** The JSON format for this ledger object type is unusual. The `BaseFee`, `ReserveBase`, and `ReserveIncrement` indicate drops of XAH but _**not**_ in the usual format for \[specifying XAH]\[Currency Amount]. - -If the _\[XAHFees amendment]\[]_ is enabled, the `FeeSettings` object has these fields instead: - -| Name | JSON Type | \[Internal Type]\[] | Required? | Description | -| ----------------------- | --------- | ------------------- | --------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | -| `BaseFeeDrops` | String | Amount | Yes | The transaction cost of the "reference transaction" in drops of XAH. | -| `Flags` | Number | UInt32 | Yes | A bitmap of boolean flags enabled for this object. Currently, the protocol defines no flags for `FeeSettings` objects. The value is always `0`. | -| `LedgerEntryType` | String | UInt16 | Yes | The value `0x0073`, mapped to the string `FeeSettings`, indicates that this object contains the ledger's fee settings. | -| `ReserveBaseDrops` | String | Amount | Yes | The base reserve for an account in the XAH Ledger, as drops of XAH. | -| `ReserveIncrementDrops` | String | Amount | Yes | The incremental owner reserve for owning objects, as drops of XAH. | -| `XahauActivationLgrSeq` | Number | UInt32 | No | The ledger index where Xahau genesis was activated. | -| `AccountCount` | Number | UInt32 | No | The number of accounts created on the Xahau network. | -| `NetworkID` | Number | UInt32 | No | | - -### FeeSettings ID Format - -The `FeeSettings` object ID is the hash of the `FeeSettings` space key (`0x0065`) only. This means that the ID of the `FeeSettings` object in a ledger is always: - -``` -4BC50C9B0D8515D3EAAE1E74B29A95804346C491EE1A95BF25E4AAB854A6A651 -``` diff --git a/src/content/docs/br/docs/protocol-reference/ledger-data/ledger-objects-types/hook-definition.mdx b/src/content/docs/br/docs/protocol-reference/ledger-data/ledger-objects-types/hook-definition.mdx deleted file mode 100644 index 734463e..0000000 --- a/src/content/docs/br/docs/protocol-reference/ledger-data/ledger-objects-types/hook-definition.mdx +++ /dev/null @@ -1,58 +0,0 @@ ---- -title: Hook Definition ---- -[\[Source\]](https://github.com/ripple/rippled/blob/master/src/ripple/protocol/impl/LedgerFormats.cpp#L157-L170) - -_(Added by the \[Hooks amendment]\[].)_ - -A `HookDefinition` object describes a hook, which is a piece of code that is executed in response to certain transactions. The hook can modify the transaction, emit new transactions, or perform other actions. - -### Example JSON - -```json -{ - "HookHash": "49647F0D748DC3FE26BDACBC57F251AADEFFF391403EC9BF87C97F67E9977FB0", - "HookOn": "0000000000000000000000000000000000000000000000000000000000000000", - "HookNamespace": "0000000000000000000000000000000000000000000000000000000000000000", - "HookParameters": { - "HookParameter": { - "HookParameterName": "DEADBEEF", - "HookParameterValue": "DEADBEEF", - } - }, - "HookApiVersion": 1, - "CreateCode": "5463C6E08862A1FAE5EDAC12D70ADB16546A1F674930521295BC082494B62924", - "HookSetTxnID": "0000000000000000", - "ReferenceCount": "6", - "Fee": "100000000", - "HookCallbackFee": "200000000", - "LedgerEntryType": "HookDefinition", - "index": "49647F0D748DC3FE26BDACBC57F251AADEFFF391403EC9BF87C97F67E9977FB0" -} -``` - -### Fields - -A `HookDefinition` object has the following fields: - -| Field | JSON Type | \[Internal Type]\[] | Required? | Description | -| ----------------- | --------- | ------------------- | --------- | ----------------------------------------------------------------------------------------------------------------- | -| `HookHash` | String | Hash256 | Yes | The unique identifier of the hook. | -| `HookOn` | String | Hash256 | Yes | The transaction/s on which the hook is triggered. | -| `HookCanEmit` | String | Hash256 | No | The transaction/s which the hook can emit. | -| `HookNamespace` | String | Hash256 | Yes | The namespace of the hook. | -| `HookParameters` | String | Vector | Yes | The parameters that the hook accepts. | -| `HookApiVersion` | Number | UInt16 | Yes | The version of the hook API that the hook uses. | -| `CreateCode` | String | VL | Yes | The code that is executed when the hook is created. | -| `HookSetTxnID` | String | Hash256 | Yes | The ID of the transaction that set the hook. | -| `ReferenceCount` | String | UInt64 | Yes | The number of references to the hook. | -| `Fee` | String | Amount | Yes | The fee for executing the hook. | -| `HookCallbackFee` | String | Amount | No | The fee for executing the hook's callback function. | -| `LedgerEntryType` | String | UInt16 | Yes | The value `0x0043`, mapped to the string `HookDefinition`, indicates that this object is a HookDefinition object. | - -#### Hook Definition ID Format - -The ID of a `HookDefinition` object is the \[SHA-512Half]\[] of the following values, concatenated in order: - -* The HookDefinition space key (`0x0044`) -* The `HookHash` of the hook diff --git a/src/content/docs/br/docs/protocol-reference/ledger-data/ledger-objects-types/hook-state.mdx b/src/content/docs/br/docs/protocol-reference/ledger-data/ledger-objects-types/hook-state.mdx deleted file mode 100644 index e78faf6..0000000 --- a/src/content/docs/br/docs/protocol-reference/ledger-data/ledger-objects-types/hook-state.mdx +++ /dev/null @@ -1,42 +0,0 @@ ---- -title: Hook State ---- -[\[Source\]](https://github.com/ripple/rippled/blob/master/src/ripple/protocol/impl/LedgerFormats.cpp#L157-L170) - -_(Added by the \[Hooks amendment]\[].)_ - -A `HookState` object describes the state of a hook, which is a piece of code running on Xahau that can interact with transactions. The `HookState` object stores the state of the hook, which can be modified by the hook's code. - -### Example JSON - -```json -{ - "OwnerNode": "0000000000000000", - "HookStateKey": "49647F0D748DC3FE26BDACBC57F251AADEFFF391403EC9BF87C97F67E9977FB0", - "HookStateData": "46060241FABCF692D4D934BA2A6C4427CD4279083E38C77CBE642243E43BE291", - "LedgerEntryType": "HookState", - "index": "5463C6E08862A1FAE5EDAC12D70ADB16546A1F674930521295BC082494B62924" -} -``` - -### Fields - -A `HookState` object has the following fields: - -| Field | JSON Type | \[Internal Type]\[] | Required? | Description | -| ----------------- | --------- | ------------------- | --------- | ----------------------------------------------------------------------------------------------------------------------------- | -| `OwnerNode` | String | UInt64 | Yes | A hint indicating which page of the owner's directory links to this object, in case the directory consists of multiple pages. | -| `HookStateKey` | String | Hash256 | Yes | The key that uniquely identifies this hook state. | -| `HookStateData` | String | VL | Yes | The data stored by the hook. This can be any data that the hook's code decides to store. | -| `LedgerEntryType` | String | UInt16 | Yes | The value `0x0043`, mapped to the string `HookState`, indicates that this object is a HookState object. | - -#### HookState ID Format - -[\[Source\]](https://github.com/ripple/rippled/blob/master/src/ripple/protocol/impl/Indexes.cpp#L193-L200) - -The ID of a `HookState` object is the \[SHA-512Half]\[] of the following values, concatenated in order: - -* The HookState space key (`0x0076`) -* The AccountID of the account that owns the hook -* The `HookStateKey` of the `HookState` object -* The `HookNamespace` of the hook. diff --git a/src/content/docs/br/docs/protocol-reference/ledger-data/ledger-objects-types/hook.mdx b/src/content/docs/br/docs/protocol-reference/ledger-data/ledger-objects-types/hook.mdx deleted file mode 100644 index 7238950..0000000 --- a/src/content/docs/br/docs/protocol-reference/ledger-data/ledger-objects-types/hook.mdx +++ /dev/null @@ -1,57 +0,0 @@ ---- -title: Hook ---- -[\[Source\]](https://github.com/ripple/rippled/blob/master/src/ripple/protocol/impl/LedgerFormats.cpp#L157-L170) - -_(Added by the \[Hooks amendment]\[].)_ - -A `Hook` object describes a smart contract, which can be triggered by a transaction to perform predefined operations. The operations are defined by the `Hook` creator and can interact with the ledger and transactions. - -### Example JSON - -```json -{ - "Account": "rUn84CUYbNjRoTQ6mSW7BVJPSVJNLb1QLo", - "OwnerNode": "0000000000000000", - "PreviousTxnID": "5463C6E08862A1FAE5EDAC12D70ADB16546A1F674930521295BC082494B62924", - "PreviousTxnLgrSeq": 6, - "Hooks": [ - { - "HookHash": "46060241FABCF692D4D934BA2A6C4427CD4279083E38C77CBE642243E43BE291", - "HookParameters": [] - } - ], - "LedgerEntryType": "Hook", - "index": "49647F0D748DC3FE26BDACBC57F251AADEFFF391403EC9BF87C97F67E9977FB0" -} -``` - -### Fields - -A `Hook` object has the following fields: - -| Field | JSON Type | \[Internal Type]\[] | Required? | Description | -| ------------------- | --------- | ------------------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `Account` | String | Account | Yes | The account that created the Hook. | -| `OwnerNode` | String | UInt64 | Yes | A hint indicating which page of the owner's directory links to this object, in case the directory consists of multiple pages. | -| `PreviousTxnID` | String | Hash256 | Yes | The ID of the transaction that most recently modified this object. | -| `PreviousTxnLgrSeq` | Number | UInt32 | Yes | The \[ledger index]\[] of the ledger that contains the transaction that most recently modified this object. | -| `Hooks` | Array | Array | Yes | An array of hook objects. Each object has the following fields: `HookHash`, `CreateCode`, `HookGrants`, `HookNamespace`, `HookParameters`, `HookOn`, `HookApiVersion`, `Flags`. | -| `LedgerEntryType` | String | UInt16 | Yes | The value `0x0043`, mapped to the string `Hook`, indicates that this object is a Hook object. | - -### Hook Fields - -The following fields are used in the hook object: - -| Field | JSON Type | Internal Type | Description | -| ---------------- | --------- | ------------- | ------------------------------ | -| `HookHash` | String | Hash256 | The hash of the hook. | -| `HookParameters` | Array | Array | The parameters of the hook. | -| `Flags` | Number | UInt32 | Additional flags for the hook. | - -#### Hook ID Format - -The ID of a `Hook` object is the \[SHA-512Half]\[] of the following values, concatenated in order: - -* The Hook space key (`0x0048`) -* The AccountID of the sender of the \[SetHook transaction]\[] that created the `Hook` object diff --git a/src/content/docs/br/docs/protocol-reference/ledger-data/ledger-objects-types/import-vl-sequence.mdx b/src/content/docs/br/docs/protocol-reference/ledger-data/ledger-objects-types/import-vl-sequence.mdx deleted file mode 100644 index b068661..0000000 --- a/src/content/docs/br/docs/protocol-reference/ledger-data/ledger-objects-types/import-vl-sequence.mdx +++ /dev/null @@ -1,36 +0,0 @@ ---- -title: Import VL Sequence ---- -_(Added by the \[Import amendment]\[].)_ - -The `ImportVLSequence` helps track and validate the order of operations during the import process. It is used to ensure that the correct sequence of events occurs and to handle any discrepancies or updates to the dUNL on the "burning" ledger. - -### Example JSON - -```json -{ - "LedgerEntryType": "ImportVLSequence", - "Flags": 0, - "ImportSequence": 2023102101, - "PublicKey": "n9LigbVAi4pQc6pU2KJvQZV5wqJ8C3sVvZvBZUopchH8vqa6PEKy", - "index": "49647F0D748DC3FE26BDACBC57F251AADEFFF391403EC9BF87C97F67E9977FB0" -} -``` - -### Fields - -A `ImportVLSequence` object has the following fields: - -| Field | JSON Type | \[Internal Type]\[] | Required? | Description | -| ----------------- | --------- | ------------------- | --------- | --------------------------------------------------------------------------------------------------------------------- | -| `LedgerEntryType` | String | UInt16 | Yes | The value `0x0049`, mapped to the string `ImportVLSequence`, indicates that this object is a ImportVLSequence object. | -| `Flags` | Number | UInt32 | Yes | A bit-map of boolean flags. No flags are defined for the `ImportVLSequence` object type, so this value is always `0`. | -| `ImportSequence` | Number | UInt32 | Yes | The current sequence number of the dUNL list on the "burning" ledger. | -| `PublicKey` | String | Blob | Yes | The `PublicKey` of the dUNL list from the "burning" ledger. | - -#### Import VL Sequence ID Format - -The ID of a `ImportVLSequence` object is the \[SHA-512Half]\[] of the following values, concatenated in order: - -* The Import VL Sequence space key (`0x0049`) -* The Public Key of the Import Validator List diff --git a/src/content/docs/br/docs/protocol-reference/ledger-data/ledger-objects-types/ledger-hashes.mdx b/src/content/docs/br/docs/protocol-reference/ledger-data/ledger-objects-types/ledger-hashes.mdx deleted file mode 100644 index 02a2acb..0000000 --- a/src/content/docs/br/docs/protocol-reference/ledger-data/ledger-objects-types/ledger-hashes.mdx +++ /dev/null @@ -1,72 +0,0 @@ ---- -title: Ledger Hashes ---- -[\[Source\]](https://github.com/ripple/rippled/blob/master/src/ripple/protocol/impl/LedgerFormats.cpp#L104-L108) - -(Not to be confused with the \["ledger hash" string data type]\[Hash], which uniquely identifies a ledger version. This section describes the `LedgerHashes` ledger object type.) - -The `LedgerHashes` object type contains a history of prior ledgers that led up to this ledger version, in the form of their hashes. Objects of this ledger type are modified automatically when closing a ledger. (This is one of the only times a ledger's state data is modified without a transaction or pseudo-transaction.) The `LedgerHashes` objects exist to make it possible to look up a previous ledger's hash with only the current ledger version and at most one lookup of a previous ledger version. - -There are two kinds of `LedgerHashes` object. Both types have the same fields. Each ledger version contains: - -* Exactly one "recent history" `LedgerHashes` object -* A number of "previous history" `LedgerHashes` objects based on the current ledger index (that is, the length of the ledger history). Specifically, Xahau adds a new "previous history" object every 65536 ledger versions. - -**Note:** As an exception, a new genesis ledger has no `LedgerHashes` objects at all, because it has no ledger history. - -Example `LedgerHashes` object (trimmed for length): - -```json -{ - "LedgerEntryType": "LedgerHashes", - "Flags": 0, - "FirstLedgerSequence": 2, - "LastLedgerSequence": 33872029, - "Hashes": [ - "D638208ADBD04CBB10DE7B645D3AB4BA31489379411A3A347151702B6401AA78", - "254D690864E418DDD9BCAC93F41B1F53B1AE693FC5FE667CE40205C322D1BE3B", - "A2B31D28905E2DEF926362822BC412B12ABF6942B73B72A32D46ED2ABB7ACCFA", - "AB4014846DF818A4B43D6B1686D0DE0644FE711577C5AB6F0B2A21CCEE280140", - "3383784E82A8BA45F4DD5EF4EE90A1B2D3B4571317DBAC37B859836ADDE644C1", - ... (up to 256 ledger hashes) ... - ], - "index": "B4979A36CDC7F3D3D5C31A4EAE2AC7D7209DDA877588B9AFC66799692AB0D66B" -} -``` - -A `LedgerHashes` object has the following fields: - -| Name | JSON Type | \[Internal Type]\[] | Required? | Description | -| --------------------- | ---------------- | ------------------- | --------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `FirstLedgerSequence` | Number | UInt32 | Yes | **DEPRECATED** Do not use. (The "recent hashes" object of the production Xahau has the value `2` in this field as a result of a previous `rippled` software. That value gets carried forward as the "recent hashes" object is updated. New "previous history" objects do not have this field, nor do "recent hashes" objects in parallel networks started with more recent versions of `rippled`.) | -| `Flags` | Number | UInt32 | Yes | A bit-map of boolean flags enabled for this object. Currently, the protocol defines no flags for `LedgerHashes` objects. The value is always `0`. | -| `Hashes` | Array of Strings | Vector256 | Yes | An array of up to 256 ledger hashes. The contents depend on which sub-type of `LedgerHashes` object this is. | -| `LastLedgerSequence` | Number | UInt32 | Yes | The \[Ledger Index]\[] of the last entry in this object's `Hashes` array. | -| `LedgerEntryType` | String | UInt16 | Yes | The value `0x0068`, mapped to the string `LedgerHashes`, indicates that this object is a list of ledger hashes. | - -### Recent History LedgerHashes - -There is exactly one `LedgerHashes` object of the "recent history" sub-type in every ledger after the genesis ledger. This object contains the identifying hashes of the most recent 256 ledger versions (or fewer, if the ledger history has less than 256 ledgers total) in the `Hashes` array. Whenever a new ledger is closed, part of the process of closing it involves updating the "recent history" object with the hash of the previous ledger version this ledger version is derived from (also known as this ledger version's _parent ledger_). When there are more than 256 hashes, the oldest one is removed. - -Using the "recent history" `LedgerHashes` object of a given ledger, you can get the hash of any ledger index within the 256 ledger versions before the given ledger version. - -### Previous History LedgerHashes - -The "previous history" `LedgerHashes` entries collectively contain the hash of every 256th ledger version (also called "flag ledgers") in the full history of the ledger. When the child of a flag ledger closes, the flag ledger's hash is added to the `Hashes` array of the newest "previous history" `LedgerHashes` object. Every 65536 ledgers, `rippled` creates a new `LedgerHashes` object, so that each "previous history" object has the hashes of 256 flag ledgers. - -**Note:** The oldest "previous history" `LedgerHashes` object contains only 255 entries because the genesis ledger has a ledger index of 1, not 0. - -The "previous history" `LedgerHashes` objects act as a [skip list](https://en.wikipedia.org/wiki/Skip_list) so you can get the hash of any historical flag ledger from its index. From there, you can use that flag ledger's "recent history" object to get the hash of any other ledger. - -### LedgerHashes ID Formats - -There are two formats for `LedgerHashes` object IDs, depending on whether the object is a "recent history" sub-type or a "previous history" sub-type. - -The **"recent history"** `LedgerHashes` object has an ID that is the \[SHA-512Half]\[] of the `LedgerHashes` space key (`0x0073`). In other words, the "recent history" always has the ID `B4979A36CDC7F3D3D5C31A4EAE2AC7D7209DDA877588B9AFC66799692AB0D66B`. - -The **"previous history"** `LedgerHashes` objects have an ID that is the \[SHA-512Half]\[] of the following values, concatenated in order: - -* The `LedgerHashes` space key (`0x0073`) -* The 32-bit \[Ledger Index]\[] of a flag ledger in the object's `Hashes` array, divided by 65536. - - **Tip:** Dividing by 65536 keeps the most significant 16 bits, which are the same for all the flag ledgers listed in a "previous history" object, and only those ledgers. You can use this fact to look up the `LedgerHashes` object that contains the hash of any flag ledger. diff --git a/src/content/docs/br/docs/protocol-reference/ledger-data/ledger-objects-types/negative-unl.mdx b/src/content/docs/br/docs/protocol-reference/ledger-data/ledger-objects-types/negative-unl.mdx deleted file mode 100644 index 612e554..0000000 --- a/src/content/docs/br/docs/protocol-reference/ledger-data/ledger-objects-types/negative-unl.mdx +++ /dev/null @@ -1,53 +0,0 @@ ---- -title: Negative UNL ---- -_(Added by the \[NegativeUNL amendment]\[].)_ - -The `NegativeUNL` object type contains the current status of the Negative UNL, a list of trusted validators currently believed to be offline. - -Each ledger version contains **at most one** `NegativeUNL` object. If no validators are currently disabled or scheduled to be disabled, there is no `NegativeUNL` object in the ledger. - -### Example JSON - -```json -{ - "DisabledValidators": [ - { - "DisabledValidator": { - "FirstLedgerSequence": 1609728, - "PublicKey": "ED6629D456285AE3613B285F65BBFF168D695BA3921F309949AFCD2CA7AFEC16FE" - } - } - ], - "Flags": 0, - "LedgerEntryType": "NegativeUNL", - "index": "2E8A59AA9D3B5B186B0B9E0F62E6C02587CA74A4D778938E957B6357D364B244" -} -``` - -A `NegativeUNL` object has the following fields: - -| Name | JSON Type | \[Internal Type]\[] | Required? | Description | -| --------------------- | --------- | ------------------- | --------- | --------------------------------------------------------------------------------------------------------------------- | -| `DisabledValidators` | Array | Array | No | A list of `DisabledValidator` objects (see below), each representing a trusted validator that is currently disabled. | -| `Flags` | Number | UInt32 | Yes | A bit-map of boolean flags. No flags are defined for the NegativeUNL object type, so this value is always `0`. | -| `LedgerEntryType` | String | UInt16 | Yes | The value `0x004E`, mapped to the string `NegativeUNL`, indicates that this object is the Negative UNL. | -| `ValidatorToDisable` | String | Blob | No | The public key of a trusted validator that is scheduled to be disabled in the next flag ledger. | -| `ValidatorToReEnable` | String | Blob | No | The public key of a trusted validator in the Negative UNL that is scheduled to be re-enabled in the next flag ledger. | - -### DisabledValidator Objects - -Each `DisabledValidator` object represents one disabled validator. In JSON, a `DisabledValidator` object has one field, `DisabledValidator`, which in turn contains another object with the following fields: - -| Name | JSON Type | \[Internal Type]\[] | Description | -| --------------------- | --------- | ------------------- | ------------------------------------------------------------------------ | -| `FirstLedgerSequence` | Number | UInt32 | The \[ledger index]\[] when the validator was added to the Negative UNL. | -| `PublicKey` | String | Blob | The master public key of the validator, in hexadecimal. | - -### NegativeUNL ID Format - -The `NegativeUNL` object ID is the hash of the `NegativeUNL` space key (`0x004E`) only. This means that the ID of the `NegativeUNL` object in a ledger is always: - -``` -2E8A59AA9D3B5B186B0B9E0F62E6C02587CA74A4D778938E957B6357D364B244 -``` diff --git a/src/content/docs/br/docs/protocol-reference/ledger-data/ledger-objects-types/offer.mdx b/src/content/docs/br/docs/protocol-reference/ledger-data/ledger-objects-types/offer.mdx deleted file mode 100644 index 3cce2ed..0000000 --- a/src/content/docs/br/docs/protocol-reference/ledger-data/ledger-objects-types/offer.mdx +++ /dev/null @@ -1,68 +0,0 @@ ---- -title: Offer ---- -[\[Source\]](https://github.com/ripple/rippled/blob/5d2d88209f1732a0f8d592012094e345cbe3e675/src/ripple/protocol/impl/LedgerFormats.cpp#L57) - -The `Offer` ledger entry describes an Offer to exchange currencies in Xahau's decentralized exchange. (In finance, this is more traditionally known as an _order_.) An \[OfferCreate transaction]\[] only creates an `Offer` entry in the ledger when the Offer cannot be fully executed immediately by consuming other Offers already in the ledger. - -An Offer can become unfunded through other activities in the network while remaining in the ledger. When processing transactions, the network automatically prunes any unfunded Offers that those transactions come across. (Otherwise, unfunded Offers remain because _only_ transactions can change the ledger state.) - -### Example JSON - -```json -{ - "Account": "rBqb89MRQJnMPq8wTwEbtz4kvxrEDfcYvt", - "BookDirectory": "ACC27DE91DBA86FC509069EAF4BC511D73128B780F2E54BF5E07A369E2446000", - "BookNode": "0000000000000000", - "Flags": 131072, - "LedgerEntryType": "Offer", - "OwnerNode": "0000000000000000", - "PreviousTxnID": "F0AB71E777B2DA54B86231E19B82554EF1F8211F92ECA473121C655BFC5329BF", - "PreviousTxnLgrSeq": 14524914, - "Sequence": 866, - "TakerGets": { - "currency": "XAG", - "issuer": "r9Dr5xwkeLegBeXq6ujinjSBLQzQ1zQGjH", - "value": "37" - }, - "TakerPays": "79550000000", - "index": "96F76F27D8A327FC48753167EC04A46AA0E382E6F57F32FD12274144D00F1797" -} -``` - -### Fields - -An `Offer` object has the following fields: - -| Name | JSON Type | \[Internal Type]\[] | Required? | Description | -| ------------------- | ---------------- | ------------------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `Account` | String | AccountID | Yes | The address of the account that owns this Offer. | -| `BookDirectory` | String | Hash256 | Yes | The ID of the Offer Directory that links to this Offer. | -| `BookNode` | String | UInt64 | Yes | A hint indicating which page of the offer directory links to this object, in case the directory consists of multiple pages. | -| `Expiration` | Number | UInt32 | No | Indicates the time after which this Offer is considered unfunded. See \[Specifying Time]\[] for details. | -| `Flags` | Number | UInt32 | Yes | A bit-map of boolean flags enabled for this offer. | -| `LedgerEntryType` | String | UInt16 | Yes | The value `0x006F`, mapped to the string `Offer`, indicates that this object describes an Offer. | -| `OwnerNode` | String | UInt64 | Yes | A hint indicating which page of the owner directory links to this object, in case the directory consists of multiple pages. **Note:** The offer does not contain a direct link to the owner directory containing it, since that value can be derived from the `Account`. | -| `PreviousTxnID` | String | Hash256 | Yes | The identifying hash of the transaction that most recently modified this object. | -| `PreviousTxnLgrSeq` | Number | UInt32 | Yes | The \[index of the ledger]\[Ledger Index] that contains the transaction that most recently modified this object. | -| `Sequence` | Number | UInt32 | Yes | The `Sequence` value of the \[OfferCreate]\[] transaction that created this `Offer` object. Used in combination with the `Account` to identify this Offer. | -| `TakerPays` | String or Object | Amount | Yes | The remaining amount and type of currency requested by the Offer creator. | -| `TakerGets` | String or Object | Amount | Yes | The remaining amount and type of currency being provided by the Offer creator. | - -### Offer Flags - -There are several options that can be either enabled or disabled when an \[OfferCreate transaction]\[] creates an offer object. In the ledger, flags are represented as binary values that can be combined with bitwise-or operations. The bit values for the flags in the ledger are different than the values used to enable or disable those flags in a transaction. Ledger flags have names that begin with **`lsf`**. - -`Offer` objects can have the following flag values: - -
Flag NameHex ValueDecimal ValueCorresponding OfferCreate FlagDescription
lsfPassive0x0001000065536tfPassiveThe object was placed as a passive Offer. This has no effect on the object in the ledger.
lsfSell0x00020000131072tfSellThe object was placed as a sell Offer. This has no effect on the object in the ledger (because tfSell only matters if you get a better rate than you asked for, which cannot happen after the object enters the ledger).
- -### Offer ID Format - -The ID of an `Offer` object is the \[SHA-512Half]\[] of the following values, concatenated in order: - -* The Offer space key (`0x006F`) -* The AccountID of the account placing the Offer -* The Sequence number of the \[OfferCreate transaction]\[] that created the Offer. - - If the OfferCreate transaction used a Ticket, use the `TicketSequence` value instead. diff --git a/src/content/docs/br/docs/protocol-reference/ledger-data/ledger-objects-types/pay-channel.mdx b/src/content/docs/br/docs/protocol-reference/ledger-data/ledger-objects-types/pay-channel.mdx deleted file mode 100644 index e7ec5c6..0000000 --- a/src/content/docs/br/docs/protocol-reference/ledger-data/ledger-objects-types/pay-channel.mdx +++ /dev/null @@ -1,99 +0,0 @@ ---- -title: Pay Channel ---- -[\[Source\]](https://github.com/ripple/rippled/blob/c0a0b79d2d483b318ce1d82e526bd53df83a4a2c/src/ripple/protocol/impl/LedgerFormats.cpp#L180-L198) - -_(Added by the \[PayChan amendment]\[].)_ - -The `PayChannel` object type represents a payment channel. Payment channels enable small, rapid off-ledger payments of XAH or IOU that can be later reconciled with the consensus ledger. A payment channel holds a balance of XAH or IOU that can only be paid out to a specific destination address until the channel is closed. Any unspent XAH or IOU is returned to the channel's owner (the source address that created and funded it) when the channel closes. - -The \[PaymentChannelCreate transaction]\[] type creates a `PayChannel` object. The \[PaymentChannelFund]\[] and \[PaymentChannelClaim transaction]\[] types modify existing `PayChannel` objects. - -When a payment channel expires, at first it remains on the ledger, because only new transactions can modify ledger contents. Transaction processing automatically closes a payment channel when any transaction accesses it after the expiration. To close an expired channel and return the unspent XAH or IOU to the owner, some addresses must send a new PaymentChannelClaim or PaymentChannelFund transaction accessing the channel. - -For an example of using payment channels, see the Payment Channels Tutorial. - -### Example JSON - -```json -{ - "Account": "rBqb89MRQJnMPq8wTwEbtz4kvxrEDfcYvt", - "Destination": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "Amount": "4325800", - "Balance": "2323423", - "PublicKey": "32D2471DB72B27E3310F355BB33E339BF26F8392D5A93D3BC0FC3B566612DA0F0A", - "SettleDelay": 3600, - "Expiration": 536027313, - "CancelAfter": 536891313, - "SourceTag": 0, - "DestinationTag": 1002341, - "DestinationNode": "0000000000000000", - "Flags": 0, - "LedgerEntryType": "PayChannel", - "OwnerNode": "0000000000000000", - "PreviousTxnID": "F0AB71E777B2DA54B86231E19B82554EF1F8211F92ECA473121C655BFC5329BF", - "PreviousTxnLgrSeq": 14524914, - "index": "96F76F27D8A327FC48753167EC04A46AA0E382E6F57F32FD12274144D00F1797" -} -``` - -### Fields - -A `PayChannel` object has the following fields: - -| Name | JSON Type | \[Internal Type]\[] | Required? | Description | -| ------------------- | ---------------- | ------------------- | --------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `Account` | String | AccountID | Yes | The source address that owns this payment channel. This comes from the sending address of the transaction that created the channel. | -| `Amount` | String or Object | Amount | Yes | Total amount, that has been allocated to this channel. This includes amounts that has been paid to the destination address. This is initially set by the transaction that created the channel and can be increased if the source address sends a PaymentChannelFund transaction. | -| `Balance` | String or Object | Amount | Yes | Total amount already paid out by the channel. The difference between this value and the `Amount` field is how much amount can still be paid to the destination address with PaymentChannelClaim transactions. If the channel closes, the remaining difference is returned to the source address. | -| `CancelAfter` | Number | UInt32 | No | The immutable expiration time for this payment channel, in \[seconds since the Ripple Epoch]\[]. This channel is expired if this value is present and smaller than the previous ledger's `close_time` field. This is optionally set by the transaction that created the channel, and cannot be changed. | -| `Destination` | String | AccountID | Yes | The destination address for this payment channel. While the payment channel is open, this address is the only one that can receive the amount from the channel. This comes from the `Destination` field of the transaction that created the channel. | -| `DestinationTag` | Number | UInt32 | No | An arbitrary tag to further specify the destination for this payment channel, such as a hosted recipient at the destination address. | -| `DestinationNode` | String | UInt64 | No | A hint indicating which page of the destination's owner directory links to this object, in case the directory consists of multiple pages. Omitted on payment channels created before enabling the \[fixPayChanRecipientOwnerDir amendment]\[]. | -| `Expiration` | Number | UInt32 | No | The mutable expiration time for this payment channel, in \[seconds since the Ripple Epoch]\[]. The channel is expired if this value is present and smaller than the previous ledger's `close_time` field. See Setting Channel Expiration for more details. | -| `Flags` | Number | UInt32 | Yes | A bit-map of boolean flags enabled for this object. Currently, the protocol defines no flags for `PayChannel` objects. The value is always `0`. | -| `LedgerEntryType` | String | UInt16 | Yes | The value `0x0078`, mapped to the string `PayChannel`, indicates that this object is a payment channel object. | -| `OwnerNode` | String | UInt64 | Yes | A hint indicating which page of the source address's owner directory links to this object, in case the directory consists of multiple pages. | -| `PreviousTxnID` | String | Hash256 | Yes | The identifying hash of the transaction that most recently modified this object. | -| `PreviousTxnLgrSeq` | Number | UInt32 | Yes | The \[index of the ledger]\[Ledger Index] that contains the transaction that most recently modified this object. | -| `PublicKey` | String | Blob | Yes | Public key, in hexadecimal, of the key pair that can be used to sign claims against this channel. This can be any valid secp256k1 or Ed25519 public key. This is set by the transaction that created the channel and must match the public key used in claims against the channel. The channel source address can also send amounts from this channel to the destination without signed claims. | -| `SettleDelay` | Number | UInt32 | Yes | Number of seconds the source address must wait to close the channel if it still has any amount in it. Smaller values mean that the destination address has less time to redeem any outstanding claims after the source address requests to close the channel. Can be any value that fits in a 32-bit unsigned integer (0 to 2^32-1). This is set by the transaction that creates the channel. | -| `SourceTag` | Number | UInt32 | No | An arbitrary tag to further specify the source for this payment channel, such as a hosted recipient at the owner's address. | -| `TransferRate` | Number | UInt32 | No | | - -### Setting Channel Expiration - -The `Expiration` field of a payment channel is the mutable expiration time, in contrast to the immutable expiration time represented by the `CancelAfter` field. The expiration of a channel is always considered relative to the `close_time` field of the previous ledger. The `Expiration` field is omitted when a `PayChannel` object is created. There are several ways the `Expiration` field of a `PayChannel` object can be updated, which can be summarized as follows: a channel's source address can set the `Expiration` of the channel freely as long as the channel always remains open at least `SettleDelay` seconds after the first attempt to close it. - -#### Source Address - -The source address can set the `Expiration` directly with the PaymentChannelFund transaction type. The new value must not be earlier than whichever of the following values is earliest: - -* The current `Expiration` value (if one is set) -* The previous ledger's close time plus the `SettleDelay` of the channel - -In other words, the source address can always make the `Expiration` later if an expiration is already set. The source can make an `Expiration` value earlier or set an `Expiration` if one isn't currently set, as long as the new value is at least `SettleDelay` seconds in the future. If the source address attempts to set an invalid `Expiration` date, the transaction fails with the `temBAD_EXPIRATION` error code. - -The source address can also set the `Expiration` with the `tfClose` flag of the PaymentChannelClaim transaction type. If the flag is enabled, the ledger automatically sets the `Expiration` to whichever of the following values is earlier: - -* The current `Expiration` value (if one is set) -* The previous ledger's close time plus the `SettleDelay` of the channel - -The source address can remove the `Expiration` with the `tfRenew` flag of the PaymentChannelClaim transaction type. - -#### Destination Address - -The destination address cannot set the `Expiration` field. However, the destination address can use the PaymentChannelClaim's `tfClose` flag to close a channel immediately. - -#### Other Addresses - -If any other address attempts to set an `Expiration` field, the transaction fails with the `tecNO_PERMISSION` error code. However, if the channel is already expired, the transaction causes the channel to close and results in `tesSUCCESS` instead. - -### PayChannel ID Format - -The ID of a `PayChannel` object is the \[SHA-512Half]\[] of the following values, concatenated in order: - -* The PayChannel space key (`0x0078`) -* The AccountID of the source account -* The AccountID of the destination account -* The Sequence number of the \[PaymentChannelCreate transaction]\[] that created the channel If the PaymentChannelCreate transaction used a Ticket, use the `TicketSequence` value instead. diff --git a/src/content/docs/br/docs/protocol-reference/ledger-data/ledger-objects-types/ripple-state.mdx b/src/content/docs/br/docs/protocol-reference/ledger-data/ledger-objects-types/ripple-state.mdx deleted file mode 100644 index 5bb3e18..0000000 --- a/src/content/docs/br/docs/protocol-reference/ledger-data/ledger-objects-types/ripple-state.mdx +++ /dev/null @@ -1,120 +0,0 @@ ---- -title: Ripple State ---- -[\[Source\]](https://github.com/ripple/rippled/blob/5d2d88209f1732a0f8d592012094e345cbe3e675/src/ripple/protocol/impl/LedgerFormats.cpp#L70) - -The `RippleState` object type connects two accounts in a single currency. Conceptually, a `RippleState` object represents two trust lines between the accounts, one from each side. Each account can change the settings for its side of the `RippleState` object, but the balance is a single shared value. A trust line that is entirely in its default state is considered the same as a trust line that does not exist, so `rippled` deletes `RippleState` objects when their properties are entirely default. - -### High vs. Low Account - -There can only be one `RippleState` object per currency for any given pair of accounts. Since no account is privileged in Xahau, a `RippleState` object sorts account addresses numerically, to ensure a canonical form. Whichever address is numerically lower when decoded is deemed the "low account" and the other is the "high account". The net balance of the trust line is stored from the low account's perspective. - -The "issuer" for the balance in a trust line depends on whether the balance is positive or negative. If a `RippleState` object shows a positive balance, the high account is the issuer. If the balance is negative, the low account is the issuer. Often, the issuer has its limit set to 0 and the other account has a positive limit, but this is not reliable because limits can change without affecting an existing balance. - -### Example JSON - -```json -{ - "Balance": { - "currency": "USD", - "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", - "value": "-10" - }, - "Flags": 393216, - "HighLimit": { - "currency": "USD", - "issuer": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "value": "110" - }, - "HighNode": "0000000000000000", - "LedgerEntryType": "RippleState", - "LowLimit": { - "currency": "USD", - "issuer": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", - "value": "0" - }, - "LowNode": "0000000000000000", - "PreviousTxnID": "E3FE6EA3D48F0C2B639448020EA4F03D4F4F8FFDB243A852A0F59177921B4879", - "PreviousTxnLgrSeq": 14090896, - "LockCount": 1, - "LockedBalance": { - "currency": "USD", - "issuer": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", - "value": "10" - } - "index": "9CA88CDEDFF9252B3DE183CE35B038F57282BC9503CDFA1923EF9A95DF0D6F7B" -} -``` - -### Fields - -A `RippleState` object has the following fields: - -| Name | JSON Type | Internal Type | Required? | Description | -| ------------------- | --------- | ------------- | --------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `Balance` | Object | Amount | Yes | The balance of the trust line, from the perspective of the low account. A negative balance indicates that the high account holds tokens issued by the low account. The issuer in this is always set to the neutral value ACCOUNT_ONE. | -| `Flags` | Number | UInt32 | Yes | A bit-map of boolean options enabled for this object. | -| `HighLimit` | Object | Amount | Yes | The limit that the high account has set on the trust line. The `issuer` is the address of the high account that set this limit. | -| `HighNode` | String | UInt64 | Yes | (Omitted in some historical ledgers) A hint indicating which page of the high account's owner directory links to this object, in case the directory consists of multiple pages. | -| `HighQualityIn` | Number | UInt32 | No | The inbound quality set by the high account, as an integer in the implied ratio `HighQualityIn`:1,000,000,000. As a special case, the value 0 is equivalent to 1 billion, or face value. | -| `HighQualityOut` | Number | UInt32 | No | The outbound quality set by the high account, as an integer in the implied ratio `HighQualityOut`:1,000,000,000. As a special case, the value 0 is equivalent to 1 billion, or face value. | -| `LedgerEntryType` | String | UInt16 | Yes | The value `0x0072`, mapped to the string `RippleState`, indicates that this object is a RippleState object. | -| `LowLimit` | Object | Amount | Yes | The limit that the low account has set on the trust line. The `issuer` is the address of the low account that set this limit. | -| `LowNode` | String | UInt64 | Yes | (Omitted in some historical ledgers) A hint indicating which page of the low account's owner directory links to this object, in case the directory consists of multiple pages. | -| `LowQualityIn` | Number | UInt32 | No | The inbound quality set by the low account, as an integer in the implied ratio `LowQualityIn`:1,000,000,000. As a special case, the value 0 is equivalent to 1 billion, or face value. | -| `LowQualityOut` | Number | UInt32 | No | The outbound quality set by the low account, as an integer in the implied ratio `LowQualityOut`:1,000,000,000. As a special case, the value 0 is equivalent to 1 billion, or face value. | -| `PreviousTxnID` | String | Hash256 | Yes | The identifying hash of the transaction that most recently modified this object. | -| `PreviousTxnLgrSeq` | Number | UInt32 | Yes | The \[index of the ledger]\[Ledger Index] that contains the transaction that most recently modified this object. | -| `LockCount` | Number | UInt32 | No | The total number of lock balances on a RippleState ledger object | -| `LockedBalance` | Object | Amount | No | The current amount of locked tokens for a specific trustline | - -### RippleState Flags - -There are several options which can be either enabled or disabled for a trust line. These options can be changed with a \[TrustSet transaction]\[]. In the ledger, flags are represented as binary values that can be combined with bitwise-or operations. The bit values for the flags in the ledger are different than the values used to enable or disable those flags in a transaction. Ledger flags have names that begin with **`lsf`**. - -RippleState objects can have the following flag values: - -| Flag Name | Hex Value | Decimal Value | Corresponding TrustSet Flag | Description | -| ----------------- | ------------ | ------------- | --------------------------- | --------------------------------------------------------------------------------------------------- | -| `lsfLowReserve` | `0x00010000` | 65536 | (None) | This RippleState object contributes to the low account's owner reserve. | -| `lsfHighReserve` | `0x00020000` | 131072 | (None) | This RippleState object contributes to the high account's owner reserve. | -| `lsfLowAuth` | `0x00040000` | 262144 | `tfSetAuth` | The low account has authorized the high account to hold tokens issued by the low account. | -| `lsfHighAuth` | `0x00080000` | 524288 | `tfSetAuth` | The high account has authorized the low account to hold tokens issued by the high account. | -| `lsfLowNoRipple` | `0x00100000` | 1048576 | `tfSetNoRipple` | The low account has disabled rippling from this trust line. | -| `lsfHighNoRipple` | `0x00200000` | 2097152 | `tfSetNoRipple` | The high account has disabled rippling from this trust line. | -| `lsfLowFreeze` | `0x00400000` | 4194304 | `tfSetFreeze` | The low account has frozen the trust line, preventing the high account from transferring the asset. | -| `lsfHighFreeze` | `0x00800000` | 8388608 | `tfSetFreeze` | The high account has frozen the trust line, preventing the low account from transferring the asset. | -| `lsfLowDeepFreeze` | `0x02000000` | 33554432 | `tfSetDeepFreeze` | The low account has deep-frozen the trust line, preventing the high account from sending and receiving the asset. _(Requires the \[DeepFreeze amendment]\[])_ | -| `lsfHighDeepFreeze` | `0x04000000` | 67108864 | `tfSetDeepFreeze` | The high account has deep-frozen the trust line, preventing the low account from sending and receiving the asset. _(Requires the \[DeepFreeze amendment]\[])_ | - -### Contributing to the Owner Reserve - -If an account modifies a trust line to put it in a non-default state, then that trust line counts towards the account's owner reserve. In a RippleState object, the `lsfLowReserve` and `lsfHighReserve` flags indicate which account(s) are responsible for the owner reserve. The `rippled` server automatically sets these flags when it modifies a trust line. - -The values that count towards a trust line's non-default state are as follows: - -| High account responsible if... | Low account responsible if... | -| ------------------------------------------------------- | ------------------------------------------------------ | -| `Balance` is negative (the high account holds currency) | `Balance` is positive (the low account holds currency) | -| `HighLimit` is not `0` | `LowLimit` is not `0` | -| `LowQualityIn` is not `0` and not `1000000000` | `HighQualityIn` is not `0` and not `1000000000` | -| `LowQualityOut` is not `0` and not `1000000000` | `HighQualityOut` is not `0` and not `1000000000` | -| `lsfHighNoRipple` flag is not in its default state | `lsfLowNoRipple` flag is not in its default state | -| `lsfHighFreeze` flag is enabled | `lsfLowFreeze` flag is enabled | - -The **`lsfLowAuth`** and **`lsfHighAuth`** flags do not count against the default state, because they cannot be disabled. - -The default state of the two No Ripple flags depends on the state of the `lsfDefaultRipple` flag in their corresponding AccountRoot objects. If Default Ripple is disabled (the default), then the default state of the `lsfNoRipple` flag is _enabled_ for all of an account's trust lines. If an account enables Default Ripple, then the `lsfNoRipple` flag is _disabled_ (rippling is enabled) for an account's trust lines by default. - -**Note:** Prior to the introduction of the Default Ripple flag in `rippled` version 0.27.3 (March 10, 2015), the default state for all trust lines was with both No Ripple flags disabled (rippling enabled). - -Fortunately, `rippled` uses lazy evaluation to calculate the owner reserve. This means that even if an account changes the default state of all its trust lines by changing the Default Ripple flag, that account's reserve stays the same initially. If an account modifies a trust line, `rippled` re-evaluates whether that individual trust line is in its default state and should contribute to the owner reserve. - -### RippleState ID Format - -The ID of a RippleState object is the \[SHA-512Half]\[] of the following values, concatenated in order: - -* The RippleState space key (`0x0072`) -* The AccountID of the low account -* The AccountID of the high account -* The 160-bit currency code of the trust line(s) diff --git a/src/content/docs/br/docs/protocol-reference/ledger-data/ledger-objects-types/signers-list.mdx b/src/content/docs/br/docs/protocol-reference/ledger-data/ledger-objects-types/signers-list.mdx deleted file mode 100644 index 2c8354c..0000000 --- a/src/content/docs/br/docs/protocol-reference/ledger-data/ledger-objects-types/signers-list.mdx +++ /dev/null @@ -1,98 +0,0 @@ ---- -title: Signers List ---- -[\[Source\]](https://github.com/ripple/rippled/blob/6d2e3da30696bd10e3bb11a5ff6d45d2c4dae90f/src/ripple/protocol/impl/LedgerFormats.cpp#L127) - -_(Added by the \[MultiSign amendment]\[].)_ - -The `SignerList` object type represents a list of parties that, as a group, are authorized to sign a transaction in place of an individual account. You can create, replace, or remove a signer list using a \[SignerListSet transaction]\[]. - -### Example JSON - -```json -{ - "Flags": 0, - "LedgerEntryType": "SignerList", - "OwnerNode": "0000000000000000", - "PreviousTxnID": "5904C0DC72C58A83AEFED2FFC5386356AA83FCA6A88C89D00646E51E687CDBE4", - "PreviousTxnLgrSeq": 16061435, - "SignerEntries": [ - { - "SignerEntry": { - "Account": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", - "SignerWeight": 2 - } - }, - { - "SignerEntry": { - "Account": "raKEEVSGnKSD9Zyvxu4z6Pqpm4ABH8FS6n", - "SignerWeight": 1 - } - }, - { - "SignerEntry": { - "Account": "rUpy3eEg8rqjqfUoLeBnZkscbKbFsKXC3v", - "SignerWeight": 1 - } - } - ], - "SignerListID": 0, - "SignerQuorum": 3, - "index": "A9C28A28B85CD533217F5C0A0C7767666B093FA58A0F2D80026FCC4CD932DDC7" -} -``` - -### Fields - -A `SignerList` object has the following fields: - -| Name | JSON Type | Internal Type | Required? | Description | -| ------------------- | --------- | ------------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `Flags` | Number | UInt32 | Yes | A bit-map of Boolean flags enabled for this signer list. For more information, see SignerList Flags. | -| `LedgerEntryType` | String | UInt16 | Yes | The value `0x0053`, mapped to the string `SignerList`, indicates that this object is a SignerList object. | -| `OwnerNode` | String | UInt64 | Yes | A hint indicating which page of the owner directory links to this object, in case the directory consists of multiple pages. | -| `PreviousTxnID` | String | Hash256 | Yes | The identifying hash of the transaction that most recently modified this object. | -| `PreviousTxnLgrSeq` | Number | UInt32 | Yes | The \[index of the ledger]\[Ledger Index] that contains the transaction that most recently modified this object. | -| `SignerEntries` | Array | Array | Yes | An array of Signer Entry objects representing the parties who are part of this signer list. | -| `SignerListID` | Number | UInt32 | Yes | An ID for this signer list. Currently always set to `0`. If a future amendment allows multiple signer lists for an account, this may change. | -| `SignerQuorum` | Number | UInt32 | Yes | A target number for signer weights. To produce a valid signature for the owner of this SignerList, the signers must provide valid signatures whose weights sum to this value or more. | - -The `SignerEntries` may be any combination of funded and unfunded addresses that use either secp256k1 or ed25519 keys. - -#### Signer Entry Object - -Each member of the `SignerEntries` field is an object that describes that signer in the list. A Signer Entry has the following fields: - -| Name | JSON Type | Internal Type | Description | -| --------------- | --------- | ------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `Account` | String | AccountID | A Xahau address whose signature contributes to the multi-signature. It does not need to be a funded address in the ledger. | -| `SignerWeight` | Number | UInt16 | The weight of a signature from this signer. A multi-signature is only valid if the sum weight of the signatures provided meets or exceeds the signer list's `SignerQuorum` value. | -| `WalletLocator` | String | Hash256 | _(Optional)_ Arbitrary hexadecimal data. This can be used to identify the signer or for other, related purposes. _(Added by the \[ExpandedSignerList amendment]\[].)_ | - -When processing a multi-signed transaction, the server looks up the `Account` values with respect to the ledger at the time of transaction execution. If the address _does not_ correspond to a funded AccountRoot object, then only the master private key associated with that address can be used to produce a valid signature. If the account _does_ exist in the ledger, then it depends on the state of that account. If the account has a Regular Key configured, the Regular Key can be used. The account's master key can only be used if it is not disabled. A multi-signature cannot be used as part of another multi-signature. - -### SignerList Flags - -_(Added by the \[MultiSignReserve amendment]\[].)_ - -SignerList objects can have the following flag value: - -| Flag Name | Hex Value | Decimal Value | Description | -| ------------------ | ------------ | ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `lsfOneOwnerCount` | `0x00010000` | 65536 | If this flag is enabled, this SignerList counts as one item for purposes of the owner reserve. Otherwise, this list counts as N+2 items, where N is the number of signers it contains. This flag is automatically enabled if you add or update a signer list after the \[MultiSignReserve amendment]\[] is enabled. | - -### Signer Lists and Reserves - -A signer list contributes to its owner's reserve requirement. - -The \[MultiSignReserve amendment]\[] (enabled 2019-04-17) made it so each signer list counts as one object, regardless of how many members it has. As a result, the owner reserve associated with a new signer list is 2 XAH. - -A signer list created before the \[MultiSignReserve amendment]\[] itself counts as two objects, and each member of the list counts as one. As a result, the total owner reserve associated with the signer list is anywhere from 3 times to 10 times the reserve required by a single trust line (RippleState) or Offer object in the ledger. To update a signer list to use the new, reduced reserve, update the signer list by sending a \[SignerListSet transaction]\[]. - -### SignerList ID Format - -The ID of a signer list object is the SHA-512Half of the following values, concatenated in order: - -* The RippleState space key (`0x0053`) -* The AccountID of the owner of the signer list -* The `SignerListID` (currently always `0`) diff --git a/src/content/docs/br/docs/protocol-reference/ledger-data/ledger-objects-types/ticket.mdx b/src/content/docs/br/docs/protocol-reference/ledger-data/ledger-objects-types/ticket.mdx deleted file mode 100644 index 0a57972..0000000 --- a/src/content/docs/br/docs/protocol-reference/ledger-data/ledger-objects-types/ticket.mdx +++ /dev/null @@ -1,44 +0,0 @@ ---- -title: Ticket ---- -[\[Source\]](https://github.com/ripple/rippled/blob/76a6956138c4ecd156c5c408f136ed3d6ab7d0c1/src/ripple/protocol/impl/LedgerFormats.cpp#L155-L164) - -_(Added by the \[TicketBatch amendment]\[].)_ - -The `Ticket` object type represents a Ticket, which tracks an account \[sequence number]\[Sequence Number] that has been set aside for future use. You can create new tickets with a \[TicketCreate transaction]\[]. \[New in: rippled 1.7.0]\[] - -### Example JSON - -```json -{ - "Account": "rEhxGqkqPPSxQ3P25J66ft5TwpzV14k2de", - "Flags": 0, - "LedgerEntryType": "Ticket", - "OwnerNode": "0000000000000000", - "PreviousTxnID": "F19AD4577212D3BEACA0F75FE1BA1644F2E854D46E8D62E9C95D18E9708CBFB1", - "PreviousTxnLgrSeq": 4, - "TicketSequence": 3 -} -``` - -### Fields - -A `Ticket` object has the following fields: - -| Name | JSON Type | Internal Type | Required? | Description | -| ------------------- | --------- | ------------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `Account` | String | AccountID | Yes | The account that owns this Ticket. | -| `Flags` | Number | UInt32 | Yes | A bit-map of boolean flags enabled for this object. Currently, the protocol defines no flags for `Ticket` objects. The value is always `0`. | -| `LedgerEntryType` | String | UInt16 | Yes | The value `0x0054`, mapped to the string `Ticket`, indicates that this object is a Ticket object. | -| `OwnerNode` | String | UInt64 | Yes | A hint indicating which page of the owner directory links to this object, in case the directory consists of multiple pages. **Note:** The object does not contain a direct link to the owner directory containing it, since that value can be derived from the `Account`. | -| `PreviousTxnID` | String | Hash256 | Yes | The identifying hash of the transaction that most recently modified this object. | -| `PreviousTxnLgrSeq` | Number | UInt32 | Yes | The \[index of the ledger]\[Ledger Index] that contains the transaction that most recently modified this object. | -| `TicketSequence` | Number | UInt32 | Yes | The \[Sequence Number]\[] this Ticket sets aside. | - -### Ticket ID Format - -The ID of a Ticket object is the SHA-512Half of the following values, concatenated in order: - -* The Ticket space key (`0x0054`) -* The AccountID of the owner of the Ticket -* The `TicketSequence` number of the Ticket diff --git a/src/content/docs/br/docs/protocol-reference/ledger-data/ledger-objects-types/unl-report.mdx b/src/content/docs/br/docs/protocol-reference/ledger-data/ledger-objects-types/unl-report.mdx deleted file mode 100644 index be49225..0000000 --- a/src/content/docs/br/docs/protocol-reference/ledger-data/ledger-objects-types/unl-report.mdx +++ /dev/null @@ -1,63 +0,0 @@ ---- -title: UNL Report ---- -_(Added by the \[Hooks amendment]\[].)_ - -A `UNLReport` object describes a report of the Unique Node List (UNL) which is a list of validator nodes that are trusted by the network to validate transactions. - -### Example JSON - -```json -{ - "LedgerEntryType": "UNLReport", - "PreviousTxnID": "5463C6E08862A1FAE5EDAC12D70ADB16546A1F674930521295BC082494B62924", - "PreviousTxnLgrSeq": 6, - "ImportVLKeys": [ - { - "PublicKey": "n9LigbVAi4pQc6pU2KJvQZV5wqJ8C3sVvZvBZUopchH8vqa6PEKy", - "Account": "rUn84CUYbNjRoTQ6mSW7BVJPSVJNLb1QLo" - } - ], - "ActiveValidators": [ - { - "PublicKey": "n9LigbVAi4pQc6pU2KJvQZV5wqJ8C3sVvZvBZUopchH8vqa6PEKy", - "Account": "rUn84CUYbNjRoTQ6mSW7BVJPSVJNLb1QLo" - } - ], - "index": "49647F0D748DC3FE26BDACBC57F251AADEFFF391403EC9BF87C97F67E9977FB0" -} -``` - -### Fields - -A `UNLReport` object has the following fields: - -| Field | JSON Type | \[Internal Type]\[] | Required? | Description | -| ------------------- | --------- | ------------------- | --------- | --------------------------------------------------------------------------------------------------------------------------------------------------- | -| `LedgerEntryType` | String | UInt16 | Yes | The value `0x0073`, mapped to the string `UNLReport`, indicates that this object is a UNLReport object. | -| `PreviousTxnID` | String | Hash256 | Yes | The identifying hash of the transaction that most recently modified this object. | -| `PreviousTxnLgrSeq` | Number | UInt32 | Yes | The index of the ledger that contains the transaction that most recently modified this object. | -| `ImportVLKeys` | Array | Array | No | An array of objects, each representing a validator key that has been imported. Each object has a `PublicKey` field and an optional `Account` field. | -| `ActiveValidators` | Array | Array | No | An array of objects, each representing an active validator. Each object has a `PublicKey` field and an optional `Account` field. | - -### ImportVLKey Fields - -| Field | JSON Type | \[Internal Type]\[] | Required? | Description | -| ----------- | --------- | ------------------- | --------- | ------------------------------------------------------------------------------- | -| `PublicKey` | String | VL | Yes | The public key of the imported validator. | -| `Account` | String | Account | No | The account associated with the imported validator key. This field is optional. | - -### ActiveValidator Fields - -| Field | JSON Type | \[Internal Type]\[] | Required? | Description | -| ----------- | --------- | ------------------- | --------- | ------------------------------------------------------------------------- | -| `PublicKey` | String | VL | Yes | The public key of the active validator. | -| `Account` | String | Account | No | The account associated with the active validator. This field is optional. | - -### UNLReport ID Format - -The `UNLReport` object ID is the hash of the `UNLReport` space key (`0x0052`) only. This means that the ID of the `UNLReport` object in a ledger is always: - -``` -61E32E7A24A238F1C619D5F9DDCC41A94B33B66C0163F7EFCC8A19C9FD6F28DC -``` diff --git a/src/content/docs/br/docs/protocol-reference/ledger-data/ledger-objects-types/uritoken.mdx b/src/content/docs/br/docs/protocol-reference/ledger-data/ledger-objects-types/uritoken.mdx deleted file mode 100644 index 40b87b6..0000000 --- a/src/content/docs/br/docs/protocol-reference/ledger-data/ledger-objects-types/uritoken.mdx +++ /dev/null @@ -1,59 +0,0 @@ ---- -title: URIToken ---- -[\[Source\]](https://github.com/ripple/rippled/blob/master/src/ripple/protocol/impl/LedgerFormats.cpp#L157-L170) - -_(Added by the \[URI Token amendment]\[].)_ - -A `URIToken` object describes a URI token, which can be used to represent a unique resource identifier in the ledger. - -### Example JSON - -```json -{ - "Owner": "rUn84CUYbNjRoTQ6mSW7BVJPSVJNLb1QLo", - "OwnerNode": "0000000000000000", - "Issuer": "rfkE1aSy9G8Upk4JssnwBxhEv5p4mn2KTy", - "URI": "DEADBEEF", - "Digest": "46060241FABCF692D4D934BA2A6C4427CD4279083E38C77CBE642243E43BE291", - "Amount": "100000000", - "Destination": "rUn84CUYbNjRoTQ6mSW7BVJPSVJNLb1QLo", - "PreviousTxnID": "5463C6E08862A1FAE5EDAC12D70ADB16546A1F674930521295BC082494B62924", - "PreviousTxnLgrSeq": 6, - "LedgerEntryType": "URIToken", - "index": "49647F0D748DC3FE26BDACBC57F251AADEFFF391403EC9BF87C97F67E9977FB0" -} -``` - -### Fields - -A `URIToken` object has the following fields: - -| Field | JSON Type | \[Internal Type]\[] | Required? | Description | -| ------------------- | ---------------- | ------------------- | --------- | ----------------------------------------------------------------------------------------------------------------------------- | -| `Owner` | String | Account | Yes | The owner of the URI Token. | -| `OwnerNode` | String | UInt64 | Yes | A hint indicating which page of the owner's directory links to this object, in case the directory consists of multiple pages. | -| `Issuer` | String | Account | Yes | The issuer of the URI Token. | -| `URI` | String | VL | Yes | The URI represented by this token. | -| `Digest` | String | Hash256 | No | Arbitrary 256-bit hash provided by the owner as a specific identifier for this URI Token. | -| `Amount` | String or Object | Amount | No | The amount of the URI Token. | -| `Destination` | String | Account | No | The intended recipient of the URI Token. | -| `PreviousTxnID` | String | Hash256 | Yes | The identifying hash of the transaction that most recently modified this object. | -| `PreviousTxnLgrSeq` | Number | UInt32 | Yes | The index of the ledger that contains the transaction that most recently modified this object. | -| `LedgerEntryType` | String | UInt16 | Yes | The value `0x0073`, mapped to the string `URIToken`, indicates that this object is a URI Token object. | - -### URIToken Flags - -`URIToken` objects can have the following flag values: - -| Flag Name | Hex Value | Decimal Value | Corresponding URITokenMint Flag | Description | -| ------------- | ------------ | ------------- | ------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | -| `lsfBurnable` | `0x00000001` | 1 | `tfBurnable` | The issuer (or an entity authorized by the issuer) to destroy the minted `URIToken`. (The `URIToken`'s owner can _always_ do so.) | - -### URIToken ID Format - -The ID of a `URIToken` object is the \[SHA-512Half]\[] of the following values, concatenated in order: - -* The URI Token space key (`0x0055`) -* The AccountID of the issuer of the URI Token -* The URI represented by the URI Token diff --git a/src/content/docs/br/docs/protocol-reference/transactions/transaction-types/accountdelete.mdx b/src/content/docs/br/docs/protocol-reference/transactions/transaction-types/accountdelete.mdx deleted file mode 100644 index c95328b..0000000 --- a/src/content/docs/br/docs/protocol-reference/transactions/transaction-types/accountdelete.mdx +++ /dev/null @@ -1,61 +0,0 @@ ---- -title: AccountDelete -description: >- - An AccountDelete transaction deletes an account and any objects it owns in - Xahau, if possible, sending the account's remaining XAH to a specified - destination account. -sidebar: - badge: - text: Disabled - variant: danger ---- -import { Aside } from '@astrojs/starlight/components'; - -\[[Source](https://github.com/Xahau/xahaud/blob/dev/src/ripple/app/tx/impl/DeleteAccount.cpp)] - -_Added by the DeletableAccounts amendment_ - - - -### Example - -```json -{ - "TransactionType": "AccountDelete", - "Account": "rWYkbWkCeg8dP6rXALnjgZSjjLyih5NXm", - "Destination": "rPT1Sjq2YGrBMTttX4GZHjKu9dyfzbpAYe", - "DestinationTag": 13, - "Fee": "2000000", - "Sequence": 2470665, - "Flags": 2147483648 -} -``` - -| Field | JSON Type | \[Internal Type]\[] | Description | -| ---------------- | ---------------------- | ------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `Destination` | String - \[Address]\[] | AccountID | The address of an account to receive any leftover XAH after deleting the sending account. Must be a funded account in the ledger, and must not be the sending account. | -| `DestinationTag` | Number | UInt32 | _(Optional)_ Arbitrary destination tag that identifies a hosted recipient or other information for the recipient of the deleted account's leftover XAH. | - -### Special Transaction Cost - -As an additional deterrent against ledger spam, the AccountDelete transaction requires a much higher than usual transaction cost: instead of the standard minimum of 0.00001 XAH, AccountDelete must destroy at least the owner reserve amount, currently 2 XRP. This discourages excessive creation of new accounts because the reserve requirement cannot be fully recouped by deleting the account. - -The transaction cost always applies when a transaction is included in a validated ledger, even if the transaction fails to delete the account. (See Error Cases.) To greatly reduce the chances of paying the high transaction cost if the account cannot be deleted, submit the transaction with `fail_hard` enabled. - -### Error Cases - -Besides errors that can occur for all transactions, AccountDelete transactions can result in the following transaction result codes: - -| Error Code | Description | -| -------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `temDISABLED` | Occurs if the DeletableAccounts amendment is not enabled. | -| `temDST_IS_SRC` | Occurs if the `Destination` matches the sender of the transaction (`Account` field). | -| `tecDST_TAG_NEEDED` | Occurs if the `Destination` account requires a destination tag, but the `DestinationTag` field was not provided. | -| `tecNO_DST` | Occurs if the `Destination` account is not a funded account in the ledger. | -| `tecNO_PERMISSION` | Occurs if the `Destination` account requires deposit authorization and the sender is not preauthorized. | -| `tecTOO_SOON` | Occurs if the sender's `Sequence` number is too high. The transaction's `Sequence` number plus 256 must be less than the current \[Ledger Index]\[]. This prevents replay of old transactions if this account is resurrected after it is deleted. | -| `tecHAS_OBLIGATIONS` | Occurs if the account to be deleted is connected to objects that cannot be deleted in the ledger. (This includes objects created by other accounts, such as escrows and for example NFT's minted, [even if owned by another account](https://github.com/Xahau/xahaud/blob/dev/src/ripple/app/tx/impl/DeleteAccount.cpp#L197).) | -| `tefTOO_BIG` | Occurs if the sending account is linked to more than 1000 objects in the ledger. The transaction could succeed on retry if some of those objects were deleted separately first. | - diff --git a/src/content/docs/br/docs/protocol-reference/transactions/transaction-types/accountset.mdx b/src/content/docs/br/docs/protocol-reference/transactions/transaction-types/accountset.mdx deleted file mode 100644 index b425ac9..0000000 --- a/src/content/docs/br/docs/protocol-reference/transactions/transaction-types/accountset.mdx +++ /dev/null @@ -1,116 +0,0 @@ ---- -title: AccountSet -description: An AccountSet transaction modifies the properties of an account in Xahau. ---- -\[[Source](https://github.com/Xahau/xahaud/blob/dev/src/ripple/app/tx/impl/SetAccount.cpp)] - -### Example - -```json -{ - "TransactionType": "AccountSet", - "Account" : "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "Fee": "12", - "Sequence": 5, - "Domain": "6578616D706C652E636F6D", - "SetFlag": 5, - "MessageKey": "03AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB", - "HookStateScale": 10 -} -``` - -| Field | JSON Type | \[Internal Type]\[] | Description | -| --------------- | --------- | ------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `ClearFlag` | Number | UInt32 | _(Optional)_ Unique identifier of a flag to disable for this account. | -| `Domain` | String | Blob | _(Optional)_ The domain that owns this account, as a string of hex representing the ASCII for the domain in lowercase. [Cannot be more than 256 bytes in length.](https://github.com/Xahau/xahaud/blob/55dc7a252e08a0b02cd5aa39e9b4777af3eafe77/src/ripple/app/tx/impl/SetAccount.h#L34) | -| `EmailHash` | String | Hash128 | _(Optional)_ An arbitrary 128-bit value. Conventionally, clients treat this as the md5 hash of an email address to use for displaying a [Gravatar](http://en.gravatar.com/site/implement/hash/) image. | -| `MessageKey` | String | Blob | _(Optional)_ Public key for sending encrypted messages to this account. To set the key, it must be exactly 33 bytes, with the first byte indicating the key type: `0x02` or `0x03` for secp256k1 keys, `0xED` for Ed25519 keys. To remove the key, use an empty value. | -| `NFTokenMinter` | String | Blob | _(Optional)_ Another account that can mint NFTokens for you. _(Added by the \[NonFungibleTokensV1_1 amendment]\[].)_ | -| `SetFlag` | Number | UInt32 | _(Optional)_ Integer flag to enable for this account. | -| `TransferRate` | Number | UInt32 | _(Optional)_ The fee to charge when users transfer this account's tokens, represented as billionths of a unit. Cannot be more than `2000000000` or less than `1000000000`, except for the special case `0` meaning no fee. | -| `TickSize` | Number | UInt8 | _(Optional)_ Tick size to use for offers involving a currency issued by this address. The exchange rates of those offers is rounded to this many significant digits. Valid values are `3` to `15` inclusive, or `0` to disable. _(Added by the \[TickSize amendment]\[])_ | -| `WalletLocator` | String | Hash256 | _(Optional)_ An arbitrary 256-bit value. If specified, the value is stored as part of the account but has no inherent meaning or requirements. | -| `WalletSize` | Number | UInt32 | _(Optional)_ Not used. This field is valid in AccountSet transactions but does nothing. | -| `HookStateScale` | Number | UInt16 | _(Optional)_ Scale factor for determining when Hook state entries become stale. Valid values are `1` to `16` inclusive. _(Added by the [ExtendedHookState amendment][].)_ | - -If none of these options are provided, then the AccountSet transaction has no effect (beyond destroying the transaction cost). See Cancel or Skip a Transaction for more details. - -### Domain - -The `Domain` field is represented as the hex string of the lowercase ASCII of the domain. For example, the domain _example.com_ would be represented as `"6578616D706C652E636F6D"`. - -To remove the `Domain` field from an account, send an AccountSet with the Domain set to an empty string. - -You can put any domain in your account's `Domain` field. To prove that an account and domain belong to the same person or business, you need a "two-way link": - -* Accounts you own should have a domain you own in the `Domain` field. -* At that domain, host a [xahau.toml](/docs/infrastructure/identity) file listing accounts you own, and optionally other information about how you use Xahau. - -### AccountSet Flags - -There are several options which can be either enabled or disabled for an account. Account options are represented by different types of flags depending on the situation: - -* The `AccountSet` transaction type has several "AccountSet Flags" (prefixed **`asf`**) that can enable an option when passed as the `SetFlag` parameter, or disable an option when passed as the `ClearFlag` parameter. Newer options have only this style of flag. You can enable up to one `asf` flag per transaction, and disable up to one `asf` flag per transaction. -* The `AccountSet` transaction type has several transaction flags (prefixed **`tf`**) that can be used to enable or disable specific account options when passed in the `Flags` parameter. You can enable and disable a combination of settings in one transaction using multiple `tf` flags, but not all settings have `tf` flags. -* The `AccountRoot` ledger object type has several ledger-state-flags (prefixed **`lsf`**) which represent the state of particular account options within a particular ledger. These settings apply until a transaction changes them. - -To enable or disable Account Flags, use the `SetFlag` and `ClearFlag` parameters of an AccountSet transaction. AccountSet flags have names that begin with **`asf`**. - -All flags are disabled by default. - -The available AccountSet flags are: - -| Flag Name | Decimal Value | Corresponding Ledger Flag | Description | -| --------------------------------- | ------------- | --------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `asfAccountTxnID` | 5 | (None) | Track the ID of this account's most recent transaction. Required for `AccountTxnID` | -| `asfAllowTrustLineClawback` | 17 | `lsfAllowTrustLineClawback` | Enables an account to clawback tokens it has issued. This flag can only be enabled if the account’s owner directory is empty (no trust lines, offers, escrows, payment channels, checks, or signer lists). Once set, it cannot be undone. | -| `asfAuthorizedNFTokenMinter` | 10 | (None) | Enable to allow another account to mint non-fungible tokens (NFTokens) on this account's behalf. Specify the authorized account in the `NFTokenMinter` field of the AccountRoot object. To remove an authorized minter, enable this flag and omit the `NFTokenMinter` field. _(Added by the \[NonFungibleTokensV1_1 amendment]\[].)_ | -| `asfDefaultRipple` | 8 | `lsfDefaultRipple` | Enable rippling on this account's trust lines by default. | -| `asfDepositAuth` | 9 | `lsfDepositAuth` | Enable Deposit Authorization on this account. _(Added by the \[DepositAuth amendment]\[].)_ | -| `asfDisableMaster` | 4 | `lsfDisableMaster` | Disallow use of the master key pair. Can only be enabled if the account has configured another way to sign transactions, such as a Regular Key or a Signer List. | -| `asfDisallowIncomingCheck` | 13 | `lsfDisallowIncomingCheck` | Block incoming Checks. _Added by the \[DisallowIncoming amendment]\[]._ | -| `asfDisallowIncomingNFTokenOffer` | 12 | `lsfDisallowIncomingNFTokenOffer` | Block incoming NFTokenOffers. _Added by the \[DisallowIncoming amendment]\[]._ | -| `asfDisallowIncomingPayChan` | 14 | `lsfDisallowIncomingPayChan` | Block incoming Payment Channels. _Added by the \[DisallowIncoming amendment]\[]._ | -| `asfDisallowIncomingTrustline` | 15 | `lsfDisallowIncomingTrustline` | Block incoming trust lines._Added by the \[DisallowIncoming amendment]\[]._ | -| `asfDisallowIncomingRemit` | 16 | `lsfDisallowIncomingRemit` | Block incoming Remit txn._Added by the \[Remit amendment]\[]._ | -| `asfDisallowXRP` | 3 | `lsfDisallowXRP` | XAH should not be sent to this account. (Advisory; not enforced by Xahau protocol.) | -| `asfGlobalFreeze` | 7 | `lsfGlobalFreeze` | Freeze all assets issued by this account. | -| `asfNoFreeze` | 6 | `lsfNoFreeze` | Permanently give up the ability to freeze individual trust lines or disable Global Freeze. This flag can never be disabled after being enabled. | -| `asfRequireAuth` | 2 | `lsfRequireAuth` | Require authorization for users to hold balances issued by this address. Can only be enabled if the address has no trust lines connected to it. | -| `asfRequireDest` | 1 | `lsfRequireDestTag` | Require a destination tag to send transactions to this account. | -| `asfTshCollect` | 11 | `lsfTshCollect` | The TSH pays for the execution of their own Hook Chain. _Added by the \[Hooks amendment]\[]._ | - -To enable the `asfDisableMaster` or `asfNoFreeze` flags, you must authorize the transaction by signing it with the master key pair. You cannot use a regular key pair or a multi-signature. You can disable `asfDisableMaster` (that is, re-enable the master key pair) using a regular key pair or multi-signature. - -The following Transaction flags (`tf` flags), specific to the AccountSet transaction type, serve the same purpose. Due to limited space, some settings do not have associated `tf` flags, and new `tf` flags are not being added to the `AccountSet` transaction type. You can use a combination of `tf` and `asf` flags to enable multiple settings with a single transaction. - -
Flag NameHex ValueDecimal ValueReplaced by AccountSet Flag
tfRequireDestTag0x0001000065536asfRequireDest (SetFlag)
tfOptionalDestTag0x00020000131072asfRequireDest (ClearFlag)
tfRequireAuth0x00040000262144asfRequireAuth (SetFlag)
tfOptionalAuth0x00080000524288asfRequireAuth (ClearFlag)
tfDisallowXRP0x001000001048576asfDisallowXRP (SetFlag)
tfAllowXRP0x002000002097152asfDisallowXRP (ClearFlag)
- -**Caution:** The numeric values of `tf` and `asf` flags in transactions do not match up with the values they set in the accounts "at rest" in the ledger. To read the flags of an account in the ledger, see `AccountRoot` flags. - -#### Blocking Incoming Transactions - -Incoming transactions with unclear purposes may be an inconvenience for financial institutions, who would have to recognize when a customer made a mistake, and then potentially refund accounts or adjust balances depending on the mistake. The `asfRequireDest` and `asfDisallowXRP` flags are intended to protect users from accidentally sending funds in a way that is unclear about the reason the funds were sent. - -For example, a destination tag is typically used to identify which hosted balance should be credited when a financial institution receives a payment. If the destination tag is omitted, it may be unclear which account should be credited, creating a need for refunds, among other problems. By using the `asfRequireDest` tag, you can ensure that every incoming payment has a destination tag, which makes it harder for others to send you an ambiguous payment by accident. - -You can protect against unwanted incoming payments for non-XAH currencies by not creating trust lines in those currencies. Since XAH does not require trust, the `asfDisallowXRP` flag is used to discourage users from sending XAH to an account. However, this flag is not enforced in Xahau protocol because it could potentially cause accounts to become unusable if they run out of XAH. Instead, client applications should disallow or discourage XAH payments to accounts with the `asfDisallowXRP` flag enabled. - -If you want to block _all_ incoming payments, you can enable Deposit Authorization. This prevents any transaction from sending money to you, even XAH, unless your account is below the reserve requirement. - -If the \[DisallowIncoming amendment]\[] :not_enabled: is enabled, you also have the option to block all incoming Checks, NFTokenOffers, Payment Channels, and trust lines. It is generally harmless to be on the receiving end of these objects, but they can block you from deleting your account and it can be confusing to have objects you didn't expect mixed in with the list of objects you created. To block incoming objects, use one or more of these account flags: - -* `asfDisallowIncomingCheck` - for Check objects -* `asfDisallowIncomingNFTOffer` - for NFTokenOffer objects -* `asfDisallowIncomingPayChan` - for PayChannel objects -* `asfDisallowIncomingTrustline` - for RippleState (trust line) objects - -When a transaction would create one of these ledger entries, if the destination account has the corresponding flag enabled, the transaction fails with the result code `tecNO_PERMISSION`. Unlike Deposit Authorization, these settings do not prevent you from receiving payments in general. Also, enabling this setting doesn't stop you from creating these types of objects yourself (unless the destination of your transaction is also using the setting, of course). - -### TransferRate - -The `TransferRate` field specifies a fee to charge whenever counterparties transfer the currency you issue. - -In the HTTP and WebSocket APIs, the transfer fee is represented as an integer, the amount that must be sent for 1 billion units to arrive. For example, a 20% transfer fee is represented as the value `1200000000`. The value cannot be less than 1000000000. (Less than that would indicate giving away money for sending transactions, which is exploitable.) You can specify `0` as a shortcut for `1000000000`, meaning no fee. - -See Transfer Fees for more information. diff --git a/src/content/docs/br/docs/protocol-reference/transactions/transaction-types/checkcancel.mdx b/src/content/docs/br/docs/protocol-reference/transactions/transaction-types/checkcancel.mdx deleted file mode 100644 index 4138e10..0000000 --- a/src/content/docs/br/docs/protocol-reference/transactions/transaction-types/checkcancel.mdx +++ /dev/null @@ -1,30 +0,0 @@ ---- -title: CheckCancel -description: >- - Cancels an unredeemed Check, removing it from the ledger without sending any - money. The source or the destination of the check can cancel a Check at any - time using this transaction type. ---- -\[[Source](https://github.com/Xahau/xahaud/blob/dev/src/ripple/app/tx/impl/URIToken.cpp)] - -_(Added by the \[Checks amendment]\[].)_ - -### Example - -```json -{ - "Account": "rUn84CUYbNjRoTQ6mSW7BVJPSVJNLb1QLo", - "TransactionType": "CheckCancel", - "CheckID": "49647F0D748DC3FE26BDACBC57F251AADEFFF391403EC9BF87C97F67E9977FB0", - "Fee": "12" -} -``` - -| Field | JSON Type | \[Internal Type]\[] | Description | -| --------- | --------- | ------------------- | ---------------------------------------------------------------------------------- | -| `CheckID` | String | Hash256 | The ID of the Check ledger object to cancel, as a 64-character hexadecimal string. | - -### Error Cases - -* If the object identified by the `CheckID` does not exist or is not a Check, the transaction fails with the result `tecNO_ENTRY`. -* If the Check is not expired and the sender of the CheckCancel transaction is not the source or destination of the Check, the transaction fails with the result `tecNO_PERMISSION`. diff --git a/src/content/docs/br/docs/protocol-reference/transactions/transaction-types/checkcash.mdx b/src/content/docs/br/docs/protocol-reference/transactions/transaction-types/checkcash.mdx deleted file mode 100644 index 611f14b..0000000 --- a/src/content/docs/br/docs/protocol-reference/transactions/transaction-types/checkcash.mdx +++ /dev/null @@ -1,38 +0,0 @@ ---- -title: CheckCash -description: >- - Attempts to redeem a Check object in the ledger to receive up to the amount - authorized by the corresponding CheckCreate transaction. ---- -\[[Source](https://github.com/Xahau/xahaud/blob/dev/src/ripple/app/tx/impl/URIToken.cpp)] - -_(Added by the \[Checks amendment]\[].)_ - -### Example - -```json -{ - "Account": "rfkE1aSy9G8Upk4JssnwBxhEv5p4mn2KTy", - "TransactionType": "CheckCash", - "Amount": "100000000", - "CheckID": "838766BA2B995C00744175F69A1B11E32C3DBC40E64801A4056FCBD657F57334", - "Fee": "12" -} -``` - -| Field | JSON Type | \[Internal Type]\[] | Description | -| ------------ | ---------------------------------------------------------------------------------------------------------------------------------- | ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `CheckID` | String | Hash256 | The ID of the Check ledger object to cash, as a 64-character hexadecimal string. | -| `Amount` | [Currency Amount](/docs/protocol-reference/data-types/currency-formats/#specifying-currency-amounts) | Amount | _(Optional)_ Redeem the Check for exactly this amount, if possible. The currency must match that of the `SendMax` of the corresponding CheckCreate transaction. You must provide either this field or `DeliverMin`. | -| `DeliverMin` | \[Currency Amount]\[] | Amount | _(Optional)_ Redeem the Check for at least this amount and for as much as possible. The currency must match that of the `SendMax` of the corresponding CheckCreate transaction. You must provide either this field or `Amount`. | - -The transaction _**must**_ include either `Amount` or `DeliverMin`, but not both. - -### Error Cases - -* If the sender of the CheckCash transaction is not the `Destination` of the check, the transaction fails with the result code `tecNO_PERMISSION`. -* If the Check identified by the `CheckID` field does not exist, the transaction fails with the result `tecNO_ENTRY`. -* If the Check identified by the `CheckID` field has already expired, the transaction fails with the result `tecEXPIRED`. -* If the destination of the Check has the `RequireDest` flag enabled but the Check, as created, does not have a destination tag, the transaction fails with the result code `tecDST_TAG_NEEDED`. -* If the transaction specifies both `Amount` and `DeliverMin`, or omits both, the transaction fails with the result `temMALFORMED`. -* If the `Amount` or `DeliverMin` does not match the currency (and issuer, if not XAH) of the Check, the transaction fails with the result `temBAD_CURRENCY`. diff --git a/src/content/docs/br/docs/protocol-reference/transactions/transaction-types/checkcreate.mdx b/src/content/docs/br/docs/protocol-reference/transactions/transaction-types/checkcreate.mdx deleted file mode 100644 index cf8c2f6..0000000 --- a/src/content/docs/br/docs/protocol-reference/transactions/transaction-types/checkcreate.mdx +++ /dev/null @@ -1,44 +0,0 @@ ---- -title: CheckCreate -description: >- - Create a Check object in the ledger, which is a deferred payment that can be - cashed by its intended destination. The sender of this transaction is the - sender of the Check. ---- -\[[Source](https://github.com/Xahau/xahaud/blob/dev/src/ripple/app/tx/impl/URIToken.cpp)] - -_(Added by the \[Checks amendment]\[].)_ - -### Example - -```json -{ - "TransactionType": "CheckCreate", - "Account": "rUn84CUYbNjRoTQ6mSW7BVJPSVJNLb1QLo", - "Destination": "rfkE1aSy9G8Upk4JssnwBxhEv5p4mn2KTy", - "SendMax": "100000000", - "Expiration": 570113521, - "InvoiceID": "6F1DFD1D0FE8A32E40E1F2C05CF1C15545BAB56B617F9C6C2D63A6B704BEF59B", - "DestinationTag": 1, - "Fee": "12" -} -``` - -| Field | JSON Type | \[Internal Type]\[] | Description | -| ---------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `Destination` | String | AccountID | The unique address of the account that can cash the Check. | -| `SendMax` | [Currency Amount](/docs/protocol-reference/data-types/currency-formats/#specifying-currency-amounts) | Amount | Maximum amount of source currency the Check is allowed to debit the sender, including transfer fees on non-XAH currencies. The Check can only credit the destination with the same currency (from the same issuer, for non-XAH currencies). For non-XAH amounts, the nested field names MUST be lower-case. | -| `DestinationTag` | Number | UInt32 | _(Optional)_ Arbitrary tag that identifies the reason for the Check, or a hosted recipient to pay. | -| `Expiration` | Number | UInt32 | _(Optional)_ Time after which the Check is no longer valid, in \[seconds since the Ripple Epoch]\[]. | -| `InvoiceID` | String | Hash256 | _(Optional)_ Arbitrary 256-bit hash representing a specific reason or identifier for this Check. | - -### Error Cases - -* If the `Destination` account is blocking incoming Checks, the transaction fails with the result code `tecNO_PERMISSION`. -* If the `Destination` is the sender of the transaction, the transaction fails with the result code `temREDUNDANT`. -* If the `Destination` account does not exist in the ledger, the transaction fails with the result code `tecNO_DST`. -* If the `Destination` account has the `RequireDest` flag enabled but the transaction does not include a `DestinationTag` field, the transaction fails with the result code `tecDST_TAG_NEEDED`. -* If `SendMax` specifies a token which is frozen, the transaction fails with the result `tecFROZEN`. -* If the `Expiration` of the transaction is in the past, the transaction fails with the result `tecEXPIRED`. -* If the sender does not have enough XAH to meet the owner reserve after adding the Check, the transaction fails with the result `tecINSUFFICIENT_RESERVE`. -* If either the sender or the destination of the Check cannot own more objects in the ledger, the transaction fails with the result `tecDIR_FULL`. diff --git a/src/content/docs/br/docs/protocol-reference/transactions/transaction-types/claimreward.mdx b/src/content/docs/br/docs/protocol-reference/transactions/transaction-types/claimreward.mdx deleted file mode 100644 index d836534..0000000 --- a/src/content/docs/br/docs/protocol-reference/transactions/transaction-types/claimreward.mdx +++ /dev/null @@ -1,62 +0,0 @@ ---- -title: ClaimReward -description: >- - A ClaimReward transaction allows an account to claim the rewards it has - accumulated. The rewards can be claimed by the account owner or by a specified - issuer. The account can also opt-out of rewards. ---- -\[[Source](https://github.com/Xahau/xahaud/blob/dev/src/ripple/app/tx/impl/ClaimReward.cpp)] - -_(Added by the \[BalanceRewards amendment]\[].)_ - -### Opt-in + Claim - -```json -{ - "TransactionType": "ClaimReward", - "Account": "rWYkbWkCeg8dP6rXALnjgZSjjLyih5NXm", - "Issuer": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh" -} -``` - -### Opt-out - -```json -{ - "TransactionType": "ClaimReward", - "Account": "rWYkbWkCeg8dP6rXALnjgZSjjLyih5NXm", - "Flags": 1 -} -``` - -### Fields - -| Field | JSON Type | \[Internal Type]\[] | Description | -| --------- | --------- | ------------------- | ------------------------------------------------------- | -| `Account` | String | AccountID | The address of the account that is claiming the reward. | -| `Flags` | Number | UInt32 | _(Optional)_ Can have flag 1 set to opt-out of rewards. | -| `Issuer` | String | AccountID | _(Optional)_ The genesis account. | - -### ClaimReward Flags - -Transactions of the ClaimReward type support additional values in the `Flags` field, as follows: - -| Flag Name | Hex Value | Decimal Value | Description | -| ---------- | ------------ | ------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `tfOptOut` | `0x00000001` | 1 | The `isOptOut` flag in the ClaimReward code is used to opt-out an account from rewards by removing reward-related fields from the account object in the ledger if the `sfFlags` field in the transaction is set to 1. | - -### Special Transaction Cost - -The ClaimReward transaction has a standard transaction cost, which is the minimum transaction cost required for all transactions. - -### Error Cases - -Besides errors that can occur for all transactions, ClaimReward transactions can result in the following transaction result codes: - -| Error Code | Description | -| ----------------- | ------------------------------------------------------------------------------------------------------- | -| `temDISABLED` | Occurs if the feature is not enabled. | -| `temINVALID_FLAG` | Occurs if the flag is set to a value other than 1. | -| `temMALFORMED` | Occurs if the issuer is the same as the source account or if the flag and issuer are not correctly set. | -| `tecNO_ISSUER` | Occurs if the issuer does not exist. | -| `terNO_ACCOUNT` | Occurs if the sending account does not exist. | diff --git a/src/content/docs/br/docs/protocol-reference/transactions/transaction-types/clawback.mdx b/src/content/docs/br/docs/protocol-reference/transactions/transaction-types/clawback.mdx deleted file mode 100644 index d7102af..0000000 --- a/src/content/docs/br/docs/protocol-reference/transactions/transaction-types/clawback.mdx +++ /dev/null @@ -1,52 +0,0 @@ ---- -title: Clawback -description: >- - Revoke tokens that were previously issued by your account. ---- -\[[Source](https://github.com/Xahau/xahaud/blob/dev/src/ripple/app/tx/impl/Clawback.cpp)] - -_(Added by the \[Clawback amendment]\[].)_ - -Revoke tokens that were previously issued by your account. The **Clawback** feature is disabled by default. To use it, you must first submit an **AccountSet** transaction that enables *Allow Trust Line Clawback*. If your account has already issued tokens, you cannot enable Clawback afterward. You can only activate *Allow Trust Line Clawback* if your owner directory is completely empty — meaning before creating trust lines, offers, escrows, payment channels, checks, or signer lists. Once enabled, Clawback becomes a permanent capability of your account and cannot be undone. - ---- - -## Example - -```json -{ - "TransactionType": "Clawback", - "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "Amount": { - "currency": "USD", - "issuer": "rfkE1aSy9G8Upk4JssnwBxhEv5p4mn2KTy", - "value": "123.45" - } -} -```` - ---- - -### Fields - -A **Clawback** transaction includes: - -| Field | JSON Type | Description | -| -------- | ----------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `Amount` | *Currency Amount* | The quantity to be revoked, as well as the counterparty from which it is taken. The `value` must not be zero. If greater than the holder’s balance, the entire balance is revoked. In the `issuer` sub-field, specify the holder’s address (not the issuer’s). | - -In Xahau, an IOU/Non-XAH token on a trust line always has an issuer, but trust lines are bidirectional and under certain settings both sides may act as issuers. In this transaction, the issuer’s address goes in the `Account` field, while the holder’s address goes in the `issuer` sub-field of `Amount`. - ---- - -## Error Cases - -Besides the standard transaction errors, Clawback may fail with: - -| Error Code | Description | -| ------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `temDISABLED` | The **Clawback** amendment is not enabled on Xahau. | -| `temBAD_AMOUNT` | The holder’s balance is zero. (It is not an error if the specified amount exceeds the holder’s balance — in that case, the full available balance is revoked). Also occurs if the counterparty in `Amount` is the same account submitting the transaction. | -| `tecNO_LINE` | No trust line exists with the specified counterparty, or the trust line has a balance of zero. | -| `tecNO_PERMISSION` | Happens if you try to enable `lsfAllowTrustLineClawback` while `lsfNoFreeze` is already enabled, or vice versa. | - diff --git a/src/content/docs/br/docs/protocol-reference/transactions/transaction-types/cronset.mdx b/src/content/docs/br/docs/protocol-reference/transactions/transaction-types/cronset.mdx deleted file mode 100644 index ed969e7..0000000 --- a/src/content/docs/br/docs/protocol-reference/transactions/transaction-types/cronset.mdx +++ /dev/null @@ -1,101 +0,0 @@ ---- -title: CronSet -description: >- - A CronSet transaction enables Hooks to schedule recurring self-invocations at - regular intervals, similar to Linux cronjobs. This facilitates complex - governance structures and automated processes within Hook frameworks. ---- -\[[Source](https://github.com/Xahau/xahaud/blob/dev/src/ripple/app/tx/impl/CronSet.cpp)] - -_(Added by the CronSet amendment.)_ - -### Example - -```json -{ - "TransactionType": "CronSet", - "Account": "rYourAccountAddress", - "StartTime": 816348759, - "RepeatCount": 3, - "DelaySeconds": 120 -} -``` - -| Field | JSON Type | \[Internal Type]\[] | Description | -| -------------- | --------- | ------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `Account` | String | AccountID | The Hook account initiating the cron. This is the account that will be invoked when the cron executes. | -| `StartTime` | Number | UInt32 | _(Optional)_ Ripple Epoch timestamp when the first execution should occur. Use `0` for immediate execution. If omitted when deleting a cron, the transaction removes the cron. | -| `RepeatCount` | Number | UInt32 | _(Optional)_ Number of times the cron should execute (maximum 256 per transaction). Can be extended via subsequent CronSet transactions. Omit when deleting a cron. | -| `DelaySeconds` | Number | UInt32 | _(Optional)_ Time interval in seconds between each execution. Omit when deleting a cron. | - -### How CronSet Works - -CronSet transactions enable scheduled, automated Hook execution on the Xahau blockchain at regular intervals, eliminating the need for external services or manual triggers. - -The workflow involves four key steps: - -1. Install a Hook with the `hsfCOLLECT` flag enabled -2. Enable Transaction Signature Hook Collection `asfTshCollect` on your account (SetFlag: 11) -3. Create a CronSet transaction with scheduling parameters -4. Let Xahau handle automatic execution - -### Execution Mechanism - -When a cron is ready to execute, the Cron engine inserts a pseudo-transaction of type `Cron` into the ledger, containing an `Owner` field referencing the originating Hook account. Hook developers must enable collect calls, as the Owner constitutes a weak transactional stakeholder. - -The scheduled Hook will be invoked automatically at the specified intervals without requiring external triggers. - -### Time Format - -Xahau uses Ripple Epoch time (seconds since January 1, 2000), not Unix time. To convert from JavaScript Date: - -```javascript -const rippleEpochTime = Math.floor(Date.now() / 1000) - 946684800; -``` - -### Deleting a Cron - -To remove an existing Cron, omit `StartTime`, `RepeatCount`, and `DelaySeconds` while setting `Flags: 1` (tfCronUnset): - -```json -{ - "TransactionType": "CronSet", - "Account": "rYourAccountAddress", - "Flags": 1 -} -``` - -### Extending Repeat Count - -Upon reaching a minimum threshold, a subsequent CronSet transaction can extend the repeat count beyond the initial 256 execution limit by submitting a new CronSet transaction with an updated `RepeatCount`. - -### CronSet Flags - -Transactions of the CronSet type support additional values in the `Flags` field, as follows: - -| Flag Name | Hex Value | Decimal Value | Description | -| ------------- | ------------ | ------------- | -------------------------------------------------------------------------------- | -| `tfCronUnset` | `0x00000001` | 1 | Removes an existing Cron. All scheduling fields must be omitted when this is set. | - -### Limitations and Constraints - -- CronSet cannot currently be delegated to another account -- Hooks must self-emit CronSet transactions or operate under joint management arrangements -- `RepeatCount`: Must be greater than 0 and cannot exceed 256 per transaction (extendable via subsequent transactions) -- `DelaySeconds`: Maximum of 31,536,000 seconds (365 days) -- `StartTime`: Must be current time or future; cannot exceed 365 days ahead -- Cannot combine `tfCronUnset` flag with `DelaySeconds`, `RepeatCount`, or `StartTime` fields -- When creating a cron, `DelaySeconds` and `RepeatCount` must both exist or both be absent - -### Error Cases - -Besides errors that can occur for all transactions, CronSet transactions can result in the following transaction result codes: - -| Error Code | Description | -| ------------------ | -------------------------------------------------------------------------------------------------- | -| `temDISABLED` | Occurs if the Cron feature is not enabled. | -| `temINVALID_FLAG` | Occurs if invalid flags are set in the transaction. | -| `temMALFORMED` | Occurs if the transaction is malformed with invalid field combinations. | -| `tecEXPIRED` | Occurs if `StartTime` is in the past or more than 365 days in the future. | -| `tefINTERNAL` | Occurs if the account ledger entry is missing. | -| `tefBAD_LEDGER` | Occurs if the Cron object is missing, points to a non-cron entry, or owner directory removal fails. | diff --git a/src/content/docs/br/docs/protocol-reference/transactions/transaction-types/depositpreauth.mdx b/src/content/docs/br/docs/protocol-reference/transactions/transaction-types/depositpreauth.mdx deleted file mode 100644 index 542e4e9..0000000 --- a/src/content/docs/br/docs/protocol-reference/transactions/transaction-types/depositpreauth.mdx +++ /dev/null @@ -1,45 +0,0 @@ ---- -title: DepositPreauth -description: >- - A DepositPreauth transaction gives another account pre-approval to deliver - payments to the sender of this transaction. ---- -import { Aside } from '@astrojs/starlight/components'; - - - -\[[Source](https://github.com/Xahau/xahaud/blob/dev/src/ripple/app/tx/impl/URIToken.cpp)] - -_Added by the \[DepositPreauth amendment]\[]._ - -### Example - -```json -{ - "TransactionType" : "DepositPreauth", - "Account" : "rsUiUMpnrgxQp24dJYZDhmV4bE3aBtQyt8", - "Authorize" : "rEhxGqkqPPSxQ3P25J66ft5TwpzV14k2de", - "Fee" : "10", - "Flags" : 2147483648, - "Sequence" : 2 -} -``` - -### Fields - -| Field | JSON Type | \[Internal Type]\[] | Description | -| ------------- | --------- | ------------------- | -------------------------------------------------------------------------------- | -| `Authorize` | String | AccountID | _(Optional)_ Xahau address of the sender to preauthorize. | -| `Unauthorize` | String | AccountID | _(Optional)_ Xahau address of a sender whose preauthorization should be revoked. | - -You must provide _either_ `Authorize` or `Unauthorize`, but not both. - -### Error Cases - -* An account cannot preauthorize (or unauthorize) its own address. Attempting to do so fails with the result `temCANNOT_PREAUTH_SELF`. -* Attempting to preauthorize an account which is already preauthorized fails with the result `tecDUPLICATE`. -* Attempting to unauthorize an account which is not preauthorized fails with the result `tecNO_ENTRY`. -* Attempting to preauthorize an address that is not funded in the ledger fails with the result `tecNO_TARGET`. -* Adding authorization adds a DepositPreauth object to the ledger, which counts toward the owner reserve requirement. If the sender of the transaction does not have enough XAH to pay for the increased reserve, the transaction fails with the result `tecINSUFFICIENT_RESERVE`. If the sender of the account is already at the maximum number of owned objects, the transaction fails with the result `tecDIR_FULL`. diff --git a/src/content/docs/br/docs/protocol-reference/transactions/transaction-types/escrowcancel.mdx b/src/content/docs/br/docs/protocol-reference/transactions/transaction-types/escrowcancel.mdx deleted file mode 100644 index 568d1e9..0000000 --- a/src/content/docs/br/docs/protocol-reference/transactions/transaction-types/escrowcancel.mdx +++ /dev/null @@ -1,42 +0,0 @@ ---- -title: EscrowCancel -description: Return escrowed XAH or IOU to the sender. ---- -\[[Source](https://github.com/Xahau/xahaud/blob/dev/src/ripple/app/tx/impl/URIToken.cpp)] - -_Added by the \[Escrow amendment]\[]._ - -### Cancel Using OfferSequence - -```json -{ - "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "TransactionType": "EscrowCancel", - "Owner": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "OfferSequence": 7, -} -``` - -### Cancel Using EscrowID - -```json -{ - "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "TransactionType": "EscrowCancel", - "Owner": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "EscrowID": "49647F0D748DC3FE26BDACBC57F251AADEFFF391403EC9BF87C97F67E9977FB0", -} -``` - -### Fields - -| Field | JSON Type | \[Internal Type]\[] | Description | -| --------------- | --------- | ------------------- | ------------------------------------------------------------------------------------------------------------------------- | -| `Owner` | String | AccountID | Address of the source account that funded the escrow payment. | -| `OfferSequence` | Number | UInt32 | _(Optional)_ Transaction sequence (or Ticket number) of \[EscrowCreate transaction]\[] that created the escrow to cancel. | -| `EscrowID` | String | Hash256 | _(Optional)_ The ID of the Escrow ledger object to cancel, as a 64-character hexadecimal string. | - -Any account may submit an EscrowCancel transaction. - -* If the corresponding \[EscrowCreate transaction]\[] did not specify a `CancelAfter` time, the EscrowCancel transaction fails. -* Otherwise the EscrowCancel transaction fails if the `CancelAfter` time is after the close time of the most recently-closed ledger. diff --git a/src/content/docs/br/docs/protocol-reference/transactions/transaction-types/escrowcreate.mdx b/src/content/docs/br/docs/protocol-reference/transactions/transaction-types/escrowcreate.mdx deleted file mode 100644 index 601edb1..0000000 --- a/src/content/docs/br/docs/protocol-reference/transactions/transaction-types/escrowcreate.mdx +++ /dev/null @@ -1,43 +0,0 @@ ---- -title: EscrowCreate -description: Sequester XAH or IOU until the escrow process either finishes or is canceled. ---- -\[[Source](https://github.com/Xahau/xahaud/blob/dev/src/ripple/app/tx/impl/URIToken.cpp)] - -_Added by the \[Escrow amendment]\[]._ - -### Example - -```json -{ - "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "TransactionType": "EscrowCreate", - "Amount" : { - "currency" : "USD", - "value" : "1", - "issuer" : "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn" - }, - "Destination": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", - "CancelAfter": 533257958, - "FinishAfter": 533171558, - "Condition": "A0258020E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855810100", - "DestinationTag": 23480, - "SourceTag": 11747 -} -``` - -### Fields - -| Field | JSON Type | \[Internal Type]\[] | Description | -| ---------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `Amount` | [Currency Amount](/docs/protocol-reference/data-types/currency-formats/#specifying-currency-amounts) | Amount | Amount to deduct from the sender's balance and escrow. Once escrowed, the Amount can either go to the `Destination` address (after the `FinishAfter` time) or returned to the sender (after the `CancelAfter` time). | -| `Destination` | String | AccountID | Address to receive escrowed Amount. | -| `CancelAfter` | Number | UInt32 | _(Optional)_ The time, in \[seconds since the Ripple Epoch]\[], when this escrow expires. This value is immutable; the funds can only be returned to the sender after this time. | -| `FinishAfter` | Number | UInt32 | _(Optional)_ The time, in \[seconds since the Ripple Epoch]\[], when the escrowed Amount can be released to the recipient. This value is immutable; the funds cannot move until this time is reached. | -| `Condition` | String | Blob | _(Optional)_ Hex value representing a [PREIMAGE-SHA-256 crypto-condition](https://tools.ietf.org/html/draft-thomas-crypto-conditions-02#section-8.1). The funds can only be delivered to the recipient if this condition is fulfilled. | -| `DestinationTag` | Number | UInt32 | _(Optional)_ Arbitrary tag to further specify the destination for this escrowed payment, such as a hosted recipient at the destination address. | - -Either `CancelAfter` or `FinishAfter` must be specified. If both are included, the `FinishAfter` time must be before the `CancelAfter` time. - -With the \[fix1571 amendment]\[] enabled, you must supply `FinishAfter`, `Condition`, or both. \[New in: rippled 1.0.0]\[] - diff --git a/src/content/docs/br/docs/protocol-reference/transactions/transaction-types/genesismint-emitted-txn.mdx b/src/content/docs/br/docs/protocol-reference/transactions/transaction-types/genesismint-emitted-txn.mdx deleted file mode 100644 index 213ef81..0000000 --- a/src/content/docs/br/docs/protocol-reference/transactions/transaction-types/genesismint-emitted-txn.mdx +++ /dev/null @@ -1,57 +0,0 @@ ---- -title: GenesisMint - (Emitted Txn) -description: >- - The GenesisMint transaction is used to mint new XAH and distribute it to - multiple accounts. This transaction can only be used by the genesis account. ---- -\[[Source](https://github.com/ripple/rippled/blob/develop/src/ripple/app/tx/impl/GenesisMint.cpp)] - -_Added by the \[XahauGenesis amendment]\[] and the \[Hooks amendment]\[]_ - -### Example - -```json -{ - "TransactionType": "GenesisMint", - "Account": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", - "GenesisMints": [ - { - "GenesisMint": { - "Destination": "rPT1Sjq2YGrBMTttX4GZHjKu9dyfzbpAYe", - "Amount": "1000000000" - }, - } - ] -} -``` - -### Fields - -| Field | JSON Type | Internal Type | Description | -| -------------- | --------- | ------------- | -------------------------------------------------------------------------------- | -| `Account` | String | AccountID | The address of the genesis account that will mint and distribute XAH. | -| `GenesisMints` | Array | Array | An array of objects representing the destinations and amounts of the minted XAH. | - -### GenesisMint Object - -The GenesisMint transaction includes an array of objects called `GenesisMints`. Each object represents a destination account and the amount of XAH to be minted and distributed to that account. - -| Field | JSON Type | Internal Type | Description | -| ----------------- | --------- | ------------- | -------------------------------------------------------------------------- | -| `Destination` | String | AccountID | The address of the account that will receive the minted XAH. | -| `Amount` | String | Amount | The amount of XAH to be minted and distributed to the destination account. | -| `GovernanceFlags` | String | Hash256 | _(Optional)_ The governance flags associated with the destination account. | -| `GovernanceMarks` | String | Hash256 | _(Optional)_ The governance marks associated with the destination account. | - -### Special Transaction Cost - -The GenesisMint transaction has a standard transaction cost, which is the minimum transaction cost required for all transactions. - -### Error Cases - -Besides errors that can occur for all transactions, the GenesisMint transaction can result in the following transaction result codes: - -| Error Code | Description | -| -------------- | ------------------------------------------------------------------------------------------ | -| `temDISABLED` | Occurs if the "Hooks" or "XahauGenesis" amendments are not enabled. | -| `temMALFORMED` | Occurs if the transaction is malformed, such as missing required fields or invalid values. | diff --git a/src/content/docs/br/docs/protocol-reference/transactions/transaction-types/import.mdx b/src/content/docs/br/docs/protocol-reference/transactions/transaction-types/import.mdx deleted file mode 100644 index 52adf5f..0000000 --- a/src/content/docs/br/docs/protocol-reference/transactions/transaction-types/import.mdx +++ /dev/null @@ -1,64 +0,0 @@ ---- -title: Import -description: >- - Import is a new transaction which accepts an XPOP from the XRPL Mainnet chain - (network_id=0) or Testnet (network_id=1) and provides account synchronisation. ---- -\[[Source](https://github.com/Xahau/xahaud/blob/dev/src/ripple/app/tx/impl/URIToken.cpp)] - -_(Added by the \[Import amendment]\[].)_ - -### Example - -```json -{ - "TransactionType": "Import", - "Sequence": 0, - "Fee": "0", - "Account": "rUn84CUYbNjRoTQ6mSW7BVJPSVJNLb1QLo", - "Blob" : "DEADBEEF" -} -``` - -### Fields - -| Field | JSON Type | \[Internal Type]\[] | Description | -| ------------- | --------- | ------------------- | ---------------------------------------------------- | -| `Blob` | String | Blob | Hex value representing an XPOP | -| `Issuer` | String | AccountID | (Optional) Address that can be used inside the Hook. | -| `Destination` | String | AccountID | (Optional) Address that can be used inside the Hook. | - -### Error Cases - -* If the account is Non Activated then the `Sequence` must be 0 and the `Fee` must also be 0 -* If the account is Activated then the `Sequence` and the `Fee` are calculated using the standard method. -* If the `Issuer` field is present then the `Fee` must be calculated using the standard method. - -### Notes - -_It is recommended that if you use a `SignerList` or `RegularKey` to sign your transactions that you key your accounts **FIRST** before attempting to _B2M_ XAH_ . - -* If the inner (xpop) transaction is `AccountSet` the mainet existing flags will be transfered to the new network. -* If the inner (xpop) transaction is `SetRegularKey` with the `RegularKey` field omitted or empty, and a signers list does not exist for the account then the `lsfDisableMaster` flag will be set on the account. -* If the inner (xpop) transaction is `SetRegularKey` then the `lsfPasswordSpent` flag will be set on the account. -* TicketSequence is not available on `Import` - -### Importing for the Issuer - -For issuers, there are additional steps to follow before their asset holders can import transactions. - -Firstly, issuers need to install a hook. There are two options for this: `B2MNFToken` or `B2MPayment`. - -#### B2MNFToken - -A `NFTokenBurn` transaction on mainnet will result in a `URITokenMint` transaction on the network. - -> c hook: https://example.com - -#### B2MPayment - -A `Payment` transaction on mainnet to the Issuer will result in a `Payment` transaction from the Issuer on the network. - -> c hook: https://example.com - -_Please note that the process of importing for the issuer involves specific transaction types and requires careful configuration. Always ensure that the hooks are correctly set up and that the transactions are valid for the intended operations._ diff --git a/src/content/docs/br/docs/protocol-reference/transactions/transaction-types/invoke.mdx b/src/content/docs/br/docs/protocol-reference/transactions/transaction-types/invoke.mdx deleted file mode 100644 index 57e6c3f..0000000 --- a/src/content/docs/br/docs/protocol-reference/transactions/transaction-types/invoke.mdx +++ /dev/null @@ -1,40 +0,0 @@ ---- -title: Invoke -description: >- - An Invoke transaction is used to call a hook, which is a piece of code that is - executed in response to certain ledger operations. ---- -\[[Source](https://github.com/ripple/rippled/blob/develop/src/ripple/app/tx/impl/Invoke.cpp)] - -_(Added by the [Hooks amendment][].)_ - -### Example - -```json -{ - "TransactionType": "Invoke", - "Account": "rWYkbWkCeg8dP6rXALnjgZSjjLyih5NXm", - "Blob": "697066733A2F2F4445414442454546", - "Destination": "rPT1Sjq2YGrBMTttX4GZHjKu9dyfzbpAYe" -} -``` - -| Field | JSON Type | \[Internal Type]\[] | Required? | Description | -| ---------------- | --------- | ------------------- | --------- | -------------------------------------------------------------------------------------------------- | -| `Account` | String | AccountID | Yes | The address of the account that is invoking the hook. | -| `Blob` | String | Blob | No | A blob of data that is passed to the hook. (128k byte max) | -| `Destination` | String | AccountID | No | The address of the account that is the target of the hook. | - -### Special Transaction Cost - -The Invoke transaction has a standard transaction cost, plus an additional cost based on the size of the Blob field. - -### Error Cases - -Besides errors that can occur for all transactions, Invoke transactions can result in the following transaction result codes: - -| Error Code | Description | -| --------------- | ------------------------------------------------------------------------ | -| `temDISABLED` | Occurs if the Hooks amendment is not enabled. | -| `temMALFORMED` | Occurs if the Blob field is larger than 128k bytes. | -| `terNO_ACCOUNT` | Occurs if the sending account or the destination account does not exist. | diff --git a/src/content/docs/br/docs/protocol-reference/transactions/transaction-types/offercancel.mdx b/src/content/docs/br/docs/protocol-reference/transactions/transaction-types/offercancel.mdx deleted file mode 100644 index 9415a18..0000000 --- a/src/content/docs/br/docs/protocol-reference/transactions/transaction-types/offercancel.mdx +++ /dev/null @@ -1,44 +0,0 @@ ---- -title: OfferCancel -description: An OfferCancel transaction removes an Offer object from Xahau. ---- -\[[Source](https://github.com/Xahau/xahaud/blob/dev/src/ripple/app/tx/impl/URIToken.cpp)] - -### Cancel with OfferSequence - -```json -{ - "TransactionType": "OfferCancel", - "Account": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", - "Fee": "12", - "Flags": 0, - "LastLedgerSequence": 7108629, - "OfferSequence": 6, - "Sequence": 7 -} -``` - -### Cancel with OfferID - -```json -{ - "TransactionType": "OfferCancel", - "Account": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", - "Fee": "12", - "Flags": 0, - "LastLedgerSequence": 7108629, - "OfferID": "49647F0D748DC3FE26BDACBC57F251AADEFFF391403EC9BF87C97F67E9977FB0", - "Sequence": 7 -} -``` - -### Fields - -| Field | JSON Type | \[Internal Type]\[] | Description | -| --------------- | --------- | ------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `OfferSequence` | Number | UInt32 | _(Optional)_ The sequence number (or Ticket number) of a previous OfferCreate transaction. If specified, cancel any offer object in the ledger that was created by that transaction. It is not considered an error if the offer specified does not exist. | -| `OfferID` | String | Hash256 | _(Optional)_ The ID of the Offer ledger object to cancel, as a 64-character hexadecimal string. | - -_Tip:_ To remove an old offer and replace it with a new one, you can use an \[OfferCreate transaction]\[] with an `OfferSequence` parameter, instead of using OfferCancel and another OfferCreate. - -The OfferCancel method returns `tesSUCCESS` even if it did not find an offer with the matching sequence number. diff --git a/src/content/docs/br/docs/protocol-reference/transactions/transaction-types/offercreate.mdx b/src/content/docs/br/docs/protocol-reference/transactions/transaction-types/offercreate.mdx deleted file mode 100644 index 038ac9d..0000000 --- a/src/content/docs/br/docs/protocol-reference/transactions/transaction-types/offercreate.mdx +++ /dev/null @@ -1,68 +0,0 @@ ---- -title: OfferCreate -description: >- - An OfferCreate transaction places an Offer in the - decentralized exchange. ---- -\[[Source](https://github.com/Xahau/xahaud/blob/dev/src/ripple/app/tx/impl/URIToken.cpp)] - -### Example - -```json -{ - "TransactionType": "OfferCreate", - "Account": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", - "Fee": "12", - "Flags": 0, - "LastLedgerSequence": 7108682, - "Sequence": 8, - "TakerGets": "6000000", - "TakerPays": { - "currency": "GKO", - "issuer": "ruazs5h1qEsqpke88pcqnaseXdm6od2xc", - "value": "2" - } -} -``` - -### Fields - -| Field | JSON Type | \[Internal Type]\[] | Description | -| --------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ------------------- | ----------------------------------------------------------------------------------------------------- | -| `Expiration` | Number | UInt32 | _(Optional)_ Time after which the Offer is no longer active, in \[seconds since the Ripple Epoch]\[]. | -| `OfferSequence` | Number | UInt32 | _(Optional)_ An Offer to delete first, specified in the same way as \[OfferCancel]\[]. | -| `OfferID` | String | Hash256 | _(Optional)_ The ID of the Offer ledger object to cancel, as a 64-character hexadecimal string. | -| `TakerGets` | [Currency Amount](/docs/protocol-reference/data-types/currency-formats/#specifying-currency-amounts) | Amount | The amount and type of currency being sold. | -| `TakerPays` | [Currency Amount](/docs/protocol-reference/data-types/currency-formats/#specifying-currency-amounts) | Amount | The amount and type of currency being bought. | - -### OfferCreate Flags - -Transactions of the OfferCreate type support additional values in the `Flags` field, as follows: - -| Flag Name | Hex Value | Decimal Value | Description | -| --------------------- | ------------ | ------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `tfPassive` | `0x00010000` | 65536 | If enabled, the Offer does not consume Offers that exactly match it, and instead becomes an Offer object in the ledger. It still consumes Offers that cross it. | -| `tfImmediateOrCancel` | `0x00020000` | 131072 | Treat the Offer as an [Immediate or Cancel order](http://en.wikipedia.org/wiki/Immediate_or_cancel). The Offer never creates an \[Offer object]\[] in the ledger: it only trades as much as it can by consuming existing Offers at the time the transaction is processed. If no Offers match, it executes "successfully" without trading anything. In this case, the transaction still uses the result code `tesSUCCESS`. | -| `tfFillOrKill` | `0x00040000` | 262144 | Treat the offer as a [Fill or Kill order](http://en.wikipedia.org/wiki/Fill_or_kill). The Offer never creates an \[Offer object]\[] in the ledger, and is canceled if it cannot be fully filled at the time of execution. By default, this means that the owner must receive the full `TakerPays` amount; if the `tfSell` flag is enabled, the owner must be able to spend the entire `TakerGets` amount instead. | -| `tfSell` | `0x00080000` | 524288 | Exchange the entire `TakerGets` amount, even if it means obtaining more than the `TakerPays` amount in exchange. | - -### Error Cases - -| Error Code | Description | -| ------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `temINVALID_FLAG` | Occurs if the transaction specifies both `tfImmediateOrCancel` and `tfFillOrKill`. | -| `tecEXPIRED` | Occurs if the transaction specifies an `Expiration` time that has already passed. | -| `tecKILLED` | Occurs if the transaction specifies `tfFillOrKill`, and the full amount cannot be filled. If the _\[ImmediateOfferKilled amendment]\[]_ is enabled, this result code also occurs when the transaction specifies `tfImmediateOrCancel` and executes without moving funds (previously, this would return `tesSUCCESS`). | -| `temBAD_EXPIRATION` | Occurs if the transaction contains an `Expiration` field that is not validly formatted. | -| `temBAD_SEQUENCE` | Occurs if the transaction contains an `OfferSequence` that is not validly formatted, or is higher than the transaction's own `Sequence` number. | -| `temBAD_OFFER` | Occurs if the Offer tries to trade XAH for XAH, or tries to trade an invalid or negative amount of a token. | -| `temREDUNDANT` | Occurs if the transaction specifies a token for the same token (same issuer and currency code). | -| `temBAD_CURRENCY` | Occurs if the transaction specifies a token with the currency code "XAH". | -| `temBAD_ISSUER` | Occurs if the transaction specifies a token with an invalid `issuer` value. | -| `tecNO_ISSUER` | Occurs if the transaction specifies a token whose `issuer` value is not a funded account in the ledger. | -| `tecFROZEN` | Occurs if the transaction involves a token on a frozen trust line (including local and global freezes). | -| `tecUNFUNDED_OFFER` | Occurs if the owner does not hold a positive amount of the `TakerGets` currency. (Exception: if `TakerGets` specifies a token that the owner issues, the transaction can succeed.) | -| `tecNO_LINE` | Occurs if the transaction involves a token whose issuer uses Authorized Trust Lines and the necessary trust line does not exist. | -| `tecNO_AUTH` | Occurs if the transaction involves a token whose issuer uses Authorized Trust Lines and the the trust line that would receive the tokens exists but has not been authorized. | -| `tecINSUF_RESERVE_OFFER` | Occurs if the owner does not have enough XAH to meet the reserve requirement of adding a new Offer object to the ledger, and the transaction did not convert any currency. (If the transaction successfully traded any amount, the transaction succeeds with the result code `tesSUCCESS`, but does not create an Offer object in the ledger for the rest.) | -| `tecDIR_FULL` | Occurs if the owner owns too many items in the ledger, or the order book contains too many Offers at the same exchange rate already. | diff --git a/src/content/docs/br/docs/protocol-reference/transactions/transaction-types/payment.mdx b/src/content/docs/br/docs/protocol-reference/transactions/transaction-types/payment.mdx deleted file mode 100644 index fc9ed86..0000000 --- a/src/content/docs/br/docs/protocol-reference/transactions/transaction-types/payment.mdx +++ /dev/null @@ -1,113 +0,0 @@ ---- -title: Payment -description: >- - A Payment transaction represents a transfer of value from one account to - another. (Depending on the path taken, this can involve additional exchanges - of value, which occur atomically.) This transactio ---- -[\[Source\]](https://github.com/ripple/rippled/blob/5425a90f160711e46b2c1f1c93d68e5941e4bfb6/src/ripple/app/transactors/Payment.cpp) - -### Example - -```json -{ - "TransactionType" : "Payment", - "Account" : "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "Destination" : "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", - "Amount" : { - "currency" : "USD", - "value" : "1", - "issuer" : "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn" - }, - "Fee": "12", - "Flags": 2147483648, - "Sequence": 2, -} -``` - -| Field | JSON Type | \[Internal Type]\[] | Description | -| ---------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `Amount` | [Currency Amount](/docs/protocol-reference/data-types/currency-formats/#specifying-currency-amounts) | Amount | The amount of currency to deliver. For non-XAH amounts, the nested field names MUST be lower-case. If the `tfPartialPayment` flag is set, deliver _up to_ this amount instead. | -| `Destination` | String | AccountID | The unique address of the account receiving the payment. | -| `DestinationTag` | Number | UInt32 | _(Optional)_ Arbitrary tag that identifies the reason for the payment to the destination, or a hosted recipient to pay. | -| `InvoiceID` | String | Hash256 | _(Optional)_ Arbitrary 256-bit hash representing a specific reason or identifier for this payment. | -| `Paths` | Array of path arrays | PathSet | (Optional, auto-fillable) Array of payment paths to be used for this transaction. Must be omitted for XAH-to-XAH transactions. | -| `SendMax` | [Currency Amount](/docs/protocol-reference/data-types/currency-formats/#specifying-currency-amounts) | Amount | _(Optional)_ Highest amount of source currency this transaction is allowed to cost, including transfer fees, exchange rates, and [slippage](http://en.wikipedia.org/wiki/Slippage_\(finance\)). Does not include the XAH destroyed as a cost for submitting the transaction. For non-XAH amounts, the nested field names MUST be lower-case. Must be supplied for cross-currency/cross-issue payments. Must be omitted for XAH-to-XAH payments. | -| `DeliverMin` | \[Currency Amount]\[] | Amount | _(Optional)_ Minimum amount of destination currency this transaction should deliver. Only valid if this is a partial payment. For non-XAH amounts, the nested field names are lower-case. | - -### Types of Payments - -The Payment transaction type is a general-purpose tool that can represent several different types of abstract actions. You can identify the transaction type based on the transaction's fields, as described in the table below: - -| Payment type | `Amount` | `SendMax` | `Paths` | `Address` = `Destination`? | Description | -| ---------------------------- | ------------------------------- | ------------------------------- | ---------------- | -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Direct XAH-to-XAH Payment | String (XAH) | Omitted | Omitted | No | Transfers XAH directly from one account to another. Always delivers the exact amount. No fee applies other than the basic transaction cost. | -| Creating or redeeming tokens | Object | Object (optional) | Optional | No | Increases or decreases the amount of a non-XAH currency or asset tracked in Xahau. Transfer fees and freezes do not apply when sending and redeeming directly. | -| Cross-currency Payment | Object (non-XAH) / String (XAH) | Object (non-XAH) / String (XAH) | Usually required | No | Send tokens from one holder to another. The `Amount` or `SendMax` can be XAH or tokens, but they cannot both be XAH. These payments ripple through the issuer and can take longer paths through several intermediaries if the transaction specifies a path set. Transfer fees set by the issuer(s) apply to this type of transaction. These transactions consume offers in the decentralized exchange to connect between different currencies, or possibly even between currencies with the same currency code and different issuers. | -| Partial payment | Object (non-XAH) / String (XAH) | Object (non-XAH) / String (XAH) | Usually required | No | Sends _up to_ a specific amount of any currency. Uses the `tfPartialPayment` flag. May include a `DeliverMin` amount specifying the minimum that the transaction must deliver to be successful; if the transaction does not specify `DeliverMin`, it can succeed by delivering _any positive amount_. | -| Currency conversion | Object (non-XAH) / String (XAH) | Object (non-XAH) / String (XAH) | Required | Yes | Consumes offers in the decentralized exchange to convert one currency to another, possibly taking [arbitrage](https://en.wikipedia.org/wiki/Arbitrage) opportunities. The `Amount` and `SendMax` cannot both be XAH. Also called a _circular payment_ because it delivers money to the sender. The Data API tracks this type of transaction as an "exchange" and not a "payment". | - -### Special issuer Values for SendMax and Amount - -Most of the time, the `issuer` field of a non-XAH \[Currency Amount]\[] indicates the issuer of a token. However, when describing payments, there are special rules for the `issuer` field in the `Amount` and `SendMax` fields of a payment. - -* There is only ever one balance between two addresses for the same currency code. This means that, sometimes, the `issuer` field of an amount actually refers to a counterparty, instead of the address that issued the token. -* When the `issuer` field of the destination `Amount` field matches the `Destination` address, it is treated as a special case meaning "any issuer that the destination accepts." This includes all addresses to which the destination has trust lines with a positive limit, as well as tokens with the same currency code issued by the destination. -* When the `issuer` field of the `SendMax` field matches the source account's address, it is treated as a special case meaning "any issuer that the source can use." This includes creating new tokens on trust lines that other accounts have extended to the source account, and sending tokens the source account holds from other issuers. - -### Creating Accounts - -The Payment transaction type can create new accounts in Xahau by sending enough XAH to an unfunded address. Other transactions to unfunded addresses always fail. - -For more information, see Accounts. - -### Paths - -If present, the `Paths` field must contain a _path set_ - an array of path arrays. Each individual path represents one way value can flow from the sender to receiver through various intermediary accounts and order books. A single transaction can potentially use multiple paths, for example if the transaction exchanges currency using several different order books to achieve the best rate. - -You must omit the `Paths` field for direct payments, including: - -* An XAH-to-XAH transfer. -* A direct transfer on a trust line that connects the sender and receiver. - -If the `Paths` field is provided, the server decides at transaction processing time which paths to use, from the provided set plus a _default path_ (the most direct way possible to connect the specified accounts). This decision is deterministic and attempts to minimize costs, but it is not guaranteed to be perfect. - -The `Paths` field must not be an empty array, nor an array whose members are all empty arrays. - -For more information, see Paths. - -### Payment Flags - -Transactions of the Payment type support additional values in the `Flags` field, as follows: - -| Flag Name | Hex Value | Decimal Value | Description | -| ------------------ | ------------ | ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `tfNoDirectRipple` | `0x00010000` | 65536 | Do not use the default path; only use paths included in the `Paths` field. This is intended to force the transaction to take arbitrage opportunities. Most clients do not need this. | -| `tfPartialPayment` | `0x00020000` | 131072 | If the specified `Amount` cannot be sent without spending more than `SendMax`, reduce the received amount instead of failing outright. See Partial Payments for more details. | -| `tfLimitQuality` | `0x00040000` | 262144 | Only take paths where all the conversions have an input:output ratio that is equal or better than the ratio of `Amount`:`SendMax`. See Limit Quality for details. | - -### Partial Payments - -A partial payment allows a payment to succeed by reducing the amount received. Partial payments are useful for returning payments without incurring additional costs to oneself. However, partial payments can also be used to exploit integrations that naively assume the `Amount` field of a successful transaction always describes the exact amount delivered. - -A partial payment is any \[Payment transaction]\[] with the `tfPartialPayment` flag enabled. A partial payment can be successful if it delivers any positive amount greater than or equal to its `DeliverMin` field (or any positive amount at all if `DeliverMin` is not specified) without sending more than the `SendMax` value. - -The `delivered_amount` field of a payment's metadata indicates the amount of currency actually received by the destination account. - -For more information, see the full article on Partial Payments. - -### Limit Quality - -Xahau defines the "quality" of a currency exchange as the ratio of the numeric amount in to the numeric amount out. For example, if you spend $2 USD to receive £1 GBP, then the "quality" of that exchange is `0.5`. - -The `tfLimitQuality` flag allows you to set a minimum quality of conversions that you are willing to take. This limit quality is defined as the destination `Amount` divided by the `SendMax` amount (the numeric amounts only, regardless of currency). When set, the payment processing engine avoids using any paths whose quality (conversion rate) is worse (numerically lower) than the limit quality. - -By itself, the `tfLimitQuality` flag reduces the number of situations in which a transaction can succeed. Specifically, it rejects payments where some part of the payment uses an unfavorable conversion, even if the overall _average_ quality of conversions in the payment is equal or better than the limit quality. If a payment is rejected in this way, the transaction result is `tecPATH_DRY`. - -Consider the following example. If I am trying to send you 100 Chinese Yuan (`Amount` = 100 CNY) for 20 United States dollars (`SendMax` = 20 USD) or less, then the limit quality is `5`. Imagine one trader is offering ¥95 for $15 (a ratio of about `6.3` CNY per USD), but the next best offer in the market is ¥5 for $2 (a ratio of `2.5` CNY per USD). If I were to take both offers to send you 100 CNY, then it would cost me 17 USD, for an average quality of about `5.9`. - -Without the `tfLimitQuality` flag set, this transaction would succeed, because the $17 it costs me is within my specified `SendMax`. However, with the `tfLimitQuality` flag enabled, the transaction would fail instead, because the path to take the second offer has a quality of `2.5`, which is worse than the limit quality of `5`. - -The `tfLimitQuality` flag is most useful when combined with partial payments. When both `tfPartialPayment` and `tfLimitQuality` are set on a transaction, then the transaction delivers as much of the destination `Amount` as it can, without using any conversions that are worse than the limit quality. - -In the above example with a ¥95/$15 offer and a ¥5/$2 offer, the situation is different if my transaction has both `tfPartialPayment` and `tfLimitQuality` enabled. If we keep my `SendMax` of 20 USD and a destination `Amount` of 100 CNY, then the limit quality is still `5`. However, because I am doing a partial payment, the transaction sends as much as it can instead of failing if the full destination amount cannot be sent. This means that my transaction consumes the ¥95/$15 offer, whose quality is about `6.3`, but it rejects the ¥5/$2 offer because that offer's quality of `2.5` is worse than the quality limit of `5`. In the end, my transaction only delivers ¥95 instead of the full ¥100, but it avoids wasting money on poor exchange rates. diff --git a/src/content/docs/br/docs/protocol-reference/transactions/transaction-types/paymentchannelclaim.mdx b/src/content/docs/br/docs/protocol-reference/transactions/transaction-types/paymentchannelclaim.mdx deleted file mode 100644 index 1dd34ae..0000000 --- a/src/content/docs/br/docs/protocol-reference/transactions/transaction-types/paymentchannelclaim.mdx +++ /dev/null @@ -1,60 +0,0 @@ ---- -title: PaymentChannelClaim -description: >- - Claim Amount from a payment channel, adjust the payment channel's expiration, - or both. This transaction can be used differently depending on the transaction - sender's role in the specified channel: ---- -[\[Source\]](https://github.com/ripple/rippled/blob/master/src/ripple/app/tx/impl/PayChan.cpp) - -_Added by the \[PayChan amendment]\[]._ - -The **source address** of a channel can: - -* Send Amount from the channel to the destination with _or without_ a signed Claim. -* Set the channel to expire as soon as the channel's `SettleDelay` has passed. -* Clear a pending `Expiration` time. -* Close a channel immediately, with or without processing a claim first. The source address cannot close the channel immediately if the channel has Amount remaining. - -The **destination address** of a channel can: - -* Receive Amount from the channel using a signed Claim. -* Close the channel immediately after processing a Claim, refunding any unclaimed Amount to the channel's source. - -**Any address** sending this transaction can: - -* Cause a channel to be closed if its `Expiration` or `CancelAfter` time is older than the previous ledger's close time. Any validly-formed PaymentChannelClaim transaction has this effect regardless of the contents of the transaction. - -### Example - -```json -{ - "Channel": "C1AE6DDDEEC05CF2978C0BAD6FE302948E9533691DC749DCDD3B9E5992CA6198", - "Amount" : { - "currency" : "USD", - "value" : "1", - "issuer" : "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn" - }, - "Signature": "30440220718D264EF05CAED7C781FF6DE298DCAC68D002562C9BF3A07C1E721B420C0DAB02203A5A4779EF4D2CCC7BC3EF886676D803A9981B928D3B8ACA483B80ECA3CD7B9B", - "PublicKey": "32D2471DB72B27E3310F355BB33E339BF26F8392D5A93D3BC0FC3B566612DA0F0A" -} -``` - -| Field | JSON Type | \[Internal Type]\[] | Description | -| ----------- | ---------------------------------------------------------------------------------------------------------------------------------- | ------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `Channel` | String | Hash256 | The unique ID of the channel, as a 64-character hexadecimal string. | -| `Balance` | [Currency Amount](/docs/protocol-reference/data-types/currency-formats/#specifying-currency-amounts) | Amount | _(Optional)_ Total amount delivered by this channel after processing this claim. Required to deliver Amount. Must be more than the total amount delivered by the channel so far, but not greater than the `Amount` of the signed claim. Must be provided except when closing the channel. | -| `Amount` | [Currency Amount](/docs/protocol-reference/data-types/currency-formats/#specifying-currency-amounts) | Amount | _(Optional)_ The amount authorized by the `Signature`. This must match the amount in the signed message. This is the cumulative amount of Amount that can be dispensed by the channel, including XAH previously redeemed. | -| `Signature` | String | Blob | _(Optional)_ The signature of this claim, as hexadecimal. The signed message contains the channel ID and the amount of the claim. Required unless the sender of the transaction is the source address of the channel. | -| `PublicKey` | String | Blob | _(Optional)_ The public key used for the signature, as hexadecimal. This must match the `PublicKey` stored in the ledger for the channel. Required unless the sender of the transaction is the source address of the channel and the `Signature` field is omitted. (The transaction includes the public key so that `rippled` can check the validity of the signature before trying to apply the transaction to the ledger.) | - -If the payment channel was created before the fixPayChanRecipientOwnerDir amendment became enabled (on 2020-05-01), it is possible that the destination of the payment channel has been deleted and does not currently exist in the ledger. If the destination has been deleted, the source account cannot send XAH from the channel to the destination; instead, the transaction fails with `tecNO_DST`. (And, of course, the deleted account cannot send any transactions at all.) Other uses of this transaction type are unaffected when the destination account has been deleted, including adjusting the channel expiration, closing a channel with no Amount, or removing a channel that has passed its expiration time. - -### PaymentChannelClaim Flags - -Transactions of the PaymentChannelClaim type support additional values in the `Flags` field, as follows: - -| Flag Name | Hex Value | Decimal Value | Description | -| --------- | ------------ | ------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `tfRenew` | `0x00010000` | 65536 | Clear the channel's `Expiration` time. (`Expiration` is different from the channel's immutable `CancelAfter` time.) Only the source address of the payment channel can use this flag. | -| `tfClose` | `0x00020000` | 131072 | Request to close the channel. Only the channel source and destination addresses can use this flag. This flag closes the channel immediately if it has no more Amount allocated to it after processing the current claim, or if the destination address uses it. If the source address uses this flag when the channel still holds an Amount, this schedules the channel to close after `SettleDelay` seconds have passed. (Specifically, this sets the `Expiration` of the channel to the close time of the previous ledger plus the channel's `SettleDelay` time, unless the channel already has an earlier `Expiration` time.) If the destination address uses this flag when the channel still holds an Amount, any Amount that remains after processing the claim is returned to the source address. | diff --git a/src/content/docs/br/docs/protocol-reference/transactions/transaction-types/paymentchannelcreate.mdx b/src/content/docs/br/docs/protocol-reference/transactions/transaction-types/paymentchannelcreate.mdx deleted file mode 100644 index 6c87588..0000000 --- a/src/content/docs/br/docs/protocol-reference/transactions/transaction-types/paymentchannelcreate.mdx +++ /dev/null @@ -1,40 +0,0 @@ ---- -title: PaymentChannelCreate -description: >- - Create a payment channel and fund it with an Amount. The address sending this - transaction becomes the "source address" of the payment channel. ---- -[\[Source\]](https://github.com/Xahau/xahaud/blob/master/src/ripple/app/tx/impl/PayChan.cpp) - -_Added by the \[PayChan amendment]\[]._ - -### Example - -```json -{ - "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "TransactionType": "PaymentChannelCreate", - "Amount" : { - "currency" : "USD", - "value" : "1", - "issuer" : "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn" - }, - "Destination": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", - "SettleDelay": 86400, - "PublicKey": "32D2471DB72B27E3310F355BB33E339BF26F8392D5A93D3BC0FC3B566612DA0F0A", - "CancelAfter": 533171558, - "DestinationTag": 23480, - "SourceTag": 11747 -} -``` - -| Field | JSON Type | \[Internal Type]\[] | Description | -| ---------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `Amount` | [Currency Amount](/docs/protocol-reference/data-types/currency-formats/#specifying-currency-amounts) | Amount | Amount to deduct from the sender's balance and set aside in this channel. While the channel is open, the Amount can only go to the `Destination` address. When the channel closes, any unclaimed Amount is returned to the source address's balance. | -| `Destination` | String | AccountID | Address to receive claims against this channel. This is also known as the "destination address" for the channel. Cannot be the same as the sender (`Account`). | -| `SettleDelay` | Number | UInt32 | Amount of time the source address must wait before closing the channel if it has unclaimed Amount. | -| `PublicKey` | String | Blob | The 33-byte public key of the key pair the source will use to sign claims against this channel, in hexadecimal. This can be any secp256k1 or Ed25519 public key. For more information on key pairs, see Key Derivation | -| `CancelAfter` | Number | UInt32 | _(Optional)_ The time, in \[seconds since the Ripple Epoch]\[], when this channel expires. Any transaction that would modify the channel after this time closes the channel without otherwise affecting it. This value is immutable; the channel can be closed earlier than this time but cannot remain open after this time. | -| `DestinationTag` | Number | UInt32 | _(Optional)_ Arbitrary tag to further specify the destination for this payment channel, such as a hosted recipient at the destination address. | - -If the `Destination` account is blocking incoming payment channels, the transaction fails with result code `tecNO_PERMISSION`. _(Requires the \[DisallowIncoming amendment]\[] :not_enabled:)_ diff --git a/src/content/docs/br/docs/protocol-reference/transactions/transaction-types/remit.mdx b/src/content/docs/br/docs/protocol-reference/transactions/transaction-types/remit.mdx deleted file mode 100644 index 38b256e..0000000 --- a/src/content/docs/br/docs/protocol-reference/transactions/transaction-types/remit.mdx +++ /dev/null @@ -1,119 +0,0 @@ ---- -title: Remit -description: >- - The Remit transaction allows the user to send multiple payment types, mint a - URIToken, transfer a list of URITokens and activate an account. ---- -import { Aside } from '@astrojs/starlight/components'; - - - -\[[Source](https://github.com/Xahau/xahaud/blob/dev/src/ripple/app/tx/impl/Remit.cpp)] - -_(Added by the \[Remit amendment]\[].)_ - -### Example - -```json -{ - "TransactionType": "Remit", - "Account": "rGvbdrdCxG2tk9ZU2673XmsjRdHCDQEpt7", - "Amounts": [ - { - "AmountEntry": { - "Amount": "1000000" - } - }, { - "AmountEntry": { - "Amount": { - "currency": "USD", - "issuer": "rExKpRKXNz25UAjbckCRtQsJFcSfjL9Er3", - "value": "1" - } - } - } - ], - "Destination": "rG1QQv2nh2gr7RCZ1P8YYcBUKCCN633jCn", - "URITokenIDs": [ - "714F206C865D334721B2F3388BEAF33AA91BC1D78C71941D10A2A653C873EDD3" - ], - "MintURIToken": { - "Digest": "6F11A4DF4EE794E2800BB361173D454BFBECB3D7506C4F4CB0EC5AE98BE43747", - "Flags": 1, - "URI": "697066733A2F2F" - } -} -``` - -| Field | JSON Type | \[Internal Type]\[] | Description | -| ---------------- | --------- | ------------------- | ---------------------------------------------------------------------------------------------------------------- | -| `Account` | String | AccountID | The address of the account that will activate the account, send the payment and/or mint/transfer the URIToken/s. | -| `Destination` | String | AccountID | The unique address of the account receiving the payment and/or URIToken/s. | -| `DestinationTag` | Number | UInt32 | _(Optional)_ A DestinationTag for deposits to a shared custody account. | -| `MintURIToken` | Object | STObject | _(Optional)_ A `MintURIToken` STObject containing the URIToken details you want to mint on the `Destination`. | -| `URITokenIDs` | Array | STArray | _(Optional)_ An array of URITokenIDs (256-bit hash) to to be transferred to the `Destination`. _Limit 32._ | -| `Amounts` | Array | STArray | _(Optional)_ An array of `AmountEntry` STObjects the account wants to send to the `Destination`. _Limit 32._ | -| `Inform` | String | AccountID | _(Optional)_ A unique address of an account that can have a hook installed and be informed when a remit occurs. | -| `Blob` | String | Blob | _(Optional)_ Arbitrary hex value that can be added to the tx for use in Hooks. | -| `InvoiceID` | String | Hash256 | _(Optional)_ Arbitrary 256-bit hash representing a specific reason or identifier for this remit. | - -### AmountEntry Fields - -| Field | JSON Type | \[Internal Type]\[] | Description | -| -------- | ---------------------------------------------------------------------------------------------------------------------------------- | ------------------- | ---------------------------------------------------------------------- | -| `Amount` | [Currency Amount](/docs/protocol-reference/data-types/currency-formats/#specifying-currency-amounts) | Amount | The amount of currency the account wants to send to the `Destination`. | - -### MintURIToken Fields - -| Field | JSON Type | \[Internal Type]\[] | Description | -| -------- | --------- | ------------------- | ----------------------------------------------------------- | -| `URI` | String | String | The URI associated with the minted URIToken. (256 byte max) | -| `Digest` | String | Hash256 | _(Optional)_ The digest of the URIToken. | -| `Flags` | Number | UInt32 | _(Optional)_ Flags on the mint transaction | - -### MintURIToken Flags - -The `MintURIToken` STObject supports the values in the `Flags` field, as follows: - -| Flag Name | Hex Value | Decimal Value | Description | -| ------------ | ------------ | ------------- | ----------------------------------------------------------------------------------------------- | -| `tfBurnable` | `0x00000001` | 1 | Allow the issuer to destroy the minted `URIToken`. (The `URIToken`'s owner can _always_ do so.) | - -### Special Transaction Cost - -The Remit transaction has a standard transaction cost, which is the minimum fee required for any transaction in Xahau. - -In addition to the minimum fee required the Remit transaction will also deduct the fees for the following: - -| Action | Fee | -| -------------------- | ---------------------------- | -| `Account Activation` | Standard Reserve Requirement | -| `Create Trustline` | Standard Reserve Requirement | -| `URIToken Mint` | Standard Reserve Requirement | -| `URIToken Transfer` | Standard Reserve Requirement | - -### Error Cases - -Besides errors that can occur for all transactions, Remit transactions can result in the following transaction result codes: - -| Error Code | Description | -| ------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------- | -| `temINVALID_FLAG` | Occurs if any flag is specific `tfFullyCanonicalSig` | -| `temREDUNDANT` | Occurs if the Account is the same as the Destination | -| `temMALFORMED (Inform & Blob)` | Occurs when; sfInform is same as " "source or destination. Blob was more than 128kib. | -| `temMALFORMED (AmountEntry)` | Occurs when; AmountEntry count exceeds `32.` Expected AmountEntry. Native Currency appears more than once. Issued Currency appears more than once. | -| `temMALFORMED (MintURIToken)` | Occurs when; sfMintURIToken contains invalid field. URI was not provided. URI was too long/short. Invalid UTF8 inside MintURIToken. | -| `temMALFORMED (URITokenIDs)` | Occurs when; URITokenIDs too short/long. Duplicate URITokenID. | -| `temBAD_AMOUNT` | Occurs when an Amount in the AmountEntry is invalid. | -| `terNO_ACCOUNT` | Occurs when the source account does not exist. | -| `tecNO_TARGET` | Occurs when the `sfInform` field is present but the account does not exist. | -| `tecNO_PERMISSION` | Occurs when `disallowIncomingRemit` is enabled on the `Destination` | -| `tecNO_PERMISSION` | Occurs when the `Destination` has `DepositAuthorization` enabled. | -| `tecDST_TAG_NEEDED` | Occurs if the destination account requires a destination tag, but the transaction does not include one. | -| `tecDUPLICATE` | Occurs when the `MintURIToken` URI from that issuer already exists. | -| `tecDIR_FULL` | Occurs when the source or destination accouts directory is full. | -| `tecNO_ENTRY` | Occurs when the URIToken does not exist. | -| `tecNO_PERMISSION` | Occurs when the URIToken is not owned by the source account. | -| `tecUNFUNDED_PAYMENT` | Occurs when the source account does not have the required funds to execute the transaction. (XAH or Issued Currencies) | diff --git a/src/content/docs/br/docs/assets/image.png b/src/content/docs/pt-br/docs/assets/image.png similarity index 100% rename from src/content/docs/br/docs/assets/image.png rename to src/content/docs/pt-br/docs/assets/image.png diff --git a/src/content/docs/br/docs/compliance/responsible-disclosure.mdx b/src/content/docs/pt-br/docs/compliance/responsible-disclosure.mdx similarity index 100% rename from src/content/docs/br/docs/compliance/responsible-disclosure.mdx rename to src/content/docs/pt-br/docs/compliance/responsible-disclosure.mdx diff --git a/src/content/docs/br/docs/compliance/security-audit.mdx b/src/content/docs/pt-br/docs/compliance/security-audit.mdx similarity index 100% rename from src/content/docs/br/docs/compliance/security-audit.mdx rename to src/content/docs/pt-br/docs/compliance/security-audit.mdx diff --git a/src/content/docs/br/docs/data-apis/index.mdx b/src/content/docs/pt-br/docs/data-apis/index.mdx similarity index 100% rename from src/content/docs/br/docs/data-apis/index.mdx rename to src/content/docs/pt-br/docs/data-apis/index.mdx diff --git a/src/content/docs/br/docs/features/amendments.mdx b/src/content/docs/pt-br/docs/features/amendments.mdx similarity index 100% rename from src/content/docs/br/docs/features/amendments.mdx rename to src/content/docs/pt-br/docs/features/amendments.mdx diff --git a/src/content/docs/br/docs/features/balance-adjustments.mdx b/src/content/docs/pt-br/docs/features/balance-adjustments.mdx similarity index 100% rename from src/content/docs/br/docs/features/balance-adjustments.mdx rename to src/content/docs/pt-br/docs/features/balance-adjustments.mdx diff --git a/src/content/docs/br/docs/features/burn-2-mint.mdx b/src/content/docs/pt-br/docs/features/burn-2-mint.mdx similarity index 100% rename from src/content/docs/br/docs/features/burn-2-mint.mdx rename to src/content/docs/pt-br/docs/features/burn-2-mint.mdx diff --git a/src/content/docs/br/docs/features/developer-tooling/client-libraries.mdx b/src/content/docs/pt-br/docs/features/developer-tooling/client-libraries.mdx similarity index 100% rename from src/content/docs/br/docs/features/developer-tooling/client-libraries.mdx rename to src/content/docs/pt-br/docs/features/developer-tooling/client-libraries.mdx diff --git a/src/content/docs/br/docs/features/developer-tooling/curated-tooling.mdx b/src/content/docs/pt-br/docs/features/developer-tooling/curated-tooling.mdx similarity index 100% rename from src/content/docs/br/docs/features/developer-tooling/curated-tooling.mdx rename to src/content/docs/pt-br/docs/features/developer-tooling/curated-tooling.mdx diff --git a/src/content/docs/br/docs/features/developer-tooling/developer-tricks.mdx b/src/content/docs/pt-br/docs/features/developer-tooling/developer-tricks.mdx similarity index 100% rename from src/content/docs/br/docs/features/developer-tooling/developer-tricks.mdx rename to src/content/docs/pt-br/docs/features/developer-tooling/developer-tricks.mdx diff --git a/src/content/docs/br/docs/features/faucet-and-explorer.mdx b/src/content/docs/pt-br/docs/features/faucet-and-explorer.mdx similarity index 100% rename from src/content/docs/br/docs/features/faucet-and-explorer.mdx rename to src/content/docs/pt-br/docs/features/faucet-and-explorer.mdx diff --git a/src/content/docs/br/docs/features/governance-game.mdx b/src/content/docs/pt-br/docs/features/governance-game.mdx similarity index 100% rename from src/content/docs/br/docs/features/governance-game.mdx rename to src/content/docs/pt-br/docs/features/governance-game.mdx diff --git a/src/content/docs/br/docs/features/http-websocket-apis/admin-api-methods.mdx b/src/content/docs/pt-br/docs/features/http-websocket-apis/admin-api-methods.mdx similarity index 100% rename from src/content/docs/br/docs/features/http-websocket-apis/admin-api-methods.mdx rename to src/content/docs/pt-br/docs/features/http-websocket-apis/admin-api-methods.mdx diff --git a/src/content/docs/br/docs/features/http-websocket-apis/considerations.mdx b/src/content/docs/pt-br/docs/features/http-websocket-apis/considerations.mdx similarity index 100% rename from src/content/docs/br/docs/features/http-websocket-apis/considerations.mdx rename to src/content/docs/pt-br/docs/features/http-websocket-apis/considerations.mdx diff --git a/src/content/docs/br/docs/features/http-websocket-apis/public-api-methods.mdx b/src/content/docs/pt-br/docs/features/http-websocket-apis/public-api-methods.mdx similarity index 100% rename from src/content/docs/br/docs/features/http-websocket-apis/public-api-methods.mdx rename to src/content/docs/pt-br/docs/features/http-websocket-apis/public-api-methods.mdx diff --git a/src/content/docs/br/docs/features/http-websocket-apis/request-formatting-guide.mdx b/src/content/docs/pt-br/docs/features/http-websocket-apis/request-formatting-guide.mdx similarity index 100% rename from src/content/docs/br/docs/features/http-websocket-apis/request-formatting-guide.mdx rename to src/content/docs/pt-br/docs/features/http-websocket-apis/request-formatting-guide.mdx diff --git a/src/content/docs/br/docs/features/http-websocket-apis/response-formatting-guide.mdx b/src/content/docs/pt-br/docs/features/http-websocket-apis/response-formatting-guide.mdx similarity index 100% rename from src/content/docs/br/docs/features/http-websocket-apis/response-formatting-guide.mdx rename to src/content/docs/pt-br/docs/features/http-websocket-apis/response-formatting-guide.mdx diff --git a/src/content/docs/br/docs/features/network-features/account-managment.mdx b/src/content/docs/pt-br/docs/features/network-features/account-managment.mdx similarity index 100% rename from src/content/docs/br/docs/features/network-features/account-managment.mdx rename to src/content/docs/pt-br/docs/features/network-features/account-managment.mdx diff --git a/src/content/docs/br/docs/features/network-features/balance-rewards.mdx b/src/content/docs/pt-br/docs/features/network-features/balance-rewards.mdx similarity index 100% rename from src/content/docs/br/docs/features/network-features/balance-rewards.mdx rename to src/content/docs/pt-br/docs/features/network-features/balance-rewards.mdx diff --git a/src/content/docs/br/docs/features/network-features/check.mdx b/src/content/docs/pt-br/docs/features/network-features/check.mdx similarity index 100% rename from src/content/docs/br/docs/features/network-features/check.mdx rename to src/content/docs/pt-br/docs/features/network-features/check.mdx diff --git a/src/content/docs/br/docs/features/network-features/escrow.mdx b/src/content/docs/pt-br/docs/features/network-features/escrow.mdx similarity index 100% rename from src/content/docs/br/docs/features/network-features/escrow.mdx rename to src/content/docs/pt-br/docs/features/network-features/escrow.mdx diff --git a/src/content/docs/br/docs/features/network-features/hooks.mdx b/src/content/docs/pt-br/docs/features/network-features/hooks.mdx similarity index 100% rename from src/content/docs/br/docs/features/network-features/hooks.mdx rename to src/content/docs/pt-br/docs/features/network-features/hooks.mdx diff --git a/src/content/docs/br/docs/features/network-features/offer.mdx b/src/content/docs/pt-br/docs/features/network-features/offer.mdx similarity index 100% rename from src/content/docs/br/docs/features/network-features/offer.mdx rename to src/content/docs/pt-br/docs/features/network-features/offer.mdx diff --git a/src/content/docs/br/docs/features/network-features/payments.mdx b/src/content/docs/pt-br/docs/features/network-features/payments.mdx similarity index 100% rename from src/content/docs/br/docs/features/network-features/payments.mdx rename to src/content/docs/pt-br/docs/features/network-features/payments.mdx diff --git a/src/content/docs/br/docs/features/network-features/uritoken.mdx b/src/content/docs/pt-br/docs/features/network-features/uritoken.mdx similarity index 100% rename from src/content/docs/br/docs/features/network-features/uritoken.mdx rename to src/content/docs/pt-br/docs/features/network-features/uritoken.mdx diff --git a/src/content/docs/br/docs/features/public-nodes-rpc.mdx b/src/content/docs/pt-br/docs/features/public-nodes-rpc.mdx similarity index 100% rename from src/content/docs/br/docs/features/public-nodes-rpc.mdx rename to src/content/docs/pt-br/docs/features/public-nodes-rpc.mdx diff --git a/src/content/docs/br/docs/features/transaction-signing/index.mdx b/src/content/docs/pt-br/docs/features/transaction-signing/index.mdx similarity index 100% rename from src/content/docs/br/docs/features/transaction-signing/index.mdx rename to src/content/docs/pt-br/docs/features/transaction-signing/index.mdx diff --git a/src/content/docs/br/docs/features/transaction-signing/transaction-fees.mdx b/src/content/docs/pt-br/docs/features/transaction-signing/transaction-fees.mdx similarity index 100% rename from src/content/docs/br/docs/features/transaction-signing/transaction-fees.mdx rename to src/content/docs/pt-br/docs/features/transaction-signing/transaction-fees.mdx diff --git a/src/content/docs/br/docs/features/versioning-process.mdx b/src/content/docs/pt-br/docs/features/versioning-process.mdx similarity index 100% rename from src/content/docs/br/docs/features/versioning-process.mdx rename to src/content/docs/pt-br/docs/features/versioning-process.mdx diff --git a/src/content/docs/br/docs/hooks/concepts/chaining.mdx b/src/content/docs/pt-br/docs/hooks/concepts/chaining.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/concepts/chaining.mdx rename to src/content/docs/pt-br/docs/hooks/concepts/chaining.mdx diff --git a/src/content/docs/br/docs/hooks/concepts/collect-call.mdx b/src/content/docs/pt-br/docs/hooks/concepts/collect-call.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/concepts/collect-call.mdx rename to src/content/docs/pt-br/docs/hooks/concepts/collect-call.mdx diff --git a/src/content/docs/br/docs/hooks/concepts/compiling-hooks.mdx b/src/content/docs/pt-br/docs/hooks/concepts/compiling-hooks.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/concepts/compiling-hooks.mdx rename to src/content/docs/pt-br/docs/hooks/concepts/compiling-hooks.mdx diff --git a/src/content/docs/br/docs/hooks/concepts/debugging-hooks.mdx b/src/content/docs/pt-br/docs/hooks/concepts/debugging-hooks.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/concepts/debugging-hooks.mdx rename to src/content/docs/pt-br/docs/hooks/concepts/debugging-hooks.mdx diff --git a/src/content/docs/br/docs/hooks/concepts/emitted-transactions.mdx b/src/content/docs/pt-br/docs/hooks/concepts/emitted-transactions.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/concepts/emitted-transactions.mdx rename to src/content/docs/pt-br/docs/hooks/concepts/emitted-transactions.mdx diff --git a/src/content/docs/br/docs/hooks/concepts/execution-metadata.mdx b/src/content/docs/pt-br/docs/hooks/concepts/execution-metadata.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/concepts/execution-metadata.mdx rename to src/content/docs/pt-br/docs/hooks/concepts/execution-metadata.mdx diff --git a/src/content/docs/br/docs/hooks/concepts/floating-point-numbers-xfl.mdx b/src/content/docs/pt-br/docs/hooks/concepts/floating-point-numbers-xfl.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/concepts/floating-point-numbers-xfl.mdx rename to src/content/docs/pt-br/docs/hooks/concepts/floating-point-numbers-xfl.mdx diff --git a/src/content/docs/br/docs/hooks/concepts/grants.mdx b/src/content/docs/pt-br/docs/hooks/concepts/grants.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/concepts/grants.mdx rename to src/content/docs/pt-br/docs/hooks/concepts/grants.mdx diff --git a/src/content/docs/br/docs/hooks/concepts/hook-fees.mdx b/src/content/docs/pt-br/docs/hooks/concepts/hook-fees.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/concepts/hook-fees.mdx rename to src/content/docs/pt-br/docs/hooks/concepts/hook-fees.mdx diff --git a/src/content/docs/br/docs/hooks/concepts/hookon-field.mdx b/src/content/docs/pt-br/docs/hooks/concepts/hookon-field.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/concepts/hookon-field.mdx rename to src/content/docs/pt-br/docs/hooks/concepts/hookon-field.mdx diff --git a/src/content/docs/br/docs/hooks/concepts/introduction/example-usage.mdx b/src/content/docs/pt-br/docs/hooks/concepts/introduction/example-usage.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/concepts/introduction/example-usage.mdx rename to src/content/docs/pt-br/docs/hooks/concepts/introduction/example-usage.mdx diff --git a/src/content/docs/br/docs/hooks/concepts/introduction/index.mdx b/src/content/docs/pt-br/docs/hooks/concepts/introduction/index.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/concepts/introduction/index.mdx rename to src/content/docs/pt-br/docs/hooks/concepts/introduction/index.mdx diff --git a/src/content/docs/br/docs/hooks/concepts/loops-and-guarding.mdx b/src/content/docs/pt-br/docs/hooks/concepts/loops-and-guarding.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/concepts/loops-and-guarding.mdx rename to src/content/docs/pt-br/docs/hooks/concepts/loops-and-guarding.mdx diff --git a/src/content/docs/br/docs/hooks/concepts/namespaces.mdx b/src/content/docs/pt-br/docs/hooks/concepts/namespaces.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/concepts/namespaces.mdx rename to src/content/docs/pt-br/docs/hooks/concepts/namespaces.mdx diff --git a/src/content/docs/br/docs/hooks/concepts/parameters.mdx b/src/content/docs/pt-br/docs/hooks/concepts/parameters.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/concepts/parameters.mdx rename to src/content/docs/pt-br/docs/hooks/concepts/parameters.mdx diff --git a/src/content/docs/br/docs/hooks/concepts/reference-counted-hook-definitions.mdx b/src/content/docs/pt-br/docs/hooks/concepts/reference-counted-hook-definitions.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/concepts/reference-counted-hook-definitions.mdx rename to src/content/docs/pt-br/docs/hooks/concepts/reference-counted-hook-definitions.mdx diff --git a/src/content/docs/br/docs/hooks/concepts/serialized-objects.mdx b/src/content/docs/pt-br/docs/hooks/concepts/serialized-objects.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/concepts/serialized-objects.mdx rename to src/content/docs/pt-br/docs/hooks/concepts/serialized-objects.mdx diff --git a/src/content/docs/br/docs/hooks/concepts/sethook-transaction.mdx b/src/content/docs/pt-br/docs/hooks/concepts/sethook-transaction.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/concepts/sethook-transaction.mdx rename to src/content/docs/pt-br/docs/hooks/concepts/sethook-transaction.mdx diff --git a/src/content/docs/br/docs/hooks/concepts/slots-and-keylets.mdx b/src/content/docs/pt-br/docs/hooks/concepts/slots-and-keylets.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/concepts/slots-and-keylets.mdx rename to src/content/docs/pt-br/docs/hooks/concepts/slots-and-keylets.mdx diff --git a/src/content/docs/br/docs/hooks/concepts/state-management.mdx b/src/content/docs/pt-br/docs/hooks/concepts/state-management.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/concepts/state-management.mdx rename to src/content/docs/pt-br/docs/hooks/concepts/state-management.mdx diff --git a/src/content/docs/br/docs/hooks/concepts/terminology.mdx b/src/content/docs/pt-br/docs/hooks/concepts/terminology.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/concepts/terminology.mdx rename to src/content/docs/pt-br/docs/hooks/concepts/terminology.mdx diff --git a/src/content/docs/br/docs/hooks/concepts/weak-and-strong.mdx b/src/content/docs/pt-br/docs/hooks/concepts/weak-and-strong.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/concepts/weak-and-strong.mdx rename to src/content/docs/pt-br/docs/hooks/concepts/weak-and-strong.mdx diff --git a/src/content/docs/br/docs/hooks/functions/control/accept.mdx b/src/content/docs/pt-br/docs/hooks/functions/control/accept.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/functions/control/accept.mdx rename to src/content/docs/pt-br/docs/hooks/functions/control/accept.mdx diff --git a/src/content/docs/br/docs/hooks/functions/control/rollback.mdx b/src/content/docs/pt-br/docs/hooks/functions/control/rollback.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/functions/control/rollback.mdx rename to src/content/docs/pt-br/docs/hooks/functions/control/rollback.mdx diff --git a/src/content/docs/br/docs/hooks/functions/developer-defined/cbak-callback.mdx b/src/content/docs/pt-br/docs/hooks/functions/developer-defined/cbak-callback.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/functions/developer-defined/cbak-callback.mdx rename to src/content/docs/pt-br/docs/hooks/functions/developer-defined/cbak-callback.mdx diff --git a/src/content/docs/br/docs/hooks/functions/developer-defined/hook.mdx b/src/content/docs/pt-br/docs/hooks/functions/developer-defined/hook.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/functions/developer-defined/hook.mdx rename to src/content/docs/pt-br/docs/hooks/functions/developer-defined/hook.mdx diff --git a/src/content/docs/br/docs/hooks/functions/emitted-transaction/emit-1.mdx b/src/content/docs/pt-br/docs/hooks/functions/emitted-transaction/emit-1.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/functions/emitted-transaction/emit-1.mdx rename to src/content/docs/pt-br/docs/hooks/functions/emitted-transaction/emit-1.mdx diff --git a/src/content/docs/br/docs/hooks/functions/emitted-transaction/emit.mdx b/src/content/docs/pt-br/docs/hooks/functions/emitted-transaction/emit.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/functions/emitted-transaction/emit.mdx rename to src/content/docs/pt-br/docs/hooks/functions/emitted-transaction/emit.mdx diff --git a/src/content/docs/br/docs/hooks/functions/emitted-transaction/etxn_burden.mdx b/src/content/docs/pt-br/docs/hooks/functions/emitted-transaction/etxn_burden.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/functions/emitted-transaction/etxn_burden.mdx rename to src/content/docs/pt-br/docs/hooks/functions/emitted-transaction/etxn_burden.mdx diff --git a/src/content/docs/br/docs/hooks/functions/emitted-transaction/etxn_details.mdx b/src/content/docs/pt-br/docs/hooks/functions/emitted-transaction/etxn_details.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/functions/emitted-transaction/etxn_details.mdx rename to src/content/docs/pt-br/docs/hooks/functions/emitted-transaction/etxn_details.mdx diff --git a/src/content/docs/br/docs/hooks/functions/emitted-transaction/etxn_fee_base.mdx b/src/content/docs/pt-br/docs/hooks/functions/emitted-transaction/etxn_fee_base.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/functions/emitted-transaction/etxn_fee_base.mdx rename to src/content/docs/pt-br/docs/hooks/functions/emitted-transaction/etxn_fee_base.mdx diff --git a/src/content/docs/br/docs/hooks/functions/emitted-transaction/etxn_generation.mdx b/src/content/docs/pt-br/docs/hooks/functions/emitted-transaction/etxn_generation.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/functions/emitted-transaction/etxn_generation.mdx rename to src/content/docs/pt-br/docs/hooks/functions/emitted-transaction/etxn_generation.mdx diff --git a/src/content/docs/br/docs/hooks/functions/emitted-transaction/etxn_nonce.mdx b/src/content/docs/pt-br/docs/hooks/functions/emitted-transaction/etxn_nonce.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/functions/emitted-transaction/etxn_nonce.mdx rename to src/content/docs/pt-br/docs/hooks/functions/emitted-transaction/etxn_nonce.mdx diff --git a/src/content/docs/br/docs/hooks/functions/emitted-transaction/etxn_reserve.mdx b/src/content/docs/pt-br/docs/hooks/functions/emitted-transaction/etxn_reserve.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/functions/emitted-transaction/etxn_reserve.mdx rename to src/content/docs/pt-br/docs/hooks/functions/emitted-transaction/etxn_reserve.mdx diff --git a/src/content/docs/br/docs/hooks/functions/float/float_compare.mdx b/src/content/docs/pt-br/docs/hooks/functions/float/float_compare.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/functions/float/float_compare.mdx rename to src/content/docs/pt-br/docs/hooks/functions/float/float_compare.mdx diff --git a/src/content/docs/br/docs/hooks/functions/float/float_divide.mdx b/src/content/docs/pt-br/docs/hooks/functions/float/float_divide.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/functions/float/float_divide.mdx rename to src/content/docs/pt-br/docs/hooks/functions/float/float_divide.mdx diff --git a/src/content/docs/br/docs/hooks/functions/float/float_exponent.mdx b/src/content/docs/pt-br/docs/hooks/functions/float/float_exponent.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/functions/float/float_exponent.mdx rename to src/content/docs/pt-br/docs/hooks/functions/float/float_exponent.mdx diff --git a/src/content/docs/br/docs/hooks/functions/float/float_int.mdx b/src/content/docs/pt-br/docs/hooks/functions/float/float_int.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/functions/float/float_int.mdx rename to src/content/docs/pt-br/docs/hooks/functions/float/float_int.mdx diff --git a/src/content/docs/br/docs/hooks/functions/float/float_invert.mdx b/src/content/docs/pt-br/docs/hooks/functions/float/float_invert.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/functions/float/float_invert.mdx rename to src/content/docs/pt-br/docs/hooks/functions/float/float_invert.mdx diff --git a/src/content/docs/br/docs/hooks/functions/float/float_log.mdx b/src/content/docs/pt-br/docs/hooks/functions/float/float_log.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/functions/float/float_log.mdx rename to src/content/docs/pt-br/docs/hooks/functions/float/float_log.mdx diff --git a/src/content/docs/br/docs/hooks/functions/float/float_mantissa.mdx b/src/content/docs/pt-br/docs/hooks/functions/float/float_mantissa.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/functions/float/float_mantissa.mdx rename to src/content/docs/pt-br/docs/hooks/functions/float/float_mantissa.mdx diff --git a/src/content/docs/br/docs/hooks/functions/float/float_mulratio.mdx b/src/content/docs/pt-br/docs/hooks/functions/float/float_mulratio.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/functions/float/float_mulratio.mdx rename to src/content/docs/pt-br/docs/hooks/functions/float/float_mulratio.mdx diff --git a/src/content/docs/br/docs/hooks/functions/float/float_multiply.mdx b/src/content/docs/pt-br/docs/hooks/functions/float/float_multiply.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/functions/float/float_multiply.mdx rename to src/content/docs/pt-br/docs/hooks/functions/float/float_multiply.mdx diff --git a/src/content/docs/br/docs/hooks/functions/float/float_negate.mdx b/src/content/docs/pt-br/docs/hooks/functions/float/float_negate.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/functions/float/float_negate.mdx rename to src/content/docs/pt-br/docs/hooks/functions/float/float_negate.mdx diff --git a/src/content/docs/br/docs/hooks/functions/float/float_one.mdx b/src/content/docs/pt-br/docs/hooks/functions/float/float_one.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/functions/float/float_one.mdx rename to src/content/docs/pt-br/docs/hooks/functions/float/float_one.mdx diff --git a/src/content/docs/br/docs/hooks/functions/float/float_root.mdx b/src/content/docs/pt-br/docs/hooks/functions/float/float_root.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/functions/float/float_root.mdx rename to src/content/docs/pt-br/docs/hooks/functions/float/float_root.mdx diff --git a/src/content/docs/br/docs/hooks/functions/float/float_set.mdx b/src/content/docs/pt-br/docs/hooks/functions/float/float_set.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/functions/float/float_set.mdx rename to src/content/docs/pt-br/docs/hooks/functions/float/float_set.mdx diff --git a/src/content/docs/br/docs/hooks/functions/float/float_sign.mdx b/src/content/docs/pt-br/docs/hooks/functions/float/float_sign.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/functions/float/float_sign.mdx rename to src/content/docs/pt-br/docs/hooks/functions/float/float_sign.mdx diff --git a/src/content/docs/br/docs/hooks/functions/float/float_sto.mdx b/src/content/docs/pt-br/docs/hooks/functions/float/float_sto.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/functions/float/float_sto.mdx rename to src/content/docs/pt-br/docs/hooks/functions/float/float_sto.mdx diff --git a/src/content/docs/br/docs/hooks/functions/float/float_sto_set.mdx b/src/content/docs/pt-br/docs/hooks/functions/float/float_sto_set.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/functions/float/float_sto_set.mdx rename to src/content/docs/pt-br/docs/hooks/functions/float/float_sto_set.mdx diff --git a/src/content/docs/br/docs/hooks/functions/float/float_sum.mdx b/src/content/docs/pt-br/docs/hooks/functions/float/float_sum.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/functions/float/float_sum.mdx rename to src/content/docs/pt-br/docs/hooks/functions/float/float_sum.mdx diff --git a/src/content/docs/br/docs/hooks/functions/hook-context/hook_account.mdx b/src/content/docs/pt-br/docs/hooks/functions/hook-context/hook_account.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/functions/hook-context/hook_account.mdx rename to src/content/docs/pt-br/docs/hooks/functions/hook-context/hook_account.mdx diff --git a/src/content/docs/br/docs/hooks/functions/hook-context/hook_again.mdx b/src/content/docs/pt-br/docs/hooks/functions/hook-context/hook_again.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/functions/hook-context/hook_again.mdx rename to src/content/docs/pt-br/docs/hooks/functions/hook-context/hook_again.mdx diff --git a/src/content/docs/br/docs/hooks/functions/hook-context/hook_hash.mdx b/src/content/docs/pt-br/docs/hooks/functions/hook-context/hook_hash.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/functions/hook-context/hook_hash.mdx rename to src/content/docs/pt-br/docs/hooks/functions/hook-context/hook_hash.mdx diff --git a/src/content/docs/br/docs/hooks/functions/hook-context/hook_param.mdx b/src/content/docs/pt-br/docs/hooks/functions/hook-context/hook_param.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/functions/hook-context/hook_param.mdx rename to src/content/docs/pt-br/docs/hooks/functions/hook-context/hook_param.mdx diff --git a/src/content/docs/br/docs/hooks/functions/hook-context/hook_param_set.mdx b/src/content/docs/pt-br/docs/hooks/functions/hook-context/hook_param_set.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/functions/hook-context/hook_param_set.mdx rename to src/content/docs/pt-br/docs/hooks/functions/hook-context/hook_param_set.mdx diff --git a/src/content/docs/br/docs/hooks/functions/hook-context/hook_pos.mdx b/src/content/docs/pt-br/docs/hooks/functions/hook-context/hook_pos.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/functions/hook-context/hook_pos.mdx rename to src/content/docs/pt-br/docs/hooks/functions/hook-context/hook_pos.mdx diff --git a/src/content/docs/br/docs/hooks/functions/hook-context/hook_skip.mdx b/src/content/docs/pt-br/docs/hooks/functions/hook-context/hook_skip.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/functions/hook-context/hook_skip.mdx rename to src/content/docs/pt-br/docs/hooks/functions/hook-context/hook_skip.mdx diff --git a/src/content/docs/br/docs/hooks/functions/ledger/fee_base.mdx b/src/content/docs/pt-br/docs/hooks/functions/ledger/fee_base.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/functions/ledger/fee_base.mdx rename to src/content/docs/pt-br/docs/hooks/functions/ledger/fee_base.mdx diff --git a/src/content/docs/br/docs/hooks/functions/ledger/ledger_keylet.mdx b/src/content/docs/pt-br/docs/hooks/functions/ledger/ledger_keylet.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/functions/ledger/ledger_keylet.mdx rename to src/content/docs/pt-br/docs/hooks/functions/ledger/ledger_keylet.mdx diff --git a/src/content/docs/br/docs/hooks/functions/ledger/ledger_last_hash.mdx b/src/content/docs/pt-br/docs/hooks/functions/ledger/ledger_last_hash.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/functions/ledger/ledger_last_hash.mdx rename to src/content/docs/pt-br/docs/hooks/functions/ledger/ledger_last_hash.mdx diff --git a/src/content/docs/br/docs/hooks/functions/ledger/ledger_last_time.mdx b/src/content/docs/pt-br/docs/hooks/functions/ledger/ledger_last_time.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/functions/ledger/ledger_last_time.mdx rename to src/content/docs/pt-br/docs/hooks/functions/ledger/ledger_last_time.mdx diff --git a/src/content/docs/br/docs/hooks/functions/ledger/ledger_nonce.mdx b/src/content/docs/pt-br/docs/hooks/functions/ledger/ledger_nonce.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/functions/ledger/ledger_nonce.mdx rename to src/content/docs/pt-br/docs/hooks/functions/ledger/ledger_nonce.mdx diff --git a/src/content/docs/br/docs/hooks/functions/ledger/ledger_seq.mdx b/src/content/docs/pt-br/docs/hooks/functions/ledger/ledger_seq.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/functions/ledger/ledger_seq.mdx rename to src/content/docs/pt-br/docs/hooks/functions/ledger/ledger_seq.mdx diff --git a/src/content/docs/br/docs/hooks/functions/originating-transaction/meta_slot.mdx b/src/content/docs/pt-br/docs/hooks/functions/originating-transaction/meta_slot.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/functions/originating-transaction/meta_slot.mdx rename to src/content/docs/pt-br/docs/hooks/functions/originating-transaction/meta_slot.mdx diff --git a/src/content/docs/br/docs/hooks/functions/originating-transaction/otxn_burden.mdx b/src/content/docs/pt-br/docs/hooks/functions/originating-transaction/otxn_burden.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/functions/originating-transaction/otxn_burden.mdx rename to src/content/docs/pt-br/docs/hooks/functions/originating-transaction/otxn_burden.mdx diff --git a/src/content/docs/br/docs/hooks/functions/originating-transaction/otxn_field.mdx b/src/content/docs/pt-br/docs/hooks/functions/originating-transaction/otxn_field.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/functions/originating-transaction/otxn_field.mdx rename to src/content/docs/pt-br/docs/hooks/functions/originating-transaction/otxn_field.mdx diff --git a/src/content/docs/br/docs/hooks/functions/originating-transaction/otxn_generation.mdx b/src/content/docs/pt-br/docs/hooks/functions/originating-transaction/otxn_generation.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/functions/originating-transaction/otxn_generation.mdx rename to src/content/docs/pt-br/docs/hooks/functions/originating-transaction/otxn_generation.mdx diff --git a/src/content/docs/br/docs/hooks/functions/originating-transaction/otxn_id.mdx b/src/content/docs/pt-br/docs/hooks/functions/originating-transaction/otxn_id.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/functions/originating-transaction/otxn_id.mdx rename to src/content/docs/pt-br/docs/hooks/functions/originating-transaction/otxn_id.mdx diff --git a/src/content/docs/br/docs/hooks/functions/originating-transaction/otxn_json.mdx b/src/content/docs/pt-br/docs/hooks/functions/originating-transaction/otxn_json.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/functions/originating-transaction/otxn_json.mdx rename to src/content/docs/pt-br/docs/hooks/functions/originating-transaction/otxn_json.mdx diff --git a/src/content/docs/br/docs/hooks/functions/originating-transaction/otxn_param.mdx b/src/content/docs/pt-br/docs/hooks/functions/originating-transaction/otxn_param.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/functions/originating-transaction/otxn_param.mdx rename to src/content/docs/pt-br/docs/hooks/functions/originating-transaction/otxn_param.mdx diff --git a/src/content/docs/br/docs/hooks/functions/originating-transaction/otxn_slot.mdx b/src/content/docs/pt-br/docs/hooks/functions/originating-transaction/otxn_slot.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/functions/originating-transaction/otxn_slot.mdx rename to src/content/docs/pt-br/docs/hooks/functions/originating-transaction/otxn_slot.mdx diff --git a/src/content/docs/br/docs/hooks/functions/originating-transaction/otxn_type.mdx b/src/content/docs/pt-br/docs/hooks/functions/originating-transaction/otxn_type.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/functions/originating-transaction/otxn_type.mdx rename to src/content/docs/pt-br/docs/hooks/functions/originating-transaction/otxn_type.mdx diff --git a/src/content/docs/br/docs/hooks/functions/overview/hook-api-conventions.mdx b/src/content/docs/pt-br/docs/hooks/functions/overview/hook-api-conventions.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/functions/overview/hook-api-conventions.mdx rename to src/content/docs/pt-br/docs/hooks/functions/overview/hook-api-conventions.mdx diff --git a/src/content/docs/br/docs/hooks/functions/overview/return-codes.mdx b/src/content/docs/pt-br/docs/hooks/functions/overview/return-codes.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/functions/overview/return-codes.mdx rename to src/content/docs/pt-br/docs/hooks/functions/overview/return-codes.mdx diff --git a/src/content/docs/br/docs/hooks/functions/serialization/sto_emplace.mdx b/src/content/docs/pt-br/docs/hooks/functions/serialization/sto_emplace.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/functions/serialization/sto_emplace.mdx rename to src/content/docs/pt-br/docs/hooks/functions/serialization/sto_emplace.mdx diff --git a/src/content/docs/br/docs/hooks/functions/serialization/sto_erase.mdx b/src/content/docs/pt-br/docs/hooks/functions/serialization/sto_erase.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/functions/serialization/sto_erase.mdx rename to src/content/docs/pt-br/docs/hooks/functions/serialization/sto_erase.mdx diff --git a/src/content/docs/br/docs/hooks/functions/serialization/sto_from_json.mdx b/src/content/docs/pt-br/docs/hooks/functions/serialization/sto_from_json.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/functions/serialization/sto_from_json.mdx rename to src/content/docs/pt-br/docs/hooks/functions/serialization/sto_from_json.mdx diff --git a/src/content/docs/br/docs/hooks/functions/serialization/sto_subarray.mdx b/src/content/docs/pt-br/docs/hooks/functions/serialization/sto_subarray.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/functions/serialization/sto_subarray.mdx rename to src/content/docs/pt-br/docs/hooks/functions/serialization/sto_subarray.mdx diff --git a/src/content/docs/br/docs/hooks/functions/serialization/sto_subfield.mdx b/src/content/docs/pt-br/docs/hooks/functions/serialization/sto_subfield.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/functions/serialization/sto_subfield.mdx rename to src/content/docs/pt-br/docs/hooks/functions/serialization/sto_subfield.mdx diff --git a/src/content/docs/br/docs/hooks/functions/serialization/sto_to_json.mdx b/src/content/docs/pt-br/docs/hooks/functions/serialization/sto_to_json.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/functions/serialization/sto_to_json.mdx rename to src/content/docs/pt-br/docs/hooks/functions/serialization/sto_to_json.mdx diff --git a/src/content/docs/br/docs/hooks/functions/serialization/sto_validate.mdx b/src/content/docs/pt-br/docs/hooks/functions/serialization/sto_validate.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/functions/serialization/sto_validate.mdx rename to src/content/docs/pt-br/docs/hooks/functions/serialization/sto_validate.mdx diff --git a/src/content/docs/br/docs/hooks/functions/slot/slot.mdx b/src/content/docs/pt-br/docs/hooks/functions/slot/slot.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/functions/slot/slot.mdx rename to src/content/docs/pt-br/docs/hooks/functions/slot/slot.mdx diff --git a/src/content/docs/br/docs/hooks/functions/slot/slot_clear.mdx b/src/content/docs/pt-br/docs/hooks/functions/slot/slot_clear.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/functions/slot/slot_clear.mdx rename to src/content/docs/pt-br/docs/hooks/functions/slot/slot_clear.mdx diff --git a/src/content/docs/br/docs/hooks/functions/slot/slot_count.mdx b/src/content/docs/pt-br/docs/hooks/functions/slot/slot_count.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/functions/slot/slot_count.mdx rename to src/content/docs/pt-br/docs/hooks/functions/slot/slot_count.mdx diff --git a/src/content/docs/br/docs/hooks/functions/slot/slot_float.mdx b/src/content/docs/pt-br/docs/hooks/functions/slot/slot_float.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/functions/slot/slot_float.mdx rename to src/content/docs/pt-br/docs/hooks/functions/slot/slot_float.mdx diff --git a/src/content/docs/br/docs/hooks/functions/slot/slot_set.mdx b/src/content/docs/pt-br/docs/hooks/functions/slot/slot_set.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/functions/slot/slot_set.mdx rename to src/content/docs/pt-br/docs/hooks/functions/slot/slot_set.mdx diff --git a/src/content/docs/br/docs/hooks/functions/slot/slot_size.mdx b/src/content/docs/pt-br/docs/hooks/functions/slot/slot_size.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/functions/slot/slot_size.mdx rename to src/content/docs/pt-br/docs/hooks/functions/slot/slot_size.mdx diff --git a/src/content/docs/br/docs/hooks/functions/slot/slot_subarray.mdx b/src/content/docs/pt-br/docs/hooks/functions/slot/slot_subarray.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/functions/slot/slot_subarray.mdx rename to src/content/docs/pt-br/docs/hooks/functions/slot/slot_subarray.mdx diff --git a/src/content/docs/br/docs/hooks/functions/slot/slot_subfield.mdx b/src/content/docs/pt-br/docs/hooks/functions/slot/slot_subfield.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/functions/slot/slot_subfield.mdx rename to src/content/docs/pt-br/docs/hooks/functions/slot/slot_subfield.mdx diff --git a/src/content/docs/br/docs/hooks/functions/slot/slot_type.mdx b/src/content/docs/pt-br/docs/hooks/functions/slot/slot_type.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/functions/slot/slot_type.mdx rename to src/content/docs/pt-br/docs/hooks/functions/slot/slot_type.mdx diff --git a/src/content/docs/br/docs/hooks/functions/slot/xpop_slot.mdx b/src/content/docs/pt-br/docs/hooks/functions/slot/xpop_slot.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/functions/slot/xpop_slot.mdx rename to src/content/docs/pt-br/docs/hooks/functions/slot/xpop_slot.mdx diff --git a/src/content/docs/br/docs/hooks/functions/state/state.mdx b/src/content/docs/pt-br/docs/hooks/functions/state/state.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/functions/state/state.mdx rename to src/content/docs/pt-br/docs/hooks/functions/state/state.mdx diff --git a/src/content/docs/br/docs/hooks/functions/state/state_foreign.mdx b/src/content/docs/pt-br/docs/hooks/functions/state/state_foreign.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/functions/state/state_foreign.mdx rename to src/content/docs/pt-br/docs/hooks/functions/state/state_foreign.mdx diff --git a/src/content/docs/br/docs/hooks/functions/state/state_foreign_set.mdx b/src/content/docs/pt-br/docs/hooks/functions/state/state_foreign_set.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/functions/state/state_foreign_set.mdx rename to src/content/docs/pt-br/docs/hooks/functions/state/state_foreign_set.mdx diff --git a/src/content/docs/br/docs/hooks/functions/state/state_set.mdx b/src/content/docs/pt-br/docs/hooks/functions/state/state_set.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/functions/state/state_set.mdx rename to src/content/docs/pt-br/docs/hooks/functions/state/state_set.mdx diff --git a/src/content/docs/br/docs/hooks/functions/trace-debug/trace.mdx b/src/content/docs/pt-br/docs/hooks/functions/trace-debug/trace.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/functions/trace-debug/trace.mdx rename to src/content/docs/pt-br/docs/hooks/functions/trace-debug/trace.mdx diff --git a/src/content/docs/br/docs/hooks/functions/trace-debug/trace_float.mdx b/src/content/docs/pt-br/docs/hooks/functions/trace-debug/trace_float.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/functions/trace-debug/trace_float.mdx rename to src/content/docs/pt-br/docs/hooks/functions/trace-debug/trace_float.mdx diff --git a/src/content/docs/br/docs/hooks/functions/trace-debug/trace_num.mdx b/src/content/docs/pt-br/docs/hooks/functions/trace-debug/trace_num.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/functions/trace-debug/trace_num.mdx rename to src/content/docs/pt-br/docs/hooks/functions/trace-debug/trace_num.mdx diff --git a/src/content/docs/br/docs/hooks/functions/utilities/util_accid.mdx b/src/content/docs/pt-br/docs/hooks/functions/utilities/util_accid.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/functions/utilities/util_accid.mdx rename to src/content/docs/pt-br/docs/hooks/functions/utilities/util_accid.mdx diff --git a/src/content/docs/br/docs/hooks/functions/utilities/util_keylet.mdx b/src/content/docs/pt-br/docs/hooks/functions/utilities/util_keylet.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/functions/utilities/util_keylet.mdx rename to src/content/docs/pt-br/docs/hooks/functions/utilities/util_keylet.mdx diff --git a/src/content/docs/br/docs/hooks/functions/utilities/util_raddr.mdx b/src/content/docs/pt-br/docs/hooks/functions/utilities/util_raddr.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/functions/utilities/util_raddr.mdx rename to src/content/docs/pt-br/docs/hooks/functions/utilities/util_raddr.mdx diff --git a/src/content/docs/br/docs/hooks/functions/utilities/util_sha512h.mdx b/src/content/docs/pt-br/docs/hooks/functions/utilities/util_sha512h.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/functions/utilities/util_sha512h.mdx rename to src/content/docs/pt-br/docs/hooks/functions/utilities/util_sha512h.mdx diff --git a/src/content/docs/br/docs/hooks/functions/utilities/util_verify.mdx b/src/content/docs/pt-br/docs/hooks/functions/utilities/util_verify.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/functions/utilities/util_verify.mdx rename to src/content/docs/pt-br/docs/hooks/functions/utilities/util_verify.mdx diff --git a/src/content/docs/br/docs/hooks/functions/websocket-apis/account_info.mdx b/src/content/docs/pt-br/docs/hooks/functions/websocket-apis/account_info.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/functions/websocket-apis/account_info.mdx rename to src/content/docs/pt-br/docs/hooks/functions/websocket-apis/account_info.mdx diff --git a/src/content/docs/br/docs/hooks/functions/websocket-apis/account_namespace.mdx b/src/content/docs/pt-br/docs/hooks/functions/websocket-apis/account_namespace.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/functions/websocket-apis/account_namespace.mdx rename to src/content/docs/pt-br/docs/hooks/functions/websocket-apis/account_namespace.mdx diff --git a/src/content/docs/br/docs/hooks/index.mdx b/src/content/docs/pt-br/docs/hooks/index.mdx similarity index 100% rename from src/content/docs/br/docs/hooks/index.mdx rename to src/content/docs/pt-br/docs/hooks/index.mdx diff --git a/src/content/docs/br/docs/index.mdx b/src/content/docs/pt-br/docs/index.mdx similarity index 100% rename from src/content/docs/br/docs/index.mdx rename to src/content/docs/pt-br/docs/index.mdx diff --git a/src/content/docs/br/docs/infrastructure/advanced-configuration.mdx b/src/content/docs/pt-br/docs/infrastructure/advanced-configuration.mdx similarity index 100% rename from src/content/docs/br/docs/infrastructure/advanced-configuration.mdx rename to src/content/docs/pt-br/docs/infrastructure/advanced-configuration.mdx diff --git a/src/content/docs/br/docs/infrastructure/build-xahaud/index.mdx b/src/content/docs/pt-br/docs/infrastructure/build-xahaud/index.mdx similarity index 100% rename from src/content/docs/br/docs/infrastructure/build-xahaud/index.mdx rename to src/content/docs/pt-br/docs/infrastructure/build-xahaud/index.mdx diff --git a/src/content/docs/br/docs/infrastructure/build-xahaud/linux.mdx b/src/content/docs/pt-br/docs/infrastructure/build-xahaud/linux.mdx similarity index 100% rename from src/content/docs/br/docs/infrastructure/build-xahaud/linux.mdx rename to src/content/docs/pt-br/docs/infrastructure/build-xahaud/linux.mdx diff --git a/src/content/docs/br/docs/infrastructure/build-xahaud/macos.mdx b/src/content/docs/pt-br/docs/infrastructure/build-xahaud/macos.mdx similarity index 100% rename from src/content/docs/br/docs/infrastructure/build-xahaud/macos.mdx rename to src/content/docs/pt-br/docs/infrastructure/build-xahaud/macos.mdx diff --git a/src/content/docs/br/docs/infrastructure/enabling-validation.mdx b/src/content/docs/pt-br/docs/infrastructure/enabling-validation.mdx similarity index 100% rename from src/content/docs/br/docs/infrastructure/enabling-validation.mdx rename to src/content/docs/pt-br/docs/infrastructure/enabling-validation.mdx diff --git a/src/content/docs/br/docs/infrastructure/identity.mdx b/src/content/docs/pt-br/docs/infrastructure/identity.mdx similarity index 100% rename from src/content/docs/br/docs/infrastructure/identity.mdx rename to src/content/docs/pt-br/docs/infrastructure/identity.mdx diff --git a/src/content/docs/br/docs/infrastructure/installing-xahaud.mdx b/src/content/docs/pt-br/docs/infrastructure/installing-xahaud.mdx similarity index 100% rename from src/content/docs/br/docs/infrastructure/installing-xahaud.mdx rename to src/content/docs/pt-br/docs/infrastructure/installing-xahaud.mdx diff --git a/src/content/docs/br/docs/infrastructure/interacting.mdx b/src/content/docs/pt-br/docs/infrastructure/interacting.mdx similarity index 100% rename from src/content/docs/br/docs/infrastructure/interacting.mdx rename to src/content/docs/pt-br/docs/infrastructure/interacting.mdx diff --git a/src/content/docs/br/docs/infrastructure/system-requirements.mdx b/src/content/docs/pt-br/docs/infrastructure/system-requirements.mdx similarity index 100% rename from src/content/docs/br/docs/infrastructure/system-requirements.mdx rename to src/content/docs/pt-br/docs/infrastructure/system-requirements.mdx diff --git a/src/content/docs/br/docs/infrastructure/updating-xahaud.mdx b/src/content/docs/pt-br/docs/infrastructure/updating-xahaud.mdx similarity index 100% rename from src/content/docs/br/docs/infrastructure/updating-xahaud.mdx rename to src/content/docs/pt-br/docs/infrastructure/updating-xahaud.mdx diff --git a/src/content/docs/br/docs/protocol-reference/binary-format.mdx b/src/content/docs/pt-br/docs/protocol-reference/binary-format.mdx similarity index 100% rename from src/content/docs/br/docs/protocol-reference/binary-format.mdx rename to src/content/docs/pt-br/docs/protocol-reference/binary-format.mdx diff --git a/src/content/docs/br/docs/protocol-reference/data-types/base-58-encodings.mdx b/src/content/docs/pt-br/docs/protocol-reference/data-types/base-58-encodings.mdx similarity index 100% rename from src/content/docs/br/docs/protocol-reference/data-types/base-58-encodings.mdx rename to src/content/docs/pt-br/docs/protocol-reference/data-types/base-58-encodings.mdx diff --git a/src/content/docs/br/docs/protocol-reference/data-types/currency-formats.mdx b/src/content/docs/pt-br/docs/protocol-reference/data-types/currency-formats.mdx similarity index 100% rename from src/content/docs/br/docs/protocol-reference/data-types/currency-formats.mdx rename to src/content/docs/pt-br/docs/protocol-reference/data-types/currency-formats.mdx diff --git a/src/content/docs/br/docs/protocol-reference/data-types/index.mdx b/src/content/docs/pt-br/docs/protocol-reference/data-types/index.mdx similarity index 100% rename from src/content/docs/br/docs/protocol-reference/data-types/index.mdx rename to src/content/docs/pt-br/docs/protocol-reference/data-types/index.mdx diff --git a/src/content/docs/br/docs/protocol-reference/ledger-data/index.mdx b/src/content/docs/pt-br/docs/protocol-reference/ledger-data/index.mdx similarity index 100% rename from src/content/docs/br/docs/protocol-reference/ledger-data/index.mdx rename to src/content/docs/pt-br/docs/protocol-reference/ledger-data/index.mdx diff --git a/src/content/docs/br/docs/protocol-reference/ledger-data/ledger-header.mdx b/src/content/docs/pt-br/docs/protocol-reference/ledger-data/ledger-header.mdx similarity index 100% rename from src/content/docs/br/docs/protocol-reference/ledger-data/ledger-header.mdx rename to src/content/docs/pt-br/docs/protocol-reference/ledger-data/ledger-header.mdx diff --git a/src/content/docs/br/docs/protocol-reference/ledger-data/ledger-object-ids.mdx b/src/content/docs/pt-br/docs/protocol-reference/ledger-data/ledger-object-ids.mdx similarity index 100% rename from src/content/docs/br/docs/protocol-reference/ledger-data/ledger-object-ids.mdx rename to src/content/docs/pt-br/docs/protocol-reference/ledger-data/ledger-object-ids.mdx diff --git a/src/content/docs/br/docs/protocol-reference/ledger-data/ledger-objects-types/accountroot.mdx b/src/content/docs/pt-br/docs/protocol-reference/ledger-data/ledger-objects-types/accountroot.mdx similarity index 100% rename from src/content/docs/br/docs/protocol-reference/ledger-data/ledger-objects-types/accountroot.mdx rename to src/content/docs/pt-br/docs/protocol-reference/ledger-data/ledger-objects-types/accountroot.mdx diff --git a/src/content/docs/br/docs/protocol-reference/ledger-data/ledger-objects-types/amendments.mdx b/src/content/docs/pt-br/docs/protocol-reference/ledger-data/ledger-objects-types/amendments.mdx similarity index 100% rename from src/content/docs/br/docs/protocol-reference/ledger-data/ledger-objects-types/amendments.mdx rename to src/content/docs/pt-br/docs/protocol-reference/ledger-data/ledger-objects-types/amendments.mdx diff --git a/src/content/docs/br/docs/protocol-reference/ledger-data/ledger-objects-types/check.mdx b/src/content/docs/pt-br/docs/protocol-reference/ledger-data/ledger-objects-types/check.mdx similarity index 100% rename from src/content/docs/br/docs/protocol-reference/ledger-data/ledger-objects-types/check.mdx rename to src/content/docs/pt-br/docs/protocol-reference/ledger-data/ledger-objects-types/check.mdx diff --git a/src/content/docs/br/docs/protocol-reference/ledger-data/ledger-objects-types/cron.mdx b/src/content/docs/pt-br/docs/protocol-reference/ledger-data/ledger-objects-types/cron.mdx similarity index 100% rename from src/content/docs/br/docs/protocol-reference/ledger-data/ledger-objects-types/cron.mdx rename to src/content/docs/pt-br/docs/protocol-reference/ledger-data/ledger-objects-types/cron.mdx diff --git a/src/content/docs/pt-br/docs/protocol-reference/ledger-data/ledger-objects-types/deposit-pre-auth.mdx b/src/content/docs/pt-br/docs/protocol-reference/ledger-data/ledger-objects-types/deposit-pre-auth.mdx new file mode 100644 index 0000000..6fcf6e5 --- /dev/null +++ b/src/content/docs/pt-br/docs/protocol-reference/ledger-data/ledger-objects-types/deposit-pre-auth.mdx @@ -0,0 +1,45 @@ +--- +title: Deposit Pre Auth +--- +[\[Fonte\]](https://github.com/ripple/rippled/blob/master/src/ripple/protocol/impl/LedgerFormats.cpp#L172-L178) + +Um objeto `DepositPreauth` rastreia uma pré-autorização de uma conta para outra. \[Transações DepositPreauth]\[] criam esses objetos. + +Isso não tem efeito no processamento de transações a menos que a conta que forneceu a pré-autorização exija Autorização de Depósito. Nesse caso, a conta que foi pré-autorizada pode enviar pagamentos e outras transações diretamente para a conta que forneceu a pré-autorização. As pré-autorizações são unidirecionais e não têm efeito sobre pagamentos na direção oposta. + +### Exemplo JSON + +```json +{ + "LedgerEntryType": "DepositPreauth", + "Account": "rsUiUMpnrgxQp24dJYZDhmV4bE3aBtQyt8", + "Authorize": "rEhxGqkqPPSxQ3P25J66ft5TwpzV14k2de", + "Flags": 0, + "OwnerNode": "0000000000000000", + "PreviousTxnID": "3E8964D5A86B3CD6B9ECB33310D4E073D64C865A5B866200AD2B7E29F8326702", + "PreviousTxnLgrSeq": 7, + "index": "4A255038CC3ADCC1A9C91509279B59908251728D0DAADB248FFE297D0F7E068C" +} +``` + +### Campos + +Um objeto `DepositPreauth` tem os seguintes campos: + +| Campo | Tipo JSON | \[Tipo Interno]\[] | Obrigatório? | Descrição | +| ------------------- | --------- | ------------------- | ------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Account` | String | Account | Sim | A conta que concedeu a pré-autorização. (O destino dos pagamentos pré-autorizados.) | +| `Authorize` | String | Account | Sim | A conta que recebeu a pré-autorização. (O remetente dos pagamentos pré-autorizados.) | +| `Flags` | Number | UInt32 | Sim | Um mapa de bits de flags booleanos habilitados para este objeto. Atualmente, o protocolo não define flags para objetos `DepositPreauth`. O valor é sempre `0`. | +| `LedgerEntryType` | String | UInt16 | Sim | O valor `0x0070`, mapeado para a string `DepositPreauth`, indica que este é um objeto DepositPreauth. | +| `OwnerNode` | String | UInt64 | Sim | Uma dica indicando qual página do diretório do proprietário do remetente aponta para este objeto, caso o diretório consista em múltiplas páginas. **Nota:** O objeto não contém um link direto para o diretório do proprietário que o contém, pois esse valor pode ser derivado de `Account`. | +| `PreviousTxnID` | String | Hash256 | Sim | O hash identificador da transação que mais recentemente modificou este objeto. | +| `PreviousTxnLgrSeq` | Number | UInt32 | Sim | O \[índice do ledger]\[Índice de Ledger] que contém a transação que mais recentemente modificou este objeto. | + +### Formato do ID do DepositPreauth + +O ID de um objeto `DepositPreauth` é o \[SHA-512Half]\[] dos seguintes valores, concatenados em ordem: + +* A chave de espaço DepositPreauth (`0x0070`) +* O AccountID do proprietário deste objeto (o remetente da \[transação DepositPreauth]\[] que criou este objeto; ou seja, quem concedeu a pré-autorização) +* O AccountID da conta pré-autorizada (o campo `Authorized` da \[transação DepositPreauth]\[] que criou este objeto; ou seja, quem recebeu a pré-autorização) diff --git a/src/content/docs/pt-br/docs/protocol-reference/ledger-data/ledger-objects-types/directory-node.mdx b/src/content/docs/pt-br/docs/protocol-reference/ledger-data/ledger-objects-types/directory-node.mdx new file mode 100644 index 0000000..f7731a7 --- /dev/null +++ b/src/content/docs/pt-br/docs/protocol-reference/ledger-data/ledger-objects-types/directory-node.mdx @@ -0,0 +1,96 @@ +--- +title: Directory Node +--- +[\[Fonte\]](https://github.com/ripple/rippled/blob/5d2d88209f1732a0f8d592012094e345cbe3e675/src/ripple/protocol/impl/LedgerFormats.cpp#L44) + +O tipo de objeto `DirectoryNode` fornece uma lista de links para outros objetos na árvore de estado do ledger. Um único _Diretório_ conceitual assume a forma de uma lista duplamente encadeada, com um ou mais objetos DirectoryNode, cada um contendo até 32 IDs de outros objetos. O primeiro objeto é chamado de raiz do diretório, e todos os objetos, exceto o objeto raiz, podem ser adicionados ou excluídos conforme necessário. + +Existem dois tipos de Diretórios: + +* **Diretórios de proprietário** listam outros objetos pertencentes a uma conta, como objetos `RippleState` (linha de confiança) ou `Offer`. +* **Diretórios de oferta** listam as ofertas disponíveis na exchange descentralizada. Um único diretório de oferta contém todas as ofertas com a mesma taxa de câmbio para o mesmo token (código de moeda e emissor). + +### Exemplo JSON + +_Diretório de Oferta_ + +```json +{ + "ExchangeRate": "4F069BA8FF484000", + "Flags": 0, + "Indexes": [ + "AD7EAE148287EF12D213A251015F86E6D4BD34B3C4A0A1ED9A17198373F908AD" + ], + "LedgerEntryType": "DirectoryNode", + "RootIndex": "1BBEF97EDE88D40CEE2ADE6FEF121166AFE80D99EBADB01A4F069BA8FF484000", + "TakerGetsCurrency": "0000000000000000000000000000000000000000", + "TakerGetsIssuer": "0000000000000000000000000000000000000000", + "TakerPaysCurrency": "0000000000000000000000004A50590000000000", + "TakerPaysIssuer": "5BBC0F22F61D9224A110650CFE21CC0C4BE13098", + "index": "1BBEF97EDE88D40CEE2ADE6FEF121166AFE80D99EBADB01A4F069BA8FF484000" +} +``` + +_Diretório de Proprietário_ + +```json +{ + "Flags": 0, + "Indexes": [ + "AD7EAE148287EF12D213A251015F86E6D4BD34B3C4A0A1ED9A17198373F908AD", + "E83BBB58949A8303DF07172B16FB8EFBA66B9191F3836EC27A4568ED5997BAC5" + ], + "ReferenceCount": "1", + "LedgerEntryType": "DirectoryNode", + "Owner": "rpR95n1iFkTqpoy1e878f4Z1pVHVtWKMNQ", + "RootIndex": "193C591BF62482468422313F9D3274B5927CA80B4DD3707E42015DD609E39C94", + "index": "193C591BF62482468422313F9D3274B5927CA80B4DD3707E42015DD609E39C94" +} +``` + +### Campos + +| Nome | Tipo JSON | \[Tipo Interno]\[] | Obrigatório? | Descrição | +| ------------------- | --------- | ------------------- | ------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Owner` | String | AccountID | Não | (Somente Diretórios de Proprietário) O endereço da conta que possui os objetos neste diretório. | +| `TakerGetsCurrency` | String | Hash160 | Não | (Somente Diretórios de Oferta) O código de moeda do valor `TakerGets` das ofertas neste diretório. | +| `TakerGetsIssuer` | String | Hash160 | Não | (Somente Diretórios de Oferta) O emissor do valor `TakerGets` das ofertas neste diretório. | +| `TakerPaysCurrency` | String | Hash160 | Não | (Somente Diretórios de Oferta) O código de moeda do valor `TakerPays` das ofertas neste diretório. | +| `TakerPaysIssuer` | String | Hash160 | Não | (Somente Diretórios de Oferta) O emissor do valor `TakerPays` das ofertas neste diretório. | +| `ExchangeRate` | String | UInt64 | Não | (Somente Diretórios de Oferta) **OBSOLETO**. Não utilizar. | +| `ReferenceCount` | String | UInt64 | Não | A contagem de referências no ledger reduz o custo de armazenamento e as taxas, permitindo que múltiplas instalações do mesmo Hook apontem para o mesmo objeto no ledger, removendo-o apenas quando nenhuma conta tiver o Hook instalado. | +| `Indexes` | Array | Vector256 | Sim | O conteúdo deste Diretório: um array de IDs de outros objetos. | +| `IndexNext` | Number | UInt64 | Não | Se este Diretório consistir em múltiplas páginas, este ID aponta para o próximo objeto na cadeia, voltando ao início ao chegar ao final. | +| `IndexPrevious` | Number | UInt64 | Não | Se este Diretório consistir em múltiplas páginas, este ID aponta para o objeto anterior na cadeia, voltando ao final ao chegar ao início. | +| `NFTokenID` | String | Hash256 | Não | Não utilizado | + +### Formatos do ID do Diretório + +Existem três fórmulas diferentes para criar o ID de um DirectoryNode, dependendo do que o DirectoryNode representa: + +* A primeira página (também chamada de raiz) de um Diretório de Proprietário +* A primeira página de um Diretório de Oferta +* Páginas posteriores de qualquer tipo + +**A primeira página de um Diretório de Proprietário** tem um ID que é o \[SHA-512Half]\[] dos seguintes valores, concatenados em ordem: + +* A chave de espaço Owner Directory (`0x004F`) +* O AccountID do campo `Owner`. + +**A primeira página de um Diretório de Oferta** tem um ID especial: os 192 bits superiores definem o livro de ordens, e os 64 bits restantes definem a taxa de câmbio das ofertas nesse diretório. (O ID é big-endian, portanto o livro está nos bits mais significativos, que vêm primeiro, e a qualidade está nos bits menos significativos, que vêm por último.) + +Isso fornece uma maneira de iterar por um livro de ordens das melhores para as piores ofertas. Especificamente: os primeiros 192 bits são os primeiros 192 bits do \[SHA-512Half]\[] dos seguintes valores, concatenados em ordem: + +* A chave de espaço Book Directory (`0x0042`) +* O código de moeda de 160 bits do `TakerPaysCurrency` +* O código de moeda de 160 bits do `TakerGetsCurrency` +* O AccountID do `TakerPaysIssuer` +* O AccountID do `TakerGetsIssuer` + +Os 64 bits inferiores do ID de um Diretório de Oferta representam o valor `TakerPays` dividido pelo valor `TakerGets` das ofertas naquele diretório como um número de 64 bits no formato interno de quantidade do Xahau. + +**Se o DirectoryNode não for a primeira página do Diretório** (independentemente de ser um Diretório de Proprietário ou de Oferta), então ele tem um ID que é o \[SHA-512Half]\[] dos seguintes valores, concatenados em ordem: + +* A chave de espaço DirectoryNode (`0x0064`) +* O ID do DirectoryNode raiz +* O número de página deste objeto. (Como 0 é o DirectoryNode raiz, este valor é um inteiro 1 ou maior.) diff --git a/src/content/docs/pt-br/docs/protocol-reference/ledger-data/ledger-objects-types/emitted-txn.mdx b/src/content/docs/pt-br/docs/protocol-reference/ledger-data/ledger-objects-types/emitted-txn.mdx new file mode 100644 index 0000000..adc4b23 --- /dev/null +++ b/src/content/docs/pt-br/docs/protocol-reference/ledger-data/ledger-objects-types/emitted-txn.mdx @@ -0,0 +1,61 @@ +--- +title: Emitted Txn +--- +_(Adicionado pela \[emenda Hooks]\[].)_ + +Um objeto `EmittedTxn` descreve uma transação que foi emitida por um hook. O objeto contém todos os campos da transação original, juntamente com detalhes adicionais sobre a emissão. + +### Exemplo JSON + +```json +{ + "Account": "rMPwD1b8dJUaqZHaBgEvFx4ENhtpPVvDsv", + "Amount": "999999", + "Destination": "rfCarbonVNTuXckX6x2qTMFmFSnm6dEWGX", + "DestinationTag": 0, + "EmitDetails": { + "EmitBurden": "1", + "EmitCallback": "rMPwD1b8dJUaqZHaBgEvFx4ENhtpPVvDsv", + "EmitGeneration": 1, + "EmitHookHash": "A9B5411F4A4368008B4736EEE47A34B0EFCBE74016B9B94CC6208FBC0BF5C0C2", + "EmitNonce": "6B2A27D6864903A479614581A79D18E8C8ADCE01E3440C6E993BE07298ADC2A4", + "EmitParentTxnID": "9763EB6B74AEF0F55F642243AD51F48490594434439002A6142E545E47318D56" + }, + "Fee": "31", + "FirstLedgerSequence": 7186113, + "Flags": 2147483648, + "LastLedgerSequence": 7186117, + "Sequence": 0, + "SigningPubKey": "000000000000000000000000000000000000000000000000000000000000000000", + "SourceTag": 0, + "TransactionType": "Payment" +} +``` + +### Campos + +Um objeto `EmittedTxn` tem os seguintes campos: + +| Campo | Tipo JSON | \[Tipo Interno]\[] | Obrigatório? | Descrição | +| ----------------- | --------- | ------------------- | ------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `EmitDetails` | Object | Object | Sim | Contém detalhes sobre a emissão. Inclui a geração da emissão, o ônus da emissão, o endereço de callback, o hash do hook que emitiu a transação, o nonce da emissão e o ID da transação pai. | +| `TransactionType` | String | UInt16 | Sim | O tipo da transação que foi emitida. | +| `Account` | String | Account | Sim | A conta que emitiu a transação. | +| `Fee` | String | Amount | Sim | A taxa paga pela transação. | +| `Sequence` | Number | UInt32 | Sim | O número de sequência da transação. | +| `SigningPubKey` | String | Blob | Sim | A chave pública que assina a transação. | + +O objeto `EmittedTxn` também contém todos os campos da transação original. + +### Campos do EmitDetails + +Um objeto `EmitDetails` tem os seguintes campos: + +| Campo | Tipo JSON | \[Tipo Interno]\[] | Obrigatório? | Descrição | +| ----------------- | --------- | ------------------- | ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `EmitGeneration` | Number | UInt32 | Sim | Este campo rastreia uma cadeia de transações emitidas que, por sua vez, causam a emissão de outras transações. | +| `EmitBurden` | String | UInt64 | Sim | Este campo é uma heurística para detecção de forkbombs. As taxas são baseadas no ônus e aumentarão exponencialmente quando uma reação em cadeia for iniciada, para evitar que a rede seja sobrecarregada por transações emitidas auto-reforçantes. | +| `EmitParentTxnID` | String | Hash256 | Sim | A Execução de Hook que emitiu a transação está conectada à Transação de Origem. Portanto, este campo é sempre obrigatório para o rastreamento eficiente do comportamento. | +| `EmitNonce` | String | Hash256 | Sim | As Transações Emitidas seriam idênticas com os mesmos campos e, portanto, teriam hashes de transação idênticos se um nonce não fosse utilizado. No entanto, todos os nós da rede precisam concordar com o nonce, por isso uma API Hook especial para produzir um nonce determinístico está disponível. | +| `EmitCallback` | String | AccountID | Não | Este campo é usado pelo xahld quando precisa iniciar um callback, para que saiba em qual Hook e conta iniciar o callback. Os callbacks ocorrem quando uma transação emitida é aceita em um ledger. | +| `EmitHookHash` | String | Hash256 | Sim | O SHA512H do Hook no momento em que foi executado. | diff --git a/src/content/docs/pt-br/docs/protocol-reference/ledger-data/ledger-objects-types/escrow.mdx b/src/content/docs/pt-br/docs/protocol-reference/ledger-data/ledger-objects-types/escrow.mdx new file mode 100644 index 0000000..ec17617 --- /dev/null +++ b/src/content/docs/pt-br/docs/protocol-reference/ledger-data/ledger-objects-types/escrow.mdx @@ -0,0 +1,67 @@ +--- +title: Escrow +--- +[\[Fonte\]](https://github.com/ripple/rippled/blob/c6b6d82a754fe449cc533e18659df483c10a5c98/src/ripple/protocol/impl/LedgerFormats.cpp#L90-L101) + +_(Adicionado pela \[emenda Escrow]\[].)_ + +O tipo de objeto `Escrow` representa um pagamento retido em XAH ou IOU aguardando execução ou cancelamento. Uma \[transação EscrowCreate]\[] cria um objeto `Escrow` no ledger. Uma transação \[EscrowFinish]\[] ou \[EscrowCancel]\[] bem-sucedida exclui o objeto. + +Se o objeto `Escrow` tiver uma [_crypto-condition_](https://tools.ietf.org/html/draft-thomas-crypto-conditions-02), o pagamento só pode ser concluído se uma transação EscrowFinish fornecer o _fulfillment_ correspondente que satisfaça a condição. (O único tipo de crypto-condition suportado é o [PREIMAGE-SHA-256](https://tools.ietf.org/html/draft-thomas-crypto-conditions-02#section-8.1).) Se o objeto `Escrow` tiver um tempo `FinishAfter`, o pagamento retido só pode ser executado após esse momento. + +Um objeto `Escrow` está associado a dois endereços: + +* O proprietário, que fornece o XAH ou IOU ao criar o objeto `Escrow`. Se o pagamento retido for cancelado, o XAH ou IOU retorna ao proprietário. +* O destino, para onde o XAH ou IOU é pago quando o pagamento retido é bem-sucedido. O destino pode ser o mesmo que o proprietário. + +### Exemplo JSON + +```json +{ + "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "Amount": "10000", + "CancelAfter": 545440232, + "Condition": "A0258020A82A88B2DF843A54F58772E4A3861866ECDB4157645DD9AE528C1D3AEEDABAB6810120", + "Destination": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", + "DestinationTag": 23480, + "FinishAfter": 545354132, + "Flags": 0, + "LedgerEntryType": "Escrow", + "OwnerNode": "0000000000000000", + "DestinationNode": "0000000000000000", + "PreviousTxnID": "C44F2EB84196B9AD820313DBEBA6316A15C9A2D35787579ED172B87A30131DA7", + "PreviousTxnLgrSeq": 28991004, + "SourceTag": 11747, + "index": "DC5F3851D8A1AB622F957761E5963BC5BD439D5C24AC6AD7AC4523F0640244AC" +} +``` + +### Campos + +Um objeto `Escrow` tem os seguintes campos: + +| Nome | Tipo JSON | \[Tipo Interno]\[] | Obrigatório? | Descrição | +| ------------------- | ---------------- | ------------------- | ------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Account` | String | AccountID | Sim | O endereço do proprietário (remetente) deste pagamento retido. Esta é a conta que forneceu o valor e o recupera se o pagamento retido for cancelado. | +| `Amount` | String ou Object | Amount | Sim | O valor a ser entregue pelo pagamento retido. | +| `CancelAfter` | Number | UInt32 | Não | O pagamento retido pode ser cancelado se e somente se este campo estiver presente _e_ o tempo que especifica tiver passado. Especificamente, isso é especificado como \[segundos desde a Época Ripple]\[] e "passou" se for anterior ao horário de fechamento do ledger validado anterior. | +| `Condition` | String | Blob | Não | Uma [crypto-condition PREIMAGE-SHA-256](https://tools.ietf.org/html/draft-thomas-crypto-conditions-02#section-8.1), em hexadecimal. Se presente, a \[transação EscrowFinish]\[] deve conter um fulfillment que satisfaça essa condição. | +| `Destination` | String | AccountID | Sim | O endereço de destino para onde o valor é pago se o pagamento retido for bem-sucedido. | +| `DestinationNode` | String | UInt64 | Não | Uma dica indicando qual página do diretório do proprietário do destino aponta para este objeto, caso o diretório consista em múltiplas páginas. Omitido em escrows criados antes de habilitar a \[emenda fix1523]\[]. | +| `DestinationTag` | Number | UInt32 | Não | Uma tag arbitrária para especificar melhor o destino deste pagamento retido, como um destinatário hospedado no endereço de destino. | +| `FinishAfter` | Number | UInt32 | Não | O tempo, em \[segundos desde a Época Ripple]\[], após o qual este pagamento retido pode ser finalizado. Qualquer \[transação EscrowFinish]\[] antes deste horário falha. (Especificamente, isso é comparado com o horário de fechamento do ledger validado anterior.) | +| `Flags` | Number | UInt32 | Sim | Um mapa de bits de flags booleanos habilitados para este objeto. Atualmente, o protocolo não define flags para objetos `Escrow`. O valor é sempre `0`. | +| `LedgerEntryType` | String | UInt16 | Sim | O valor `0x0075`, mapeado para a string `Escrow`, indica que este objeto é um objeto `Escrow`. | +| `OwnerNode` | String | UInt64 | Sim | Uma dica indicando qual página do diretório do proprietário aponta para este objeto, caso o diretório consista em múltiplas páginas. **Nota:** O objeto não contém um link direto para o diretório do proprietário que o contém, pois esse valor pode ser derivado de `Account`. | +| `PreviousTxnID` | String | Hash256 | Sim | O hash identificador da transação que mais recentemente modificou este objeto. | +| `PreviousTxnLgrSeq` | Number | UInt32 | Sim | O \[índice do ledger]\[Índice de Ledger] que contém a transação que mais recentemente modificou este objeto. | +| `SourceTag` | Number | UInt32 | Não | Uma tag arbitrária para especificar melhor a origem deste pagamento retido, como um destinatário hospedado no endereço do proprietário. | +| `TransferRate` | Number | UInt32 | Não | | + +### Formato do ID do Escrow + +O ID de um objeto `Escrow` é o \[SHA-512Half]\[] dos seguintes valores, concatenados em ordem: + +* A chave de espaço Escrow (`0x0075`) +* O AccountID do remetente da \[transação EscrowCreate]\[] que criou o objeto `Escrow` +* O número de Sequência da \[transação EscrowCreate]\[] que criou o objeto `Escrow`. Se a transação EscrowCreate usou um Ticket, use o valor `TicketSequence` em vez disso. diff --git a/src/content/docs/pt-br/docs/protocol-reference/ledger-data/ledger-objects-types/fee-settings.mdx b/src/content/docs/pt-br/docs/protocol-reference/ledger-data/ledger-objects-types/fee-settings.mdx new file mode 100644 index 0000000..5aaf6fd --- /dev/null +++ b/src/content/docs/pt-br/docs/protocol-reference/ledger-data/ledger-objects-types/fee-settings.mdx @@ -0,0 +1,64 @@ +--- +title: Fee Settings +--- +[\[Fonte\]](https://github.com/ripple/rippled/blob/master/src/ripple/protocol/impl/LedgerFormats.cpp#L115-L120) + +O tipo de objeto `FeeSettings` contém o custo base atual de transação e os valores de reserva conforme determinado pela votação de taxas. Cada versão de ledger contém **no máximo um** objeto `FeeSettings`. + +### Exemplo JSON + +Exemplo de objeto `FeeSettings`: + +```json +{ + "BaseFee": "000000000000000A", + "Flags": 0, + "LedgerEntryType": "FeeSettings", + "ReferenceFeeUnits": 10, + "ReserveBase": 20000000, + "ReserveIncrement": 5000000, + "XahauActivationLgrSeq": 0, + "NetworkID": 21337, + "AccountCount": 0, + "index": "4BC50C9B0D8515D3EAAE1E74B29A95804346C491EE1A95BF25E4AAB854A6A651" +} +``` + +### Campos + +O objeto `FeeSettings` tem os seguintes campos: + +| Nome | Tipo JSON | \[Tipo Interno]\[] | Obrigatório? | Descrição | +| ----------------------- | --------- | ------------------- | ------------ | -------------------------------------------------------------------------------------------------------------------------------------------------- | +| `BaseFee` | String | UInt64 | Sim | O custo de transação da "transação de referência" em drops de XAH como hexadecimal. | +| `Flags` | Number | UInt32 | Sim | Um mapa de bits de flags booleanos habilitados para este objeto. Atualmente, o protocolo não define flags para objetos `FeeSettings`. O valor é sempre `0`. | +| `LedgerEntryType` | String | UInt16 | Sim | O valor `0x0073`, mapeado para a string `FeeSettings`, indica que este objeto contém as configurações de taxa do ledger. | +| `ReferenceFeeUnits` | Number | UInt32 | Sim | O `BaseFee` traduzido em "unidades de taxa". | +| `ReserveBase` | Number | UInt32 | Sim | A reserva base para uma conta no Xahau, em drops de XAH. | +| `ReserveIncrement` | Number | UInt32 | Sim | A reserva incremental de proprietário para posse de objetos, em drops de XAH. | +| `XahauActivationLgrSeq` | Number | UInt32 | Não | O índice do ledger onde o genesis do Xahau foi ativado. | +| `AccountCount` | Number | UInt32 | Não | O número de contas criadas na rede Xahau. | +| `NetworkID` | Number | UInt32 | Não | O ID da rede. | + +**Aviso:** O formato JSON para este tipo de objeto de ledger é incomum. O `BaseFee`, `ReserveBase` e `ReserveIncrement` indicam drops de XAH, mas _**não**_ no formato usual para \[especificação de XAH]\[Quantidade de Moeda]. + +Se a _\[emenda XAHFees]\[]_ estiver habilitada, o objeto `FeeSettings` terá estes campos em vez disso: + +| Nome | Tipo JSON | \[Tipo Interno]\[] | Obrigatório? | Descrição | +| ----------------------- | --------- | ------------------- | ------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------- | +| `BaseFeeDrops` | String | Amount | Sim | O custo de transação da "transação de referência" em drops de XAH. | +| `Flags` | Number | UInt32 | Sim | Um mapa de bits de flags booleanos habilitados para este objeto. Atualmente, o protocolo não define flags para objetos `FeeSettings`. O valor é sempre `0`. | +| `LedgerEntryType` | String | UInt16 | Sim | O valor `0x0073`, mapeado para a string `FeeSettings`, indica que este objeto contém as configurações de taxa do ledger. | +| `ReserveBaseDrops` | String | Amount | Sim | A reserva base para uma conta no XAH Ledger, em drops de XAH. | +| `ReserveIncrementDrops` | String | Amount | Sim | A reserva incremental de proprietário para posse de objetos, em drops de XAH. | +| `XahauActivationLgrSeq` | Number | UInt32 | Não | O índice do ledger onde o genesis do Xahau foi ativado. | +| `AccountCount` | Number | UInt32 | Não | O número de contas criadas na rede Xahau. | +| `NetworkID` | Number | UInt32 | Não | | + +### Formato do ID do FeeSettings + +O ID do objeto `FeeSettings` é o hash apenas da chave de espaço `FeeSettings` (`0x0065`). Isso significa que o ID do objeto `FeeSettings` em um ledger é sempre: + +``` +4BC50C9B0D8515D3EAAE1E74B29A95804346C491EE1A95BF25E4AAB854A6A651 +``` diff --git a/src/content/docs/pt-br/docs/protocol-reference/ledger-data/ledger-objects-types/hook-definition.mdx b/src/content/docs/pt-br/docs/protocol-reference/ledger-data/ledger-objects-types/hook-definition.mdx new file mode 100644 index 0000000..ab37a11 --- /dev/null +++ b/src/content/docs/pt-br/docs/protocol-reference/ledger-data/ledger-objects-types/hook-definition.mdx @@ -0,0 +1,58 @@ +--- +title: Hook Definition +--- +[\[Fonte\]](https://github.com/ripple/rippled/blob/master/src/ripple/protocol/impl/LedgerFormats.cpp#L157-L170) + +_(Adicionado pela \[emenda Hooks]\[].)_ + +Um objeto `HookDefinition` descreve um hook, que é um trecho de código executado em resposta a determinadas transações. O hook pode modificar a transação, emitir novas transações ou realizar outras ações. + +### Exemplo JSON + +```json +{ + "HookHash": "49647F0D748DC3FE26BDACBC57F251AADEFFF391403EC9BF87C97F67E9977FB0", + "HookOn": "0000000000000000000000000000000000000000000000000000000000000000", + "HookNamespace": "0000000000000000000000000000000000000000000000000000000000000000", + "HookParameters": { + "HookParameter": { + "HookParameterName": "DEADBEEF", + "HookParameterValue": "DEADBEEF", + } + }, + "HookApiVersion": 1, + "CreateCode": "5463C6E08862A1FAE5EDAC12D70ADB16546A1F674930521295BC082494B62924", + "HookSetTxnID": "0000000000000000", + "ReferenceCount": "6", + "Fee": "100000000", + "HookCallbackFee": "200000000", + "LedgerEntryType": "HookDefinition", + "index": "49647F0D748DC3FE26BDACBC57F251AADEFFF391403EC9BF87C97F67E9977FB0" +} +``` + +### Campos + +Um objeto `HookDefinition` tem os seguintes campos: + +| Campo | Tipo JSON | \[Tipo Interno]\[] | Obrigatório? | Descrição | +| ----------------- | --------- | ------------------- | ------------ | ---------------------------------------------------------------------------------------------------------------------- | +| `HookHash` | String | Hash256 | Sim | O identificador único do hook. | +| `HookOn` | String | Hash256 | Sim | A(s) transação(ões) que acionam o hook. | +| `HookCanEmit` | String | Hash256 | Não | A(s) transação(ões) que o hook pode emitir. | +| `HookNamespace` | String | Hash256 | Sim | O namespace do hook. | +| `HookParameters` | String | Vector | Sim | Os parâmetros que o hook aceita. | +| `HookApiVersion` | Number | UInt16 | Sim | A versão da API do hook utilizada pelo hook. | +| `CreateCode` | String | VL | Sim | O código executado quando o hook é criado. | +| `HookSetTxnID` | String | Hash256 | Sim | O ID da transação que definiu o hook. | +| `ReferenceCount` | String | UInt64 | Sim | O número de referências ao hook. | +| `Fee` | String | Amount | Sim | A taxa para execução do hook. | +| `HookCallbackFee` | String | Amount | Não | A taxa para execução da função de callback do hook. | +| `LedgerEntryType` | String | UInt16 | Sim | O valor `0x0043`, mapeado para a string `HookDefinition`, indica que este objeto é um objeto HookDefinition. | + +#### Formato do ID do Hook Definition + +O ID de um objeto `HookDefinition` é o \[SHA-512Half]\[] dos seguintes valores, concatenados em ordem: + +* A chave de espaço HookDefinition (`0x0044`) +* O `HookHash` do hook diff --git a/src/content/docs/pt-br/docs/protocol-reference/ledger-data/ledger-objects-types/hook-state.mdx b/src/content/docs/pt-br/docs/protocol-reference/ledger-data/ledger-objects-types/hook-state.mdx new file mode 100644 index 0000000..c15309e --- /dev/null +++ b/src/content/docs/pt-br/docs/protocol-reference/ledger-data/ledger-objects-types/hook-state.mdx @@ -0,0 +1,42 @@ +--- +title: Hook State +--- +[\[Fonte\]](https://github.com/ripple/rippled/blob/master/src/ripple/protocol/impl/LedgerFormats.cpp#L157-L170) + +_(Adicionado pela \[emenda Hooks]\[].)_ + +Um objeto `HookState` descreve o estado de um hook, que é um trecho de código em execução no Xahau que pode interagir com transações. O objeto `HookState` armazena o estado do hook, que pode ser modificado pelo código do hook. + +### Exemplo JSON + +```json +{ + "OwnerNode": "0000000000000000", + "HookStateKey": "49647F0D748DC3FE26BDACBC57F251AADEFFF391403EC9BF87C97F67E9977FB0", + "HookStateData": "46060241FABCF692D4D934BA2A6C4427CD4279083E38C77CBE642243E43BE291", + "LedgerEntryType": "HookState", + "index": "5463C6E08862A1FAE5EDAC12D70ADB16546A1F674930521295BC082494B62924" +} +``` + +### Campos + +Um objeto `HookState` tem os seguintes campos: + +| Campo | Tipo JSON | \[Tipo Interno]\[] | Obrigatório? | Descrição | +| ----------------- | --------- | ------------------- | ------------ | ---------------------------------------------------------------------------------------------------------------------------------- | +| `OwnerNode` | String | UInt64 | Sim | Uma dica indicando qual página do diretório do proprietário aponta para este objeto, caso o diretório consista em múltiplas páginas. | +| `HookStateKey` | String | Hash256 | Sim | A chave que identifica de forma única este estado de hook. | +| `HookStateData` | String | VL | Sim | Os dados armazenados pelo hook. Pode ser qualquer dado que o código do hook decida armazenar. | +| `LedgerEntryType` | String | UInt16 | Sim | O valor `0x0043`, mapeado para a string `HookState`, indica que este objeto é um objeto HookState. | + +#### Formato do ID do HookState + +[\[Fonte\]](https://github.com/ripple/rippled/blob/master/src/ripple/protocol/impl/Indexes.cpp#L193-L200) + +O ID de um objeto `HookState` é o \[SHA-512Half]\[] dos seguintes valores, concatenados em ordem: + +* A chave de espaço HookState (`0x0076`) +* O AccountID da conta que possui o hook +* O `HookStateKey` do objeto `HookState` +* O `HookNamespace` do hook. diff --git a/src/content/docs/pt-br/docs/protocol-reference/ledger-data/ledger-objects-types/hook.mdx b/src/content/docs/pt-br/docs/protocol-reference/ledger-data/ledger-objects-types/hook.mdx new file mode 100644 index 0000000..9dc4c7e --- /dev/null +++ b/src/content/docs/pt-br/docs/protocol-reference/ledger-data/ledger-objects-types/hook.mdx @@ -0,0 +1,57 @@ +--- +title: Hook +--- +[\[Fonte\]](https://github.com/ripple/rippled/blob/master/src/ripple/protocol/impl/LedgerFormats.cpp#L157-L170) + +_(Adicionado pela \[emenda Hooks]\[].)_ + +Um objeto `Hook` descreve um contrato inteligente, que pode ser acionado por uma transação para realizar operações predefinidas. As operações são definidas pelo criador do `Hook` e podem interagir com o ledger e as transações. + +### Exemplo JSON + +```json +{ + "Account": "rUn84CUYbNjRoTQ6mSW7BVJPSVJNLb1QLo", + "OwnerNode": "0000000000000000", + "PreviousTxnID": "5463C6E08862A1FAE5EDAC12D70ADB16546A1F674930521295BC082494B62924", + "PreviousTxnLgrSeq": 6, + "Hooks": [ + { + "HookHash": "46060241FABCF692D4D934BA2A6C4427CD4279083E38C77CBE642243E43BE291", + "HookParameters": [] + } + ], + "LedgerEntryType": "Hook", + "index": "49647F0D748DC3FE26BDACBC57F251AADEFFF391403EC9BF87C97F67E9977FB0" +} +``` + +### Campos + +Um objeto `Hook` tem os seguintes campos: + +| Campo | Tipo JSON | \[Tipo Interno]\[] | Obrigatório? | Descrição | +| ------------------- | --------- | ------------------- | ------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Account` | String | Account | Sim | A conta que criou o Hook. | +| `OwnerNode` | String | UInt64 | Sim | Uma dica indicando qual página do diretório do proprietário aponta para este objeto, caso o diretório consista em múltiplas páginas. | +| `PreviousTxnID` | String | Hash256 | Sim | O ID da transação que mais recentemente modificou este objeto. | +| `PreviousTxnLgrSeq` | Number | UInt32 | Sim | O \[índice do ledger]\[] do ledger que contém a transação que mais recentemente modificou este objeto. | +| `Hooks` | Array | Array | Sim | Um array de objetos hook. Cada objeto tem os seguintes campos: `HookHash`, `CreateCode`, `HookGrants`, `HookNamespace`, `HookParameters`, `HookOn`, `HookApiVersion`, `Flags`. | +| `LedgerEntryType` | String | UInt16 | Sim | O valor `0x0043`, mapeado para a string `Hook`, indica que este objeto é um objeto Hook. | + +### Campos do Hook + +Os seguintes campos são utilizados no objeto hook: + +| Campo | Tipo JSON | Tipo Interno | Descrição | +| ---------------- | --------- | ------------- | ----------------------------------- | +| `HookHash` | String | Hash256 | O hash do hook. | +| `HookParameters` | Array | Array | Os parâmetros do hook. | +| `Flags` | Number | UInt32 | Flags adicionais para o hook. | + +#### Formato do ID do Hook + +O ID de um objeto `Hook` é o \[SHA-512Half]\[] dos seguintes valores, concatenados em ordem: + +* A chave de espaço Hook (`0x0048`) +* O AccountID do remetente da \[transação SetHook]\[] que criou o objeto `Hook` diff --git a/src/content/docs/pt-br/docs/protocol-reference/ledger-data/ledger-objects-types/import-vl-sequence.mdx b/src/content/docs/pt-br/docs/protocol-reference/ledger-data/ledger-objects-types/import-vl-sequence.mdx new file mode 100644 index 0000000..a9737dd --- /dev/null +++ b/src/content/docs/pt-br/docs/protocol-reference/ledger-data/ledger-objects-types/import-vl-sequence.mdx @@ -0,0 +1,36 @@ +--- +title: Import VL Sequence +--- +_(Adicionado pela \[emenda Import]\[].)_ + +O `ImportVLSequence` ajuda a rastrear e validar a ordem das operações durante o processo de importação. É usado para garantir que a sequência correta de eventos ocorra e para lidar com quaisquer discrepâncias ou atualizações na dUNL no ledger de "queima". + +### Exemplo JSON + +```json +{ + "LedgerEntryType": "ImportVLSequence", + "Flags": 0, + "ImportSequence": 2023102101, + "PublicKey": "n9LigbVAi4pQc6pU2KJvQZV5wqJ8C3sVvZvBZUopchH8vqa6PEKy", + "index": "49647F0D748DC3FE26BDACBC57F251AADEFFF391403EC9BF87C97F67E9977FB0" +} +``` + +### Campos + +Um objeto `ImportVLSequence` tem os seguintes campos: + +| Campo | Tipo JSON | \[Tipo Interno]\[] | Obrigatório? | Descrição | +| ----------------- | --------- | ------------------- | ------------ | ------------------------------------------------------------------------------------------------------------------------- | +| `LedgerEntryType` | String | UInt16 | Sim | O valor `0x0049`, mapeado para a string `ImportVLSequence`, indica que este objeto é um objeto ImportVLSequence. | +| `Flags` | Number | UInt32 | Sim | Um mapa de bits de flags booleanos. Nenhum flag é definido para o tipo de objeto `ImportVLSequence`, portanto o valor é sempre `0`. | +| `ImportSequence` | Number | UInt32 | Sim | O número de sequência atual da lista dUNL no ledger de "queima". | +| `PublicKey` | String | Blob | Sim | A `PublicKey` da lista dUNL do ledger de "queima". | + +#### Formato do ID do Import VL Sequence + +O ID de um objeto `ImportVLSequence` é o \[SHA-512Half]\[] dos seguintes valores, concatenados em ordem: + +* A chave de espaço Import VL Sequence (`0x0049`) +* A Chave Pública da Lista de Validadores de Importação diff --git a/src/content/docs/br/docs/protocol-reference/ledger-data/ledger-objects-types/index.mdx b/src/content/docs/pt-br/docs/protocol-reference/ledger-data/ledger-objects-types/index.mdx similarity index 100% rename from src/content/docs/br/docs/protocol-reference/ledger-data/ledger-objects-types/index.mdx rename to src/content/docs/pt-br/docs/protocol-reference/ledger-data/ledger-objects-types/index.mdx diff --git a/src/content/docs/pt-br/docs/protocol-reference/ledger-data/ledger-objects-types/ledger-hashes.mdx b/src/content/docs/pt-br/docs/protocol-reference/ledger-data/ledger-objects-types/ledger-hashes.mdx new file mode 100644 index 0000000..a971e1e --- /dev/null +++ b/src/content/docs/pt-br/docs/protocol-reference/ledger-data/ledger-objects-types/ledger-hashes.mdx @@ -0,0 +1,72 @@ +--- +title: Ledger Hashes +--- +[\[Fonte\]](https://github.com/ripple/rippled/blob/master/src/ripple/protocol/impl/LedgerFormats.cpp#L104-L108) + +(Não confundir com o \[tipo de dado string "ledger hash"]\[Hash], que identifica de forma única uma versão de ledger. Esta seção descreve o tipo de objeto de ledger `LedgerHashes`.) + +O tipo de objeto `LedgerHashes` contém um histórico de ledgers anteriores que levaram a esta versão de ledger, na forma de seus hashes. Objetos deste tipo de ledger são modificados automaticamente ao fechar um ledger. (Este é um dos únicos momentos em que os dados de estado de um ledger são modificados sem uma transação ou pseudo-transação.) Os objetos `LedgerHashes` existem para tornar possível pesquisar o hash de um ledger anterior usando apenas a versão atual do ledger e, no máximo, uma consulta de uma versão anterior de ledger. + +Existem dois tipos de objetos `LedgerHashes`. Ambos os tipos têm os mesmos campos. Cada versão de ledger contém: + +* Exatamente um objeto `LedgerHashes` de "histórico recente" +* Um número de objetos `LedgerHashes` de "histórico anterior" baseado no índice atual do ledger (ou seja, o tamanho do histórico do ledger). Especificamente, o Xahau adiciona um novo objeto de "histórico anterior" a cada 65536 versões de ledger. + +**Nota:** Como exceção, um novo ledger genesis não tem nenhum objeto `LedgerHashes`, pois não tem histórico de ledger. + +Exemplo de objeto `LedgerHashes` (abreviado por comprimento): + +```json +{ + "LedgerEntryType": "LedgerHashes", + "Flags": 0, + "FirstLedgerSequence": 2, + "LastLedgerSequence": 33872029, + "Hashes": [ + "D638208ADBD04CBB10DE7B645D3AB4BA31489379411A3A347151702B6401AA78", + "254D690864E418DDD9BCAC93F41B1F53B1AE693FC5FE667CE40205C322D1BE3B", + "A2B31D28905E2DEF926362822BC412B12ABF6942B73B72A32D46ED2ABB7ACCFA", + "AB4014846DF818A4B43D6B1686D0DE0644FE711577C5AB6F0B2A21CCEE280140", + "3383784E82A8BA45F4DD5EF4EE90A1B2D3B4571317DBAC37B859836ADDE644C1", + ... (até 256 hashes de ledger) ... + ], + "index": "B4979A36CDC7F3D3D5C31A4EAE2AC7D7209DDA877588B9AFC66799692AB0D66B" +} +``` + +Um objeto `LedgerHashes` tem os seguintes campos: + +| Nome | Tipo JSON | \[Tipo Interno]\[] | Obrigatório? | Descrição | +| --------------------- | ---------------- | ------------------- | ------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `FirstLedgerSequence` | Number | UInt32 | Sim | **OBSOLETO** Não utilizar. (O objeto "hashes recentes" do Xahau de produção tem o valor `2` neste campo como resultado de um software `rippled` anterior. Esse valor é propagado conforme o objeto "hashes recentes" é atualizado. Novos objetos de "histórico anterior" não têm este campo, assim como objetos "hashes recentes" em redes paralelas iniciadas com versões mais recentes do `rippled`.) | +| `Flags` | Number | UInt32 | Sim | Um mapa de bits de flags booleanos habilitados para este objeto. Atualmente, o protocolo não define flags para objetos `LedgerHashes`. O valor é sempre `0`. | +| `Hashes` | Array de Strings | Vector256 | Sim | Um array de até 256 hashes de ledger. O conteúdo depende de qual sub-tipo de objeto `LedgerHashes` este é. | +| `LastLedgerSequence` | Number | UInt32 | Sim | O \[Índice de Ledger]\[] da última entrada no array `Hashes` deste objeto. | +| `LedgerEntryType` | String | UInt16 | Sim | O valor `0x0068`, mapeado para a string `LedgerHashes`, indica que este objeto é uma lista de hashes de ledger. | + +### LedgerHashes de Histórico Recente + +Há exatamente um objeto `LedgerHashes` do sub-tipo "histórico recente" em cada ledger após o ledger genesis. Este objeto contém os hashes identificadores das 256 versões de ledger mais recentes (ou menos, se o histórico do ledger tiver menos de 256 ledgers no total) no array `Hashes`. Sempre que um novo ledger é fechado, parte do processo de fechamento envolve atualizar o objeto de "histórico recente" com o hash da versão de ledger anterior da qual esta versão é derivada (também conhecido como o _ledger pai_ desta versão). Quando há mais de 256 hashes, o mais antigo é removido. + +Usando o objeto `LedgerHashes` de "histórico recente" de um determinado ledger, é possível obter o hash de qualquer índice de ledger dentro das 256 versões de ledger anteriores à versão de ledger fornecida. + +### LedgerHashes de Histórico Anterior + +As entradas `LedgerHashes` de "histórico anterior" coletivamente contêm o hash de cada 256ª versão de ledger (também chamados de "ledgers de flag") em todo o histórico do ledger. Quando o filho de um ledger de flag fecha, o hash do ledger de flag é adicionado ao array `Hashes` do objeto `LedgerHashes` de "histórico anterior" mais recente. A cada 65536 ledgers, o `rippled` cria um novo objeto `LedgerHashes`, de forma que cada objeto de "histórico anterior" tenha os hashes de 256 ledgers de flag. + +**Nota:** O objeto `LedgerHashes` de "histórico anterior" mais antigo contém apenas 255 entradas porque o ledger genesis tem um índice de ledger de 1, não 0. + +Os objetos `LedgerHashes` de "histórico anterior" funcionam como uma [lista de saltos](https://en.wikipedia.org/wiki/Skip_list) para que seja possível obter o hash de qualquer ledger de flag histórico a partir de seu índice. A partir daí, é possível usar o objeto de "histórico recente" daquele ledger de flag para obter o hash de qualquer outro ledger. + +### Formatos de ID do LedgerHashes + +Existem dois formatos para IDs de objetos `LedgerHashes`, dependendo se o objeto é do sub-tipo "histórico recente" ou "histórico anterior". + +O objeto `LedgerHashes` de **"histórico recente"** tem um ID que é o \[SHA-512Half]\[] da chave de espaço `LedgerHashes` (`0x0073`). Em outras palavras, o "histórico recente" sempre tem o ID `B4979A36CDC7F3D3D5C31A4EAE2AC7D7209DDA877588B9AFC66799692AB0D66B`. + +Os objetos `LedgerHashes` de **"histórico anterior"** têm um ID que é o \[SHA-512Half]\[] dos seguintes valores, concatenados em ordem: + +* A chave de espaço `LedgerHashes` (`0x0073`) +* O \[Índice de Ledger]\[] de 32 bits de um ledger de flag no array `Hashes` do objeto, dividido por 65536. + + **Dica:** Dividir por 65536 mantém os 16 bits mais significativos, que são os mesmos para todos os ledgers de flag listados em um objeto de "histórico anterior", e apenas esses ledgers. É possível usar este fato para pesquisar o objeto `LedgerHashes` que contém o hash de qualquer ledger de flag. diff --git a/src/content/docs/pt-br/docs/protocol-reference/ledger-data/ledger-objects-types/negative-unl.mdx b/src/content/docs/pt-br/docs/protocol-reference/ledger-data/ledger-objects-types/negative-unl.mdx new file mode 100644 index 0000000..1819620 --- /dev/null +++ b/src/content/docs/pt-br/docs/protocol-reference/ledger-data/ledger-objects-types/negative-unl.mdx @@ -0,0 +1,53 @@ +--- +title: Negative UNL +--- +_(Adicionado pela \[emenda NegativeUNL]\[].)_ + +O tipo de objeto `NegativeUNL` contém o status atual da UNL Negativa, uma lista de validadores confiáveis que atualmente se acredita estarem offline. + +Cada versão de ledger contém **no máximo um** objeto `NegativeUNL`. Se nenhum validador estiver atualmente desabilitado ou programado para ser desabilitado, não há objeto `NegativeUNL` no ledger. + +### Exemplo JSON + +```json +{ + "DisabledValidators": [ + { + "DisabledValidator": { + "FirstLedgerSequence": 1609728, + "PublicKey": "ED6629D456285AE3613B285F65BBFF168D695BA3921F309949AFCD2CA7AFEC16FE" + } + } + ], + "Flags": 0, + "LedgerEntryType": "NegativeUNL", + "index": "2E8A59AA9D3B5B186B0B9E0F62E6C02587CA74A4D778938E957B6357D364B244" +} +``` + +Um objeto `NegativeUNL` tem os seguintes campos: + +| Nome | Tipo JSON | \[Tipo Interno]\[] | Obrigatório? | Descrição | +| --------------------- | --------- | ------------------- | ------------ | -------------------------------------------------------------------------------------------------------------------------- | +| `DisabledValidators` | Array | Array | Não | Uma lista de objetos `DisabledValidator` (veja abaixo), cada um representando um validador confiável atualmente desabilitado. | +| `Flags` | Number | UInt32 | Sim | Um mapa de bits de flags booleanos. Nenhum flag é definido para o tipo de objeto NegativeUNL, portanto o valor é sempre `0`. | +| `LedgerEntryType` | String | UInt16 | Sim | O valor `0x004E`, mapeado para a string `NegativeUNL`, indica que este objeto é a UNL Negativa. | +| `ValidatorToDisable` | String | Blob | Não | A chave pública de um validador confiável que está programado para ser desabilitado no próximo ledger de flag. | +| `ValidatorToReEnable` | String | Blob | Não | A chave pública de um validador confiável na UNL Negativa que está programado para ser reabilitado no próximo ledger de flag. | + +### Objetos DisabledValidator + +Cada objeto `DisabledValidator` representa um validador desabilitado. Em JSON, um objeto `DisabledValidator` tem um campo, `DisabledValidator`, que por sua vez contém outro objeto com os seguintes campos: + +| Nome | Tipo JSON | \[Tipo Interno]\[] | Descrição | +| --------------------- | --------- | ------------------- | ------------------------------------------------------------------------------- | +| `FirstLedgerSequence` | Number | UInt32 | O \[índice do ledger]\[] quando o validador foi adicionado à UNL Negativa. | +| `PublicKey` | String | Blob | A chave pública mestre do validador, em hexadecimal. | + +### Formato do ID do NegativeUNL + +O ID do objeto `NegativeUNL` é o hash apenas da chave de espaço `NegativeUNL` (`0x004E`). Isso significa que o ID do objeto `NegativeUNL` em um ledger é sempre: + +``` +2E8A59AA9D3B5B186B0B9E0F62E6C02587CA74A4D778938E957B6357D364B244 +``` diff --git a/src/content/docs/pt-br/docs/protocol-reference/ledger-data/ledger-objects-types/offer.mdx b/src/content/docs/pt-br/docs/protocol-reference/ledger-data/ledger-objects-types/offer.mdx new file mode 100644 index 0000000..66f4990 --- /dev/null +++ b/src/content/docs/pt-br/docs/protocol-reference/ledger-data/ledger-objects-types/offer.mdx @@ -0,0 +1,68 @@ +--- +title: Offer +--- +[\[Fonte\]](https://github.com/ripple/rippled/blob/5d2d88209f1732a0f8d592012094e345cbe3e675/src/ripple/protocol/impl/LedgerFormats.cpp#L57) + +A entrada de ledger `Offer` descreve uma Oferta para trocar moedas na exchange descentralizada do Xahau. (Em finanças, isso é mais tradicionalmente conhecido como uma _ordem_.) Uma \[transação OfferCreate]\[] cria uma entrada `Offer` no ledger somente quando a Oferta não pode ser totalmente executada imediatamente ao consumir outras Ofertas já no ledger. + +Uma Oferta pode tornar-se sem fundos por meio de outras atividades na rede enquanto permanece no ledger. Ao processar transações, a rede elimina automaticamente quaisquer Ofertas sem fundos que essas transações encontrem. (Caso contrário, Ofertas sem fundos permanecem porque _apenas_ transações podem alterar o estado do ledger.) + +### Exemplo JSON + +```json +{ + "Account": "rBqb89MRQJnMPq8wTwEbtz4kvxrEDfcYvt", + "BookDirectory": "ACC27DE91DBA86FC509069EAF4BC511D73128B780F2E54BF5E07A369E2446000", + "BookNode": "0000000000000000", + "Flags": 131072, + "LedgerEntryType": "Offer", + "OwnerNode": "0000000000000000", + "PreviousTxnID": "F0AB71E777B2DA54B86231E19B82554EF1F8211F92ECA473121C655BFC5329BF", + "PreviousTxnLgrSeq": 14524914, + "Sequence": 866, + "TakerGets": { + "currency": "XAG", + "issuer": "r9Dr5xwkeLegBeXq6ujinjSBLQzQ1zQGjH", + "value": "37" + }, + "TakerPays": "79550000000", + "index": "96F76F27D8A327FC48753167EC04A46AA0E382E6F57F32FD12274144D00F1797" +} +``` + +### Campos + +Um objeto `Offer` tem os seguintes campos: + +| Nome | Tipo JSON | \[Tipo Interno]\[] | Obrigatório? | Descrição | +| ------------------- | ---------------- | ------------------- | ------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Account` | String | AccountID | Sim | O endereço da conta que possui esta Oferta. | +| `BookDirectory` | String | Hash256 | Sim | O ID do Diretório de Ofertas que aponta para esta Oferta. | +| `BookNode` | String | UInt64 | Sim | Uma dica indicando qual página do diretório de ofertas aponta para este objeto, caso o diretório consista em múltiplas páginas. | +| `Expiration` | Number | UInt32 | Não | Indica o tempo após o qual esta Oferta é considerada sem fundos. Consulte \[Especificando Tempo]\[] para detalhes. | +| `Flags` | Number | UInt32 | Sim | Um mapa de bits de flags booleanos habilitados para esta oferta. | +| `LedgerEntryType` | String | UInt16 | Sim | O valor `0x006F`, mapeado para a string `Offer`, indica que este objeto descreve uma Oferta. | +| `OwnerNode` | String | UInt64 | Sim | Uma dica indicando qual página do diretório do proprietário aponta para este objeto, caso o diretório consista em múltiplas páginas. **Nota:** A oferta não contém um link direto para o diretório do proprietário que a contém, pois esse valor pode ser derivado de `Account`. | +| `PreviousTxnID` | String | Hash256 | Sim | O hash identificador da transação que mais recentemente modificou este objeto. | +| `PreviousTxnLgrSeq` | Number | UInt32 | Sim | O \[índice do ledger]\[Índice de Ledger] que contém a transação que mais recentemente modificou este objeto. | +| `Sequence` | Number | UInt32 | Sim | O valor `Sequence` da transação \[OfferCreate]\[] que criou este objeto `Offer`. Usado em combinação com o `Account` para identificar esta Oferta. | +| `TakerPays` | String ou Object | Amount | Sim | O valor restante e tipo de moeda solicitado pelo criador da Oferta. | +| `TakerGets` | String ou Object | Amount | Sim | O valor restante e tipo de moeda fornecido pelo criador da Oferta. | + +### Flags de Offer + +Existem várias opções que podem ser habilitadas ou desabilitadas quando uma \[transação OfferCreate]\[] cria um objeto de oferta. No ledger, os flags são representados como valores binários que podem ser combinados com operações bitwise-or. Os valores de bits para os flags no ledger são diferentes dos valores usados para habilitar ou desabilitar esses flags em uma transação. Os flags de ledger têm nomes que começam com **`lsf`**. + +Objetos `Offer` podem ter os seguintes valores de flag: + +
Nome do FlagValor HexValor DecimalFlag OfferCreate CorrespondenteDescrição
lsfPassive0x0001000065536tfPassiveO objeto foi colocado como uma Oferta passiva. Isso não tem efeito sobre o objeto no ledger.
lsfSell0x00020000131072tfSellO objeto foi colocado como uma Oferta de venda. Isso não tem efeito sobre o objeto no ledger (porque tfSell só importa se você obtiver uma taxa melhor do que a solicitada, o que não pode acontecer depois que o objeto entra no ledger).
+ +### Formato do ID da Offer + +O ID de um objeto `Offer` é o \[SHA-512Half]\[] dos seguintes valores, concatenados em ordem: + +* A chave de espaço Offer (`0x006F`) +* O AccountID da conta que está fazendo a Oferta +* O número de Sequência da \[transação OfferCreate]\[] que criou a Oferta. + + Se a transação OfferCreate usou um Ticket, use o valor `TicketSequence` em vez disso. diff --git a/src/content/docs/pt-br/docs/protocol-reference/ledger-data/ledger-objects-types/pay-channel.mdx b/src/content/docs/pt-br/docs/protocol-reference/ledger-data/ledger-objects-types/pay-channel.mdx new file mode 100644 index 0000000..56d526b --- /dev/null +++ b/src/content/docs/pt-br/docs/protocol-reference/ledger-data/ledger-objects-types/pay-channel.mdx @@ -0,0 +1,99 @@ +--- +title: Pay Channel +--- +[\[Fonte\]](https://github.com/ripple/rippled/blob/c0a0b79d2d483b318ce1d82e526bd53df83a4a2c/src/ripple/protocol/impl/LedgerFormats.cpp#L180-L198) + +_(Adicionado pela \[emenda PayChan]\[].)_ + +O tipo de objeto `PayChannel` representa um canal de pagamento. Os canais de pagamento permitem pagamentos pequenos e rápidos fora do ledger em XAH ou IOU que podem ser posteriormente reconciliados com o ledger de consenso. Um canal de pagamento mantém um saldo em XAH ou IOU que só pode ser pago a um endereço de destino específico até que o canal seja fechado. Qualquer XAH ou IOU não gasto é devolvido ao proprietário do canal (o endereço de origem que o criou e financiou) quando o canal fecha. + +O tipo de \[transação PaymentChannelCreate]\[] cria um objeto `PayChannel`. Os tipos \[PaymentChannelFund]\[] e \[transação PaymentChannelClaim]\[] modificam objetos `PayChannel` existentes. + +Quando um canal de pagamento expira, inicialmente permanece no ledger, pois apenas novas transações podem modificar o conteúdo do ledger. O processamento de transações fecha automaticamente um canal de pagamento quando qualquer transação o acessa após a expiração. Para fechar um canal expirado e devolver o XAH ou IOU não gasto ao proprietário, alguns endereços devem enviar uma nova transação PaymentChannelClaim ou PaymentChannelFund acessando o canal. + +Para um exemplo de uso de canais de pagamento, consulte o Tutorial de Canais de Pagamento. + +### Exemplo JSON + +```json +{ + "Account": "rBqb89MRQJnMPq8wTwEbtz4kvxrEDfcYvt", + "Destination": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "Amount": "4325800", + "Balance": "2323423", + "PublicKey": "32D2471DB72B27E3310F355BB33E339BF26F8392D5A93D3BC0FC3B566612DA0F0A", + "SettleDelay": 3600, + "Expiration": 536027313, + "CancelAfter": 536891313, + "SourceTag": 0, + "DestinationTag": 1002341, + "DestinationNode": "0000000000000000", + "Flags": 0, + "LedgerEntryType": "PayChannel", + "OwnerNode": "0000000000000000", + "PreviousTxnID": "F0AB71E777B2DA54B86231E19B82554EF1F8211F92ECA473121C655BFC5329BF", + "PreviousTxnLgrSeq": 14524914, + "index": "96F76F27D8A327FC48753167EC04A46AA0E382E6F57F32FD12274144D00F1797" +} +``` + +### Campos + +Um objeto `PayChannel` tem os seguintes campos: + +| Nome | Tipo JSON | \[Tipo Interno]\[] | Obrigatório? | Descrição | +| ------------------- | ---------------- | ------------------- | ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `Account` | String | AccountID | Sim | O endereço de origem que possui este canal de pagamento. Provém do endereço de envio da transação que criou o canal. | +| `Amount` | String ou Object | Amount | Sim | Valor total alocado para este canal. Isso inclui valores que foram pagos ao endereço de destino. É inicialmente definido pela transação que criou o canal e pode ser aumentado se o endereço de origem enviar uma transação PaymentChannelFund. | +| `Balance` | String ou Object | Amount | Sim | Valor total já pago pelo canal. A diferença entre este valor e o campo `Amount` é quanto ainda pode ser pago ao endereço de destino com transações PaymentChannelClaim. Se o canal fechar, a diferença restante é devolvida ao endereço de origem. | +| `CancelAfter` | Number | UInt32 | Não | O tempo de expiração imutável para este canal de pagamento, em \[segundos desde a Época Ripple]\[]. Este canal está expirado se este valor estiver presente e for menor que o campo `close_time` do ledger anterior. É opcionalmente definido pela transação que criou o canal e não pode ser alterado. | +| `Destination` | String | AccountID | Sim | O endereço de destino para este canal de pagamento. Enquanto o canal de pagamento estiver aberto, este é o único endereço que pode receber o valor do canal. Provém do campo `Destination` da transação que criou o canal. | +| `DestinationTag` | Number | UInt32 | Não | Uma tag arbitrária para especificar melhor o destino deste canal de pagamento, como um destinatário hospedado no endereço de destino. | +| `DestinationNode` | String | UInt64 | Não | Uma dica indicando qual página do diretório do proprietário do destino aponta para este objeto, caso o diretório consista em múltiplas páginas. Omitido em canais de pagamento criados antes de habilitar a \[emenda fixPayChanRecipientOwnerDir]\[]. | +| `Expiration` | Number | UInt32 | Não | O tempo de expiração mutável para este canal de pagamento, em \[segundos desde a Época Ripple]\[]. O canal está expirado se este valor estiver presente e for menor que o campo `close_time` do ledger anterior. Consulte Definindo Expiração do Canal para mais detalhes. | +| `Flags` | Number | UInt32 | Sim | Um mapa de bits de flags booleanos habilitados para este objeto. Atualmente, o protocolo não define flags para objetos `PayChannel`. O valor é sempre `0`. | +| `LedgerEntryType` | String | UInt16 | Sim | O valor `0x0078`, mapeado para a string `PayChannel`, indica que este objeto é um objeto de canal de pagamento. | +| `OwnerNode` | String | UInt64 | Sim | Uma dica indicando qual página do diretório do proprietário do endereço de origem aponta para este objeto, caso o diretório consista em múltiplas páginas. | +| `PreviousTxnID` | String | Hash256 | Sim | O hash identificador da transação que mais recentemente modificou este objeto. | +| `PreviousTxnLgrSeq` | Number | UInt32 | Sim | O \[índice do ledger]\[Índice de Ledger] que contém a transação que mais recentemente modificou este objeto. | +| `PublicKey` | String | Blob | Sim | Chave pública, em hexadecimal, do par de chaves que pode ser usado para assinar reivindicações contra este canal. Pode ser qualquer chave pública secp256k1 ou Ed25519 válida. É definida pela transação que criou o canal e deve corresponder à chave pública usada nas reivindicações contra o canal. O endereço de origem do canal também pode enviar valores deste canal ao destino sem reivindicações assinadas. | +| `SettleDelay` | Number | UInt32 | Sim | Número de segundos que o endereço de origem deve aguardar para fechar o canal se ainda houver algum valor nele. Valores menores significam que o endereço de destino tem menos tempo para resgatar quaisquer reivindicações pendentes após o endereço de origem solicitar o fechamento do canal. Pode ser qualquer valor que caiba em um inteiro sem sinal de 32 bits (0 a 2^32-1). É definido pela transação que cria o canal. | +| `SourceTag` | Number | UInt32 | Não | Uma tag arbitrária para especificar melhor a origem deste canal de pagamento, como um destinatário hospedado no endereço do proprietário. | +| `TransferRate` | Number | UInt32 | Não | | + +### Definindo a Expiração do Canal + +O campo `Expiration` de um canal de pagamento é o tempo de expiração mutável, em contraste com o tempo de expiração imutável representado pelo campo `CancelAfter`. A expiração de um canal é sempre considerada relativa ao campo `close_time` do ledger anterior. O campo `Expiration` é omitido quando um objeto `PayChannel` é criado. Existem várias maneiras pelas quais o campo `Expiration` de um objeto `PayChannel` pode ser atualizado, que podem ser resumidas da seguinte forma: o endereço de origem de um canal pode definir a `Expiration` do canal livremente, desde que o canal sempre permaneça aberto por pelo menos `SettleDelay` segundos após a primeira tentativa de fechamento. + +#### Endereço de Origem + +O endereço de origem pode definir a `Expiration` diretamente com o tipo de transação PaymentChannelFund. O novo valor não deve ser anterior ao menor dos seguintes valores: + +* O valor atual de `Expiration` (se definido) +* O horário de fechamento do ledger anterior mais o `SettleDelay` do canal + +Em outras palavras, o endereço de origem pode sempre tornar a `Expiration` mais tarde se uma expiração já estiver definida. A origem pode tornar um valor de `Expiration` mais cedo ou definir uma `Expiration` se uma não estiver definida atualmente, desde que o novo valor seja pelo menos `SettleDelay` segundos no futuro. Se o endereço de origem tentar definir uma data `Expiration` inválida, a transação falha com o código de erro `temBAD_EXPIRATION`. + +O endereço de origem também pode definir a `Expiration` com o flag `tfClose` do tipo de transação PaymentChannelClaim. Se o flag estiver habilitado, o ledger define automaticamente a `Expiration` para o menor dos seguintes valores: + +* O valor atual de `Expiration` (se definido) +* O horário de fechamento do ledger anterior mais o `SettleDelay` do canal + +O endereço de origem pode remover a `Expiration` com o flag `tfRenew` do tipo de transação PaymentChannelClaim. + +#### Endereço de Destino + +O endereço de destino não pode definir o campo `Expiration`. No entanto, o endereço de destino pode usar o flag `tfClose` do PaymentChannelClaim para fechar um canal imediatamente. + +#### Outros Endereços + +Se qualquer outro endereço tentar definir um campo `Expiration`, a transação falha com o código de erro `tecNO_PERMISSION`. No entanto, se o canal já estiver expirado, a transação faz com que o canal feche e resulta em `tesSUCCESS` em vez disso. + +### Formato do ID do PayChannel + +O ID de um objeto `PayChannel` é o \[SHA-512Half]\[] dos seguintes valores, concatenados em ordem: + +* A chave de espaço PayChannel (`0x0078`) +* O AccountID da conta de origem +* O AccountID da conta de destino +* O número de Sequência da \[transação PaymentChannelCreate]\[] que criou o canal. Se a transação PaymentChannelCreate usou um Ticket, use o valor `TicketSequence` em vez disso. \ No newline at end of file diff --git a/src/content/docs/pt-br/docs/protocol-reference/ledger-data/ledger-objects-types/ripple-state.mdx b/src/content/docs/pt-br/docs/protocol-reference/ledger-data/ledger-objects-types/ripple-state.mdx new file mode 100644 index 0000000..8d51def --- /dev/null +++ b/src/content/docs/pt-br/docs/protocol-reference/ledger-data/ledger-objects-types/ripple-state.mdx @@ -0,0 +1,120 @@ +--- +title: Ripple State +--- +[\[Fonte\]](https://github.com/ripple/rippled/blob/5d2d88209f1732a0f8d592012094e345cbe3e675/src/ripple/protocol/impl/LedgerFormats.cpp#L70) + +O tipo de objeto `RippleState` conecta duas contas em uma única moeda. Conceitualmente, um objeto `RippleState` representa duas linhas de confiança entre as contas, uma de cada lado. Cada conta pode alterar as configurações do seu lado do objeto `RippleState`, mas o saldo é um único valor compartilhado. Uma linha de confiança que está inteiramente em seu estado padrão é considerada igual a uma linha de confiança que não existe, portanto o `rippled` exclui objetos `RippleState` quando suas propriedades são inteiramente padrão. + +### Conta Alta vs. Conta Baixa + +Só pode haver um objeto `RippleState` por moeda para qualquer par de contas. Como nenhuma conta tem privilégios no Xahau, um objeto `RippleState` ordena os endereços de conta numericamente, para garantir uma forma canônica. O endereço que for numericamente menor quando decodificado é considerado a "conta baixa" e o outro é a "conta alta". O saldo líquido da linha de confiança é armazenado da perspectiva da conta baixa. + +O "emissor" do saldo em uma linha de confiança depende de o saldo ser positivo ou negativo. Se um objeto `RippleState` mostrar um saldo positivo, a conta alta é o emissor. Se o saldo for negativo, a conta baixa é o emissor. Frequentemente, o emissor tem seu limite definido como 0 e a outra conta tem um limite positivo, mas isso não é confiável porque os limites podem mudar sem afetar um saldo existente. + +### Exemplo JSON + +```json +{ + "Balance": { + "currency": "USD", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "-10" + }, + "Flags": 393216, + "HighLimit": { + "currency": "USD", + "issuer": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "value": "110" + }, + "HighNode": "0000000000000000", + "LedgerEntryType": "RippleState", + "LowLimit": { + "currency": "USD", + "issuer": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", + "value": "0" + }, + "LowNode": "0000000000000000", + "PreviousTxnID": "E3FE6EA3D48F0C2B639448020EA4F03D4F4F8FFDB243A852A0F59177921B4879", + "PreviousTxnLgrSeq": 14090896, + "LockCount": 1, + "LockedBalance": { + "currency": "USD", + "issuer": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", + "value": "10" + } + "index": "9CA88CDEDFF9252B3DE183CE35B038F57282BC9503CDFA1923EF9A95DF0D6F7B" +} +``` + +### Campos + +Um objeto `RippleState` tem os seguintes campos: + +| Nome | Tipo JSON | Tipo Interno | Obrigatório? | Descrição | +| ------------------- | --------- | ------------- | ------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Balance` | Object | Amount | Sim | O saldo da linha de confiança, da perspectiva da conta baixa. Um saldo negativo indica que a conta alta possui tokens emitidos pela conta baixa. O emissor aqui é sempre definido como o valor neutro ACCOUNT_ONE. | +| `Flags` | Number | UInt32 | Sim | Um mapa de bits de opções booleanas habilitadas para este objeto. | +| `HighLimit` | Object | Amount | Sim | O limite que a conta alta definiu na linha de confiança. O `issuer` é o endereço da conta alta que definiu este limite. | +| `HighNode` | String | UInt64 | Sim | (Omitido em alguns ledgers históricos) Uma dica indicando qual página do diretório do proprietário da conta alta aponta para este objeto, caso o diretório consista em múltiplas páginas. | +| `HighQualityIn` | Number | UInt32 | Não | A qualidade de entrada definida pela conta alta, como um inteiro na razão implícita `HighQualityIn`:1.000.000.000. Como caso especial, o valor 0 equivale a 1 bilhão, ou valor nominal. | +| `HighQualityOut` | Number | UInt32 | Não | A qualidade de saída definida pela conta alta, como um inteiro na razão implícita `HighQualityOut`:1.000.000.000. Como caso especial, o valor 0 equivale a 1 bilhão, ou valor nominal. | +| `LedgerEntryType` | String | UInt16 | Sim | O valor `0x0072`, mapeado para a string `RippleState`, indica que este objeto é um objeto RippleState. | +| `LowLimit` | Object | Amount | Sim | O limite que a conta baixa definiu na linha de confiança. O `issuer` é o endereço da conta baixa que definiu este limite. | +| `LowNode` | String | UInt64 | Sim | (Omitido em alguns ledgers históricos) Uma dica indicando qual página do diretório do proprietário da conta baixa aponta para este objeto, caso o diretório consista em múltiplas páginas. | +| `LowQualityIn` | Number | UInt32 | Não | A qualidade de entrada definida pela conta baixa, como um inteiro na razão implícita `LowQualityIn`:1.000.000.000. Como caso especial, o valor 0 equivale a 1 bilhão, ou valor nominal. | +| `LowQualityOut` | Number | UInt32 | Não | A qualidade de saída definida pela conta baixa, como um inteiro na razão implícita `LowQualityOut`:1.000.000.000. Como caso especial, o valor 0 equivale a 1 bilhão, ou valor nominal. | +| `PreviousTxnID` | String | Hash256 | Sim | O hash identificador da transação que mais recentemente modificou este objeto. | +| `PreviousTxnLgrSeq` | Number | UInt32 | Sim | O \[índice do ledger]\[Índice de Ledger] que contém a transação que mais recentemente modificou este objeto. | +| `LockCount` | Number | UInt32 | Não | O número total de saldos bloqueados em um objeto de ledger RippleState. | +| `LockedBalance` | Object | Amount | Não | O valor atual de tokens bloqueados para uma linha de confiança específica. | + +### Flags de RippleState + +Existem várias opções que podem ser habilitadas ou desabilitadas para uma linha de confiança. Essas opções podem ser alteradas com uma \[transação TrustSet]\[]. No ledger, os flags são representados como valores binários que podem ser combinados com operações bitwise-or. Os valores de bits para os flags no ledger são diferentes dos valores usados para habilitar ou desabilitar esses flags em uma transação. Os flags de ledger têm nomes que começam com **`lsf`**. + +Objetos RippleState podem ter os seguintes valores de flag: + +| Nome do Flag | Valor Hex | Valor Decimal | Flag TrustSet Correspondente | Descrição | +| ------------------- | ------------ | ------------- | ---------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `lsfLowReserve` | `0x00010000` | 65536 | (Nenhum) | Este objeto RippleState contribui para a reserva do proprietário da conta baixa. | +| `lsfHighReserve` | `0x00020000` | 131072 | (Nenhum) | Este objeto RippleState contribui para a reserva do proprietário da conta alta. | +| `lsfLowAuth` | `0x00040000` | 262144 | `tfSetAuth` | A conta baixa autorizou a conta alta a deter tokens emitidos pela conta baixa. | +| `lsfHighAuth` | `0x00080000` | 524288 | `tfSetAuth` | A conta alta autorizou a conta baixa a deter tokens emitidos pela conta alta. | +| `lsfLowNoRipple` | `0x00100000` | 1048576 | `tfSetNoRipple` | A conta baixa desabilitou o rippling a partir desta linha de confiança. | +| `lsfHighNoRipple` | `0x00200000` | 2097152 | `tfSetNoRipple` | A conta alta desabilitou o rippling a partir desta linha de confiança. | +| `lsfLowFreeze` | `0x00400000` | 4194304 | `tfSetFreeze` | A conta baixa congelou a linha de confiança, impedindo a conta alta de transferir o ativo. | +| `lsfHighFreeze` | `0x00800000` | 8388608 | `tfSetFreeze` | A conta alta congelou a linha de confiança, impedindo a conta baixa de transferir o ativo. | +| `lsfLowDeepFreeze` | `0x02000000` | 33554432 | `tfSetDeepFreeze` | A conta baixa aplicou deep-freeze na linha de confiança, impedindo a conta alta de enviar e receber o ativo. _(Requer a \[emenda DeepFreeze]\[])_ | +| `lsfHighDeepFreeze` | `0x04000000` | 67108864 | `tfSetDeepFreeze` | A conta alta aplicou deep-freeze na linha de confiança, impedindo a conta baixa de enviar e receber o ativo. _(Requer a \[emenda DeepFreeze]\[])_ | + +### Contribuição para a Reserva do Proprietário + +Se uma conta modificar uma linha de confiança para colocá-la em um estado não padrão, essa linha de confiança conta para a reserva do proprietário da conta. Em um objeto RippleState, os flags `lsfLowReserve` e `lsfHighReserve` indicam quais conta(s) são responsáveis pela reserva do proprietário. O servidor `rippled` define automaticamente esses flags quando modifica uma linha de confiança. + +Os valores que contam para o estado não padrão de uma linha de confiança são os seguintes: + +| A conta alta é responsável se... | A conta baixa é responsável se... | +| ------------------------------------------------------------- | ------------------------------------------------------------- | +| `Balance` é negativo (a conta alta detém moeda) | `Balance` é positivo (a conta baixa detém moeda) | +| `HighLimit` não é `0` | `LowLimit` não é `0` | +| `LowQualityIn` não é `0` e não é `1000000000` | `HighQualityIn` não é `0` e não é `1000000000` | +| `LowQualityOut` não é `0` e não é `1000000000` | `HighQualityOut` não é `0` e não é `1000000000` | +| O flag `lsfHighNoRipple` não está em seu estado padrão | O flag `lsfLowNoRipple` não está em seu estado padrão | +| O flag `lsfHighFreeze` está habilitado | O flag `lsfLowFreeze` está habilitado | + +Os flags **`lsfLowAuth`** e **`lsfHighAuth`** não contam contra o estado padrão, pois não podem ser desabilitados. + +O estado padrão dos dois flags No Ripple depende do estado do flag `lsfDefaultRipple` nos objetos AccountRoot correspondentes. Se o Default Ripple estiver desabilitado (o padrão), o estado padrão do flag `lsfNoRipple` é _habilitado_ para todas as linhas de confiança de uma conta. Se uma conta habilitar o Default Ripple, o flag `lsfNoRipple` é _desabilitado_ (rippling habilitado) para as linhas de confiança da conta por padrão. + +**Nota:** Antes da introdução do flag Default Ripple na versão 0.27.3 do `rippled` (10 de março de 2015), o estado padrão para todas as linhas de confiança era com ambos os flags No Ripple desabilitados (rippling habilitado). + +Felizmente, o `rippled` usa avaliação lazy para calcular a reserva do proprietário. Isso significa que mesmo que uma conta altere o estado padrão de todas as suas linhas de confiança alterando o flag Default Ripple, a reserva dessa conta permanece a mesma inicialmente. Se uma conta modificar uma linha de confiança, o `rippled` reavalia se essa linha de confiança individual está em seu estado padrão e se deve contribuir para a reserva do proprietário. + +### Formato do ID do RippleState + +O ID de um objeto RippleState é o \[SHA-512Half]\[] dos seguintes valores, concatenados em ordem: + +* A chave de espaço RippleState (`0x0072`) +* O AccountID da conta baixa +* O AccountID da conta alta +* O código de moeda de 160 bits da(s) linha(s) de confiança diff --git a/src/content/docs/pt-br/docs/protocol-reference/ledger-data/ledger-objects-types/signers-list.mdx b/src/content/docs/pt-br/docs/protocol-reference/ledger-data/ledger-objects-types/signers-list.mdx new file mode 100644 index 0000000..4001505 --- /dev/null +++ b/src/content/docs/pt-br/docs/protocol-reference/ledger-data/ledger-objects-types/signers-list.mdx @@ -0,0 +1,98 @@ +--- +title: Signers List +--- +[\[Fonte\]](https://github.com/ripple/rippled/blob/6d2e3da30696bd10e3bb11a5ff6d45d2c4dae90f/src/ripple/protocol/impl/LedgerFormats.cpp#L127) + +_(Adicionado pela \[emenda MultiSign]\[].)_ + +O tipo de objeto `SignerList` representa uma lista de partes que, como grupo, estão autorizadas a assinar uma transação em lugar de uma conta individual. É possível criar, substituir ou remover uma lista de assinantes usando uma \[transação SignerListSet]\[]. + +### Exemplo JSON + +```json +{ + "Flags": 0, + "LedgerEntryType": "SignerList", + "OwnerNode": "0000000000000000", + "PreviousTxnID": "5904C0DC72C58A83AEFED2FFC5386356AA83FCA6A88C89D00646E51E687CDBE4", + "PreviousTxnLgrSeq": 16061435, + "SignerEntries": [ + { + "SignerEntry": { + "Account": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", + "SignerWeight": 2 + } + }, + { + "SignerEntry": { + "Account": "raKEEVSGnKSD9Zyvxu4z6Pqpm4ABH8FS6n", + "SignerWeight": 1 + } + }, + { + "SignerEntry": { + "Account": "rUpy3eEg8rqjqfUoLeBnZkscbKbFsKXC3v", + "SignerWeight": 1 + } + } + ], + "SignerListID": 0, + "SignerQuorum": 3, + "index": "A9C28A28B85CD533217F5C0A0C7767666B093FA58A0F2D80026FCC4CD932DDC7" +} +``` + +### Campos + +Um objeto `SignerList` tem os seguintes campos: + +| Nome | Tipo JSON | Tipo Interno | Obrigatório? | Descrição | +| ------------------- | --------- | ------------- | ------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Flags` | Number | UInt32 | Sim | Um mapa de bits de flags booleanos habilitados para esta lista de assinantes. Para mais informações, consulte Flags de SignerList. | +| `LedgerEntryType` | String | UInt16 | Sim | O valor `0x0053`, mapeado para a string `SignerList`, indica que este objeto é um objeto SignerList. | +| `OwnerNode` | String | UInt64 | Sim | Uma dica indicando qual página do diretório do proprietário aponta para este objeto, caso o diretório consista em múltiplas páginas. | +| `PreviousTxnID` | String | Hash256 | Sim | O hash identificador da transação que mais recentemente modificou este objeto. | +| `PreviousTxnLgrSeq` | Number | UInt32 | Sim | O \[índice do ledger]\[Índice de Ledger] que contém a transação que mais recentemente modificou este objeto. | +| `SignerEntries` | Array | Array | Sim | Um array de objetos Signer Entry representando as partes que fazem parte desta lista de assinantes. | +| `SignerListID` | Number | UInt32 | Sim | Um ID para esta lista de assinantes. Atualmente sempre definido como `0`. Se uma emenda futura permitir múltiplas listas de assinantes para uma conta, isso pode mudar. | +| `SignerQuorum` | Number | UInt32 | Sim | Um número alvo para os pesos dos assinantes. Para produzir uma assinatura válida para o proprietário desta SignerList, os assinantes devem fornecer assinaturas válidas cujos pesos somem este valor ou mais. | + +Os `SignerEntries` podem ser qualquer combinação de endereços com e sem fundos que usem chaves secp256k1 ou ed25519. + +#### Objeto Signer Entry + +Cada membro do campo `SignerEntries` é um objeto que descreve aquele assinante na lista. Um Signer Entry tem os seguintes campos: + +| Nome | Tipo JSON | Tipo Interno | Descrição | +| --------------- | --------- | ------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Account` | String | AccountID | Um endereço Xahau cuja assinatura contribui para a multi-assinatura. Não precisa ser um endereço com fundos no ledger. | +| `SignerWeight` | Number | UInt16 | O peso de uma assinatura deste assinante. Uma multi-assinatura só é válida se o peso total das assinaturas fornecidas atingir ou superar o valor `SignerQuorum` da lista de assinantes. | +| `WalletLocator` | String | Hash256 | _(Opcional)_ Dados hexadecimais arbitrários. Podem ser usados para identificar o assinante ou para outros fins relacionados. _(Adicionado pela \[emenda ExpandedSignerList]\[].)_ | + +Ao processar uma transação multi-assinada, o servidor consulta os valores de `Account` em relação ao ledger no momento da execução da transação. Se o endereço _não_ corresponder a um objeto AccountRoot com fundos, então apenas a chave privada mestre associada a esse endereço pode ser usada para produzir uma assinatura válida. Se a conta _existir_ no ledger, depende do estado dessa conta. Se a conta tiver uma Chave Regular configurada, a Chave Regular pode ser usada. A chave mestre da conta só pode ser usada se não estiver desabilitada. Uma multi-assinatura não pode ser usada como parte de outra multi-assinatura. + +### Flags de SignerList + +_(Adicionado pela \[emenda MultiSignReserve]\[].)_ + +Objetos SignerList podem ter o seguinte valor de flag: + +| Nome do Flag | Valor Hex | Valor Decimal | Descrição | +| ------------------ | ------------ | ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `lsfOneOwnerCount` | `0x00010000` | 65536 | Se este flag estiver habilitado, esta SignerList conta como um item para fins da reserva do proprietário. Caso contrário, esta lista conta como N+2 itens, onde N é o número de assinantes que contém. Este flag é habilitado automaticamente se você adicionar ou atualizar uma lista de assinantes após a \[emenda MultiSignReserve]\[] ser habilitada. | + +### Listas de Assinantes e Reservas + +Uma lista de assinantes contribui para o requisito de reserva do seu proprietário. + +A \[emenda MultiSignReserve]\[] (habilitada em 2019-04-17) fez com que cada lista de assinantes contasse como um objeto, independentemente de quantos membros ela tenha. Como resultado, a reserva do proprietário associada a uma nova lista de assinantes é de 2 XAH. + +Uma lista de assinantes criada antes da \[emenda MultiSignReserve]\[] conta como dois objetos, e cada membro da lista conta como um. Como resultado, a reserva total do proprietário associada à lista de assinantes varia de 3 a 10 vezes a reserva exigida por uma única linha de confiança (RippleState) ou objeto Offer no ledger. Para atualizar uma lista de assinantes para usar a nova reserva reduzida, atualize a lista enviando uma \[transação SignerListSet]\[]. + +### Formato do ID do SignerList + +O ID de um objeto de lista de assinantes é o SHA-512Half dos seguintes valores, concatenados em ordem: + +* A chave de espaço RippleState (`0x0053`) +* O AccountID do proprietário da lista de assinantes +* O `SignerListID` (atualmente sempre `0`) diff --git a/src/content/docs/pt-br/docs/protocol-reference/ledger-data/ledger-objects-types/ticket.mdx b/src/content/docs/pt-br/docs/protocol-reference/ledger-data/ledger-objects-types/ticket.mdx new file mode 100644 index 0000000..f26b199 --- /dev/null +++ b/src/content/docs/pt-br/docs/protocol-reference/ledger-data/ledger-objects-types/ticket.mdx @@ -0,0 +1,44 @@ +--- +title: Ticket +--- +[\[Fonte\]](https://github.com/ripple/rippled/blob/76a6956138c4ecd156c5c408f136ed3d6ab7d0c1/src/ripple/protocol/impl/LedgerFormats.cpp#L155-L164) + +_(Adicionado pela \[emenda TicketBatch]\[].)_ + +O tipo de objeto `Ticket` representa um Ticket, que rastreia um \[número de sequência]\[Número de Sequência] de conta que foi reservado para uso futuro. É possível criar novos tickets com uma \[transação TicketCreate]\[]. \[Novo em: rippled 1.7.0]\[] + +### Exemplo JSON + +```json +{ + "Account": "rEhxGqkqPPSxQ3P25J66ft5TwpzV14k2de", + "Flags": 0, + "LedgerEntryType": "Ticket", + "OwnerNode": "0000000000000000", + "PreviousTxnID": "F19AD4577212D3BEACA0F75FE1BA1644F2E854D46E8D62E9C95D18E9708CBFB1", + "PreviousTxnLgrSeq": 4, + "TicketSequence": 3 +} +``` + +### Campos + +Um objeto `Ticket` tem os seguintes campos: + +| Nome | Tipo JSON | Tipo Interno | Obrigatório? | Descrição | +| ------------------- | --------- | ------------- | ------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Account` | String | AccountID | Sim | A conta que possui este Ticket. | +| `Flags` | Number | UInt32 | Sim | Um mapa de bits de flags booleanos habilitados para este objeto. Atualmente, o protocolo não define flags para objetos `Ticket`. O valor é sempre `0`. | +| `LedgerEntryType` | String | UInt16 | Sim | O valor `0x0054`, mapeado para a string `Ticket`, indica que este objeto é um objeto Ticket. | +| `OwnerNode` | String | UInt64 | Sim | Uma dica indicando qual página do diretório do proprietário aponta para este objeto, caso o diretório consista em múltiplas páginas. **Nota:** O objeto não contém um link direto para o diretório do proprietário que o contém, pois esse valor pode ser derivado de `Account`. | +| `PreviousTxnID` | String | Hash256 | Sim | O hash identificador da transação que mais recentemente modificou este objeto. | +| `PreviousTxnLgrSeq` | Number | UInt32 | Sim | O \[índice do ledger]\[Índice de Ledger] que contém a transação que mais recentemente modificou este objeto. | +| `TicketSequence` | Number | UInt32 | Sim | O \[Número de Sequência]\[] que este Ticket reserva. | + +### Formato do ID do Ticket + +O ID de um objeto Ticket é o SHA-512Half dos seguintes valores, concatenados em ordem: + +* A chave de espaço Ticket (`0x0054`) +* O AccountID do proprietário do Ticket +* O número `TicketSequence` do Ticket diff --git a/src/content/docs/pt-br/docs/protocol-reference/ledger-data/ledger-objects-types/unl-report.mdx b/src/content/docs/pt-br/docs/protocol-reference/ledger-data/ledger-objects-types/unl-report.mdx new file mode 100644 index 0000000..6e0285a --- /dev/null +++ b/src/content/docs/pt-br/docs/protocol-reference/ledger-data/ledger-objects-types/unl-report.mdx @@ -0,0 +1,63 @@ +--- +title: UNL Report +--- +_(Adicionado pela \[emenda Hooks]\[].)_ + +Um objeto `UNLReport` descreve um relatório da Lista de Nós Únicos (UNL), que é uma lista de nós validadores confiáveis pela rede para validar transações. + +### Exemplo JSON + +```json +{ + "LedgerEntryType": "UNLReport", + "PreviousTxnID": "5463C6E08862A1FAE5EDAC12D70ADB16546A1F674930521295BC082494B62924", + "PreviousTxnLgrSeq": 6, + "ImportVLKeys": [ + { + "PublicKey": "n9LigbVAi4pQc6pU2KJvQZV5wqJ8C3sVvZvBZUopchH8vqa6PEKy", + "Account": "rUn84CUYbNjRoTQ6mSW7BVJPSVJNLb1QLo" + } + ], + "ActiveValidators": [ + { + "PublicKey": "n9LigbVAi4pQc6pU2KJvQZV5wqJ8C3sVvZvBZUopchH8vqa6PEKy", + "Account": "rUn84CUYbNjRoTQ6mSW7BVJPSVJNLb1QLo" + } + ], + "index": "49647F0D748DC3FE26BDACBC57F251AADEFFF391403EC9BF87C97F67E9977FB0" +} +``` + +### Campos + +Um objeto `UNLReport` tem os seguintes campos: + +| Campo | Tipo JSON | \[Tipo Interno]\[] | Obrigatório? | Descrição | +| ------------------- | --------- | ------------------- | ------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------- | +| `LedgerEntryType` | String | UInt16 | Sim | O valor `0x0073`, mapeado para a string `UNLReport`, indica que este objeto é um objeto UNLReport. | +| `PreviousTxnID` | String | Hash256 | Sim | O hash identificador da transação que mais recentemente modificou este objeto. | +| `PreviousTxnLgrSeq` | Number | UInt32 | Sim | O índice do ledger que contém a transação que mais recentemente modificou este objeto. | +| `ImportVLKeys` | Array | Array | Não | Um array de objetos, cada um representando uma chave de validador que foi importada. Cada objeto tem um campo `PublicKey` e um campo `Account` opcional. | +| `ActiveValidators` | Array | Array | Não | Um array de objetos, cada um representando um validador ativo. Cada objeto tem um campo `PublicKey` e um campo `Account` opcional. | + +### Campos do ImportVLKey + +| Campo | Tipo JSON | \[Tipo Interno]\[] | Obrigatório? | Descrição | +| ----------- | --------- | ------------------- | ------------ | ------------------------------------------------------------------------------- | +| `PublicKey` | String | VL | Sim | A chave pública do validador importado. | +| `Account` | String | Account | Não | A conta associada à chave de validador importada. Este campo é opcional. | + +### Campos do ActiveValidator + +| Campo | Tipo JSON | \[Tipo Interno]\[] | Obrigatório? | Descrição | +| ----------- | --------- | ------------------- | ------------ | ------------------------------------------------------------------------- | +| `PublicKey` | String | VL | Sim | A chave pública do validador ativo. | +| `Account` | String | Account | Não | A conta associada ao validador ativo. Este campo é opcional. | + +### Formato do ID do UNLReport + +O ID do objeto `UNLReport` é o hash apenas da chave de espaço `UNLReport` (`0x0052`). Isso significa que o ID do objeto `UNLReport` em um ledger é sempre: + +``` +61E32E7A24A238F1C619D5F9DDCC41A94B33B66C0163F7EFCC8A19C9FD6F28DC +``` diff --git a/src/content/docs/pt-br/docs/protocol-reference/ledger-data/ledger-objects-types/uritoken.mdx b/src/content/docs/pt-br/docs/protocol-reference/ledger-data/ledger-objects-types/uritoken.mdx new file mode 100644 index 0000000..317700c --- /dev/null +++ b/src/content/docs/pt-br/docs/protocol-reference/ledger-data/ledger-objects-types/uritoken.mdx @@ -0,0 +1,59 @@ +--- +title: URIToken +--- +[\[Fonte\]](https://github.com/ripple/rippled/blob/master/src/ripple/protocol/impl/LedgerFormats.cpp#L157-L170) + +_(Adicionado pela \[emenda URI Token]\[].)_ + +Um objeto `URIToken` descreve um token URI, que pode ser usado para representar um identificador de recurso único no ledger. + +### Exemplo JSON + +```json +{ + "Owner": "rUn84CUYbNjRoTQ6mSW7BVJPSVJNLb1QLo", + "OwnerNode": "0000000000000000", + "Issuer": "rfkE1aSy9G8Upk4JssnwBxhEv5p4mn2KTy", + "URI": "DEADBEEF", + "Digest": "46060241FABCF692D4D934BA2A6C4427CD4279083E38C77CBE642243E43BE291", + "Amount": "100000000", + "Destination": "rUn84CUYbNjRoTQ6mSW7BVJPSVJNLb1QLo", + "PreviousTxnID": "5463C6E08862A1FAE5EDAC12D70ADB16546A1F674930521295BC082494B62924", + "PreviousTxnLgrSeq": 6, + "LedgerEntryType": "URIToken", + "index": "49647F0D748DC3FE26BDACBC57F251AADEFFF391403EC9BF87C97F67E9977FB0" +} +``` + +### Campos + +Um objeto `URIToken` tem os seguintes campos: + +| Campo | Tipo JSON | \[Tipo Interno]\[] | Obrigatório? | Descrição | +| ------------------- | ---------------- | ------------------- | ------------ | ---------------------------------------------------------------------------------------------------------------------------------- | +| `Owner` | String | Account | Sim | O proprietário do URI Token. | +| `OwnerNode` | String | UInt64 | Sim | Uma dica indicando qual página do diretório do proprietário aponta para este objeto, caso o diretório consista em múltiplas páginas. | +| `Issuer` | String | Account | Sim | O emissor do URI Token. | +| `URI` | String | VL | Sim | O URI representado por este token. | +| `Digest` | String | Hash256 | Não | Hash de 256 bits arbitrário fornecido pelo proprietário como identificador específico para este URI Token. | +| `Amount` | String ou Object | Amount | Não | O valor do URI Token. | +| `Destination` | String | Account | Não | O destinatário pretendido do URI Token. | +| `PreviousTxnID` | String | Hash256 | Sim | O hash identificador da transação que mais recentemente modificou este objeto. | +| `PreviousTxnLgrSeq` | Number | UInt32 | Sim | O índice do ledger que contém a transação que mais recentemente modificou este objeto. | +| `LedgerEntryType` | String | UInt16 | Sim | O valor `0x0073`, mapeado para a string `URIToken`, indica que este objeto é um objeto URI Token. | + +### Flags de URIToken + +Objetos `URIToken` podem ter os seguintes valores de flag: + +| Nome do Flag | Valor Hex | Valor Decimal | Flag URITokenMint Correspondente | Descrição | +| ------------- | ------------ | ------------- | -------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | +| `lsfBurnable` | `0x00000001` | 1 | `tfBurnable` | Permite que o emissor (ou uma entidade autorizada pelo emissor) destrua o `URIToken` cunhado. (O proprietário do `URIToken` _sempre_ pode fazer isso.) | + +### Formato do ID do URIToken + +O ID de um objeto `URIToken` é o \[SHA-512Half]\[] dos seguintes valores, concatenados em ordem: + +* A chave de espaço URI Token (`0x0055`) +* O AccountID do emissor do URI Token +* O URI representado pelo URI Token diff --git a/src/content/docs/br/docs/protocol-reference/transactions/index.mdx b/src/content/docs/pt-br/docs/protocol-reference/transactions/index.mdx similarity index 100% rename from src/content/docs/br/docs/protocol-reference/transactions/index.mdx rename to src/content/docs/pt-br/docs/protocol-reference/transactions/index.mdx diff --git a/src/content/docs/br/docs/protocol-reference/transactions/pseudo-transaction-types/cron.mdx b/src/content/docs/pt-br/docs/protocol-reference/transactions/pseudo-transaction-types/cron.mdx similarity index 100% rename from src/content/docs/br/docs/protocol-reference/transactions/pseudo-transaction-types/cron.mdx rename to src/content/docs/pt-br/docs/protocol-reference/transactions/pseudo-transaction-types/cron.mdx diff --git a/src/content/docs/br/docs/protocol-reference/transactions/pseudo-transaction-types/emitfailure.mdx b/src/content/docs/pt-br/docs/protocol-reference/transactions/pseudo-transaction-types/emitfailure.mdx similarity index 100% rename from src/content/docs/br/docs/protocol-reference/transactions/pseudo-transaction-types/emitfailure.mdx rename to src/content/docs/pt-br/docs/protocol-reference/transactions/pseudo-transaction-types/emitfailure.mdx diff --git a/src/content/docs/br/docs/protocol-reference/transactions/pseudo-transaction-types/enableamendment.mdx b/src/content/docs/pt-br/docs/protocol-reference/transactions/pseudo-transaction-types/enableamendment.mdx similarity index 100% rename from src/content/docs/br/docs/protocol-reference/transactions/pseudo-transaction-types/enableamendment.mdx rename to src/content/docs/pt-br/docs/protocol-reference/transactions/pseudo-transaction-types/enableamendment.mdx diff --git a/src/content/docs/br/docs/protocol-reference/transactions/pseudo-transaction-types/index.mdx b/src/content/docs/pt-br/docs/protocol-reference/transactions/pseudo-transaction-types/index.mdx similarity index 100% rename from src/content/docs/br/docs/protocol-reference/transactions/pseudo-transaction-types/index.mdx rename to src/content/docs/pt-br/docs/protocol-reference/transactions/pseudo-transaction-types/index.mdx diff --git a/src/content/docs/br/docs/protocol-reference/transactions/pseudo-transaction-types/setfee.mdx b/src/content/docs/pt-br/docs/protocol-reference/transactions/pseudo-transaction-types/setfee.mdx similarity index 100% rename from src/content/docs/br/docs/protocol-reference/transactions/pseudo-transaction-types/setfee.mdx rename to src/content/docs/pt-br/docs/protocol-reference/transactions/pseudo-transaction-types/setfee.mdx diff --git a/src/content/docs/br/docs/protocol-reference/transactions/pseudo-transaction-types/unlmodify.mdx b/src/content/docs/pt-br/docs/protocol-reference/transactions/pseudo-transaction-types/unlmodify.mdx similarity index 100% rename from src/content/docs/br/docs/protocol-reference/transactions/pseudo-transaction-types/unlmodify.mdx rename to src/content/docs/pt-br/docs/protocol-reference/transactions/pseudo-transaction-types/unlmodify.mdx diff --git a/src/content/docs/br/docs/protocol-reference/transactions/pseudo-transaction-types/unlreport.mdx b/src/content/docs/pt-br/docs/protocol-reference/transactions/pseudo-transaction-types/unlreport.mdx similarity index 100% rename from src/content/docs/br/docs/protocol-reference/transactions/pseudo-transaction-types/unlreport.mdx rename to src/content/docs/pt-br/docs/protocol-reference/transactions/pseudo-transaction-types/unlreport.mdx diff --git a/src/content/docs/br/docs/protocol-reference/transactions/transaction-common-fields.mdx b/src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-common-fields.mdx similarity index 100% rename from src/content/docs/br/docs/protocol-reference/transactions/transaction-common-fields.mdx rename to src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-common-fields.mdx diff --git a/src/content/docs/br/docs/protocol-reference/transactions/transaction-metadata.mdx b/src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-metadata.mdx similarity index 100% rename from src/content/docs/br/docs/protocol-reference/transactions/transaction-metadata.mdx rename to src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-metadata.mdx diff --git a/src/content/docs/br/docs/protocol-reference/transactions/transaction-results/index.mdx b/src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-results/index.mdx similarity index 100% rename from src/content/docs/br/docs/protocol-reference/transactions/transaction-results/index.mdx rename to src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-results/index.mdx diff --git a/src/content/docs/br/docs/protocol-reference/transactions/transaction-results/tec-codes.mdx b/src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-results/tec-codes.mdx similarity index 100% rename from src/content/docs/br/docs/protocol-reference/transactions/transaction-results/tec-codes.mdx rename to src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-results/tec-codes.mdx diff --git a/src/content/docs/br/docs/protocol-reference/transactions/transaction-results/tef-codes.mdx b/src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-results/tef-codes.mdx similarity index 100% rename from src/content/docs/br/docs/protocol-reference/transactions/transaction-results/tef-codes.mdx rename to src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-results/tef-codes.mdx diff --git a/src/content/docs/br/docs/protocol-reference/transactions/transaction-results/tel-codes.mdx b/src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-results/tel-codes.mdx similarity index 100% rename from src/content/docs/br/docs/protocol-reference/transactions/transaction-results/tel-codes.mdx rename to src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-results/tel-codes.mdx diff --git a/src/content/docs/br/docs/protocol-reference/transactions/transaction-results/tem-codes.mdx b/src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-results/tem-codes.mdx similarity index 100% rename from src/content/docs/br/docs/protocol-reference/transactions/transaction-results/tem-codes.mdx rename to src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-results/tem-codes.mdx diff --git a/src/content/docs/br/docs/protocol-reference/transactions/transaction-results/ter-codes.mdx b/src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-results/ter-codes.mdx similarity index 100% rename from src/content/docs/br/docs/protocol-reference/transactions/transaction-results/ter-codes.mdx rename to src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-results/ter-codes.mdx diff --git a/src/content/docs/br/docs/protocol-reference/transactions/transaction-results/tes-codes.mdx b/src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-results/tes-codes.mdx similarity index 100% rename from src/content/docs/br/docs/protocol-reference/transactions/transaction-results/tes-codes.mdx rename to src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-results/tes-codes.mdx diff --git a/src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-types/accountdelete.mdx b/src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-types/accountdelete.mdx new file mode 100644 index 0000000..2408913 --- /dev/null +++ b/src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-types/accountdelete.mdx @@ -0,0 +1,60 @@ +--- +title: AccountDelete +description: >- + Uma transação AccountDelete exclui uma conta e quaisquer objetos que ela possui no + Xahau, se possível, enviando o XAH restante da conta para uma conta de + destino especificada. +sidebar: + badge: + text: Desabilitado + variant: danger +--- +import { Aside } from '@astrojs/starlight/components'; + +\[[Fonte](https://github.com/Xahau/xahaud/blob/dev/src/ripple/app/tx/impl/DeleteAccount.cpp)] + +_Adicionado pela emenda DeletableAccounts_ + + + +### Exemplo + +```json +{ + "TransactionType": "AccountDelete", + "Account": "rWYkbWkCeg8dP6rXALnjgZSjjLyih5NXm", + "Destination": "rPT1Sjq2YGrBMTttX4GZHjKu9dyfzbpAYe", + "DestinationTag": 13, + "Fee": "2000000", + "Sequence": 2470665, + "Flags": 2147483648 +} +``` + +| Campo | Tipo JSON | \[Tipo Interno]\[] | Descrição | +| ---------------- | ---------------------- | ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `Destination` | String - \[Address]\[] | AccountID | O endereço de uma conta para receber qualquer XAH restante após a exclusão da conta remetente. Deve ser uma conta ativa no ledger e não pode ser a conta remetente. | +| `DestinationTag` | Number | UInt32 | _(Opcional)_ Tag de destino arbitrária que identifica um destinatário hospedado ou outras informações para o destinatário do XAH restante da conta excluída. | + +### Custo Especial de Transação + +Como medida adicional de dissuasão contra spam no ledger, a transação AccountDelete exige um custo de transação muito maior que o usual: em vez do mínimo padrão de 0,00001 XAH, o AccountDelete deve destruir pelo menos o valor da reserva do proprietário, atualmente 2 XRP. Isso desencoraja a criação excessiva de novas contas, pois o requisito de reserva não pode ser totalmente recuperado ao excluir a conta. + +O custo da transação sempre se aplica quando uma transação é incluída em um ledger validado, mesmo que a transação falhe ao excluir a conta. (Consulte Casos de Erro.) Para reduzir bastante as chances de pagar o alto custo de transação caso a conta não possa ser excluída, envie a transação com `fail_hard` habilitado. + +### Casos de Erro + +Além dos erros que podem ocorrer em todas as transações, as transações AccountDelete podem resultar nos seguintes códigos de resultado: + +| Código de Erro | Descrição | +| -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `temDISABLED` | Ocorre se a emenda DeletableAccounts não estiver habilitada. | +| `temDST_IS_SRC` | Ocorre se o `Destination` corresponder ao remetente da transação (campo `Account`). | +| `tecDST_TAG_NEEDED` | Ocorre se a conta `Destination` exigir uma tag de destino, mas o campo `DestinationTag` não tiver sido fornecido. | +| `tecNO_DST` | Ocorre se a conta `Destination` não for uma conta ativa no ledger. | +| `tecNO_PERMISSION` | Ocorre se a conta `Destination` exigir autorização de depósito e o remetente não estiver pré-autorizado. | +| `tecTOO_SOON` | Ocorre se o número de `Sequence` do remetente for muito alto. O número de `Sequence` da transação mais 256 deve ser menor que o \[Índice do Ledger]\[] atual. Isso evita a repetição de transações antigas caso esta conta seja recriada após ser excluída. | +| `tecHAS_OBLIGATIONS` | Ocorre se a conta a ser excluída estiver vinculada a objetos que não podem ser excluídos no ledger. (Isso inclui objetos criados por outras contas, como escrows e, por exemplo, NFTs cunhados, [mesmo que pertençam a outra conta](https://github.com/Xahau/xahaud/blob/dev/src/ripple/app/tx/impl/DeleteAccount.cpp#L197).) | +| `tefTOO_BIG` | Ocorre se a conta remetente estiver vinculada a mais de 1000 objetos no ledger. A transação pode ser bem-sucedida em uma nova tentativa se alguns desses objetos forem excluídos separadamente antes. | diff --git a/src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-types/accountset.mdx b/src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-types/accountset.mdx new file mode 100644 index 0000000..0f917e5 --- /dev/null +++ b/src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-types/accountset.mdx @@ -0,0 +1,116 @@ +--- +title: AccountSet +description: Uma transação AccountSet modifica as propriedades de uma conta no Xahau. +--- +\[[Fonte](https://github.com/Xahau/xahaud/blob/dev/src/ripple/app/tx/impl/SetAccount.cpp)] + +### Exemplo + +```json +{ + "TransactionType": "AccountSet", + "Account" : "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "Fee": "12", + "Sequence": 5, + "Domain": "6578616D706C652E636F6D", + "SetFlag": 5, + "MessageKey": "03AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB", + "HookStateScale": 10 +} +``` + +| Campo | Tipo JSON | \[Tipo Interno]\[] | Descrição | +| ---------------- | --------- | ------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `ClearFlag` | Number | UInt32 | _(Opcional)_ Identificador único de uma flag a ser desabilitada para esta conta. | +| `Domain` | String | Blob | _(Opcional)_ O domínio que possui esta conta, como uma string hexadecimal representando o ASCII do domínio em letras minúsculas. [Não pode ter mais de 256 bytes.](https://github.com/Xahau/xahaud/blob/55dc7a252e08a0b02cd5aa39e9b4777af3eafe77/src/ripple/app/tx/impl/SetAccount.h#L34) | +| `EmailHash` | String | Hash128 | _(Opcional)_ Um valor arbitrário de 128 bits. Convencionalmente, os clientes tratam isso como o hash md5 de um endereço de e-mail para exibir uma imagem [Gravatar](http://en.gravatar.com/site/implement/hash/). | +| `MessageKey` | String | Blob | _(Opcional)_ Chave pública para envio de mensagens criptografadas a esta conta. Para definir a chave, ela deve ter exatamente 33 bytes, com o primeiro byte indicando o tipo: `0x02` ou `0x03` para chaves secp256k1, `0xED` para chaves Ed25519. Para remover a chave, use um valor vazio. | +| `NFTokenMinter` | String | Blob | _(Opcional)_ Outra conta autorizada a cunhar NFTokens em seu nome. _(Adicionado pela emenda \[NonFungibleTokensV1_1]\[].)_ | +| `SetFlag` | Number | UInt32 | _(Opcional)_ Flag inteira a ser habilitada para esta conta. | +| `TransferRate` | Number | UInt32 | _(Opcional)_ A taxa cobrada quando usuários transferem tokens desta conta, representada em bilionésimos de uma unidade. Não pode ser maior que `2000000000` nem menor que `1000000000`, exceto pelo caso especial `0` que significa sem taxa. | +| `TickSize` | Number | UInt8 | _(Opcional)_ Tamanho do tick para ofertas envolvendo moeda emitida por este endereço. As taxas de câmbio dessas ofertas são arredondadas para este número de dígitos significativos. Valores válidos: `3` a `15` inclusive, ou `0` para desabilitar. _(Adicionado pela emenda \[TickSize]\[])_ | +| `WalletLocator` | String | Hash256 | _(Opcional)_ Um valor arbitrário de 256 bits. Se especificado, o valor é armazenado como parte da conta, mas não possui significado ou requisitos inerentes. | +| `WalletSize` | Number | UInt32 | _(Opcional)_ Não utilizado. Este campo é válido em transações AccountSet, mas não tem efeito. | +| `HookStateScale` | Number | UInt16 | _(Opcional)_ Fator de escala para determinar quando entradas de estado do Hook se tornam obsoletas. Valores válidos: `1` a `16` inclusive. _(Adicionado pela emenda [ExtendedHookState][].)_ | + +Se nenhuma dessas opções for fornecida, a transação AccountSet não tem efeito (além de destruir o custo da transação). Consulte Cancelar ou Ignorar uma Transação para mais detalhes. + +### Domínio + +O campo `Domain` é representado como a string hexadecimal do ASCII em letras minúsculas do domínio. Por exemplo, o domínio _example.com_ seria representado como `"6578616D706C652E636F6D"`. + +Para remover o campo `Domain` de uma conta, envie um AccountSet com o Domain definido como uma string vazia. + +Você pode colocar qualquer domínio no campo `Domain` da sua conta. Para provar que uma conta e um domínio pertencem à mesma pessoa ou empresa, você precisa de um "link bidirecional": + +* As contas que você possui devem ter um domínio seu no campo `Domain`. +* Nesse domínio, hospede um arquivo [xahau.toml](/docs/infrastructure/identity) listando as contas que você possui e, opcionalmente, outras informações sobre como você usa o Xahau. + +### Flags do AccountSet + +Existem várias opções que podem ser habilitadas ou desabilitadas para uma conta. As opções de conta são representadas por diferentes tipos de flags conforme a situação: + +* O tipo de transação `AccountSet` possui várias "AccountSet Flags" (prefixadas com **`asf`**) que podem habilitar uma opção quando passadas como parâmetro `SetFlag`, ou desabilitar uma opção quando passadas como parâmetro `ClearFlag`. Opções mais recentes possuem apenas esse estilo de flag. Você pode habilitar até uma flag `asf` por transação e desabilitar até uma flag `asf` por transação. +* O tipo de transação `AccountSet` possui várias flags de transação (prefixadas com **`tf`**) que podem ser usadas para habilitar ou desabilitar opções específicas de conta quando passadas no parâmetro `Flags`. Você pode habilitar e desabilitar uma combinação de configurações em uma única transação usando múltiplas flags `tf`, mas nem todas as configurações possuem flags `tf`. +* O tipo de objeto de ledger `AccountRoot` possui várias flags de estado do ledger (prefixadas com **`lsf`**) que representam o estado de opções específicas da conta em um ledger. Essas configurações se aplicam até que uma transação as altere. + +Para habilitar ou desabilitar flags de conta, use os parâmetros `SetFlag` e `ClearFlag` de uma transação AccountSet. As flags do AccountSet têm nomes que começam com **`asf`**. + +Todas as flags são desabilitadas por padrão. + +As flags do AccountSet disponíveis são: + +| Nome da Flag | Valor Decimal | Flag de Ledger Correspondente | Descrição | +| --------------------------------- | ------------- | --------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `asfAccountTxnID` | 5 | (Nenhuma) | Rastreia o ID da transação mais recente desta conta. Necessário para `AccountTxnID`. | +| `asfAllowTrustLineClawback` | 17 | `lsfAllowTrustLineClawback` | Permite que uma conta recupere tokens que emitiu. Essa flag só pode ser habilitada se o diretório de proprietário da conta estiver vazio (sem linhas de confiança, ofertas, escrows, canais de pagamento, cheques ou listas de signatários). Uma vez definida, não pode ser desfeita. | +| `asfAuthorizedNFTokenMinter` | 10 | (Nenhuma) | Habilita outra conta a cunhar tokens não fungíveis (NFTokens) em nome desta conta. Especifique a conta autorizada no campo `NFTokenMinter` do objeto AccountRoot. Para remover um cunhador autorizado, habilite esta flag e omita o campo `NFTokenMinter`. _(Adicionado pela emenda \[NonFungibleTokensV1_1]\[].)_ | +| `asfDefaultRipple` | 8 | `lsfDefaultRipple` | Habilita o rippling nas linhas de confiança desta conta por padrão. | +| `asfDepositAuth` | 9 | `lsfDepositAuth` | Habilita a Autorização de Depósito nesta conta. _(Adicionado pela emenda \[DepositAuth]\[].)_ | +| `asfDisableMaster` | 4 | `lsfDisableMaster` | Impede o uso do par de chaves mestre. Só pode ser habilitado se a conta tiver configurado outra forma de assinar transações, como uma Chave Regular ou uma Lista de Signatários. | +| `asfDisallowIncomingCheck` | 13 | `lsfDisallowIncomingCheck` | Bloqueia Cheques recebidos. _Adicionado pela emenda \[DisallowIncoming]\[]._ | +| `asfDisallowIncomingNFTokenOffer` | 12 | `lsfDisallowIncomingNFTokenOffer` | Bloqueia NFTokenOffers recebidas. _Adicionado pela emenda \[DisallowIncoming]\[]._ | +| `asfDisallowIncomingPayChan` | 14 | `lsfDisallowIncomingPayChan` | Bloqueia Canais de Pagamento recebidos. _Adicionado pela emenda \[DisallowIncoming]\[]._ | +| `asfDisallowIncomingTrustline` | 15 | `lsfDisallowIncomingTrustline` | Bloqueia linhas de confiança recebidas. _Adicionado pela emenda \[DisallowIncoming]\[]._ | +| `asfDisallowIncomingRemit` | 16 | `lsfDisallowIncomingRemit` | Bloqueia transações Remit recebidas. _Adicionado pela emenda \[Remit]\[]._ | +| `asfDisallowXRP` | 3 | `lsfDisallowXRP` | XAH não deve ser enviado para esta conta. (Aviso; não é aplicado pelo protocolo Xahau.) | +| `asfGlobalFreeze` | 7 | `lsfGlobalFreeze` | Congela todos os ativos emitidos por esta conta. | +| `asfNoFreeze` | 6 | `lsfNoFreeze` | Renuncia permanentemente à capacidade de congelar linhas de confiança individuais ou desabilitar o Congelamento Global. Esta flag nunca pode ser desabilitada após ser habilitada. | +| `asfRequireAuth` | 2 | `lsfRequireAuth` | Exige autorização para que usuários mantenham saldos emitidos por este endereço. Só pode ser habilitado se o endereço não tiver linhas de confiança conectadas a ele. | +| `asfRequireDest` | 1 | `lsfRequireDestTag` | Exige uma tag de destino para enviar transações a esta conta. | +| `asfTshCollect` | 11 | `lsfTshCollect` | O TSH paga pela execução de sua própria Cadeia de Hooks. _Adicionado pela emenda \[Hooks]\[]._ | + +Para habilitar as flags `asfDisableMaster` ou `asfNoFreeze`, você deve autorizar a transação assinando-a com o par de chaves mestre. Não é possível usar um par de chaves regular ou uma assinatura múltipla. Você pode desabilitar `asfDisableMaster` (ou seja, reabilitar o par de chaves mestre) usando um par de chaves regular ou assinatura múltipla. + +As seguintes flags de transação (`tf` flags), específicas ao tipo de transação AccountSet, servem ao mesmo propósito. Por limitação de espaço, algumas configurações não possuem flags `tf` associadas e novas flags `tf` não estão sendo adicionadas ao tipo de transação `AccountSet`. Você pode usar uma combinação de flags `tf` e `asf` para habilitar múltiplas configurações em uma única transação. + +
Nome da FlagValor HexValor DecimalSubstituída pela Flag AccountSet
tfRequireDestTag0x0001000065536asfRequireDest (SetFlag)
tfOptionalDestTag0x00020000131072asfRequireDest (ClearFlag)
tfRequireAuth0x00040000262144asfRequireAuth (SetFlag)
tfOptionalAuth0x00080000524288asfRequireAuth (ClearFlag)
tfDisallowXRP0x001000001048576asfDisallowXRP (SetFlag)
tfAllowXRP0x002000002097152asfDisallowXRP (ClearFlag)
+ +**Atenção:** Os valores numéricos das flags `tf` e `asf` nas transações não correspondem aos valores que elas definem nas contas "em repouso" no ledger. Para ler as flags de uma conta no ledger, consulte as flags do `AccountRoot`. + +#### Bloqueio de Transações Recebidas + +Transações recebidas com finalidade pouco clara podem ser um inconveniente para instituições financeiras, que precisariam reconhecer quando um cliente cometeu um erro e, potencialmente, reembolsar contas ou ajustar saldos. As flags `asfRequireDest` e `asfDisallowXRP` têm como objetivo proteger os usuários de enviar fundos acidentalmente de forma ambígua quanto ao motivo do envio. + +Por exemplo, uma tag de destino é normalmente usada para identificar qual saldo hospedado deve ser creditado quando uma instituição financeira recebe um pagamento. Se a tag de destino for omitida, pode não ser claro qual conta deve ser creditada, criando a necessidade de reembolsos, entre outros problemas. Ao usar a tag `asfRequireDest`, você garante que todo pagamento recebido tenha uma tag de destino, dificultando que outros lhe enviem um pagamento ambíguo por engano. + +Você pode se proteger contra pagamentos recebidos indesejados de moedas não-XAH simplesmente não criando linhas de confiança nessas moedas. Como o XAH não exige confiança, a flag `asfDisallowXRP` é usada para desencorajar usuários de enviar XAH para uma conta. No entanto, essa flag não é aplicada pelo protocolo Xahau, pois poderia tornar contas inutilizáveis caso fiquem sem XAH. Em vez disso, as aplicações clientes devem bloquear ou desencorajar pagamentos em XAH para contas com a flag `asfDisallowXRP` habilitada. + +Se você quiser bloquear _todos_ os pagamentos recebidos, pode habilitar a Autorização de Depósito. Isso impede que qualquer transação envie dinheiro para você, inclusive XAH, a menos que sua conta esteja abaixo do requisito de reserva. + +Se a emenda \[DisallowIncoming]\[] :not_enabled: estiver habilitada, você também terá a opção de bloquear todos os Cheques, NFTokenOffers, Canais de Pagamento e linhas de confiança recebidos. Geralmente é inofensivo receber esses objetos, mas eles podem impedir que você exclua sua conta e pode ser confuso ter objetos inesperados misturados à lista de objetos que você criou. Para bloquear objetos recebidos, use uma ou mais das seguintes flags de conta: + +* `asfDisallowIncomingCheck` - para objetos Check +* `asfDisallowIncomingNFTOffer` - para objetos NFTokenOffer +* `asfDisallowIncomingPayChan` - para objetos PayChannel +* `asfDisallowIncomingTrustline` - para objetos RippleState (linha de confiança) + +Quando uma transação criaria uma dessas entradas no ledger, se a conta de destino tiver a flag correspondente habilitada, a transação falhará com o código de resultado `tecNO_PERMISSION`. Ao contrário da Autorização de Depósito, essas configurações não impedem que você receba pagamentos em geral. Além disso, habilitar essa configuração não impede que você crie esses tipos de objetos (a menos que o destino da sua transação também esteja usando a configuração, é claro). + +### TransferRate + +O campo `TransferRate` especifica uma taxa a ser cobrada sempre que contrapartes transferem a moeda que você emite. + +Nas APIs HTTP e WebSocket, a taxa de transferência é representada como um inteiro — o valor que deve ser enviado para que 1 bilhão de unidades chegue ao destino. Por exemplo, uma taxa de transferência de 20% é representada pelo valor `1200000000`. O valor não pode ser menor que 1000000000. (Um valor menor indicaria que você está dando dinheiro para quem faz transações, o que é explorável.) Você pode especificar `0` como atalho para `1000000000`, ou seja, sem taxa. + +Consulte Taxas de Transferência para mais informações. diff --git a/src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-types/checkcancel.mdx b/src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-types/checkcancel.mdx new file mode 100644 index 0000000..fe8e09d --- /dev/null +++ b/src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-types/checkcancel.mdx @@ -0,0 +1,30 @@ +--- +title: CheckCancel +description: >- + Cancela um Check não resgatado, removendo-o do ledger sem enviar nenhum + valor. A origem ou o destino do check pode cancelar um Check a qualquer + momento usando este tipo de transação. +--- +\[[Source](https://github.com/Xahau/xahaud/blob/dev/src/ripple/app/tx/impl/URIToken.cpp)] + +_(Adicionado pela \[emenda Checks]\[].)_ + +### Exemplo + +```json +{ + "Account": "rUn84CUYbNjRoTQ6mSW7BVJPSVJNLb1QLo", + "TransactionType": "CheckCancel", + "CheckID": "49647F0D748DC3FE26BDACBC57F251AADEFFF391403EC9BF87C97F67E9977FB0", + "Fee": "12" +} +``` + +| Campo | Tipo JSON | \[Tipo Interno]\[] | Descrição | +| --------- | --------- | ------------------- | ------------------------------------------------------------------------------------------- | +| `CheckID` | String | Hash256 | O ID do objeto Check no ledger a ser cancelado, como uma string hexadecimal de 64 caracteres. | + +### Casos de Erro + +* Se o objeto identificado pelo `CheckID` não existir ou não for um Check, a transação falha com o resultado `tecNO_ENTRY`. +* Se o Check não estiver expirado e o remetente da transação CheckCancel não for a origem nem o destino do Check, a transação falha com o resultado `tecNO_PERMISSION`. diff --git a/src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-types/checkcash.mdx b/src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-types/checkcash.mdx new file mode 100644 index 0000000..615466b --- /dev/null +++ b/src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-types/checkcash.mdx @@ -0,0 +1,38 @@ +--- +title: CheckCash +description: >- + Tenta resgatar um objeto Check no ledger para receber até o valor + autorizado pela transação CheckCreate correspondente. +--- +\[[Source](https://github.com/Xahau/xahaud/blob/dev/src/ripple/app/tx/impl/URIToken.cpp)] + +_(Adicionado pela \[emenda Checks]\[].)_ + +### Exemplo + +```json +{ + "Account": "rfkE1aSy9G8Upk4JssnwBxhEv5p4mn2KTy", + "TransactionType": "CheckCash", + "Amount": "100000000", + "CheckID": "838766BA2B995C00744175F69A1B11E32C3DBC40E64801A4056FCBD657F57334", + "Fee": "12" +} +``` + +| Campo | Tipo JSON | \[Tipo Interno]\[] | Descrição | +| ------------ | ---------------------------------------------------------------------------------------------------------------------------------- | ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `CheckID` | String | Hash256 | O ID do objeto Check no ledger a ser resgatado, como uma string hexadecimal de 64 caracteres. | +| `Amount` | [Valor de Moeda](/docs/protocol-reference/data-types/currency-formats/#specifying-currency-amounts) | Amount | _(Opcional)_ Resgata o Check por exatamente este valor, se possível. A moeda deve corresponder à do campo `SendMax` da transação CheckCreate correspondente. Você deve fornecer este campo ou `DeliverMin`. | +| `DeliverMin` | \[Valor de Moeda]\[] | Amount | _(Opcional)_ Resgata o Check por pelo menos este valor e pelo máximo possível. A moeda deve corresponder à do campo `SendMax` da transação CheckCreate correspondente. Você deve fornecer este campo ou `Amount`. | + +A transação _**deve**_ incluir `Amount` ou `DeliverMin`, mas não ambos. + +### Casos de Erro + +* Se o remetente da transação CheckCash não for o `Destination` do cheque, a transação falha com o código de resultado `tecNO_PERMISSION`. +* Se o Check identificado pelo campo `CheckID` não existir, a transação falha com o resultado `tecNO_ENTRY`. +* Se o Check identificado pelo campo `CheckID` já tiver expirado, a transação falha com o resultado `tecEXPIRED`. +* Se o destinatário do Check tiver a flag `RequireDest` habilitada, mas o Check, conforme criado, não possuir uma tag de destino, a transação falha com o código de resultado `tecDST_TAG_NEEDED`. +* Se a transação especificar ambos `Amount` e `DeliverMin`, ou omitir ambos, a transação falha com o resultado `temMALFORMED`. +* Se `Amount` ou `DeliverMin` não corresponder à moeda (e emissor, se não for XAH) do Check, a transação falha com o resultado `temBAD_CURRENCY`. diff --git a/src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-types/checkcreate.mdx b/src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-types/checkcreate.mdx new file mode 100644 index 0000000..a12bb3a --- /dev/null +++ b/src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-types/checkcreate.mdx @@ -0,0 +1,44 @@ +--- +title: CheckCreate +description: >- + Cria um objeto Check no ledger, que é um pagamento diferido que pode ser + resgatado pelo destinatário pretendido. O remetente desta transação é o + emissor do Check. +--- +\[[Source](https://github.com/Xahau/xahaud/blob/dev/src/ripple/app/tx/impl/URIToken.cpp)] + +_(Adicionado pela \[emenda Checks]\[].)_ + +### Exemplo + +```json +{ + "TransactionType": "CheckCreate", + "Account": "rUn84CUYbNjRoTQ6mSW7BVJPSVJNLb1QLo", + "Destination": "rfkE1aSy9G8Upk4JssnwBxhEv5p4mn2KTy", + "SendMax": "100000000", + "Expiration": 570113521, + "InvoiceID": "6F1DFD1D0FE8A32E40E1F2C05CF1C15545BAB56B617F9C6C2D63A6B704BEF59B", + "DestinationTag": 1, + "Fee": "12" +} +``` + +| Campo | Tipo JSON | \[Tipo Interno]\[] | Descrição | +| ---------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Destination` | String | AccountID | O endereço único da conta que pode resgatar o Check. | +| `SendMax` | [Valor de Moeda](/docs/protocol-reference/data-types/currency-formats/#specifying-currency-amounts) | Amount | Valor máximo da moeda de origem que o Check pode debitar do remetente, incluindo taxas de transferência em moedas que não sejam XAH. O Check só pode creditar o destino com a mesma moeda (do mesmo emissor, para moedas que não sejam XAH). Para valores que não sejam XAH, os nomes dos campos aninhados DEVEM estar em minúsculas. | +| `DestinationTag` | Number | UInt32 | _(Opcional)_ Tag arbitrária que identifica o motivo do Check ou um destinatário hospedado a pagar. | +| `Expiration` | Number | UInt32 | _(Opcional)_ Momento após o qual o Check não é mais válido, em \[segundos desde o Epoch da Ripple]\[]. | +| `InvoiceID` | String | Hash256 | _(Opcional)_ Hash arbitrário de 256 bits representando um motivo ou identificador específico para este Check. | + +### Casos de Erro + +* Se a conta `Destination` estiver bloqueando Checks recebidos, a transação falha com o código de resultado `tecNO_PERMISSION`. +* Se o `Destination` for o remetente da transação, a transação falha com o código de resultado `temREDUNDANT`. +* Se a conta `Destination` não existir no ledger, a transação falha com o código de resultado `tecNO_DST`. +* Se a conta `Destination` tiver a flag `RequireDest` habilitada, mas a transação não incluir o campo `DestinationTag`, a transação falha com o código de resultado `tecDST_TAG_NEEDED`. +* Se `SendMax` especificar um token que esteja congelado, a transação falha com o resultado `tecFROZEN`. +* Se o `Expiration` da transação estiver no passado, a transação falha com o resultado `tecEXPIRED`. +* Se o remetente não tiver XAH suficiente para atender à reserva do proprietário após adicionar o Check, a transação falha com o resultado `tecINSUFFICIENT_RESERVE`. +* Se o remetente ou o destinatário do Check não puder possuir mais objetos no ledger, a transação falha com o resultado `tecDIR_FULL`. diff --git a/src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-types/claimreward.mdx b/src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-types/claimreward.mdx new file mode 100644 index 0000000..460f0ae --- /dev/null +++ b/src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-types/claimreward.mdx @@ -0,0 +1,63 @@ +--- +title: ClaimReward +description: >- + Uma transação ClaimReward permite que uma conta reivindique as recompensas + acumuladas. As recompensas podem ser reivindicadas pelo proprietário da conta + ou por um emissor especificado. A conta também pode cancelar a participação + nas recompensas. +--- +\[[Source](https://github.com/Xahau/xahaud/blob/dev/src/ripple/app/tx/impl/ClaimReward.cpp)] + +_(Adicionado pela \[emenda BalanceRewards]\[].)_ + +### Opt-in + Reivindicação + +```json +{ + "TransactionType": "ClaimReward", + "Account": "rWYkbWkCeg8dP6rXALnjgZSjjLyih5NXm", + "Issuer": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh" +} +``` + +### Opt-out + +```json +{ + "TransactionType": "ClaimReward", + "Account": "rWYkbWkCeg8dP6rXALnjgZSjjLyih5NXm", + "Flags": 1 +} +``` + +### Campos + +| Campo | Tipo JSON | \[Tipo Interno]\[] | Descrição | +| --------- | --------- | ------------------- | ----------------------------------------------------------------- | +| `Account` | String | AccountID | O endereço da conta que está reivindicando a recompensa. | +| `Flags` | Number | UInt32 | _(Opcional)_ Pode ter a flag 1 definida para cancelar recompensas. | +| `Issuer` | String | AccountID | _(Opcional)_ A conta genesis. | + +### Flags do ClaimReward + +Transações do tipo ClaimReward suportam valores adicionais no campo `Flags`, conforme abaixo: + +| Nome da Flag | Valor Hex | Valor Decimal | Descrição | +| ------------ | ------------ | ------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `tfOptOut` | `0x00000001` | 1 | A flag `isOptOut` no código do ClaimReward é usada para cancelar a participação de uma conta nas recompensas, removendo os campos relacionados a recompensas do objeto da conta no ledger se o campo `sfFlags` na transação estiver definido como 1. | + +### Custo Especial de Transação + +A transação ClaimReward possui um custo de transação padrão, que é o custo mínimo exigido para todas as transações. + +### Casos de Erro + +Além dos erros que podem ocorrer em todas as transações, as transações ClaimReward podem resultar nos seguintes códigos de resultado: + +| Código de Erro | Descrição | +| ----------------- | -------------------------------------------------------------------------------------------------------------------- | +| `temDISABLED` | Ocorre se a funcionalidade não estiver habilitada. | +| `temINVALID_FLAG` | Ocorre se a flag estiver definida com um valor diferente de 1. | +| `temMALFORMED` | Ocorre se o emissor for igual à conta de origem ou se a flag e o emissor não estiverem configurados corretamente. | +| `tecNO_ISSUER` | Ocorre se o emissor não existir. | +| `terNO_ACCOUNT` | Ocorre se a conta remetente não existir. | diff --git a/src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-types/clawback.mdx b/src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-types/clawback.mdx new file mode 100644 index 0000000..d80740b --- /dev/null +++ b/src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-types/clawback.mdx @@ -0,0 +1,52 @@ +--- +title: Clawback +description: >- + Revogue tokens que foram previamente emitidos pela sua conta. +--- +\[[Source](https://github.com/Xahau/xahaud/blob/dev/src/ripple/app/tx/impl/Clawback.cpp)] + +_(Adicionado pela \[emenda Clawback]\[].)_ + +Revogue tokens que foram previamente emitidos pela sua conta. O recurso **Clawback** está desativado por padrão. Para utilizá-lo, você deve primeiro enviar uma transação **AccountSet** que habilite *Allow Trust Line Clawback*. Se sua conta já emitiu tokens, não é possível habilitar o Clawback posteriormente. Você só pode ativar *Allow Trust Line Clawback* se o seu diretório de proprietário estiver completamente vazio — ou seja, antes de criar linhas de confiança, ofertas, escrows, canais de pagamento, cheques ou listas de signatários. Uma vez habilitado, o Clawback torna-se uma capacidade permanente da sua conta e não pode ser desfeito. + +--- + +## Exemplo + +```json +{ + "TransactionType": "Clawback", + "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "Amount": { + "currency": "USD", + "issuer": "rfkE1aSy9G8Upk4JssnwBxhEv5p4mn2KTy", + "value": "123.45" + } +} +```` + +--- + +### Campos + +Uma transação **Clawback** inclui: + +| Campo | Tipo JSON | Descrição | +| -------- | ----------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Amount` | *Currency Amount* | A quantidade a ser revogada, bem como a contraparte da qual ela é retirada. O `value` não pode ser zero. Se for maior que o saldo do detentor, o saldo inteiro é revogado. No subcampo `issuer`, especifique o endereço do detentor (não o do emissor). | + +No Xahau, um token IOU/Non-XAH em uma linha de confiança sempre tem um emissor, mas as linhas de confiança são bidirecionais e, em determinadas configurações, ambos os lados podem atuar como emissores. Nesta transação, o endereço do emissor vai no campo `Account`, enquanto o endereço do detentor vai no subcampo `issuer` de `Amount`. + +--- + +## Casos de Erro + +Além dos erros padrão de transação, o Clawback pode falhar com: + +| Código de Erro | Descrição | +| ------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `temDISABLED` | A emenda **Clawback** não está habilitada no Xahau. | +| `temBAD_AMOUNT` | O saldo do detentor é zero. (Não é um erro se o valor especificado exceder o saldo do detentor — nesse caso, o saldo total disponível é revogado). Também ocorre se a contraparte em `Amount` for a mesma conta que está enviando a transação. | +| `tecNO_LINE` | Não existe linha de confiança com a contraparte especificada, ou a linha de confiança tem saldo zero. | +| `tecNO_PERMISSION` | Ocorre se você tentar habilitar `lsfAllowTrustLineClawback` enquanto `lsfNoFreeze` já está habilitado, ou vice-versa. | + diff --git a/src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-types/cronset.mdx b/src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-types/cronset.mdx new file mode 100644 index 0000000..b955650 --- /dev/null +++ b/src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-types/cronset.mdx @@ -0,0 +1,101 @@ +--- +title: CronSet +description: >- + Uma transação CronSet permite que Hooks agendem auto-invocações recorrentes em + intervalos regulares, similar a cronjobs do Linux. Isso facilita estruturas + complexas de governança e processos automatizados dentro de frameworks de Hook. +--- +\[[Source](https://github.com/Xahau/xahaud/blob/dev/src/ripple/app/tx/impl/CronSet.cpp)] + +_(Adicionado pela emenda CronSet.)_ + +### Exemplo + +```json +{ + "TransactionType": "CronSet", + "Account": "rYourAccountAddress", + "StartTime": 816348759, + "RepeatCount": 3, + "DelaySeconds": 120 +} +``` + +| Campo | Tipo JSON | \[Tipo Interno]\[] | Descrição | +| -------------- | --------- | ------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Account` | String | AccountID | A conta Hook que inicia o cron. Esta é a conta que será invocada quando o cron executar. | +| `StartTime` | Number | UInt32 | _(Opcional)_ Timestamp no formato Ripple Epoch indicando quando a primeira execução deve ocorrer. Use `0` para execução imediata. Se omitido ao excluir um cron, a transação o remove. | +| `RepeatCount` | Number | UInt32 | _(Opcional)_ Número de vezes que o cron deve executar (máximo de 256 por transação). Pode ser estendido via transações CronSet subsequentes. Omitir ao excluir um cron. | +| `DelaySeconds` | Number | UInt32 | _(Opcional)_ Intervalo de tempo em segundos entre cada execução. Omitir ao excluir um cron. | + +### Como o CronSet Funciona + +Transações CronSet habilitam a execução agendada e automatizada de Hooks na blockchain Xahau em intervalos regulares, eliminando a necessidade de serviços externos ou acionamentos manuais. + +O fluxo de trabalho envolve quatro etapas principais: + +1. Instalar um Hook com a flag `hsfCOLLECT` habilitada +2. Habilitar a Coleta de Hook por Assinatura de Transação `asfTshCollect` na sua conta (SetFlag: 11) +3. Criar uma transação CronSet com os parâmetros de agendamento +4. Deixar o Xahau gerenciar a execução automática + +### Mecanismo de Execução + +Quando um cron está pronto para executar, o motor Cron insere uma pseudo-transação do tipo `Cron` no ledger, contendo um campo `Owner` referenciando a conta Hook de origem. Desenvolvedores de Hook devem habilitar chamadas de coleta, pois o Owner constitui uma parte interessada transacional fraca. + +O Hook agendado será invocado automaticamente nos intervalos especificados sem exigir acionamentos externos. + +### Formato de Tempo + +O Xahau utiliza o tempo no formato Ripple Epoch (segundos desde 1º de janeiro de 2000), não o tempo Unix. Para converter a partir de um objeto Date do JavaScript: + +```javascript +const rippleEpochTime = Math.floor(Date.now() / 1000) - 946684800; +``` + +### Excluindo um Cron + +Para remover um Cron existente, omita `StartTime`, `RepeatCount` e `DelaySeconds` enquanto define `Flags: 1` (tfCronUnset): + +```json +{ + "TransactionType": "CronSet", + "Account": "rYourAccountAddress", + "Flags": 1 +} +``` + +### Estendendo o RepeatCount + +Ao atingir um limite mínimo, uma transação CronSet subsequente pode estender o contador de repetições além do limite inicial de 256 execuções, enviando uma nova transação CronSet com um `RepeatCount` atualizado. + +### Flags do CronSet + +Transações do tipo CronSet suportam valores adicionais no campo `Flags`, conforme abaixo: + +| Nome da Flag | Valor Hex | Valor Decimal | Descrição | +| ------------- | ------------ | ------------- | ----------------------------------------------------------------------------------- | +| `tfCronUnset` | `0x00000001` | 1 | Remove um Cron existente. Todos os campos de agendamento devem ser omitidos ao usar esta flag. | + +### Limitações e Restrições + +- CronSet não pode ser delegado a outra conta atualmente +- Hooks devem auto-emitir transações CronSet ou operar sob arranjos de gerenciamento conjunto +- `RepeatCount`: Deve ser maior que 0 e não pode exceder 256 por transação (extensível via transações subsequentes) +- `DelaySeconds`: Máximo de 31.536.000 segundos (365 dias) +- `StartTime`: Deve ser o momento atual ou futuro; não pode exceder 365 dias à frente +- Não é possível combinar a flag `tfCronUnset` com os campos `DelaySeconds`, `RepeatCount` ou `StartTime` +- Ao criar um cron, `DelaySeconds` e `RepeatCount` devem ambos existir ou ambos estar ausentes + +### Casos de Erro + +Além dos erros que podem ocorrer em todas as transações, as transações CronSet podem resultar nos seguintes códigos de resultado: + +| Código de Erro | Descrição | +| ------------------ | --------------------------------------------------------------------------------------------------------------- | +| `temDISABLED` | Ocorre se a funcionalidade Cron não estiver habilitada. | +| `temINVALID_FLAG` | Ocorre se flags inválidas estiverem definidas na transação. | +| `temMALFORMED` | Ocorre se a transação estiver malformada com combinações de campos inválidas. | +| `tecEXPIRED` | Ocorre se `StartTime` estiver no passado ou mais de 365 dias no futuro. | +| `tefINTERNAL` | Ocorre se a entrada do ledger da conta estiver ausente. | +| `tefBAD_LEDGER` | Ocorre se o objeto Cron estiver ausente, apontar para uma entrada não-cron, ou se a remoção do diretório do proprietário falhar. | diff --git a/src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-types/depositpreauth.mdx b/src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-types/depositpreauth.mdx new file mode 100644 index 0000000..fcb7a2e --- /dev/null +++ b/src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-types/depositpreauth.mdx @@ -0,0 +1,45 @@ +--- +title: DepositPreauth +description: >- + Uma transação DepositPreauth concede a outra conta pré-aprovação para + entregar pagamentos ao remetente desta transação. +--- +import { Aside } from '@astrojs/starlight/components'; + + + +\[[Source](https://github.com/Xahau/xahaud/blob/dev/src/ripple/app/tx/impl/URIToken.cpp)] + +_(Adicionado pela \[emenda DepositPreauth]\[].)_ + +### Exemplo + +```json +{ + "TransactionType" : "DepositPreauth", + "Account" : "rsUiUMpnrgxQp24dJYZDhmV4bE3aBtQyt8", + "Authorize" : "rEhxGqkqPPSxQ3P25J66ft5TwpzV14k2de", + "Fee" : "10", + "Flags" : 2147483648, + "Sequence" : 2 +} +``` + +### Campos + +| Campo | Tipo JSON | \[Tipo Interno]\[] | Descrição | +| ------------- | --------- | ------------------- | --------------------------------------------------------------------------------------- | +| `Authorize` | String | AccountID | _(Opcional)_ Endereço Xahau do remetente a ser pré-autorizado. | +| `Unauthorize` | String | AccountID | _(Opcional)_ Endereço Xahau do remetente cuja pré-autorização deve ser revogada. | + +Você deve fornecer _ou_ `Authorize` _ou_ `Unauthorize`, mas não ambos. + +### Casos de Erro + +* Uma conta não pode pré-autorizar (ou revogar) seu próprio endereço. Tentar fazer isso falha com o resultado `temCANNOT_PREAUTH_SELF`. +* Tentar pré-autorizar uma conta que já está pré-autorizada falha com o resultado `tecDUPLICATE`. +* Tentar revogar a autorização de uma conta que não está pré-autorizada falha com o resultado `tecNO_ENTRY`. +* Tentar pré-autorizar um endereço que não possui fundos no ledger falha com o resultado `tecNO_TARGET`. +* Adicionar uma autorização cria um objeto DepositPreauth no ledger, que conta para o requisito de reserva do proprietário. Se o remetente da transação não tiver XAH suficiente para cobrir o aumento de reserva, a transação falha com o resultado `tecINSUFFICIENT_RESERVE`. Se a conta já atingiu o número máximo de objetos próprios, a transação falha com o resultado `tecDIR_FULL`. diff --git a/src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-types/escrowcancel.mdx b/src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-types/escrowcancel.mdx new file mode 100644 index 0000000..1415d16 --- /dev/null +++ b/src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-types/escrowcancel.mdx @@ -0,0 +1,42 @@ +--- +title: EscrowCancel +description: Devolve XAH ou IOU em escrow para o remetente. +--- +\[[Fonte](https://github.com/Xahau/xahaud/blob/dev/src/ripple/app/tx/impl/URIToken.cpp)] + +_Adicionado pela \[emenda Escrow]\[]._ + +### Cancelar Usando OfferSequence + +```json +{ + "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "TransactionType": "EscrowCancel", + "Owner": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "OfferSequence": 7, +} +``` + +### Cancelar Usando EscrowID + +```json +{ + "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "TransactionType": "EscrowCancel", + "Owner": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "EscrowID": "49647F0D748DC3FE26BDACBC57F251AADEFFF391403EC9BF87C97F67E9977FB0", +} +``` + +### Campos + +| Campo | Tipo JSON | \[Tipo Interno]\[] | Descrição | +| --------------- | --------- | ------------------ | ---------------------------------------------------------------------------------------------------------------------------------- | +| `Owner` | String | AccountID | Endereço da conta de origem que financiou o pagamento em escrow. | +| `OfferSequence` | Number | UInt32 | _(Opcional)_ Sequência da transação (ou número de Ticket) da \[transação EscrowCreate]\[] que criou o escrow a ser cancelado. | +| `EscrowID` | String | Hash256 | _(Opcional)_ O ID do objeto de ledger Escrow a ser cancelado, como uma string hexadecimal de 64 caracteres. | + +Qualquer conta pode enviar uma transação EscrowCancel. + +* Se a \[transação EscrowCreate]\[] correspondente não especificou um tempo `CancelAfter`, a transação EscrowCancel falha. +* Caso contrário, a transação EscrowCancel falha se o tempo `CancelAfter` for posterior ao tempo de fechamento do ledger fechado mais recentemente. diff --git a/src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-types/escrowcreate.mdx b/src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-types/escrowcreate.mdx new file mode 100644 index 0000000..60dd912 --- /dev/null +++ b/src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-types/escrowcreate.mdx @@ -0,0 +1,43 @@ +--- +title: EscrowCreate +description: Sequestra XAH ou IOU até que o processo de escrow seja concluído ou cancelado. +--- +\[[Fonte](https://github.com/Xahau/xahaud/blob/dev/src/ripple/app/tx/impl/URIToken.cpp)] + +_Adicionado pela \[emenda Escrow]\[]._ + +### Exemplo + +```json +{ + "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "TransactionType": "EscrowCreate", + "Amount" : { + "currency" : "USD", + "value" : "1", + "issuer" : "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn" + }, + "Destination": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", + "CancelAfter": 533257958, + "FinishAfter": 533171558, + "Condition": "A0258020E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855810100", + "DestinationTag": 23480, + "SourceTag": 11747 +} +``` + +### Campos + +| Campo | Tipo JSON | \[Tipo Interno]\[] | Descrição | +| ---------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `Amount` | [Valor em Moeda](/docs/protocol-reference/data-types/currency-formats/#specifying-currency-amounts) | Amount | Valor a ser deduzido do saldo do remetente e colocado em escrow. Uma vez em escrow, o valor pode ir para o endereço `Destination` (após o tempo `FinishAfter`) ou ser devolvido ao remetente (após o tempo `CancelAfter`). | +| `Destination` | String | AccountID | Endereço para receber o valor em escrow. | +| `CancelAfter` | Number | UInt32 | _(Opcional)_ O momento, em \[segundos desde o Epoch do Ripple]\[], em que este escrow expira. Este valor é imutável; os fundos só podem ser devolvidos ao remetente após este momento. | +| `FinishAfter` | Number | UInt32 | _(Opcional)_ O momento, em \[segundos desde o Epoch do Ripple]\[], em que o valor em escrow pode ser liberado ao destinatário. Este valor é imutável; os fundos não podem ser movimentados até que este momento seja atingido. | +| `Condition` | String | Blob | _(Opcional)_ Valor hexadecimal representando uma [crypto-condition PREIMAGE-SHA-256](https://tools.ietf.org/html/draft-thomas-crypto-conditions-02#section-8.1). Os fundos só podem ser entregues ao destinatário se esta condição for cumprida. | +| `DestinationTag` | Number | UInt32 | _(Opcional)_ Tag arbitrária para especificar melhor o destino deste pagamento em escrow, como um destinatário hospedado no endereço de destino. | + +`CancelAfter` ou `FinishAfter` devem ser especificados. Se ambos forem incluídos, o tempo `FinishAfter` deve ser anterior ao tempo `CancelAfter`. + +Com a \[emenda fix1571]\[] habilitada, é necessário fornecer `FinishAfter`, `Condition`, ou ambos. \[Novo em: rippled 1.0.0]\[] + diff --git a/src/content/docs/br/docs/protocol-reference/transactions/transaction-types/escrowfinish.mdx b/src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-types/escrowfinish.mdx similarity index 94% rename from src/content/docs/br/docs/protocol-reference/transactions/transaction-types/escrowfinish.mdx rename to src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-types/escrowfinish.mdx index 20e5855..981cddb 100644 --- a/src/content/docs/br/docs/protocol-reference/transactions/transaction-types/escrowfinish.mdx +++ b/src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-types/escrowfinish.mdx @@ -1,12 +1,12 @@ --- title: EscrowFinish -description: Deliver XAH or IOU from a held payment to the recipient. +description: Entrega XAH ou IOU de um pagamento retido ao destinatário. --- -\[[Source](https://github.com/Xahau/xahaud/blob/dev/src/ripple/app/tx/impl/URIToken.cpp)] +\[[Fonte](https://github.com/Xahau/xahaud/blob/dev/src/ripple/app/tx/impl/URIToken.cpp)] -_Added by the \[Escrow amendment]\[]._ +_Adicionado pela \[emenda Escrow]\[]._ -### Finish with OfferSequence +### Concluir com OfferSequence ```json { @@ -19,7 +19,7 @@ _Added by the \[Escrow amendment]\[]._ } ``` -### Finish with EscrowID +### Concluir com EscrowID ```json { diff --git a/src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-types/genesismint-emitted-txn.mdx b/src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-types/genesismint-emitted-txn.mdx new file mode 100644 index 0000000..179f63b --- /dev/null +++ b/src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-types/genesismint-emitted-txn.mdx @@ -0,0 +1,57 @@ +--- +title: GenesisMint - (Emitted Txn) +description: >- + A transação GenesisMint é usada para cunhar novos XAH e distribuí-los para + múltiplas contas. Esta transação só pode ser usada pela conta gênesis. +--- +\[[Fonte](https://github.com/ripple/rippled/blob/develop/src/ripple/app/tx/impl/GenesisMint.cpp)] + +_Adicionado pela \[emenda XahauGenesis]\[] e pela \[emenda Hooks]\[]_ + +### Exemplo + +```json +{ + "TransactionType": "GenesisMint", + "Account": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", + "GenesisMints": [ + { + "GenesisMint": { + "Destination": "rPT1Sjq2YGrBMTttX4GZHjKu9dyfzbpAYe", + "Amount": "1000000000" + }, + } + ] +} +``` + +### Campos + +| Campo | Tipo JSON | Tipo Interno | Descrição | +| -------------- | --------- | ------------ | -------------------------------------------------------------------------------------- | +| `Account` | String | AccountID | O endereço da conta gênesis que irá cunhar e distribuir XAH. | +| `GenesisMints` | Array | Array | Um array de objetos representando os destinos e quantidades do XAH a ser cunhado. | + +### Objeto GenesisMint + +A transação GenesisMint inclui um array de objetos chamado `GenesisMints`. Cada objeto representa uma conta de destino e a quantidade de XAH a ser cunhada e distribuída para essa conta. + +| Campo | Tipo JSON | Tipo Interno | Descrição | +| ----------------- | --------- | ------------ | -------------------------------------------------------------------------------------- | +| `Destination` | String | AccountID | O endereço da conta que receberá o XAH cunhado. | +| `Amount` | String | Amount | A quantidade de XAH a ser cunhada e distribuída para a conta de destino. | +| `GovernanceFlags` | String | Hash256 | _(Opcional)_ As flags de governança associadas à conta de destino. | +| `GovernanceMarks` | String | Hash256 | _(Opcional)_ As marcações de governança associadas à conta de destino. | + +### Custo Especial de Transação + +A transação GenesisMint possui um custo de transação padrão, que é o custo mínimo exigido para todas as transações. + +### Casos de Erro + +Além dos erros que podem ocorrer em todas as transações, a transação GenesisMint pode resultar nos seguintes códigos de resultado: + +| Código de Erro | Descrição | +| -------------- | ------------------------------------------------------------------------------------------------------ | +| `temDISABLED` | Ocorre se as emendas "Hooks" ou "XahauGenesis" não estiverem habilitadas. | +| `temMALFORMED` | Ocorre se a transação estiver malformada, como campos obrigatórios ausentes ou valores inválidos. | diff --git a/src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-types/import.mdx b/src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-types/import.mdx new file mode 100644 index 0000000..b74274b --- /dev/null +++ b/src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-types/import.mdx @@ -0,0 +1,64 @@ +--- +title: Import +description: >- + Import é uma nova transação que aceita um XPOP da rede principal do XRPL + (network_id=0) ou Testnet (network_id=1) e fornece sincronização de contas. +--- +\[[Fonte](https://github.com/Xahau/xahaud/blob/dev/src/ripple/app/tx/impl/URIToken.cpp)] + +_(Adicionado pela \[emenda Import]\[].)_ + +### Exemplo + +```json +{ + "TransactionType": "Import", + "Sequence": 0, + "Fee": "0", + "Account": "rUn84CUYbNjRoTQ6mSW7BVJPSVJNLb1QLo", + "Blob" : "DEADBEEF" +} +``` + +### Campos + +| Campo | Tipo JSON | \[Tipo Interno]\[] | Descrição | +| ------------- | --------- | ------------------ | ---------------------------------------------------------- | +| `Blob` | String | Blob | Valor hexadecimal representando um XPOP | +| `Issuer` | String | AccountID | (Opcional) Endereço que pode ser usado dentro do Hook. | +| `Destination` | String | AccountID | (Opcional) Endereço que pode ser usado dentro do Hook. | + +### Casos de Erro + +* Se a conta não estiver ativada, o `Sequence` deve ser 0 e o `Fee` também deve ser 0. +* Se a conta estiver ativada, o `Sequence` e o `Fee` são calculados pelo método padrão. +* Se o campo `Issuer` estiver presente, o `Fee` deve ser calculado pelo método padrão. + +### Notas + +_Recomenda-se que, caso você utilize uma `SignerList` ou `RegularKey` para assinar suas transações, configure as chaves das suas contas **PRIMEIRO** antes de tentar realizar o _B2M_ de XAH._ + +* Se a transação interna (xpop) for `AccountSet`, as flags existentes na mainnet serão transferidas para a nova rede. +* Se a transação interna (xpop) for `SetRegularKey` com o campo `RegularKey` omitido ou vazio, e não existir uma lista de signatários para a conta, então a flag `lsfDisableMaster` será definida na conta. +* Se a transação interna (xpop) for `SetRegularKey`, então a flag `lsfPasswordSpent` será definida na conta. +* `TicketSequence` não está disponível no `Import`. + +### Importação para o Emissor + +Para emissores, há etapas adicionais a seguir antes que os detentores de ativos possam importar transações. + +Primeiramente, os emissores precisam instalar um hook. Há duas opções: `B2MNFToken` ou `B2MPayment`. + +#### B2MNFToken + +Uma transação `NFTokenBurn` na mainnet resultará em uma transação `URITokenMint` na rede. + +> c hook: https://example.com + +#### B2MPayment + +Uma transação `Payment` na mainnet para o Emissor resultará em uma transação `Payment` do Emissor na rede. + +> c hook: https://example.com + +_Observe que o processo de importação para o emissor envolve tipos de transação específicos e requer configuração cuidadosa. Certifique-se sempre de que os hooks estejam configurados corretamente e que as transações sejam válidas para as operações pretendidas._ diff --git a/src/content/docs/br/docs/protocol-reference/transactions/transaction-types/index.mdx b/src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-types/index.mdx similarity index 100% rename from src/content/docs/br/docs/protocol-reference/transactions/transaction-types/index.mdx rename to src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-types/index.mdx diff --git a/src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-types/invoke.mdx b/src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-types/invoke.mdx new file mode 100644 index 0000000..99ee6f4 --- /dev/null +++ b/src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-types/invoke.mdx @@ -0,0 +1,40 @@ +--- +title: Invoke +description: >- + Uma transação Invoke é usada para chamar um hook, que é um trecho de código + executado em resposta a determinadas operações no ledger. +--- +\[[Source](https://github.com/ripple/rippled/blob/develop/src/ripple/app/tx/impl/Invoke.cpp)] + +_(Adicionado pela [emenda Hooks][].)_ + +### Exemplo + +```json +{ + "TransactionType": "Invoke", + "Account": "rWYkbWkCeg8dP6rXALnjgZSjjLyih5NXm", + "Blob": "697066733A2F2F4445414442454546", + "Destination": "rPT1Sjq2YGrBMTttX4GZHjKu9dyfzbpAYe" +} +``` + +| Campo | Tipo JSON | \[Tipo Interno]\[] | Obrigatório? | Descrição | +| ---------------- | --------- | ------------------ | ------------ | -------------------------------------------------------------------------------------- | +| `Account` | String | AccountID | Sim | O endereço da conta que está invocando o hook. | +| `Blob` | String | Blob | Não | Um blob de dados passado ao hook. (máximo de 128k bytes) | +| `Destination` | String | AccountID | Não | O endereço da conta que é o destino do hook. | + +### Custo Especial de Transação + +A transação Invoke possui um custo de transação padrão, acrescido de um custo adicional baseado no tamanho do campo Blob. + +### Casos de Erro + +Além dos erros que podem ocorrer em todas as transações, as transações Invoke podem resultar nos seguintes códigos de resultado: + +| Código de Erro | Descrição | +| --------------- | -------------------------------------------------------------------------------------- | +| `temDISABLED` | Ocorre se a emenda Hooks não estiver habilitada. | +| `temMALFORMED` | Ocorre se o campo Blob for maior que 128k bytes. | +| `terNO_ACCOUNT` | Ocorre se a conta remetente ou a conta de destino não existir. | diff --git a/src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-types/offercancel.mdx b/src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-types/offercancel.mdx new file mode 100644 index 0000000..ccfd513 --- /dev/null +++ b/src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-types/offercancel.mdx @@ -0,0 +1,44 @@ +--- +title: OfferCancel +description: Uma transação OfferCancel remove um objeto Offer do Xahau. +--- +\[[Source](https://github.com/Xahau/xahaud/blob/dev/src/ripple/app/tx/impl/URIToken.cpp)] + +### Cancelar com OfferSequence + +```json +{ + "TransactionType": "OfferCancel", + "Account": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", + "Fee": "12", + "Flags": 0, + "LastLedgerSequence": 7108629, + "OfferSequence": 6, + "Sequence": 7 +} +``` + +### Cancelar com OfferID + +```json +{ + "TransactionType": "OfferCancel", + "Account": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", + "Fee": "12", + "Flags": 0, + "LastLedgerSequence": 7108629, + "OfferID": "49647F0D748DC3FE26BDACBC57F251AADEFFF391403EC9BF87C97F67E9977FB0", + "Sequence": 7 +} +``` + +### Campos + +| Campo | Tipo JSON | \[Tipo Interno]\[] | Descrição | +| --------------- | --------- | ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `OfferSequence` | Number | UInt32 | _(Opcional)_ O número de sequência (ou número de Ticket) de uma transação OfferCreate anterior. Se especificado, cancela qualquer objeto offer no ledger que foi criado por essa transação. Não é considerado um erro se a offer especificada não existir. | +| `OfferID` | String | Hash256 | _(Opcional)_ O ID do objeto Offer no ledger a ser cancelado, como uma string hexadecimal de 64 caracteres. | + +_Dica:_ Para remover uma offer antiga e substituí-la por uma nova, você pode usar uma \[transação OfferCreate]\[] com o parâmetro `OfferSequence`, em vez de usar OfferCancel seguido de outro OfferCreate. + +O método OfferCancel retorna `tesSUCCESS` mesmo que não encontre uma offer com o número de sequência correspondente. diff --git a/src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-types/offercreate.mdx b/src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-types/offercreate.mdx new file mode 100644 index 0000000..5721ed2 --- /dev/null +++ b/src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-types/offercreate.mdx @@ -0,0 +1,68 @@ +--- +title: OfferCreate +description: >- + Uma transação OfferCreate coloca uma Oferta na + exchange descentralizada. +--- +\[[Fonte](https://github.com/Xahau/xahaud/blob/dev/src/ripple/app/tx/impl/URIToken.cpp)] + +### Exemplo + +```json +{ + "TransactionType": "OfferCreate", + "Account": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", + "Fee": "12", + "Flags": 0, + "LastLedgerSequence": 7108682, + "Sequence": 8, + "TakerGets": "6000000", + "TakerPays": { + "currency": "GKO", + "issuer": "ruazs5h1qEsqpke88pcqnaseXdm6od2xc", + "value": "2" + } +} +``` + +### Campos + +| Campo | Tipo JSON | \[Tipo Interno]\[] | Descrição | +| --------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ------------------- | ------------------------------------------------------------------------------------------------------ | +| `Expiration` | Number | UInt32 | _(Opcional)_ Momento após o qual a Oferta deixa de estar ativa, em \[segundos desde a Época Ripple]\[]. | +| `OfferSequence` | Number | UInt32 | _(Opcional)_ Uma Oferta a ser excluída primeiro, especificada da mesma forma que \[OfferCancel]\[]. | +| `OfferID` | String | Hash256 | _(Opcional)_ O ID do objeto de Oferta no ledger a ser cancelado, como uma string hexadecimal de 64 caracteres. | +| `TakerGets` | [Valor em Moeda](/docs/protocol-reference/data-types/currency-formats/#specifying-currency-amounts) | Amount | O valor e o tipo de moeda sendo vendida. | +| `TakerPays` | [Valor em Moeda](/docs/protocol-reference/data-types/currency-formats/#specifying-currency-amounts) | Amount | O valor e o tipo de moeda sendo comprada. | + +### Flags do OfferCreate + +Transações do tipo OfferCreate suportam valores adicionais no campo `Flags`, conforme abaixo: + +| Nome da Flag | Valor Hex | Valor Decimal | Descrição | +| --------------------- | ------------ | ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `tfPassive` | `0x00010000` | 65536 | Se habilitado, a Oferta não consome Ofertas que correspondam exatamente a ela e, em vez disso, torna-se um objeto Oferta no ledger. Ainda assim, consome Ofertas que a cruzem. | +| `tfImmediateOrCancel` | `0x00020000` | 131072 | Trata a Oferta como uma [ordem Immediate or Cancel](http://en.wikipedia.org/wiki/Immediate_or_cancel). A Oferta nunca cria um \[objeto Oferta]\[] no ledger: ela apenas negocia o máximo possível consumindo Ofertas existentes no momento em que a transação é processada. Se nenhuma Oferta corresponder, ela é executada "com sucesso" sem negociar nada. Nesse caso, a transação ainda usa o código de resultado `tesSUCCESS`. | +| `tfFillOrKill` | `0x00040000` | 262144 | Trata a oferta como uma [ordem Fill or Kill](http://en.wikipedia.org/wiki/Fill_or_kill). A Oferta nunca cria um \[objeto Oferta]\[] no ledger e é cancelada se não puder ser totalmente preenchida no momento da execução. Por padrão, isso significa que o proprietário deve receber o valor total de `TakerPays`; se a flag `tfSell` estiver habilitada, o proprietário deve ser capaz de gastar todo o valor de `TakerGets`. | +| `tfSell` | `0x00080000` | 524288 | Troca todo o valor de `TakerGets`, mesmo que isso implique obter mais do que o valor de `TakerPays` em troca. | + +### Casos de Erro + +| Código de Erro | Descrição | +| ------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `temINVALID_FLAG` | Ocorre se a transação especifica tanto `tfImmediateOrCancel` quanto `tfFillOrKill`. | +| `tecEXPIRED` | Ocorre se a transação especifica um tempo de `Expiration` que já passou. | +| `tecKILLED` | Ocorre se a transação especifica `tfFillOrKill` e o valor total não pode ser preenchido. Se a _\[emenda ImmediateOfferKilled]\[]_ estiver habilitada, este código de resultado também ocorre quando a transação especifica `tfImmediateOrCancel` e é executada sem mover fundos (anteriormente, isso retornaria `tesSUCCESS`). | +| `temBAD_EXPIRATION` | Ocorre se a transação contém um campo `Expiration` com formato inválido. | +| `temBAD_SEQUENCE` | Ocorre se a transação contém um `OfferSequence` com formato inválido ou maior que o próprio número de `Sequence` da transação. | +| `temBAD_OFFER` | Ocorre se a Oferta tenta trocar XAH por XAH ou tenta negociar um valor inválido ou negativo de um token. | +| `temREDUNDANT` | Ocorre se a transação especifica um token pelo mesmo token (mesmo emissor e código de moeda). | +| `temBAD_CURRENCY` | Ocorre se a transação especifica um token com o código de moeda "XAH". | +| `temBAD_ISSUER` | Ocorre se a transação especifica um token com um valor de `issuer` inválido. | +| `tecNO_ISSUER` | Ocorre se a transação especifica um token cujo valor de `issuer` não é uma conta com fundos no ledger. | +| `tecFROZEN` | Ocorre se a transação envolve um token em uma linha de confiança congelada (incluindo congelamentos locais e globais). | +| `tecUNFUNDED_OFFER` | Ocorre se o proprietário não possui um valor positivo da moeda `TakerGets`. (Exceção: se `TakerGets` especifica um token que o proprietário emite, a transação pode ter sucesso.) | +| `tecNO_LINE` | Ocorre se a transação envolve um token cujo emissor usa Linhas de Confiança Autorizadas e a linha de confiança necessária não existe. | +| `tecNO_AUTH` | Ocorre se a transação envolve um token cujo emissor usa Linhas de Confiança Autorizadas e a linha de confiança que receberia os tokens existe, mas não foi autorizada. | +| `tecINSUF_RESERVE_OFFER` | Ocorre se o proprietário não tem XAH suficiente para atender ao requisito de reserva para adicionar um novo objeto Oferta ao ledger, e a transação não converteu nenhuma moeda. (Se a transação negociou qualquer valor com sucesso, ela é concluída com o código de resultado `tesSUCCESS`, mas não cria um objeto Oferta no ledger para o restante.) | +| `tecDIR_FULL` | Ocorre se o proprietário possui muitos itens no ledger ou o livro de ordens já contém muitas Ofertas na mesma taxa de câmbio. | diff --git a/src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-types/payment.mdx b/src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-types/payment.mdx new file mode 100644 index 0000000..e8e2315 --- /dev/null +++ b/src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-types/payment.mdx @@ -0,0 +1,113 @@ +--- +title: Payment +description: >- + Uma transação Payment representa uma transferência de valor de uma conta para + outra. (Dependendo do caminho percorrido, isso pode envolver trocas adicionais + de valor, que ocorrem atomicamente.) Esta transação +--- +[\[Fonte\]](https://github.com/ripple/rippled/blob/5425a90f160711e46b2c1f1c93d68e5941e4bfb6/src/ripple/app/transactors/Payment.cpp) + +### Exemplo + +```json +{ + "TransactionType" : "Payment", + "Account" : "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "Destination" : "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", + "Amount" : { + "currency" : "USD", + "value" : "1", + "issuer" : "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn" + }, + "Fee": "12", + "Flags": 2147483648, + "Sequence": 2, +} +``` + +| Campo | Tipo JSON | \[Tipo Interno]\[] | Descrição | +| ---------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `Amount` | [Valor de Moeda](/docs/protocol-reference/data-types/currency-formats/#specifying-currency-amounts) | Amount | A quantidade de moeda a ser entregue. Para valores não-XAH, os nomes dos campos aninhados DEVEM estar em letras minúsculas. Se a flag `tfPartialPayment` estiver definida, entrega _até_ esse valor em vez do exato. | +| `Destination` | String | AccountID | O endereço único da conta que receberá o pagamento. | +| `DestinationTag` | Number | UInt32 | _(Opcional)_ Tag arbitrária que identifica o motivo do pagamento ao destino, ou um destinatário hospedado a ser pago. | +| `InvoiceID` | String | Hash256 | _(Opcional)_ Hash arbitrário de 256 bits representando um motivo ou identificador específico para este pagamento. | +| `Paths` | Array de arrays de caminho | PathSet | (Opcional, preenchível automaticamente) Array de caminhos de pagamento a serem usados nesta transação. Deve ser omitido em transações XAH-para-XAH. | +| `SendMax` | [Valor de Moeda](/docs/protocol-reference/data-types/currency-formats/#specifying-currency-amounts) | Amount | _(Opcional)_ Maior valor de moeda de origem que esta transação pode custar, incluindo taxas de transferência, taxas de câmbio e [slippage](http://en.wikipedia.org/wiki/Slippage_\(finance\)). Não inclui o XAH destruído como custo de envio da transação. Para valores não-XAH, os nomes dos campos aninhados DEVEM estar em letras minúsculas. Deve ser fornecido para pagamentos entre moedas/emissores diferentes. Deve ser omitido em pagamentos XAH-para-XAH. | +| `DeliverMin` | \[Valor de Moeda]\[] | Amount | _(Opcional)_ Valor mínimo de moeda de destino que esta transação deve entregar. Válido apenas para pagamentos parciais. Para valores não-XAH, os nomes dos campos aninhados estão em letras minúsculas. | + +### Tipos de Pagamentos + +O tipo de transação Payment é uma ferramenta de uso geral que pode representar vários tipos diferentes de ações abstratas. Você pode identificar o tipo de transação com base nos campos da transação, conforme descrito na tabela abaixo: + +| Tipo de pagamento | `Amount` | `SendMax` | `Paths` | `Address` = `Destination`? | Descrição | +| --------------------------------- | ------------------------------- | ------------------------------- | ---------------- | -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Pagamento direto XAH-para-XAH | String (XAH) | Omitido | Omitido | Não | Transfere XAH diretamente de uma conta para outra. Sempre entrega o valor exato. Nenhuma taxa se aplica além do custo básico da transação. | +| Criação ou resgate de tokens | Objeto | Objeto (opcional) | Opcional | Não | Aumenta ou diminui a quantidade de uma moeda ou ativo não-XAH rastreado no Xahau. Taxas de transferência e congelamentos não se aplicam ao enviar e resgatar diretamente. | +| Pagamento entre moedas | Objeto (não-XAH) / String (XAH) | Objeto (não-XAH) / String (XAH) | Geralmente obrigatório | Não | Envia tokens de um titular para outro. O `Amount` ou `SendMax` pode ser XAH ou tokens, mas não podem ser ambos XAH. Esses pagamentos passam pelo emissor e podem percorrer caminhos mais longos por vários intermediários se a transação especificar um conjunto de caminhos. Taxas de transferência definidas pelo(s) emissor(es) se aplicam a este tipo de transação. Essas transações consomem ofertas na exchange descentralizada para conectar diferentes moedas, ou possivelmente até moedas com o mesmo código e emissores diferentes. | +| Pagamento parcial | Objeto (não-XAH) / String (XAH) | Objeto (não-XAH) / String (XAH) | Geralmente obrigatório | Não | Envia _até_ um valor específico em qualquer moeda. Usa a flag `tfPartialPayment`. Pode incluir um valor `DeliverMin` especificando o mínimo que a transação deve entregar para ser bem-sucedida; se a transação não especificar `DeliverMin`, ela pode ter sucesso entregando _qualquer valor positivo_. | +| Conversão de moeda | Objeto (não-XAH) / String (XAH) | Objeto (não-XAH) / String (XAH) | Obrigatório | Sim | Consome ofertas na exchange descentralizada para converter uma moeda em outra, possivelmente aproveitando oportunidades de [arbitragem](https://en.wikipedia.org/wiki/Arbitrage). O `Amount` e o `SendMax` não podem ser ambos XAH. Também chamado de _pagamento circular_ porque entrega dinheiro ao remetente. A API de Dados rastreia este tipo de transação como uma "troca" e não um "pagamento". | + +### Valores especiais de emissor para SendMax e Amount + +Na maioria das vezes, o campo `issuer` de um \[Valor de Moeda]\[] não-XAH indica o emissor de um token. No entanto, ao descrever pagamentos, existem regras especiais para o campo `issuer` nos campos `Amount` e `SendMax` de um pagamento. + +* Existe apenas um saldo entre dois endereços para o mesmo código de moeda. Isso significa que, às vezes, o campo `issuer` de um valor na verdade se refere a uma contraparte, em vez do endereço que emitiu o token. +* Quando o campo `issuer` do campo de destino `Amount` corresponde ao endereço de `Destination`, ele é tratado como um caso especial significando "qualquer emissor que o destino aceite." Isso inclui todos os endereços para os quais o destino possui linhas de confiança com limite positivo, bem como tokens com o mesmo código de moeda emitidos pelo destino. +* Quando o campo `issuer` do campo `SendMax` corresponde ao endereço da conta de origem, ele é tratado como um caso especial significando "qualquer emissor que a origem possa usar." Isso inclui a criação de novos tokens em linhas de confiança que outras contas estenderam à conta de origem, e o envio de tokens que a conta de origem detém de outros emissores. + +### Criando Contas + +O tipo de transação Payment pode criar novas contas no Xahau enviando XAH suficiente para um endereço sem fundos. Outras transações para endereços sem fundos sempre falham. + +Para mais informações, consulte Contas. + +### Caminhos + +Se presente, o campo `Paths` deve conter um _conjunto de caminhos_ — um array de arrays de caminhos. Cada caminho individual representa uma forma pela qual o valor pode fluir do remetente ao destinatário por meio de várias contas intermediárias e livros de ordens. Uma única transação pode potencialmente usar múltiplos caminhos, por exemplo, se a transação trocar moeda usando vários livros de ordens diferentes para obter a melhor taxa. + +Você deve omitir o campo `Paths` para pagamentos diretos, incluindo: + +* Uma transferência XAH-para-XAH. +* Uma transferência direta em uma linha de confiança que conecta o remetente e o destinatário. + +Se o campo `Paths` for fornecido, o servidor decide no momento do processamento da transação quais caminhos usar, a partir do conjunto fornecido mais um _caminho padrão_ (a forma mais direta possível de conectar as contas especificadas). Essa decisão é determinística e tenta minimizar os custos, mas não há garantia de que seja perfeita. + +O campo `Paths` não deve ser um array vazio, nem um array cujos membros sejam todos arrays vazios. + +Para mais informações, consulte Caminhos. + +### Flags de Pagamento + +Transações do tipo Payment suportam valores adicionais no campo `Flags`, da seguinte forma: + +| Nome da Flag | Valor Hex | Valor Decimal | Descrição | +| ------------------ | ------------ | ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `tfNoDirectRipple` | `0x00010000` | 65536 | Não usar o caminho padrão; usar apenas os caminhos incluídos no campo `Paths`. Isso tem o objetivo de forçar a transação a aproveitar oportunidades de arbitragem. A maioria dos clientes não precisa disso. | +| `tfPartialPayment` | `0x00020000` | 131072 | Se o `Amount` especificado não puder ser enviado sem gastar mais do que `SendMax`, reduz o valor recebido em vez de falhar completamente. Consulte Pagamentos Parciais para mais detalhes. | +| `tfLimitQuality` | `0x00040000` | 262144 | Usar apenas caminhos onde todas as conversões tenham uma proporção entrada:saída igual ou melhor que a proporção `Amount`:`SendMax`. Consulte Limite de Qualidade para detalhes. | + +### Pagamentos Parciais + +Um pagamento parcial permite que um pagamento seja bem-sucedido reduzindo o valor recebido. Pagamentos parciais são úteis para devolver pagamentos sem incorrer em custos adicionais para si mesmo. No entanto, pagamentos parciais também podem ser usados para explorar integrações que ingenuamente assumem que o campo `Amount` de uma transação bem-sucedida sempre descreve o valor exato entregue. + +Um pagamento parcial é qualquer \[transação Payment]\[] com a flag `tfPartialPayment` habilitada. Um pagamento parcial pode ser bem-sucedido se entregar qualquer valor positivo maior ou igual ao seu campo `DeliverMin` (ou qualquer valor positivo se `DeliverMin` não for especificado) sem enviar mais do que o valor de `SendMax`. + +O campo `delivered_amount` nos metadados de um pagamento indica o valor de moeda efetivamente recebido pela conta de destino. + +Para mais informações, consulte o artigo completo sobre Pagamentos Parciais. + +### Limite de Qualidade + +O Xahau define a "qualidade" de uma troca de moeda como a proporção do valor numérico de entrada pelo valor numérico de saída. Por exemplo, se você gasta $2 USD para receber £1 GBP, então a "qualidade" dessa troca é `0.5`. + +A flag `tfLimitQuality` permite definir uma qualidade mínima de conversões que você está disposto a aceitar. Esse limite de qualidade é definido como o `Amount` de destino dividido pelo valor de `SendMax` (apenas os valores numéricos, independentemente da moeda). Quando definida, o mecanismo de processamento de pagamentos evita usar qualquer caminho cuja qualidade (taxa de conversão) seja pior (numericamente inferior) que o limite de qualidade. + +Por si só, a flag `tfLimitQuality` reduz o número de situações em que uma transação pode ser bem-sucedida. Especificamente, ela rejeita pagamentos onde alguma parte do pagamento usa uma conversão desfavorável, mesmo que a qualidade _média_ geral das conversões no pagamento seja igual ou melhor que o limite de qualidade. Se um pagamento for rejeitado dessa forma, o resultado da transação é `tecPATH_DRY`. + +Considere o seguinte exemplo. Se estou tentando enviar a você 100 yuans chineses (`Amount` = 100 CNY) por 20 dólares americanos (`SendMax` = 20 USD) ou menos, então o limite de qualidade é `5`. Imagine que um trader está oferecendo ¥95 por $15 (uma proporção de cerca de `6,3` CNY por USD), mas a próxima melhor oferta no mercado é ¥5 por $2 (uma proporção de `2,5` CNY por USD). Se eu aceitasse ambas as ofertas para enviar a você 100 CNY, custaria 17 USD, para uma qualidade média de cerca de `5,9`. + +Sem a flag `tfLimitQuality` definida, essa transação seria bem-sucedida, pois os $17 que me custaria estão dentro do meu `SendMax` especificado. No entanto, com a flag `tfLimitQuality` habilitada, a transação falharia, pois o caminho para aceitar a segunda oferta tem uma qualidade de `2,5`, que é pior que o limite de qualidade de `5`. + +A flag `tfLimitQuality` é mais útil quando combinada com pagamentos parciais. Quando tanto `tfPartialPayment` quanto `tfLimitQuality` estão definidos em uma transação, ela entrega o máximo possível do `Amount` de destino, sem usar conversões piores que o limite de qualidade. + +No exemplo acima com uma oferta de ¥95/$15 e uma oferta de ¥5/$2, a situação é diferente se minha transação tiver `tfPartialPayment` e `tfLimitQuality` habilitados. Se mantivermos meu `SendMax` de 20 USD e um `Amount` de destino de 100 CNY, o limite de qualidade ainda é `5`. No entanto, como estou fazendo um pagamento parcial, a transação envia o máximo possível em vez de falhar se o valor total de destino não puder ser enviado. Isso significa que minha transação consome a oferta de ¥95/$15, cuja qualidade é cerca de `6,3`, mas rejeita a oferta de ¥5/$2 porque a qualidade dessa oferta de `2,5` é pior que o limite de qualidade de `5`. No final, minha transação entrega apenas ¥95 em vez dos ¥100 completos, mas evita desperdiçar dinheiro em taxas de câmbio desfavoráveis. diff --git a/src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-types/paymentchannelclaim.mdx b/src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-types/paymentchannelclaim.mdx new file mode 100644 index 0000000..c14cffa --- /dev/null +++ b/src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-types/paymentchannelclaim.mdx @@ -0,0 +1,60 @@ +--- +title: PaymentChannelClaim +description: >- + Reivindique um Valor de um canal de pagamento, ajuste a expiração do canal, + ou ambos. Esta transação pode ser usada de formas diferentes dependendo do + papel do remetente na transação no canal especificado: +--- +[\[Fonte\]](https://github.com/ripple/rippled/blob/master/src/ripple/app/tx/impl/PayChan.cpp) + +_Adicionado pela \[emenda PayChan]\[]._ + +O **endereço de origem** de um canal pode: + +* Enviar Valor do canal para o destino _com ou sem_ uma Reivindicação assinada. +* Configurar o canal para expirar assim que o `SettleDelay` do canal tiver passado. +* Limpar um tempo de `Expiration` pendente. +* Fechar um canal imediatamente, com ou sem processar uma reivindicação primeiro. O endereço de origem não pode fechar o canal imediatamente se o canal ainda possui Valor restante. + +O **endereço de destino** de um canal pode: + +* Receber Valor do canal usando uma Reivindicação assinada. +* Fechar o canal imediatamente após processar uma Reivindicação, devolvendo qualquer Valor não reivindicado à origem do canal. + +**Qualquer endereço** que envie esta transação pode: + +* Causar o fechamento de um canal se seu tempo de `Expiration` ou `CancelAfter` for anterior ao tempo de fechamento do ledger anterior. Qualquer transação PaymentChannelClaim válida tem esse efeito independentemente do conteúdo da transação. + +### Exemplo + +```json +{ + "Channel": "C1AE6DDDEEC05CF2978C0BAD6FE302948E9533691DC749DCDD3B9E5992CA6198", + "Amount" : { + "currency" : "USD", + "value" : "1", + "issuer" : "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn" + }, + "Signature": "30440220718D264EF05CAED7C781FF6DE298DCAC68D002562C9BF3A07C1E721B420C0DAB02203A5A4779EF4D2CCC7BC3EF886676D803A9981B928D3B8ACA483B80ECA3CD7B9B", + "PublicKey": "32D2471DB72B27E3310F355BB33E339BF26F8392D5A93D3BC0FC3B566612DA0F0A" +} +``` + +| Campo | Tipo JSON | \[Tipo Interno]\[] | Descrição | +| ----------- | ---------------------------------------------------------------------------------------------------------------------------------- | ------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Channel` | String | Hash256 | O ID único do canal, como uma string hexadecimal de 64 caracteres. | +| `Balance` | [Valor em Moeda](/docs/protocol-reference/data-types/currency-formats/#specifying-currency-amounts) | Amount | _(Opcional)_ Valor total entregue por este canal após o processamento desta reivindicação. Necessário para entregar Valor. Deve ser maior que o valor total já entregue pelo canal, mas não superior ao `Amount` da reivindicação assinada. Deve ser fornecido exceto ao fechar o canal. | +| `Amount` | [Valor em Moeda](/docs/protocol-reference/data-types/currency-formats/#specifying-currency-amounts) | Amount | _(Opcional)_ O valor autorizado pela `Signature`. Deve corresponder ao valor na mensagem assinada. Este é o valor acumulado de Valor que pode ser dispensado pelo canal, incluindo XAH previamente resgatado. | +| `Signature` | String | Blob | _(Opcional)_ A assinatura desta reivindicação, em hexadecimal. A mensagem assinada contém o ID do canal e o valor da reivindicação. Obrigatório, a menos que o remetente da transação seja o endereço de origem do canal. | +| `PublicKey` | String | Blob | _(Opcional)_ A chave pública usada para a assinatura, em hexadecimal. Deve corresponder à `PublicKey` armazenada no ledger para o canal. Obrigatório, a menos que o remetente da transação seja o endereço de origem do canal e o campo `Signature` seja omitido. (A transação inclui a chave pública para que o `rippled` possa verificar a validade da assinatura antes de tentar aplicar a transação ao ledger.) | + +Se o canal de pagamento foi criado antes de a emenda fixPayChanRecipientOwnerDir ser habilitada (em 01/05/2020), é possível que o destino do canal de pagamento tenha sido excluído e não exista atualmente no ledger. Se o destino foi excluído, a conta de origem não pode enviar XAH do canal ao destino; em vez disso, a transação falha com `tecNO_DST`. (E, claro, a conta excluída não pode enviar nenhuma transação.) Outros usos deste tipo de transação não são afetados quando a conta de destino foi excluída, incluindo o ajuste da expiração do canal, o fechamento de um canal sem Valor, ou a remoção de um canal que passou seu tempo de expiração. + +### Flags de PaymentChannelClaim + +Transações do tipo PaymentChannelClaim suportam valores adicionais no campo `Flags`, como segue: + +| Nome da Flag | Valor Hex | Valor Decimal | Descrição | +| --------- | ------------ | ------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `tfRenew` | `0x00010000` | 65536 | Limpa o tempo de `Expiration` do canal. (`Expiration` é diferente do tempo imutável `CancelAfter` do canal.) Apenas o endereço de origem do canal de pagamento pode usar esta flag. | +| `tfClose` | `0x00020000` | 131072 | Solicita o fechamento do canal. Apenas os endereços de origem e destino do canal podem usar esta flag. Esta flag fecha o canal imediatamente se não houver mais Valor alocado após o processamento da reivindicação atual, ou se o endereço de destino a utilizar. Se o endereço de origem usar esta flag enquanto o canal ainda possui Valor, isso agenda o fechamento do canal após `SettleDelay` segundos. (Especificamente, isso define a `Expiration` do canal como o tempo de fechamento do ledger anterior mais o tempo de `SettleDelay` do canal, a menos que o canal já tenha um tempo de `Expiration` anterior.) Se o endereço de destino usar esta flag enquanto o canal ainda possui Valor, qualquer Valor restante após o processamento da reivindicação é devolvido ao endereço de origem. | diff --git a/src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-types/paymentchannelcreate.mdx b/src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-types/paymentchannelcreate.mdx new file mode 100644 index 0000000..15b207d --- /dev/null +++ b/src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-types/paymentchannelcreate.mdx @@ -0,0 +1,40 @@ +--- +title: PaymentChannelCreate +description: >- + Cria um canal de pagamento e o financia com um Amount. O endereço que envia + esta transação torna-se o "endereço de origem" do canal de pagamento. +--- +[\[Fonte\]](https://github.com/Xahau/xahaud/blob/master/src/ripple/app/tx/impl/PayChan.cpp) + +_Adicionado pela \[emenda PayChan]\[]._ + +### Exemplo + +```json +{ + "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "TransactionType": "PaymentChannelCreate", + "Amount" : { + "currency" : "USD", + "value" : "1", + "issuer" : "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn" + }, + "Destination": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", + "SettleDelay": 86400, + "PublicKey": "32D2471DB72B27E3310F355BB33E339BF26F8392D5A93D3BC0FC3B566612DA0F0A", + "CancelAfter": 533171558, + "DestinationTag": 23480, + "SourceTag": 11747 +} +``` + +| Campo | Tipo JSON | \[Tipo Interno]\[] | Descrição | +| ---------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Amount` | [Valor em Moeda](/docs/protocol-reference/data-types/currency-formats/#specifying-currency-amounts) | Amount | Valor a ser deduzido do saldo do remetente e reservado neste canal. Enquanto o canal estiver aberto, o Amount só pode ser enviado ao endereço `Destination`. Quando o canal for fechado, qualquer Amount não reivindicado é devolvido ao saldo do endereço de origem. | +| `Destination` | String | AccountID | Endereço para receber reivindicações contra este canal. Também conhecido como "endereço de destino" do canal. Não pode ser o mesmo que o remetente (`Account`). | +| `SettleDelay` | Number | UInt32 | Tempo que o endereço de origem deve aguardar antes de fechar o canal caso haja Amount não reivindicado. | +| `PublicKey` | String | Blob | A chave pública de 33 bytes do par de chaves que a origem usará para assinar reivindicações contra este canal, em hexadecimal. Pode ser qualquer chave pública secp256k1 ou Ed25519. Para mais informações sobre pares de chaves, consulte Derivação de Chaves. | +| `CancelAfter` | Number | UInt32 | _(Opcional)_ O momento, em \[segundos desde a Época Ripple]\[], em que este canal expira. Qualquer transação que modifique o canal após este momento o fecha sem outros efeitos. Este valor é imutável; o canal pode ser fechado antes deste momento, mas não pode permanecer aberto após ele. | +| `DestinationTag` | Number | UInt32 | _(Opcional)_ Tag arbitrária para especificar melhor o destino deste canal de pagamento, como um destinatário hospedado no endereço de destino. | + +Se a conta `Destination` estiver bloqueando canais de pagamento recebidos, a transação falha com o código de resultado `tecNO_PERMISSION`. _(Requer a \[emenda DisallowIncoming]\[] :not_enabled:)_ diff --git a/src/content/docs/br/docs/protocol-reference/transactions/transaction-types/paymentchannelfund.mdx b/src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-types/paymentchannelfund.mdx similarity index 55% rename from src/content/docs/br/docs/protocol-reference/transactions/transaction-types/paymentchannelfund.mdx rename to src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-types/paymentchannelfund.mdx index c12bf58..7616e7e 100644 --- a/src/content/docs/br/docs/protocol-reference/transactions/transaction-types/paymentchannelfund.mdx +++ b/src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-types/paymentchannelfund.mdx @@ -1,15 +1,15 @@ --- title: PaymentChannelFund description: >- - Add additional Amount to an open payment channel, and optionally update the - expiration time of the channel. Only the source address of the channel can use - this transaction. + Adiciona um valor adicional a um canal de pagamento aberto e, opcionalmente, + atualiza o tempo de expiração do canal. Apenas o endereço de origem do canal + pode utilizar esta transação. --- -[\[Source\]](https://github.com/ripple/rippled/blob/master/src/ripple/app/tx/impl/PayChan.cpp) +[\[Fonte\]](https://github.com/ripple/rippled/blob/master/src/ripple/app/tx/impl/PayChan.cpp) -_Added by the \[PayChan amendment]\[]._ +_Adicionado pela \[emenda PayChan]\[]._ -### Example +### Exemplo ```json { @@ -25,22 +25,22 @@ _Added by the \[PayChan amendment]\[]._ } ``` -| Field | JSON Type | \[Internal Type]\[] | Description | +| Campo | Tipo JSON | \[Tipo Interno]\[] | Descrição | | ------------ | ---------------------------------------------------------------------------------------------------------------------------------- | ------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `Channel` | String | Hash256 | The unique ID of the channel to fund, as a 64-character hexadecimal string. | -| `Amount` | [Currency Amount](/docs/protocol-reference/data-types/currency-formats/#specifying-currency-amounts) | Amount | Amount to add to the channel. Must be a positive amount. | -| `Expiration` | Number | UInt32 | _(Optional)_ New `Expiration` time to set for the channel, in \[seconds since the Ripple Epoch]\[]. This must be later than either the current time plus the `SettleDelay` of the channel, or the existing `Expiration` of the channel. After the `Expiration` time, any transaction that would access the channel closes the channel without taking its normal action. Any unspent Amount is returned to the source address when the channel closes. (`Expiration` is separate from the channel's immutable `CancelAfter` time.) For more information, see the PayChannel ledger object type. | +| `Channel` | String | Hash256 | O ID único do canal a ser financiado, como uma string hexadecimal de 64 caracteres. | +| `Amount` | [Valor em Moeda](/docs/protocol-reference/data-types/currency-formats/#specifying-currency-amounts) | Amount | Valor a ser adicionado ao canal. Deve ser um valor positivo. | +| `Expiration` | Number | UInt32 | _(Opcional)_ Novo tempo de `Expiration` a ser definido para o canal, em \[segundos desde o Epoch Ripple]\[]. Deve ser posterior ao tempo atual mais o `SettleDelay` do canal, ou à `Expiration` existente do canal. Após o tempo de `Expiration`, qualquer transação que acesse o canal fecha o canal sem executar sua ação normal. Qualquer valor não gasto é devolvido ao endereço de origem quando o canal é fechado. (`Expiration` é separado do tempo imutável `CancelAfter` do canal.) Para mais informações, consulte o tipo de objeto de ledger PayChannel. | -### Error Cases +### Casos de Erro -Besides errors that can occur for all transactions, PaymentChannelFund transactions can result in the following transaction result codes: +Além dos erros que podem ocorrer em todas as transações, as transações PaymentChannelFund podem resultar nos seguintes códigos de resultado: -| Error Code | Description | +| Código de Erro | Descrição | | ------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `tecINSUFFICIENT_RESERVE` | The sending account has less XAH than the reserve requirement. | -| `tecNO_DST` | The destination account of the channel has been deleted. This is only possible if the payment channel was created before the fixPayChanRecipientOwnerDir amendment became enabled (on 2020-05-01). | -| `tecNO_ENTRY` | The Payment Channel identified by the `Channel` field does not exist. | -| `tecNO_PERMISSION` | The sender of the transaction is not the source address for the channel. | -| `tecUNFUNDED` | The sending account does not have enough Amount to fund the channel with the requested amount and still meet the reserve requirement. | -| `temBAD_AMOUNT` | The `Amount` field of the transaction is invalid. The amount cannot be zero or negative. | -| `temBAD_EXPIRATION` | The `Expiration` field is invalid. | +| `tecINSUFFICIENT_RESERVE` | A conta remetente possui menos XAH do que o requisito de reserva. | +| `tecNO_DST` | A conta de destino do canal foi excluída. Isso só é possível se o canal de pagamento foi criado antes da emenda fixPayChanRecipientOwnerDir entrar em vigor (em 2020-05-01). | +| `tecNO_ENTRY` | O Canal de Pagamento identificado pelo campo `Channel` não existe. | +| `tecNO_PERMISSION` | O remetente da transação não é o endereço de origem do canal. | +| `tecUNFUNDED` | A conta remetente não possui valor suficiente para financiar o canal com o montante solicitado e ainda atender ao requisito de reserva. | +| `temBAD_AMOUNT` | O campo `Amount` da transação é inválido. O valor não pode ser zero ou negativo. | +| `temBAD_EXPIRATION` | O campo `Expiration` é inválido. | diff --git a/src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-types/remit.mdx b/src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-types/remit.mdx new file mode 100644 index 0000000..ab91834 --- /dev/null +++ b/src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-types/remit.mdx @@ -0,0 +1,119 @@ +--- +title: Remit +description: >- + A transação Remit permite ao usuário enviar múltiplos tipos de pagamento, mintar um + URIToken, transferir uma lista de URITokens e ativar uma conta. +--- +import { Aside } from '@astrojs/starlight/components'; + + + +\[[Fonte](https://github.com/Xahau/xahaud/blob/dev/src/ripple/app/tx/impl/Remit.cpp)] + +_(Adicionado pela \[emenda Remit]\[].)_ + +### Exemplo + +```json +{ + "TransactionType": "Remit", + "Account": "rGvbdrdCxG2tk9ZU2673XmsjRdHCDQEpt7", + "Amounts": [ + { + "AmountEntry": { + "Amount": "1000000" + } + }, { + "AmountEntry": { + "Amount": { + "currency": "USD", + "issuer": "rExKpRKXNz25UAjbckCRtQsJFcSfjL9Er3", + "value": "1" + } + } + } + ], + "Destination": "rG1QQv2nh2gr7RCZ1P8YYcBUKCCN633jCn", + "URITokenIDs": [ + "714F206C865D334721B2F3388BEAF33AA91BC1D78C71941D10A2A653C873EDD3" + ], + "MintURIToken": { + "Digest": "6F11A4DF4EE794E2800BB361173D454BFBECB3D7506C4F4CB0EC5AE98BE43747", + "Flags": 1, + "URI": "697066733A2F2F" + } +} +``` + +| Campo | Tipo JSON | \[Tipo Interno]\[] | Descrição | +| ---------------- | --------- | ------------------ | ----------------------------------------------------------------------------------------------------------------------- | +| `Account` | String | AccountID | O endereço da conta que irá ativar a conta, enviar o pagamento e/ou mintar/transferir o(s) URIToken(s). | +| `Destination` | String | AccountID | O endereço único da conta que receberá o pagamento e/ou o(s) URIToken(s). | +| `DestinationTag` | Number | UInt32 | _(Opcional)_ Uma DestinationTag para depósitos em uma conta de custódia compartilhada. | +| `MintURIToken` | Object | STObject | _(Opcional)_ Um STObject `MintURIToken` contendo os detalhes do URIToken que deseja mintar no `Destination`. | +| `URITokenIDs` | Array | STArray | _(Opcional)_ Um array de URITokenIDs (hash de 256 bits) a serem transferidos para o `Destination`. _Limite de 32._ | +| `Amounts` | Array | STArray | _(Opcional)_ Um array de STObjects `AmountEntry` que a conta deseja enviar ao `Destination`. _Limite de 32._ | +| `Inform` | String | AccountID | _(Opcional)_ Endereço único de uma conta que pode ter um hook instalado e ser notificada quando uma remessa ocorrer. | +| `Blob` | String | Blob | _(Opcional)_ Valor hexadecimal arbitrário que pode ser adicionado à transação para uso em Hooks. | +| `InvoiceID` | String | Hash256 | _(Opcional)_ Hash de 256 bits arbitrário representando um motivo específico ou identificador para esta remessa. | + +### Campos de AmountEntry + +| Campo | Tipo JSON | \[Tipo Interno]\[] | Descrição | +| -------- | ---------------------------------------------------------------------------------------------------------------------------------- | ------------------ | ---------------------------------------------------------------------------- | +| `Amount` | [Valor de Moeda](/docs/protocol-reference/data-types/currency-formats/#specifying-currency-amounts) | Amount | O valor da moeda que a conta deseja enviar ao `Destination`. | + +### Campos de MintURIToken + +| Campo | Tipo JSON | \[Tipo Interno]\[] | Descrição | +| -------- | --------- | ------------------ | ------------------------------------------------------------------ | +| `URI` | String | String | A URI associada ao URIToken mintado. (máximo de 256 bytes) | +| `Digest` | String | Hash256 | _(Opcional)_ O digest do URIToken. | +| `Flags` | Number | UInt32 | _(Opcional)_ Flags na transação de mint. | + +### Flags de MintURIToken + +O STObject `MintURIToken` suporta os seguintes valores no campo `Flags`: + +| Nome da Flag | Valor Hex | Valor Decimal | Descrição | +| ------------ | ------------ | ------------- | ------------------------------------------------------------------------------------------------------ | +| `tfBurnable` | `0x00000001` | 1 | Permite ao emissor destruir o `URIToken` mintado. (O proprietário do `URIToken` _sempre_ pode fazê-lo.) | + +### Custo Especial de Transação + +A transação Remit possui um custo de transação padrão, que é a taxa mínima exigida para qualquer transação no Xahau. + +Além da taxa mínima exigida, a transação Remit também deduzirá as taxas para o seguinte: + +| Ação | Taxa | +| -------------------- | ---------------------------------- | +| `Account Activation` | Requisito de Reserva Padrão | +| `Create Trustline` | Requisito de Reserva Padrão | +| `URIToken Mint` | Requisito de Reserva Padrão | +| `URIToken Transfer` | Requisito de Reserva Padrão | + +### Casos de Erro + +Além dos erros que podem ocorrer em todas as transações, as transações Remit podem resultar nos seguintes códigos de resultado: + +| Código de Erro | Descrição | +| ------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `temINVALID_FLAG` | Ocorre se alguma flag especificar `tfFullyCanonicalSig`. | +| `temREDUNDANT` | Ocorre se a Account for igual ao Destination. | +| `temMALFORMED (Inform & Blob)` | Ocorre quando: sfInform é igual à origem ou ao destino. O Blob tinha mais de 128 KiB. | +| `temMALFORMED (AmountEntry)` | Ocorre quando: a contagem de AmountEntry excede `32`. AmountEntry esperado. A moeda nativa aparece mais de uma vez. A moeda emitida aparece mais de uma vez. | +| `temMALFORMED (MintURIToken)` | Ocorre quando: sfMintURIToken contém campo inválido. A URI não foi fornecida. A URI era muito longa/curta. UTF8 inválido dentro do MintURIToken. | +| `temMALFORMED (URITokenIDs)` | Ocorre quando: URITokenIDs muito curto/longo. URITokenID duplicado. | +| `temBAD_AMOUNT` | Ocorre quando um Amount no AmountEntry é inválido. | +| `terNO_ACCOUNT` | Ocorre quando a conta de origem não existe. | +| `tecNO_TARGET` | Ocorre quando o campo `sfInform` está presente, mas a conta não existe. | +| `tecNO_PERMISSION` | Ocorre quando `disallowIncomingRemit` está habilitado no `Destination`. | +| `tecNO_PERMISSION` | Ocorre quando o `Destination` possui `DepositAuthorization` habilitado. | +| `tecDST_TAG_NEEDED` | Ocorre se a conta de destino exige uma tag de destino, mas a transação não inclui uma. | +| `tecDUPLICATE` | Ocorre quando a URI do `MintURIToken` daquele emissor já existe. | +| `tecDIR_FULL` | Ocorre quando o diretório da conta de origem ou de destino está cheio. | +| `tecNO_ENTRY` | Ocorre quando o URIToken não existe. | +| `tecNO_PERMISSION` | Ocorre quando o URIToken não é de propriedade da conta de origem. | +| `tecUNFUNDED_PAYMENT` | Ocorre quando a conta de origem não possui os fundos necessários para executar a transação. (XAH ou Moedas Emitidas) | diff --git a/src/content/docs/br/docs/protocol-reference/transactions/transaction-types/sethook.mdx b/src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-types/sethook.mdx similarity index 100% rename from src/content/docs/br/docs/protocol-reference/transactions/transaction-types/sethook.mdx rename to src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-types/sethook.mdx diff --git a/src/content/docs/br/docs/protocol-reference/transactions/transaction-types/setregularkey.mdx b/src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-types/setregularkey.mdx similarity index 100% rename from src/content/docs/br/docs/protocol-reference/transactions/transaction-types/setregularkey.mdx rename to src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-types/setregularkey.mdx diff --git a/src/content/docs/br/docs/protocol-reference/transactions/transaction-types/setremarks.mdx b/src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-types/setremarks.mdx similarity index 100% rename from src/content/docs/br/docs/protocol-reference/transactions/transaction-types/setremarks.mdx rename to src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-types/setremarks.mdx diff --git a/src/content/docs/br/docs/protocol-reference/transactions/transaction-types/signerlistset.mdx b/src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-types/signerlistset.mdx similarity index 100% rename from src/content/docs/br/docs/protocol-reference/transactions/transaction-types/signerlistset.mdx rename to src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-types/signerlistset.mdx diff --git a/src/content/docs/br/docs/protocol-reference/transactions/transaction-types/ticketcreate.mdx b/src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-types/ticketcreate.mdx similarity index 100% rename from src/content/docs/br/docs/protocol-reference/transactions/transaction-types/ticketcreate.mdx rename to src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-types/ticketcreate.mdx diff --git a/src/content/docs/br/docs/protocol-reference/transactions/transaction-types/trustset.mdx b/src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-types/trustset.mdx similarity index 100% rename from src/content/docs/br/docs/protocol-reference/transactions/transaction-types/trustset.mdx rename to src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-types/trustset.mdx diff --git a/src/content/docs/br/docs/protocol-reference/transactions/transaction-types/uritokenburn.mdx b/src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-types/uritokenburn.mdx similarity index 100% rename from src/content/docs/br/docs/protocol-reference/transactions/transaction-types/uritokenburn.mdx rename to src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-types/uritokenburn.mdx diff --git a/src/content/docs/br/docs/protocol-reference/transactions/transaction-types/uritokenbuy.mdx b/src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-types/uritokenbuy.mdx similarity index 100% rename from src/content/docs/br/docs/protocol-reference/transactions/transaction-types/uritokenbuy.mdx rename to src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-types/uritokenbuy.mdx diff --git a/src/content/docs/br/docs/protocol-reference/transactions/transaction-types/uritokencancelselloffer.mdx b/src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-types/uritokencancelselloffer.mdx similarity index 100% rename from src/content/docs/br/docs/protocol-reference/transactions/transaction-types/uritokencancelselloffer.mdx rename to src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-types/uritokencancelselloffer.mdx diff --git a/src/content/docs/br/docs/protocol-reference/transactions/transaction-types/uritokencreateselloffer.mdx b/src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-types/uritokencreateselloffer.mdx similarity index 100% rename from src/content/docs/br/docs/protocol-reference/transactions/transaction-types/uritokencreateselloffer.mdx rename to src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-types/uritokencreateselloffer.mdx diff --git a/src/content/docs/br/docs/protocol-reference/transactions/transaction-types/uritokenmint.mdx b/src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-types/uritokenmint.mdx similarity index 100% rename from src/content/docs/br/docs/protocol-reference/transactions/transaction-types/uritokenmint.mdx rename to src/content/docs/pt-br/docs/protocol-reference/transactions/transaction-types/uritokenmint.mdx diff --git a/src/content/docs/br/docs/resources/media-kit.mdx b/src/content/docs/pt-br/docs/resources/media-kit.mdx similarity index 100% rename from src/content/docs/br/docs/resources/media-kit.mdx rename to src/content/docs/pt-br/docs/resources/media-kit.mdx diff --git a/src/content/docs/br/docs/resources/whitepaper.mdx b/src/content/docs/pt-br/docs/resources/whitepaper.mdx similarity index 100% rename from src/content/docs/br/docs/resources/whitepaper.mdx rename to src/content/docs/pt-br/docs/resources/whitepaper.mdx diff --git a/src/content/docs/br/docs/support/help-us.mdx b/src/content/docs/pt-br/docs/support/help-us.mdx similarity index 100% rename from src/content/docs/br/docs/support/help-us.mdx rename to src/content/docs/pt-br/docs/support/help-us.mdx diff --git a/src/content/docs/br/docs/what-is-different.mdx b/src/content/docs/pt-br/docs/what-is-different.mdx similarity index 80% rename from src/content/docs/br/docs/what-is-different.mdx rename to src/content/docs/pt-br/docs/what-is-different.mdx index 25a12d1..b002b75 100644 --- a/src/content/docs/br/docs/what-is-different.mdx +++ b/src/content/docs/pt-br/docs/what-is-different.mdx @@ -8,13 +8,13 @@ import { Aside, LinkCard } from '@astrojs/starlight/components'; O Xahau introduz o Escrow de Token IOU e os PayChannels como funcionalidades exclusivas, aumentando a flexibilidade e a segurança das transações. Eles facilitam a retenção temporária de tokens IOU sob condições predefinidas (escrow) e o estabelecimento de canais de pagamento para transações eficientes fora do ledger. - + #### URITokens, NÃO NFTokens Em vez de usar NFTokens como o XRPL, o Xahau emprega URITokens. Os URITokens são uma forma de ativos digitais não fungíveis com identificadores únicos e metadados, oferecendo uma abordagem inovadora para a representação de ativos na blockchain. - + #### Repositório Diferente @@ -26,13 +26,13 @@ O Xahau e o XRPL operam a partir de repositórios diferentes, o que indica que s O processo de build do Xahau incorpora WebAssembly (WASM) e a Máquina Virtual de Baixo Nível (LLVM), o que não está descrito no processo de build do XRPL. O Xahau utiliza essas tecnologias para aprimorar as capacidades de contratos inteligentes e melhorar o desempenho e a compatibilidade entre plataformas de sua base de código. - + #### Prazo de Amendment Diferente (5 dias) O processo de amendment no Xahau tem um prazo especificado de 5 dias, diferindo do cronograma do XRPL. Os amendments são mudanças de protocolo, e o período de 5 dias refere-se à duração que os validadores têm para chegar a um consenso e implementar essas mudanças. - + #### Sequência Inicial Diferente @@ -42,40 +42,40 @@ O Xahau emprega uma sequência inicial diferente para contas em relação ao XRP Importar do XRPL para o Xahau concede aos usuários 2 tokens XAH, indicando um mecanismo de incentivo para encorajar a migração de ativos ou a ponte do XRPL para o Xahau, potencialmente para aumentar a adoção da rede e a liquidez. - + #### Recompensas de Saldo (Recompensas por usar XAH) O Xahau oferece recompensas de saldo pela utilização do XAH, uma funcionalidade ausente no XRPL. Este é um sistema de recompensa por manter ou usar o token nativo do Xahau, XAH, para promover o engajamento e a estabilidade da rede. - + #### Hooks Os Hooks no Xahau, que não estão presentes no XRPL, são scripts programáveis ou funções semelhantes a contratos inteligentes que podem ser anexados a contas. Eles adicionam uma camada de programabilidade e automação às operações da rede. - + #### Estrutura de Governança A estrutura de governança do Xahau difere da do XRPL. O Xahau tem sua própria abordagem para tomada de decisões, sistemas de proposta ou papéis de validadores, o que pode influenciar a evolução da rede. - + #### Requisitos de Nó Executar um nó Xahau tem requisitos diferentes em comparação a um nó XRPL. Essas diferenças estão relacionadas às especificações técnicas necessárias para suportar as funcionalidades únicas e as demandas de rede do Xahau. - + #### Token Nativo O token nativo do Xahau é o XAH, distinto do XRP do XRPL. Como a moeda principal dentro da rede Xahau, o XAH serve como o principal meio de troca e reserva de valor, central para o quadro econômico da rede. - + #### Versionamento (Usa Datas) O Xahau emprega um sistema de versionamento baseado em datas, diferente da abordagem de versionamento do XRPL. Esse método pode fornecer uma maneira mais intuitiva de acompanhar as atualizações e o desenvolvimento histórico da rede. - + diff --git a/src/i18n/fraudReportTranslations.ts b/src/i18n/fraudReportTranslations.ts index 3adc198..740028d 100644 --- a/src/i18n/fraudReportTranslations.ts +++ b/src/i18n/fraudReportTranslations.ts @@ -1,4 +1,4 @@ -export type FraudReportLocale = 'en' | 'es' | 'ja' | 'br' +export type FraudReportLocale = 'en' | 'es' | 'ja' | 'pt-BR' export type FraudReportTranslations = { frontmatter: { @@ -371,7 +371,7 @@ export const fraudReportTranslations: Record< 'ネットワークエラー: サーバーに接続できませんでした。接続を確認して再度お試しください。', }, }, - 'br': { + 'pt-BR': { frontmatter: { title: 'Reportar Fraude', description: diff --git a/src/i18n/indexTranslations.ts b/src/i18n/indexTranslations.ts index 9600686..8ece552 100644 --- a/src/i18n/indexTranslations.ts +++ b/src/i18n/indexTranslations.ts @@ -102,7 +102,7 @@ export const indexTranslations = { stats_ledgers: '閉鎖済みレジャー', stats_node_cta: 'ノードを運営したいですか?', }, - 'br': { // Placeholder translations for Portuguese (Brazil) + 'pt-BR': { hero_title: 'A Blockchain Mais Inteligente com Programabilidade Baseada em Contas', hero_subtitle: 'Não apenas contratos inteligentes – contas inteligentes. Barato e rápido por design. Construído para o mundo real.', diff --git a/src/pages/br/about.mdx b/src/pages/br/about.mdx deleted file mode 100644 index 49c831f..0000000 --- a/src/pages/br/about.mdx +++ /dev/null @@ -1,57 +0,0 @@ ---- -title: Sobre Xahau -description: O que é Xahau? Uma explicação pequena ---- - -import PageLayout from "../../layouts/PageLayout.astro"; -import PageSection from "../../components/PageSection.astro"; - - - -
- -
-
- -A Xahau é uma blockchain de camada 1 (L1) com uma combinação única de recursos e uma nova abordagem para programabilidade em blockchain, também conhecida como contratos inteligentes. - -A tecnologia, já comprovada ao longo do tempo, liquida transações em cerca de 4 segundos, com custos muito baixos — chegando a frações de centavo de dólar. É escalável, suportando atualmente até 10.000 transações por ledger, além de ser inerentemente sustentável e energeticamente eficiente. - -A Xahau oferece recursos nativos para emissão e negociação de moedas em sua exchange descentralizada integrada, NFTs nativos e diversas possibilidades para DeFi por meio de lógica personalizada com seus contratos inteligentes, chamados Hooks. - -Os Hooks ficam associados às contas, trazendo uma abordagem diferente para lógica customizada baseada em eventos de conta, como o recebimento de transações. Atualmente, Hooks são desenvolvidos em C, mas o suporte a JavaScript já foi desenvolvido e está em fase de testes, com outras linguagens também previstas. Isso torna os contratos inteligentes mais acessíveis para milhões de desenvolvedores, sem uma curva de aprendizado tão acentuada. - - - -### Qual é a tecnologia por trás da Xahau? - -A Xahau é uma evolução do código do XRP Ledger, aprimorada com contratos inteligentes, programabilidade baseada em contas (Hooks) e suporte igualitário para moedas emitidas em recursos nativos, como escrows e payment channels. - -Assim como a XRPL, a Xahau utiliza um mecanismo de consenso federado. As transações são confirmadas por um protocolo em que servidores independentes, chamados validadores, entram em consenso sobre a ordem e o resultado das transações. Todos os servidores processam cada transação segundo as mesmas regras, e qualquer transação válida é confirmada rapidamente. Todas as transações são públicas e transparentes, e qualquer pessoa pode operar um validador. - -A Xahau também introduz um modelo de governança comunitária para decisões da rede. Nesse sistema de duas camadas, os participantes votam em temas como assentos, Hooks e recompensas. - - - -## XAH: a moeda nativa da Xahau - -A moeda nativa da rede é o XAH, uma moeda inflacionária. Toda conta pode participar do ajuste de saldo ao interagir com um Hook na conta gênese, acumulando mensalmente 4% sobre o saldo. - -O XAH é usado para evitar spam na rede, adicionando um custo às transações. Transações comuns custam frações de XAH, enquanto interações com Hooks têm custo maior. O XAH também é necessário como reserva bloqueada para possuir contas, objetos ou armazenar dados consumidos por contratos inteligentes. - -Como os Hooks aumentam a taxa de queima de XAH em relação à XRPL, projetos que dependem dessa lógica customizada devem manter saldo suficiente para gerar ajuste mensal e cobrir taxas. - - - -## Principais eventos da Xahau - -A Xahau foi lançada em 30 de outubro de 2023 pela Xahau Launch Alliance, uma aliança temporária formada por desenvolvedores e organizações experientes do ecossistema XRPL: XRPL Labs, GateHub Limited, Titanium OU, Evernode Labs Ltd e Digital Governing OU. - -No primeiro ano, a rede recebeu várias atualizações, como o recurso nativo Remit (em março de 2024), melhorias de desempenho, nós que operam apenas em memória e suporte a Hooks em JavaScript. - -Também houve o lançamento de um serviço de remessas internacionais em parceria com a Inclusive Financial Technologies Foundation e o Cooperative Bank of Oromia, um dos maiores bancos da Etiópia. A solução permite que pessoas no exterior enviem valores em EUR digital via blockchain com liquidação quase instantânea e baixo custo para familiares na Etiópia em ETB. - -Além disso, a fundação firmou um memorando com a African Union para apoiar o Fundo da Paz da União Africana com uma plataforma de doações em múltiplas moedas baseada na Xahau. - - -
diff --git a/src/pages/br/connect.mdx b/src/pages/br/connect.mdx deleted file mode 100644 index f07a0d0..0000000 --- a/src/pages/br/connect.mdx +++ /dev/null @@ -1,210 +0,0 @@ ---- -title: Xahau Connect -description: Eventos profissionais de blockchain para discussão séria e inovação ---- - -import PageLayout from "../../layouts/PageLayout.astro"; -import PageSection from "../../components/PageSection.astro"; - - - -## Próximos Eventos - -### Curso de Programação em Blockchain Non-EVM - -
-
- 📅 Data e Horário: Sexta-feira, 27 de fevereiro de 2026, às - 16h00 CET -
-
- 📍 Local: MIL (Madrid Innovation Lab) -
- Calle Bravo Murillo 37-39 -
- Madri, Espanha -
- - Ver no Google Maps - -
-
- 🎟️ Inscrição: Inscreva-se para participar presencialmente - por meio deste [formulário](https://luma.com/hiy3lsdq) -
-
- -Junte-se a nós para um curso introdutório gratuito sobre programação em blockchain Xahau, desenvolvido para ajudá-lo a dar seus primeiros passos nesse tipo de tecnologia. Este curso presencial de 4 horas foca no aprendizado de conceitos e ferramentas fundamentais por meio de exercícios práticos. Seja você um desenvolvedor curioso sobre alternativas Non-EVM, um empreendedor ou alguém sem experiência prévia em blockchain, o curso abordará tópicos desde arquitetura básica e criação de carteiras até contratos inteligentes em ambientes Non-EVM. Idioma: Espanhol e Inglês. - -
- -## Eventos Anteriores - -### Custódia Institucional de Criptoativos e Tokenização de Ouro - -
-
- 📅 Data e Horário: Quarta-feira, 11 de fevereiro de 2026, - às 18h30 CET -
-
- 📍 Local: MIL (Madrid Innovation Lab) -
- Calle Bravo Murillo 37-39 -
- Madri, Espanha -
- - Ver no Google Maps - -
-
- 🎤 Palestrantes em Destaque: -
-
- • José Ángel Fernández – CEO, Prosegur Crypto -
-
-
-
- 📺 Sessão Gravada: Assista online no{" "} - - YouTube do Madrid Innovation Lab - -
-
- -Uma sessão presencial do Xahau Connect com José Ángel Fernández, CEO da Prosegur Crypto. A palestra explorou a jornada da Prosegur no ecossistema blockchain por meio da Prosegur Crypto, abordando a custódia institucional de criptoativos, como esses sistemas funcionam do ponto de vista tecnológico e de segurança, e os serviços oferecidos a clientes institucionais. A sessão também tratou da oferta de tokenização de ouro da Prosegur Crypto, discutindo tanto a implementação técnica quanto o modelo de negócio por trás da tokenização do ouro físico e seus casos de uso no mundo real. - -### Blockchain e Regulação: A Europa Sob Escrutínio Legal - -
-
- 📅 Data e Horário: Quinta-feira, 4 de dezembro de 2025, às - 18h30 CET -
-
- 📍 Local: MIL (Madrid Innovation Lab) -
- Calle Bravo Murillo 37-39 -
- Madri, Espanha -
- - Ver no Google Maps - -
-
- 🎤 Palestrantes em Destaque: -
-
- • Horacio Gómez Rey – Head of Legal Espanha, N26 -
-
- • Pedro Méndez de Vigo – AVP Legal Europa, Crypto.com -
-
-
-
- 📺 Sessão Gravada: Assista online no{" "} - - YouTube do Madrid Innovation Lab - -
-
- -Uma discussão aprofundada sobre regulação de blockchain na Europa, com especialistas jurídicos de destaque de grandes empresas de fintech e cripto. A sessão explorou o cenário regulatório em evolução, os desafios de conformidade e o futuro do blockchain sob o escrutínio legal europeu. - -
- -## Sobre o Xahau Connect - -O **Xahau Connect** é uma série de eventos profissionais de blockchain criada pela [**INFTF**](https://www.inftf.org) (Inclusive Financial Technology Foundation) para fomentar discussões sérias e agnósticas sobre tecnologia blockchain e suas aplicações no mundo real. - -Os eventos reúnem especialistas, desenvolvedores profissionais, pesquisadores e inovadores de diversos ecossistemas blockchain para compartilhar conhecimento, explorar desafios e colaborar no avanço da tecnologia além do hype e da especulação. - -## Nossa Missão - -No Xahau Connect, focamos em: - -
-
- • Discussão Técnica Séria: Conversas aprofundadas sobre - arquitetura blockchain, negócios, oportunidades, regulação, inovação e muito - mais. -
-
- • Agnosticismo em Blockchain: Acolhendo perspectivas de - todos os ecossistemas e tecnologias blockchain. -
-
- • Networking Profissional: Conectando desenvolvedores, - especialistas, pesquisadores e líderes do setor. -
-
- • Aplicações no Mundo Real: Foco em implementações práticas - e casos de uso que impulsionam a adoção. -
-
- • Compartilhamento de Conhecimento: Aprendendo com - especialistas de diferentes domínios e setores da blockchain. -
-
- -## Quem Deve Participar - -Os eventos do Xahau Connect são voltados para: - -
-
Desenvolvedores e Builders de Blockchain que trabalham em protocolos, contratos inteligentes, dApps e infraestrutura.
-
Arquitetos Técnicos que projetam soluções e integrações em blockchain.
-
Pesquisadores e Acadêmicos explorando teoria de blockchain, criptografia e sistemas distribuídos.
-
Líderes Empresariais avaliando blockchain para aplicações de negócios.
-
Contribuidores do Ecossistema que desenvolvem ferramentas, documentação e recursos comunitários.
-
Profissionais do Setor aplicando blockchain em finanças, cadeia de suprimentos, identidade e outros setores. Se você leva a tecnologia e seu potencial a sério, o Xahau Connect é para você.
-
-
- -## Palestrantes, Patrocinadores e Contato - -### Participe - -
-
- • Propostas de Palestra e Consultas sobre Patrocínio:{" "} - connect@xahau.org -
-
- -Somos gratos aos nossos parceiros que apoiam a missão do Xahau Connect de fomentar o discurso profissional sobre blockchain. Os detalhes de parceiros e palestrantes serão anunciados à medida que confirmamos a participação para os próximos eventos. - -### Inscreva-se para Atualizações - -Para receber notificações sobre os próximos eventos do Xahau Connect: - -
-
• Siga @XahauNetwork e INFTF no X
-
• Envie um e-mail para connect@xahau.org
-
-
-
diff --git a/src/pages/br/contest.mdx b/src/pages/br/contest.mdx deleted file mode 100644 index ed566cc..0000000 --- a/src/pages/br/contest.mdx +++ /dev/null @@ -1,251 +0,0 @@ ---- -title: Xahau Dev Contest -description: Ecosystem Rising - Construa serviços voltados ao usuário com a Xahau ---- - -import PageLayout from "../../layouts/PageLayout.astro"; -import PageSection from "../../components/PageSection.astro"; - - - -## Introdução - -Bem-vindo ao **Xahau Dev Contest: Ecosystem Rising**! -Este concurso convida inovadores a construírem **serviços voltados ao usuário com a Xahau** e a competirem por prêmios enquanto fortalecem o ecossistema Xahau. - -## Prêmios - -- **3 prêmios principais em XAH** para os projetos vencedores. - - **🥇 1º Lugar** valor de 4000 USD em XAH. - - **🥈 2º Lugar** valor de 2000 USD em XAH. - - **🥉 3º Lugar** valor de 1000 USD em XAH. - -## Cronograma - -- **Prazo de submissão:** 1º de fevereiro de 2026. -- **Painel de juízes:** 5 membros da comunidade Xahau e XRPL (veja abaixo). - - - - -## Painel de Juízes - -O concurso será avaliado por **cinco membros da comunidade**: - -- • [**tequ**](https://x.com/_tequ_) – Desenvolvedor Blockchain Xahau -- • [**Robert Kiuru**](https://x.com/robertkiuru) – COO, _XRPL Labs_ -- • **[gadget78](https://x.com/gadget78)** – Desenvolvedor Evernode -- • [**Andrei Rosseti**](https://x.com/andreirosseti) – Arquiteto do Xahau DocProof | CTO, _EleveCRM_ -- • [**Vet**](https://x.com/Vet_X0) – Contribuidor da Comunidade XRPL - -## Tema: Serviços na Xahau - -Os participantes devem construir **serviços baseados na web que interajam com a Xahau (Mainnet)** e sejam projetados para o **usuário final**, seja usuários casuais, usuários avançados, setor público ou setor privado. - -Exemplos incluem **(mas não se limitam a)**: - -
-
- • Ferramentas para o usuário cotidiano: -
-
◦ Painéis de finanças pessoais
-
◦ Gerenciadores de carteiras
-
◦ Aplicativos comunitários
-
-
-
- • Serviços empresariais: -
-
◦ Portais de pagamento
-
◦ Plataformas de fidelidade
-
◦ Ferramentas de atendimento ao cliente
-
-
-
- • Plataformas públicas: -
-
◦ Marketplaces de NFT
-
◦ Sistemas de votação
-
◦ Hubs de doação
-
◦ Aplicativos culturais
-
◦ Utilitários para o bem social
-
-
-
-
- -## Regras de Participação - -
-
• Você pode submeter quantos projetos quiser.
-
• Cada projeto pode ser submetido por um indivíduo ou um grupo de participantes.
-
• Projetos diferentes do(s) mesmo(s) participante(s) podem ser elegíveis para prêmios diferentes.
-
• Os projetos devem funcionar na Xahau Mainnet.
-
-
• Cada projeto deve estar acessível online, para que tanto os juízes quanto o público possam usá-lo ou visualizá-lo.
-
◦ Isso evita que os juízes precisem instalar ou configurar os projetos localmente, e reduz o risco de erros inesperados ou a necessidade de assistência do participante.
-
-
-
• Cada submissão deve incluir documentação básica para ajudar outros a entenderem o projeto.
-
◦ Opcionalmente, você também pode incluir material multimídia (vídeos, slides, demos, etc.) para explicar melhor seu trabalho.
-
-
Ferramentas de IA podem ser usadas tanto para desenvolvimento quanto para documentação.
-
• Se o seu projeto usar Hooks, o código do Hook deve ser de código aberto, para que possa ser auditado por segurança e servir como recurso de aprendizado para a comunidade. Você deve anexar o código C na sua submissão juntamente com o hash do hook. Consulte a seção "Formato de Submissão".
-
• Projetos que claramente oferecem serviços financeiros regulados ou que visam atividades ilegais não são elegíveis.
-
• Para ser avaliado pelos juízes, você deve incluir sua submissão com um PR conforme indicado na seção "Formato de Submissão".
-
• Após a criação do seu PR de submissão, publique um tweet no X sobre seu projeto, marcando @XahauNetwork, para anunciar sua participação no Xahau Dev Contest.
-
-
- -## Critérios de Avaliação - -Ao revisar as submissões, os juízes valorizarão especialmente: - -
-
Originalidade e criatividade da ideia.
-
Ausência de concorrentes existentes oferecendo o mesmo serviço na Xahau Mainnet antes do concurso.
-
Impacto e utilidade para os usuários finais (indivíduos, empresas ou setor público).
-
Qualidade de execução (estabilidade, documentação, experiência do usuário).
-
Uso de Hooks (Contratos Inteligentes na Xahau).
-
-
- -## Formato de Submissão - -Cada projeto deve incluir uma pasta e pelo menos um **arquivo de submissão** dentro do diretório de submissões do **[repositório](https://github.com/xahau/xahau-2nd-dev-contest)**. -O arquivo e o diretório devem ter o nome do seu usuário do GitHub seguido do nome do projeto, separados por um underscore, usando a extensão .md para o arquivo. - -Exemplo: submissions/NomeGitHub_NomeProjeto/NomeGitHub_NomeProjeto.md - -O arquivo deve conter os seguintes campos: - -
-
- • Título do Projeto -
-
- • Breve Descrição -
-
- • Participantes (nomes ou apelidos) -
-
- • Redes Sociais dos Participantes -
-
- • E-mail de Contato -
-
- • Link para o Projeto Online -
-
- • Endereço Xahau para receber o prêmio em caso de vitória -
-
- • Link para a Documentação -
-
- • Código dos Hooks em C e hash correspondente (caso seu - projeto use um ou mais, para confirmar que é seguro, adicione os arquivos .c - na pasta da sua submissão) -
-
- • Conta Hooks do projeto (para confirmar que você está - usando os hooks previamente fornecidos para este projeto) -
-
- • Link para o Repositório do Projeto (opcional) -
-
- • Outros Links (opcional, ex.: vídeo demo, apresentação, - slides) -
-
- -Um diretório e arquivo de modelo estão disponíveis na pasta do repositório, que os participantes podem usar para preencher os detalhes do seu projeto. - -
- -## Suporte e Comunidade - -Se tiver dúvidas ou precisar de orientação: - -- Entre no **[Discord dos Xahau Builders](https://discord.gg/ds7nb93mYj)**. -- Ou envie um e-mail para **[contests@xahau.org](mailto:contests@xahau.org)**. - -Tentaremos responder o mais rápido possível. Suas perguntas também podem ser adicionadas ao FAQ neste README para que outros se beneficiem das respostas. - -## Propriedade - -- Todos os projetos submetidos permanecem **propriedade de seus criadores originais**. - -## Links Úteis - -Aqui estão alguns recursos úteis para desenvolvedores Xahau: - -- [Documentação Xahau](https://docs.xahau.network) -- [Documentação de Hooks Xahau](https://xahau.network/docs/hooks/) -- [Repositórios GitHub da Xahau](https://github.com/Xahau) -- [Website Xaman](https://xaman.app) -- [Faucet da Testnet Xahau](https://xahau-test.net/) -- [Discord Xahau](https://discord.gg/ds7nb93mYj) - -## Resumo: O Que Você Precisa Fazer - -
-
• Inspire-se. Seja criativo e motivado para construir algo que fortaleça o ecossistema Xahau.
-
• Construa seu projeto. Desenvolva seu serviço baseado na web usando a Xahau Mainnet.
-
• Submeta seu trabalho. Crie um PR (Pull Request) seguindo as instruções na seção "Formato de Submissão".
-
• Anuncie sua participação. Publique um tweet no X sobre seu projeto, marcando @XahauNetwork, e compartilhe que você participou do Xahau Dev Contest.
-
-
- -## FAQ - -**P: Posso submeter mais de um projeto?** - -- R: Sim! Você pode submeter quantos quiser, individualmente ou em grupo. - -**P: Os projetos precisam ser de código aberto?** - -- R: Não, mas devem incluir pelo menos documentação básica para que os juízes entendam como funcionam. Se o seu projeto incluir Hooks, você deve anexar o código C na sua submissão junto com o hash do hook. Consulte a seção "Formato de Submissão". - -**P: Posso usar IA para me ajudar a construir ou documentar meu projeto?** - -- R: Sim, o uso de IA é totalmente permitido. - -**P: Que tipo de serviços vocês esperam?** - -- R: Qualquer serviço que ofereça **valor aos usuários finais** — sejam indivíduos, empresas ou o setor público. Desde marketplaces de NFT e painéis financeiros até sistemas de votação, aplicativos de pagamento, hubs de doação ou qualquer serviço inovador público/privado. - -**P: Há vantagem em usar Hooks?** - -- R: Sim, projetos que implementam criativamente **Hooks (contratos inteligentes na Xahau)** receberão reconhecimento especial. - -**P: O que acontece com meu projeto após o concurso?** - -- R: Você mantém a propriedade total. - -**P: Onde posso fazer perguntas?** - -- R: No **[Discord da Comunidade Xahau](https://discord.gg/ds7nb93mYj)** ou enviando um e-mail para **[contests@xahau.org](mailto:contests@xahau.org)**. - - - - -## Aviso Final - -Ao participar, você concorda com o seguinte: - -
-
• Os participantes devem atender aos critérios de elegibilidade e seguir todas as regras. Não é permitido submeter projetos que já foram publicados antes da competição.
-
• Os projetos permanecem propriedade de seus criadores, mas os organizadores reservam o direito de exibir, compartilhar ou destacar as submissões com o devido crédito.
-
• Os organizadores reservam o direito de desqualificar submissões que violem as regras ou comprometam a integridade do concurso. Todas as decisões do júri são finais e não estão sujeitas a recurso.
-
• Os organizadores não são responsáveis por danos, despesas ou perdas durante a participação. Os organizadores também reservam o direito de modificar os requisitos do concurso a qualquer momento, se necessário.
-
• Você reconhece que sanções e certas restrições jurisdicionais podem se aplicar. A elegibilidade para receber recompensas pode exigir conformidade com as leis aplicáveis, incluindo a conclusão da verificação KYC (Conheça Seu Cliente).
-
• Todos os impostos, taxas ou outras obrigações financeiras relacionadas às recompensas são de responsabilidade exclusiva dos participantes.
-
• Se tiver dúvidas ou incertezas sobre elegibilidade, requisitos ou obrigações fiscais, entre em contato conosco pelos canais de comunicação fornecidos antes de submeter sua inscrição.
-
Agora é sua vez: **Construa, submeta e mostre sua inovação com a blockchain Xahau!**
-
-
-
diff --git a/src/pages/br/ecosystem.mdx b/src/pages/br/ecosystem.mdx deleted file mode 100644 index a892a50..0000000 --- a/src/pages/br/ecosystem.mdx +++ /dev/null @@ -1,172 +0,0 @@ ---- -layout: ../../layouts/PageLayout.astro -title: Ecossistema -description: Xahau ao redor do mundo ---- - -import EcosystemButton from "../../components/EcosystemButton.astro"; -import gatehub from "../../assets/ecosystem-logos/gatehub.png"; -import bitrue from "../../assets/ecosystem-logos/bitrue.png"; -import bithomp from "../../assets/ecosystem-logos/bithomp.png"; -import xahscan from "../../assets/ecosystem-logos/xahscan.png"; -import xahau_services from "../../assets/ecosystem-logos/xahau-services.png"; -import xrplwin from "../../assets/ecosystem-logos/xrplwin.png"; -import xaman from "../../assets/ecosystem-logos/xaman.png"; -import dcent from "../../assets/ecosystem-logos/dcent.png"; -import bitmart from "../../assets/ecosystem-logos/bitmart.png"; -import coinex from "../../assets/ecosystem-logos/coinex.png"; - -## Carteiras - -
- - - - -
- -## Corretoras - -
- - - - -
- -## Exploradores e utilitários - -
- - - - -
- -## Projetos - -
- - - - - - - - - - - - - - - - - - -
diff --git a/src/pages/br/features.mdx b/src/pages/br/features.mdx deleted file mode 100644 index 41e3a9b..0000000 --- a/src/pages/br/features.mdx +++ /dev/null @@ -1,96 +0,0 @@ ---- -title: Recursos -description: Tecnologia comprovada com uma abordagem inovadora ---- - -import PageLayout from "../../layouts/PageLayout.astro"; -import PageSection from "../../components/PageSection.astro"; - - - -## Hooks: Lógica de Contrato Inteligente no Nível da Conta - -A Xahau introduz os **Hooks** — uma forma única de lógica de contrato inteligente no ledger que é executada diretamente no **nível da conta**. Ao contrário dos contratos inteligentes na maioria das blockchains, que exigem interação com endereços de contrato externos, os Hooks são programas leves incorporados diretamente nas contas dos usuários. Esses Hooks podem automaticamente inspecionar, modificar ou rejeitar qualquer transação envolvendo aquela conta, sem necessidade de chamadas de função explícitas. - -Por serem executados de forma inline e dentro do consenso, os Hooks oferecem programabilidade em tempo real com sobrecarga mínima. Isso permite casos de uso poderosos, como rejeitar transferências de tokens não autorizadas, disparar ações em depósitos ou implementar lógica de conformidade — tudo sem desacelerar a rede. Os Hooks representam um novo paradigma de segurança e programabilidade, tornando as contas participantes ativas na lógica das transações. - -## Controle de Tokens e Ativos por Design - -A Xahau oferece a emissores e usuários **controle granular sobre tokens e trustlines**. Funcionalidades como `TrustSet`, `Clawback`, `Freeze` e `Deposit Authorization` permitem personalização total de como os tokens podem ser usados ou recebidos. Ativos podem ser permitidos, bloqueados ou queimados, tudo aplicado no nível do protocolo. - -Isso torna a Xahau excepcionalmente adequada para instrumentos financeiros regulados, stablecoins, programas de fidelidade ou cadeias de suprimento corporativas — qualquer cenário onde conformidade, segurança e precisão são essenciais. - - - -## Governance Game: Coordenação Descentralizada com Propósito - -A Xahau conta com um sistema de governança inovador sustentado pelo **Governance Game**, um mecanismo transparente e on-ledger para propor, revisar e votar em emendas. Os operadores de validadores (Governadores) participam diretamente na moldagem do protocolo, enquanto competem em um sistema estruturado de recompensas baseado em responsabilidade e engajamento. - -Esse sistema garante que as atualizações do protocolo e as decisões de política sejam abertas e participativas, não ditadas por uma entidade centralizada. Ele combina os benefícios da coordenação empresarial estruturada com a transparência e resiliência do consenso descentralizado. Ao transformar a governança em um jogo seguro e alinhado a incentivos, a Xahau estabelece um novo padrão para coordenação on-chain. - -## Balance Rewards: Rendimento Passivo Sem Staking - -A Xahau oferece um sistema de **Balance Rewards** que permite às contas acumular valor passivamente apenas por manterem ativos. Essas recompensas são calculadas com base no saldo da conta e distribuídas por um mecanismo garantido pelo consenso, sem exigir staking, delegação ou contratos de terceiros. - -O mecanismo é alimentado por lógica no nível do protocolo e Hooks on-chain, garantindo que as recompensas sejam automáticas, justas e sustentáveis. Ao contrário de sistemas de yield farming ou staking em outras blockchains, o modelo de recompensas da Xahau não exige que os usuários bloqueiem ativos ou persigam estratégias complexas de DeFi — funciona nativamente, com transparência e simplicidade. - - - -## Escrow: Transferências Condicionais para Qualquer Ativo - -A Xahau suporta **escrow on-ledger** de tokens nativos e **emitidos**, possibilitando transferências condicionais seguras para uma ampla gama de casos de uso empresariais e financeiros. Fundos ou tokens podem ser bloqueados com lógica de liberação baseada em tempo ou em condições, aplicada pela própria rede. - -Seja construindo um sistema de pagamento baseado em marcos, liquidação em marketplace ou distribuição confiável de tokens, os escrows da Xahau oferecem uma ferramenta simples e poderosa — sem necessidade de contratos inteligentes externos. O suporte nativo tanto para ativos fungíveis quanto não fungíveis em escrow torna esse um recurso excepcionalmente versátil. - -## Remit: Transferências Nativas Entre Contas - -O recurso **Remit** permite transações simplificadas e com múltiplas operações entre contas — ideal para fluxos de pagamento complexos ou de alto volume. Em vez de enviar múltiplas instruções separadas, uma única transação Remit pode distribuir valor para múltiplos destinatários ou acionar múltiplas mudanças de saldo de forma atômica. - -Isso melhora a eficiência e a confiabilidade, especialmente para processadores de pagamento, marketplaces ou aplicações que precisam realizar operações agrupadas. Por estar integrado ao protocolo, o Remit garante desempenho previsível, baixa latência e forte auditabilidade. - - - -## Taxas Baixas com Queima de Taxas - -A Xahau mantém **taxas de transação consistentemente baixas**, com um modelo integrado de **queima de taxas** que reduz spam e recompensa a saúde da rede a longo prazo. Cada transação paga uma taxa mínima em XAH, e uma parte dessa taxa é permanentemente destruída — criando um efeito deflacionário ao longo do tempo. - -Essa abordagem desencoraja o abuso da rede enquanto preserva a acessibilidade, especialmente para aplicações de alto volume ou sensíveis a custos. Ao contrário de modelos inflacionários ou taxas no estilo de leilão, a Xahau oferece previsibilidade e alinhamento econômico para todos os usuários. - -## Rápida, Verde e Escalável - -Construída sobre uma versão aprimorada do protocolo de consenso do XRPL, a Xahau oferece **finalidade rápida**, baixo consumo de energia e escalabilidade confiável. As transações são confirmadas em segundos, sem mineração e com requisitos mínimos de hardware. O resultado é uma rede capaz de servir casos de uso financeiros e empresariais do mundo real sem comprometer o meio ambiente ou a experiência do usuário. - -A arquitetura da Xahau é ideal para sistemas de pagamento globais, plataformas de ativos tokenizados ou aplicações de alto volume onde desempenho e sustentabilidade são inegociáveis. - - - -## URITokens: NFTs Nativos na Xahau - -Os **URITokens** representam a abordagem da Xahau para tokens não fungíveis (NFTs), implementados como parte nativa do ledger em vez de via contratos inteligentes separados. Um URIToken é um objeto de primeira classe no ledger, identificado exclusivamente pela conta emissora e por um Identificador Uniforme de Recursos (URI) que normalmente aponta para os metadados ou conteúdo do token. Apenas um URIToken com um determinado URI pode existir por conta, garantindo verdadeira unicidade para cada ativo digital. - -Esse padrão NFT integrado significa que criadores podem mintar, negociar ou queimar NFTs com transações simples (ex.: URITokenMint, URITokenBuy, URITokenBurn) sem implantar código personalizado. O emissor de um URIToken pode até permitir que ele seja destruído (queimado) configurando uma flag, oferecendo flexibilidade no gerenciamento de NFTs. Ao integrar NFTs no nível do protocolo, a Xahau torna a emissão e o gerenciamento de colecionáveis digitais ou credenciais mais eficientes e seguros. - -## Offers: Exchange Descentralizada (DEX) Integrada - -A Xahau inclui um sistema nativo de **Offers**, que alimenta uma exchange descentralizada integrada no ledger. Os usuários podem criar entradas de **Offer** para comprar ou vender ativos (como tokens ou moedas emitidas) diretamente na rede, e essas ofertas são automaticamente combinadas pelo livro de ordens do protocolo. - -Esse recurso, herdado do DEX do XRPL, permite um ambiente de negociação dinâmico e responsivo onde a troca de valor acontece ponto a ponto sem exchanges intermediárias. A capacidade de colocar e cancelar ordens de negociação é fornecida por transações dedicadas (OfferCreate e OfferCancel). Ao contrário de muitas blockchains que exigem contratos inteligentes ou plataformas externas para negociação, o DEX da Xahau é um recurso de primeira classe do ledger. Essa exchange on-ledger oferece liquidação rápida e taxas baixas, tornando a negociação de ativos transparente para usuários e aplicações. - - - -## Checks: Sistema de Pagamento Diferido - -A Xahau suporta **Checks**, um sistema de pagamento diferido semelhante a escrever cheques digitais na blockchain. Uma parte pode emitir um Check (promessa de pagamento) que o destinatário pretendido pode sacar em um momento posterior ou cancelar se necessário. Esse recurso permite transações seguras e flexíveis — por exemplo, uma empresa pode emitir um pagamento que o receptor irá reivindicar quando determinadas condições forem atendidas. - -O ledger possui transações dedicadas para criar um cheque, sacá-lo ou cancelá-lo. Poucas outras plataformas têm esse tipo de instrumento de pagamento diferido nativo; o sistema de cheques da Xahau fornece uma camada extra de controle de pagamento, tudo aplicado pelas regras da rede sem necessidade de contratos inteligentes personalizados. - -## Payments: Transferências Multi-Ativo e Canais - -A funcionalidade de **Payments** na Xahau foi projetada para facilitar transferências de valor rápidas e flexíveis em toda a rede. De forma única, a Xahau (assim como o XRPL) suporta _pagamentos multi-ativo_ por meio de um sistema de trust lines e moedas emitidas. Usando uma transação `TrustSet`, duas partes podem estabelecer uma trust line para transacionar em um ativo personalizado ou IOU, permitindo suporte integrado a múltiplas moedas ou tokens sem necessidade de contratos inteligentes. - -Isso significa que empresas podem emitir stablecoins ou tokens na Xahau e os usuários podem enviá-los ou trocá-los nativamente. O conjunto de Payments também inclui recursos avançados como **Deposit Preauthorization**, que permite a uma conta criar uma lista de permissões de quem pode lhe enviar fundos, adicionando segurança contra transações indesejadas. - -Além disso, a Xahau suporta **canais de pagamento** para escalabilidade. Os canais de pagamento permitem que duas partes realizem transações rápidas e de alto volume fora do ledger e então liquidem o resultado líquido na blockchain. Com transações como PaymentChannelCreate, Fund e Claim, a Xahau viabiliza micropagamentos ou pagamentos em streaming que são garantidos pelo ledger sem congestioná-lo. - - - diff --git a/src/pages/br/roadmap.mdx b/src/pages/br/roadmap.mdx deleted file mode 100644 index 71f2eb0..0000000 --- a/src/pages/br/roadmap.mdx +++ /dev/null @@ -1,70 +0,0 @@ ---- -title: Roadmap -description: Este ano, a Xahau Network pretende receber atualizações poderosas em escalabilidade, acessibilidade, segurança e inovação ---- - -import PageLayout from "../../layouts/PageLayout.astro"; -import PageSection from "../../components/PageSection.astro"; -import roadmap from "../../assets/roadmap_2025.jpeg"; -import { Image } from "astro:assets"; - - - -Xahau roadmap 2025 - -# 1º Semestre de 2025 - -## 1. Projeto "L10K" - -Melhorar a eficiência da tecnologia central para aumentar a capacidade de transações para 10.000 transações por ledger, com mais eficiência e segurança. - -Um marco de desempenho para o ecossistema Xahau! - -## 2. Melhoria do Monitoramento UDP e RPC - -Recursos de monitoramento sem conexão e RPC para operadores de nós otimizam o desempenho e a escalabilidade em toda a rede. - -Permitindo monitoramento eficiente e passivo de ambientes com um ou múltiplos nós — reduzindo significativamente a sobrecarga. - -## 3. Finalização de Novos Recursos (Remarks, Touch, Blackhole, DataMonitor) - -Concluir o desenvolvimento e a integração desses recursos de ponta, melhorando a interação com a Xahau tanto para desenvolvedores quanto para usuários finais por meio de produtos criados pelos desenvolvedores. - -## 4. Suporte Completo à Hardware Wallet Ledger para Xahau - -Garantir transações seguras e simplificadas na Xahau com compatibilidade com a Hardware Wallet Ledger, ampliando a acessibilidade à Xahau em todo o mundo. - -## 5. Acesso a Exchanges e Plataformas On/Off-Ramp - -A Xahau pretende se tornar mais acessível por meio de exchanges e plataformas on/off-ramp, apoiando uma participação e integração mais amplas no ecossistema. - -## 6. Suporte ao LedgerLive - -Integração da Xahau com o Ledger Live, permitindo fácil acesso e gerenciamento usando o popular produto Ledger Live. - -## 7. Frame Universal Embeddable de Explicação de Hooks - -Permitindo que qualquer carteira integre facilmente uma explicação clara da influência dos Hooks nas transações (web, mobile, desktop), com visuais claros e integrados para transações HookSet, garantindo uma adoção mais fácil. - -# 2º Semestre de 2025 - -## 8. Implementação de Hooks em JavaScript - -Pendente de aprovação de auditoria, levar Hooks baseados em JavaScript e suas ferramentas a dezenas de milhões de desenvolvedores ao redor do mundo para desenvolver usando a Xahau para lógica on-chain avançada e capacidades de transações programáveis. - -## 9. Auditorias Abrangentes e Verificações de Segurança - -Concluir auditorias de todos os principais recursos de 2025 para demonstrar a segurança e a estabilidade da rede, oferecendo garantias verificáveis ao mundo à medida que avançamos para 2026. - -## 10. Melhoria da Experiência do Usuário - -Orientado por feedback, o ecossistema Xahau garantirá integração e usabilidade perfeitas em todas as carteiras e aplicações. - -## 11. Implementação de Batch - -Viabilizar verificações eficientes de múltiplas transações, garantindo que todas ou nenhuma das transações ocorram, enquanto permite que provedores de serviços incorporem operações específicas de fluxo de trabalho de forma transparente no fluxo de transações. - -**2025 é o ano em que a Xahau se torna mais fácil de acessar, usar, aproveitar e construir, enquanto escala de forma mais inteligente, rápida e robusta.** - - - diff --git a/src/pages/pt-br/about.astro b/src/pages/pt-br/about.astro new file mode 100644 index 0000000..e5421d3 --- /dev/null +++ b/src/pages/pt-br/about.astro @@ -0,0 +1,16 @@ +--- +import '../../styles/main.css' +import XahauAbout from '../../components/XahauAboutPtBR.astro' +import BaseLayout from '../../layouts/BaseLayout.astro' + +const _frontmatter = { + title: 'Sobre Xahau', + description: 'Enterprise L1 blockchain with account-based programmability', +} +--- + + +
+ +
+
diff --git a/src/pages/pt-br/connect.astro b/src/pages/pt-br/connect.astro new file mode 100644 index 0000000..5552ccc --- /dev/null +++ b/src/pages/pt-br/connect.astro @@ -0,0 +1,17 @@ +--- +import '../../styles/main.css' +import XahauConnect from '../../components/XahauConnect.astro' +import BaseLayout from '../../layouts/BaseLayout.astro' + +const _frontmatter = { + title: 'Xahau Connect', + description: + 'Eventos profissionais de blockchain para discussões sérias e inovação.', +} +--- + + +
+ +
+
diff --git a/src/pages/pt-br/contest.astro b/src/pages/pt-br/contest.astro new file mode 100644 index 0000000..75f2e78 --- /dev/null +++ b/src/pages/pt-br/contest.astro @@ -0,0 +1,16 @@ +--- +import '../styles/main.css' +import XahauContest from '../components/XahauContest.astro' +import BaseLayout from '../layouts/BaseLayout.astro' + +const _frontmatter = { + title: 'Xahau Dev Contest', + description: 'Ecosystem Rising — Build user-facing services powered by Xahau', +} +--- + + +
+ +
+
diff --git a/src/pages/pt-br/ecosystem.astro b/src/pages/pt-br/ecosystem.astro new file mode 100644 index 0000000..4bbda86 --- /dev/null +++ b/src/pages/pt-br/ecosystem.astro @@ -0,0 +1,16 @@ +--- +import '../../styles/main.css' +import XahauEcosystem from '../../components/XahauEcosystem.astro' +import BaseLayout from '../../layouts/BaseLayout.astro' + +const _frontmatter = { + title: 'Ecosystem', + description: 'Xahau around the world', +} +--- + + +
+ +
+
diff --git a/src/pages/pt-br/features.astro b/src/pages/pt-br/features.astro new file mode 100644 index 0000000..eccdd59 --- /dev/null +++ b/src/pages/pt-br/features.astro @@ -0,0 +1,16 @@ +--- +import '../../styles/main.css' +import XahauFeatures from '../../components/XahauFeaturesPtBR.astro' +import BaseLayout from '../../layouts/BaseLayout.astro' + +const _frontmatter = { + title: 'Funcionalidades', + description: 'Tecnologia comprovada com uma abordagem inovadora', +} +--- + + +
+ +
+
diff --git a/src/pages/br/fraud-report.astro b/src/pages/pt-br/fraud-report.astro similarity index 100% rename from src/pages/br/fraud-report.astro rename to src/pages/pt-br/fraud-report.astro diff --git a/src/pages/br/index.mdx b/src/pages/pt-br/index.mdx similarity index 100% rename from src/pages/br/index.mdx rename to src/pages/pt-br/index.mdx diff --git a/src/pages/br/privacy-policy.mdx b/src/pages/pt-br/privacy-policy.mdx similarity index 100% rename from src/pages/br/privacy-policy.mdx rename to src/pages/pt-br/privacy-policy.mdx diff --git a/src/pages/pt-br/roadmap.astro b/src/pages/pt-br/roadmap.astro new file mode 100644 index 0000000..3c8d2dd --- /dev/null +++ b/src/pages/pt-br/roadmap.astro @@ -0,0 +1,16 @@ +--- +import '../../styles/main.css' +import XahauRoadmap from '../../components/XahauRoadmap.astro' +import BaseLayout from '../../layouts/BaseLayout.astro' + +const _frontmatter = { + title: 'Roadmap', + description: 'Xahau roadmap across the upcoming quarters', +} +--- + + +
+ +
+
diff --git a/src/plugins/remarkGlobalReferences.ts b/src/plugins/remarkGlobalReferences.ts index 38e0e39..c1737c6 100644 --- a/src/plugins/remarkGlobalReferences.ts +++ b/src/plugins/remarkGlobalReferences.ts @@ -82,7 +82,7 @@ export function remarkGlobalReferences() { } } - const NON_ROOT_LOCALES = ['es', 'ja', 'br'] + const NON_ROOT_LOCALES = ['es', 'ja', 'pt-BR'] return function transformer(tree: any, vfile: any) { const refs = loadGlobalReferences() diff --git a/src/utils/localizedHref.ts b/src/utils/localizedHref.ts index fc18a4b..a7a2655 100644 --- a/src/utils/localizedHref.ts +++ b/src/utils/localizedHref.ts @@ -17,7 +17,7 @@ function splitPath(path: string) { export function stripLocalePrefix(pathname: string) { const normalizedPathname = normalizePathname(pathname) - for (const locale of ['es', 'ja'] as const) { + for (const locale of ['es', 'ja', 'pt-br'] as const) { if (normalizedPathname === `/${locale}`) return '/' if (normalizedPathname.startsWith(`/${locale}/`)) { return normalizePathname(normalizedPathname.slice(locale.length + 1))