diff --git a/config/snippet-config/daml-finance-snippet-list-remote.json b/config/snippet-config/daml-finance-snippet-list-remote.json index 39d3df600..31a3fdc84 100644 --- a/config/snippet-config/daml-finance-snippet-list-remote.json +++ b/config/snippet-config/daml-finance-snippet-list-remote.json @@ -1,3 +1,7354 @@ { - "snippets": [] + "snippets": [ + { + "snippetName": "daml-finance-full-docs-generated-finance-lifecycling-daml-scripts-callable-bond", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/finance-lifecycling/daml/Scripts/CallableBond.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-finance-lifecycling-daml-scripts-fixed-rate-bond", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/finance-lifecycling/daml/Scripts/FixedRateBond.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-finance-lifecycling-daml-scripts-floating-rate-bond", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/finance-lifecycling/daml/Scripts/FloatingRateBond.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-finance-lifecycling-daml-scripts-util", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/finance-lifecycling/daml/Scripts/Util.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-finance-lifecycling-daml-workflow-create-account", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/finance-lifecycling/daml/Workflow/CreateAccount.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-finance-lifecycling-daml-workflow-credit-account", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/finance-lifecycling/daml/Workflow/CreditAccount.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-finance-payoff-modeling-daml-examples-basic-combinators", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/finance-payoff-modeling/daml/Examples/BasicCombinators.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-finance-payoff-modeling-daml-payoff-builder", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/finance-payoff-modeling/daml/PayoffBuilder.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-finance-payoff-modeling-daml-util", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/finance-payoff-modeling/daml/Util.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-finance-payoff-modeling-daml-util-lifecycle", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/finance-payoff-modeling/daml/Util/Lifecycle.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-finance-payoff-modeling-daml-util-setup", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/finance-payoff-modeling/daml/Util/Setup.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-finance-settlement-daml-scripts-intermediated", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/finance-settlement/daml/Scripts/Intermediated.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-finance-settlement-daml-scripts-internal", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/finance-settlement/daml/Scripts/Internal.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-finance-settlement-daml-scripts-setup", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/finance-settlement/daml/Scripts/Setup.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-finance-settlement-daml-scripts-transfer", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/finance-settlement/daml/Scripts/Transfer.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-finance-settlement-daml-scripts-util", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/finance-settlement/daml/Scripts/Util.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-finance-settlement-daml-workflow-create-account", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/finance-settlement/daml/Workflow/CreateAccount.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-finance-settlement-daml-workflow-credit-account", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/finance-settlement/daml/Workflow/CreditAccount.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-finance-settlement-daml-workflow-transfer", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/finance-settlement/daml/Workflow/Transfer.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-finance-upgrades-daml-extensions-my-account", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/finance-upgrades/daml/Extensions/MyAccount.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-finance-upgrades-daml-extensions-my-transferable", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/finance-upgrades/daml/Extensions/MyTransferable.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-finance-upgrades-daml-scripts-setup", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/finance-upgrades/daml/Scripts/Setup.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-finance-upgrades-daml-scripts-upgrade-account", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/finance-upgrades/daml/Scripts/UpgradeAccount.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-finance-upgrades-daml-scripts-upgrade-holding", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/finance-upgrades/daml/Scripts/UpgradeHolding.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-finance-upgrades-daml-scripts-util", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/finance-upgrades/daml/Scripts/Util.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-finance-upgrades-daml-workflow-create-account", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/finance-upgrades/daml/Workflow/CreateAccount.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-finance-upgrades-daml-workflow-credit-account", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/finance-upgrades/daml/Workflow/CreditAccount.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-quickstart-finance-daml-scripts-holding", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/quickstart-finance/daml/Scripts/Holding.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-quickstart-finance-daml-scripts-lifecycling", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/quickstart-finance/daml/Scripts/Lifecycling.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-quickstart-finance-daml-scripts-settlement", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/quickstart-finance/daml/Scripts/Settlement.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-quickstart-finance-daml-scripts-transfer", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/quickstart-finance/daml/Scripts/Transfer.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-quickstart-finance-daml-scripts-util", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/quickstart-finance/daml/Scripts/Util.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-quickstart-finance-daml-workflow-create-account", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/quickstart-finance/daml/Workflow/CreateAccount.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-quickstart-finance-daml-workflow-credit-account", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/quickstart-finance/daml/Workflow/CreditAccount.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-quickstart-finance-daml-workflow-dv-p", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/quickstart-finance/daml/Workflow/DvP.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-quickstart-finance-daml-workflow-transfer", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/quickstart-finance/daml/Workflow/Transfer.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-contingent-claims-core-v3-builders", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/ContingentClaims/Core/V3/Builders.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-contingent-claims-core-v3-claim", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/ContingentClaims/Core/V3/Claim.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-contingent-claims-core-v3-internal-claim", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/ContingentClaims/Core/V3/Internal/Claim.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-contingent-claims-core-v3-observation", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/ContingentClaims/Core/V3/Observation.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-contingent-claims-core-v3-util-recursion", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/ContingentClaims/Core/V3/Util/Recursion.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-contingent-claims-lifecycle-v3-lifecycle", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/ContingentClaims/Lifecycle/V3/Lifecycle.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-contingent-claims-lifecycle-v3-util", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/ContingentClaims/Lifecycle/V3/Util.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-contingent-claims-valuation-v0-math-ml", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/ContingentClaims/Valuation/V0/MathML.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-contingent-claims-valuation-v0-stochastic", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/ContingentClaims/Valuation/V0/Stochastic.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-account-v4-account", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Account/V4/Account.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-claims-v3-lifecycle-rule", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Claims/V3/Lifecycle/Rule.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-claims-v3-util", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Claims/V3/Util.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-claims-v3-util-builders", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Claims/V3/Util/Builders.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-claims-v3-util-date", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Claims/V3/Util/Date.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-claims-v3-util-lifecycle", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Claims/V3/Util/Lifecycle.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-data-v4-numeric-observation", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Data/V4/Numeric/Observation.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-data-v4-reference-holiday-calendar", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Data/V4/Reference/HolidayCalendar.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-data-v4-time-date-clock", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Data/V4/Time/DateClock.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-data-v4-time-date-clock-types", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Data/V4/Time/DateClock/Types.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-data-v4-time-date-clock-update", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Data/V4/Time/DateClockUpdate.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-data-v4-time-ledger-time", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Data/V4/Time/LedgerTime.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-holding-v4-base-holding", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Holding/V4/BaseHolding.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-holding-v4-factory", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Holding/V4/Factory.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-holding-v4-fungible", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Holding/V4/Fungible.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-holding-v4-transferable", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Holding/V4/Transferable.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-holding-v4-transferable-fungible", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Holding/V4/TransferableFungible.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-holding-v4-util", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Holding/V4/Util.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-instrument-bond-v3-callable-factory", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Instrument/Bond/V3/Callable/Factory.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-instrument-bond-v3-callable-instrument", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Instrument/Bond/V3/Callable/Instrument.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-instrument-bond-v3-fixed-rate-factory", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Instrument/Bond/V3/FixedRate/Factory.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-instrument-bond-v3-fixed-rate-instrument", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Instrument/Bond/V3/FixedRate/Instrument.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-instrument-bond-v3-floating-rate-factory", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Instrument/Bond/V3/FloatingRate/Factory.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-instrument-bond-v3-floating-rate-instrument", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Instrument/Bond/V3/FloatingRate/Instrument.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-instrument-bond-v3-inflation-linked-factory", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Instrument/Bond/V3/InflationLinked/Factory.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-instrument-bond-v3-inflation-linked-instrument", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Instrument/Bond/V3/InflationLinked/Instrument.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-instrument-bond-v3-util", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Instrument/Bond/V3/Util.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-instrument-bond-v3-zero-coupon-factory", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Instrument/Bond/V3/ZeroCoupon/Factory.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-instrument-bond-v3-zero-coupon-instrument", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Instrument/Bond/V3/ZeroCoupon/Instrument.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-instrument-equity-v0-factory", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Instrument/Equity/V0/Factory.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-instrument-equity-v0-instrument", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Instrument/Equity/V0/Instrument.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-instrument-generic-v4-factory", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Instrument/Generic/V4/Factory.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-instrument-generic-v4-instrument", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Instrument/Generic/V4/Instrument.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-instrument-generic-v4-lifecycle-rule", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Instrument/Generic/V4/Lifecycle/Rule.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-instrument-option-v0-barrier-european-cash-factory", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Instrument/Option/V0/BarrierEuropeanCash/Factory.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-instrument-option-v0-barrier-european-cash-instrument", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Instrument/Option/V0/BarrierEuropeanCash/Instrument.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-instrument-option-v0-dividend-election", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Instrument/Option/V0/Dividend/Election.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-instrument-option-v0-dividend-factory", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Instrument/Option/V0/Dividend/Factory.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-instrument-option-v0-dividend-instrument", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Instrument/Option/V0/Dividend/Instrument.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-instrument-option-v0-european-cash-factory", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Instrument/Option/V0/EuropeanCash/Factory.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-instrument-option-v0-european-cash-instrument", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Instrument/Option/V0/EuropeanCash/Instrument.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-instrument-option-v0-european-physical-factory", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Instrument/Option/V0/EuropeanPhysical/Factory.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-instrument-option-v0-european-physical-instrument", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Instrument/Option/V0/EuropeanPhysical/Instrument.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-instrument-structured-product-v0-auto-callable-factory", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Instrument/StructuredProduct/V0/AutoCallable/Factory.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-instrument-structured-product-v0-auto-callable-instrument", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Instrument/StructuredProduct/V0/AutoCallable/Instrument.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-instrument-structured-product-v0-barrier-reverse-convertible-factory", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Instrument/StructuredProduct/V0/BarrierReverseConvertible/Factory.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-instrument-structured-product-v0-barrier-reverse-convertible-instrument", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Instrument/StructuredProduct/V0/BarrierReverseConvertible/Instrument.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-instrument-structured-product-v0-util", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Instrument/StructuredProduct/V0/Util.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-instrument-swap-v0-asset-distribution-rule", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Instrument/Swap/V0/Asset/DistributionRule.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-instrument-swap-v0-asset-factory", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Instrument/Swap/V0/Asset/Factory.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-instrument-swap-v0-asset-instrument", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Instrument/Swap/V0/Asset/Instrument.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-instrument-swap-v0-credit-default-factory", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Instrument/Swap/V0/CreditDefault/Factory.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-instrument-swap-v0-credit-default-instrument", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Instrument/Swap/V0/CreditDefault/Instrument.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-instrument-swap-v0-currency-factory", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Instrument/Swap/V0/Currency/Factory.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-instrument-swap-v0-currency-instrument", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Instrument/Swap/V0/Currency/Instrument.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-instrument-swap-v0-foreign-exchange-factory", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Instrument/Swap/V0/ForeignExchange/Factory.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-instrument-swap-v0-foreign-exchange-instrument", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Instrument/Swap/V0/ForeignExchange/Instrument.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-instrument-swap-v0-fpml-factory", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Instrument/Swap/V0/Fpml/Factory.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-instrument-swap-v0-fpml-instrument", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Instrument/Swap/V0/Fpml/Instrument.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-instrument-swap-v0-fpml-util", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Instrument/Swap/V0/Fpml/Util.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-instrument-swap-v0-interest-rate-factory", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Instrument/Swap/V0/InterestRate/Factory.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-instrument-swap-v0-interest-rate-instrument", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Instrument/Swap/V0/InterestRate/Instrument.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-instrument-token-v4-factory", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Instrument/Token/V4/Factory.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-instrument-token-v4-instrument", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Instrument/Token/V4/Instrument.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-account-v4-account", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Account/V4/Account.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-account-v4-factory", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Account/V4/Factory.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-account-v4-util", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Account/V4/Util.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-claims-v4-claim", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Claims/V4/Claim.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-claims-v4-dynamic-instrument", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Claims/V4/Dynamic/Instrument.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-claims-v4-types", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Claims/V4/Types.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-data-v4-numeric-observation", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Data/V4/Numeric/Observation.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-data-v4-numeric-observation-factory", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Data/V4/Numeric/Observation/Factory.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-data-v4-reference-holiday-calendar", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Data/V4/Reference/HolidayCalendar.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-data-v4-reference-holiday-calendar-factory", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Data/V4/Reference/HolidayCalendar/Factory.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-data-v4-reference-time", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Data/V4/Reference/Time.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-holding-v4-factory", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Holding/V4/Factory.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-holding-v4-fungible", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Holding/V4/Fungible.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-holding-v4-holding", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Holding/V4/Holding.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-holding-v4-transferable", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Holding/V4/Transferable.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-holding-v4-util", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Holding/V4/Util.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-instrument-base-v4-instrument", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Instrument/Base/V4/Instrument.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-instrument-bond-v3-callable-factory", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Instrument/Bond/V3/Callable/Factory.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-instrument-bond-v3-callable-instrument", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Instrument/Bond/V3/Callable/Instrument.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-instrument-bond-v3-callable-types", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Instrument/Bond/V3/Callable/Types.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-instrument-bond-v3-fixed-rate-factory", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Instrument/Bond/V3/FixedRate/Factory.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-instrument-bond-v3-fixed-rate-instrument", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Instrument/Bond/V3/FixedRate/Instrument.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-instrument-bond-v3-fixed-rate-types", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Instrument/Bond/V3/FixedRate/Types.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-instrument-bond-v3-floating-rate-factory", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Instrument/Bond/V3/FloatingRate/Factory.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-instrument-bond-v3-floating-rate-instrument", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Instrument/Bond/V3/FloatingRate/Instrument.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-instrument-bond-v3-floating-rate-types", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Instrument/Bond/V3/FloatingRate/Types.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-instrument-bond-v3-inflation-linked-factory", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Instrument/Bond/V3/InflationLinked/Factory.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-instrument-bond-v3-inflation-linked-instrument", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Instrument/Bond/V3/InflationLinked/Instrument.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-instrument-bond-v3-inflation-linked-types", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Instrument/Bond/V3/InflationLinked/Types.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-instrument-bond-v3-zero-coupon-factory", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Instrument/Bond/V3/ZeroCoupon/Factory.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-instrument-bond-v3-zero-coupon-instrument", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Instrument/Bond/V3/ZeroCoupon/Instrument.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-instrument-bond-v3-zero-coupon-types", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Instrument/Bond/V3/ZeroCoupon/Types.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-instrument-equity-v0-factory", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Instrument/Equity/V0/Factory.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-instrument-equity-v0-instrument", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Instrument/Equity/V0/Instrument.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-instrument-generic-v4-factory", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Instrument/Generic/V4/Factory.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-instrument-generic-v4-instrument", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Instrument/Generic/V4/Instrument.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-instrument-option-v0-barrier-european-cash-factory", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Instrument/Option/V0/BarrierEuropeanCash/Factory.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-instrument-option-v0-barrier-european-cash-instrument", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Instrument/Option/V0/BarrierEuropeanCash/Instrument.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-instrument-option-v0-barrier-european-cash-types", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Instrument/Option/V0/BarrierEuropeanCash/Types.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-instrument-option-v0-dividend-election-factory", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Instrument/Option/V0/Dividend/Election/Factory.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-instrument-option-v0-dividend-factory", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Instrument/Option/V0/Dividend/Factory.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-instrument-option-v0-dividend-instrument", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Instrument/Option/V0/Dividend/Instrument.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-instrument-option-v0-dividend-types", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Instrument/Option/V0/Dividend/Types.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-instrument-option-v0-european-cash-factory", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Instrument/Option/V0/EuropeanCash/Factory.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-instrument-option-v0-european-cash-instrument", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Instrument/Option/V0/EuropeanCash/Instrument.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-instrument-option-v0-european-cash-types", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Instrument/Option/V0/EuropeanCash/Types.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-instrument-option-v0-european-physical-factory", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Instrument/Option/V0/EuropeanPhysical/Factory.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-instrument-option-v0-european-physical-instrument", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Instrument/Option/V0/EuropeanPhysical/Instrument.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-instrument-option-v0-european-physical-types", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Instrument/Option/V0/EuropeanPhysical/Types.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-instrument-option-v0-types", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Instrument/Option/V0/Types.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-instrument-structured-product-v0-auto-callable-factory", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Instrument/StructuredProduct/V0/AutoCallable/Factory.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-instrument-structured-product-v0-auto-callable-instrument", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Instrument/StructuredProduct/V0/AutoCallable/Instrument.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-instrument-structured-product-v0-auto-callable-types", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Instrument/StructuredProduct/V0/AutoCallable/Types.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-instrument-structured-product-v0-barrier-reverse-convertible-factory", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Instrument/StructuredProduct/V0/BarrierReverseConvertible/Factory.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-instrument-structured-product-v0-barrier-reverse-convertible-instrument", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Instrument/StructuredProduct/V0/BarrierReverseConvertible/Instrument.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-instrument-structured-product-v0-barrier-reverse-convertible-types", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Instrument/StructuredProduct/V0/BarrierReverseConvertible/Types.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-instrument-structured-product-v0-types", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Instrument/StructuredProduct/V0/Types.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-instrument-swap-v0-asset-factory", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Instrument/Swap/V0/Asset/Factory.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-instrument-swap-v0-asset-instrument", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Instrument/Swap/V0/Asset/Instrument.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-instrument-swap-v0-asset-types", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Instrument/Swap/V0/Asset/Types.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-instrument-swap-v0-credit-default-factory", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Instrument/Swap/V0/CreditDefault/Factory.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-instrument-swap-v0-credit-default-instrument", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Instrument/Swap/V0/CreditDefault/Instrument.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-instrument-swap-v0-credit-default-types", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Instrument/Swap/V0/CreditDefault/Types.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-instrument-swap-v0-currency-factory", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Instrument/Swap/V0/Currency/Factory.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-instrument-swap-v0-currency-instrument", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Instrument/Swap/V0/Currency/Instrument.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-instrument-swap-v0-currency-types", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Instrument/Swap/V0/Currency/Types.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-instrument-swap-v0-foreign-exchange-factory", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Instrument/Swap/V0/ForeignExchange/Factory.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-instrument-swap-v0-foreign-exchange-instrument", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Instrument/Swap/V0/ForeignExchange/Instrument.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-instrument-swap-v0-foreign-exchange-types", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Instrument/Swap/V0/ForeignExchange/Types.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-instrument-swap-v0-fpml-factory", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Instrument/Swap/V0/Fpml/Factory.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-instrument-swap-v0-fpml-fpml-types", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Instrument/Swap/V0/Fpml/FpmlTypes.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-instrument-swap-v0-fpml-instrument", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Instrument/Swap/V0/Fpml/Instrument.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-instrument-swap-v0-fpml-types", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Instrument/Swap/V0/Fpml/Types.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-instrument-swap-v0-interest-rate-factory", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Instrument/Swap/V0/InterestRate/Factory.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-instrument-swap-v0-interest-rate-instrument", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Instrument/Swap/V0/InterestRate/Instrument.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-instrument-swap-v0-interest-rate-types", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Instrument/Swap/V0/InterestRate/Types.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-instrument-token-v4-factory", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Instrument/Token/V4/Factory.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-instrument-token-v4-instrument", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Instrument/Token/V4/Instrument.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-instrument-token-v4-types", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Instrument/Token/V4/Types.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-instrument-types-v2-floating-rate", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Instrument/Types/V2/FloatingRate.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-lifecycle-v4-effect", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Lifecycle/V4/Effect.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-lifecycle-v4-election", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Lifecycle/V4/Election.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-lifecycle-v4-election-factory", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Lifecycle/V4/Election/Factory.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-lifecycle-v4-event", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Lifecycle/V4/Event.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-lifecycle-v4-event-distribution", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Lifecycle/V4/Event/Distribution.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-lifecycle-v4-event-replacement", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Lifecycle/V4/Event/Replacement.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-lifecycle-v4-event-time", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Lifecycle/V4/Event/Time.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-lifecycle-v4-observable-numeric-observable", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Lifecycle/V4/Observable/NumericObservable.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-lifecycle-v4-observable-time-observable", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Lifecycle/V4/Observable/TimeObservable.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-lifecycle-v4-rule-claim", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Lifecycle/V4/Rule/Claim.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-lifecycle-v4-rule-lifecycle", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Lifecycle/V4/Rule/Lifecycle.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-settlement-v4-batch", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Settlement/V4/Batch.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-settlement-v4-factory", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Settlement/V4/Factory.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-settlement-v4-instruction", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Settlement/V4/Instruction.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-settlement-v4-route-provider", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Settlement/V4/RouteProvider.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-settlement-v4-types", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Settlement/V4/Types.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-types-common-v3-types", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Types/Common/V3/Types.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-types-date-v3-calendar", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Types/Date/V3/Calendar.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-types-date-v3-classes", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Types/Date/V3/Classes.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-types-date-v3-date-offset", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Types/Date/V3/DateOffset.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-types-date-v3-day-count", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Types/Date/V3/DayCount.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-types-date-v3-roll-convention", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Types/Date/V3/RollConvention.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-types-date-v3-schedule", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Types/Date/V3/Schedule.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-util-v3-common", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Util/V3/Common.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-util-v3-disclosure", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Util/V3/Disclosure.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-util-v3-interface-key", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Util/V3/InterfaceKey.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-interface-util-v3-lockable", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Interface/Util/V3/Lockable.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-lifecycle-v4-effect", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Lifecycle/V4/Effect.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-lifecycle-v4-election", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Lifecycle/V4/Election.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-lifecycle-v4-election-effect", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Lifecycle/V4/ElectionEffect.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-lifecycle-v4-event-distribution", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Lifecycle/V4/Event/Distribution.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-lifecycle-v4-event-replacement", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Lifecycle/V4/Event/Replacement.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-lifecycle-v4-rule-claim", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Lifecycle/V4/Rule/Claim.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-lifecycle-v4-rule-distribution", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Lifecycle/V4/Rule/Distribution.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-lifecycle-v4-rule-replacement", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Lifecycle/V4/Rule/Replacement.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-lifecycle-v4-rule-util", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Lifecycle/V4/Rule/Util.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-settlement-v4-batch", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Settlement/V4/Batch.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-settlement-v4-factory", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Settlement/V4/Factory.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-settlement-v4-hierarchy", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Settlement/V4/Hierarchy.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-settlement-v4-instruction", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Settlement/V4/Instruction.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-settlement-v4-route-provider-intermediated-static", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Settlement/V4/RouteProvider/IntermediatedStatic.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-settlement-v4-route-provider-single-custodian", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Settlement/V4/RouteProvider/SingleCustodian.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-util-v4-common", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Util/V4/Common.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-util-v4-date-calendar", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Util/V4/Date/Calendar.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-util-v4-date-day-count", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Util/V4/Date/DayCount.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-util-v4-date-roll-convention", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Util/V4/Date/RollConvention.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-util-v4-date-schedule", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Util/V4/Date/Schedule.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-util-v4-disclosure", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Util/V4/Disclosure.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-main-daml-daml-finance-util-v4-lockable", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Util/V4/Lockable.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-test-daml-contingent-claims-test-currency", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/ContingentClaims/Test/Currency.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-test-daml-contingent-claims-test-financial-contract", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/ContingentClaims/Test/FinancialContract.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-test-daml-contingent-claims-test-initialization", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/ContingentClaims/Test/Initialization.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-test-daml-contingent-claims-test-lifecycle", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/ContingentClaims/Test/Lifecycle.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-test-daml-contingent-claims-test-pricing", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/ContingentClaims/Test/Pricing.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-test-daml-contingent-claims-test-templating", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/ContingentClaims/Test/Templating.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-test-daml-contingent-claims-test-util", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/ContingentClaims/Test/Util.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-test-daml-daml-finance-account-test-account", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Account/Test/Account.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-test-daml-daml-finance-account-test-controllers", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Account/Test/Controllers.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-test-daml-daml-finance-account-test-lock", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Account/Test/Lock.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-test-daml-daml-finance-data-test-date-clock", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Data/Test/DateClock.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-test-daml-daml-finance-data-test-holiday-calendar", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Data/Test/HolidayCalendar.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-test-daml-daml-finance-data-test-observation", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Data/Test/Observation.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-test-daml-daml-finance-holding-test-common", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Holding/Test/Common.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-test-daml-daml-finance-holding-test-holding", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Holding/Test/Holding.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-test-daml-daml-finance-holding-test-transfer", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Holding/Test/Transfer.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-test-daml-daml-finance-holding-test-transferable", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Holding/Test/Transferable.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-test-daml-daml-finance-holding-test-transferable-fungible", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Holding/Test/TransferableFungible.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-test-daml-daml-finance-holding-test-upgrade", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Holding/Test/Upgrade.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-test-daml-daml-finance-instrument-bond-test-callable", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Bond/Test/Callable.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-test-daml-daml-finance-instrument-bond-test-fixed-rate", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Bond/Test/FixedRate.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-test-daml-daml-finance-instrument-bond-test-floating-rate", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Bond/Test/FloatingRate.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-test-daml-daml-finance-instrument-bond-test-inflation-linked", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Bond/Test/InflationLinked.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-test-daml-daml-finance-instrument-bond-test-util", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Bond/Test/Util.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-test-daml-daml-finance-instrument-bond-test-zero-coupon", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Bond/Test/ZeroCoupon.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-test-daml-daml-finance-instrument-equity-test-div-option", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Equity/Test/DivOption.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-test-daml-daml-finance-instrument-equity-test-dividend", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Equity/Test/Dividend.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-test-daml-daml-finance-instrument-equity-test-merger", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Equity/Test/Merger.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-test-daml-daml-finance-instrument-equity-test-rights-issue", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Equity/Test/RightsIssue.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-test-daml-daml-finance-instrument-equity-test-stock-split", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Equity/Test/StockSplit.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-test-daml-daml-finance-instrument-equity-test-util", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Equity/Test/Util.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-test-daml-daml-finance-instrument-generic-test-callable-bond", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Generic/Test/CallableBond.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-test-daml-daml-finance-instrument-generic-test-election-workflow", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Generic/Test/Election/Workflow.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-test-daml-daml-finance-instrument-generic-test-european-option", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Generic/Test/EuropeanOption.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-test-daml-daml-finance-instrument-generic-test-forward-cash", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Generic/Test/ForwardCash.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-test-daml-daml-finance-instrument-generic-test-forward-physical", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Generic/Test/ForwardPhysical.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-test-daml-daml-finance-instrument-generic-test-intermediated-bond-coupon", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Generic/Test/Intermediated/BondCoupon.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-test-daml-daml-finance-instrument-generic-test-reverse-convertible", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Generic/Test/ReverseConvertible.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-test-daml-daml-finance-instrument-generic-test-util", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Generic/Test/Util.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-test-daml-daml-finance-instrument-option-test-barrier-european-cash", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Option/Test/BarrierEuropeanCash.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-test-daml-daml-finance-instrument-option-test-dividend", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Option/Test/Dividend.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-test-daml-daml-finance-instrument-option-test-european-cash", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Option/Test/EuropeanCash.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-test-daml-daml-finance-instrument-option-test-european-physical", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Option/Test/EuropeanPhysical.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-test-daml-daml-finance-instrument-option-test-util", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Option/Test/Util.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-test-daml-daml-finance-instrument-structured-product-test-auto-callable", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/StructuredProduct/Test/AutoCallable.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-test-daml-daml-finance-instrument-structured-product-test-barrier-reverse-convertible", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/StructuredProduct/Test/BarrierReverseConvertible.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-test-daml-daml-finance-instrument-structured-product-test-util", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/StructuredProduct/Test/Util.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-test-daml-daml-finance-instrument-swap-test-asset", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Swap/Test/Asset.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-test-daml-daml-finance-instrument-swap-test-credit-default", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Swap/Test/CreditDefault.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-test-daml-daml-finance-instrument-swap-test-currency", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Swap/Test/Currency.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-test-daml-daml-finance-instrument-swap-test-foreign-exchange", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Swap/Test/ForeignExchange.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-test-daml-daml-finance-instrument-swap-test-fpml", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Swap/Test/Fpml.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-test-daml-daml-finance-instrument-swap-test-interest-rate", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Swap/Test/InterestRate.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-test-daml-daml-finance-instrument-swap-test-util", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Swap/Test/Util.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-test-daml-daml-finance-instrument-token-test-token", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Token/Test/Token.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-test-daml-daml-finance-instrument-token-test-util", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Token/Test/Util.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-test-daml-daml-finance-settlement-test-batch", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Settlement/Test/Batch.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-test-daml-daml-finance-settlement-test-batch-with-intermediaries", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Settlement/Test/BatchWithIntermediaries.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-test-daml-daml-finance-settlement-test-hierarchy", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Settlement/Test/Hierarchy.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-test-daml-daml-finance-settlement-test-intermediated", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Settlement/Test/Intermediated.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-test-daml-daml-finance-settlement-test-transfer", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Settlement/Test/Transfer.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-test-daml-daml-finance-test-util-account", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Test/Util/Account.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-test-daml-daml-finance-test-util-common", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Test/Util/Common.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-test-daml-daml-finance-test-util-holding", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Test/Util/Holding.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-test-daml-daml-finance-test-util-holding-duplicates-base-holding", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Test/Util/HoldingDuplicates/BaseHolding.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-test-daml-daml-finance-test-util-holding-duplicates-factory", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Test/Util/HoldingDuplicates/Factory.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-test-daml-daml-finance-test-util-holding-duplicates-fungible", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Test/Util/HoldingDuplicates/Fungible.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-test-daml-daml-finance-test-util-holding-duplicates-transferable", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Test/Util/HoldingDuplicates/Transferable.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-test-daml-daml-finance-test-util-holding-duplicates-transferable-fungible", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Test/Util/HoldingDuplicates/TransferableFungible.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-test-daml-daml-finance-test-util-holding-factory", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Test/Util/HoldingFactory.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-test-daml-daml-finance-test-util-instrument", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Test/Util/Instrument.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-test-daml-daml-finance-test-util-lifecycle", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Test/Util/Lifecycle.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-test-daml-daml-finance-test-util-time", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Test/Util/Time.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-test-daml-daml-finance-util-test-common", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Util/Test/Common.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-test-daml-daml-finance-util-test-date-calendar", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Util/Test/Date/Calendar.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-test-daml-daml-finance-util-test-date-day-count", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Util/Test/Date/DayCount.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-test-daml-daml-finance-util-test-date-roll-convention", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Util/Test/Date/RollConvention.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-test-daml-daml-finance-util-test-date-schedule", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Util/Test/Date/Schedule.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-full-docs-generated-src-test-daml-daml-finance-util-test-disclosure", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Util/Test/Disclosure.daml", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-instrument-bond-test-fixed-rate-create-fixed-rate-bond-variables-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Bond/Test/FixedRate.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_FIXED_RATE_BOND_VARIABLES_BEGIN", + "end": "-- CREATE_FIXED_RATE_BOND_VARIABLES_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-test-util-time-create-periodic-schedule-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Test/Util/Time.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_PERIODIC_SCHEDULE_BEGIN", + "end": "-- CREATE_PERIODIC_SCHEDULE_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-instrument-bond-test-util-create-fixed-rate-bond-instrument-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Bond/Test/Util.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_FIXED_RATE_BOND_INSTRUMENT_BEGIN", + "end": "-- CREATE_FIXED_RATE_BOND_INSTRUMENT_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-instrument-bond-test-floating-rate-create-floating-rate-bond-variables-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Bond/Test/FloatingRate.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_FLOATING_RATE_BOND_VARIABLES_BEGIN", + "end": "-- CREATE_FLOATING_RATE_BOND_VARIABLES_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-instrument-bond-test-util-create-floating-rate-bond-instrument-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Bond/Test/Util.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_FLOATING_RATE_BOND_INSTRUMENT_BEGIN", + "end": "-- CREATE_FLOATING_RATE_BOND_INSTRUMENT_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-instrument-bond-test-callable-create-3-m-cap-floor-floating-6-m-callable-bond-variables-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Bond/Test/Callable.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_3M_CAP_FLOOR_FLOATING_6M_CALLABLE_BOND_VARIABLES_BEGIN", + "end": "-- CREATE_3M_CAP_FLOOR_FLOATING_6M_CALLABLE_BOND_VARIABLES_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-instrument-bond-test-callable-create-3-m-cap-floor-floating-6-m-callable-bond-coupon-schedule-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Bond/Test/Callable.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_3M_CAP_FLOOR_FLOATING_6M_CALLABLE_BOND_COUPON_SCHEDULE_BEGIN", + "end": "-- CREATE_3M_CAP_FLOOR_FLOATING_6M_CALLABLE_BOND_COUPON_SCHEDULE_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-instrument-bond-test-callable-create-6-m-sofr-callable-bond-variables-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Bond/Test/Callable.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_6M_SOFR_CALLABLE_BOND_VARIABLES_BEGIN", + "end": "-- CREATE_6M_SOFR_CALLABLE_BOND_VARIABLES_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-instrument-bond-test-callable-create-3-m-cap-floor-floating-6-m-callable-bond-schedule-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Bond/Test/Callable.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_3M_CAP_FLOOR_FLOATING_6M_CALLABLE_BOND_SCHEDULE_BEGIN", + "end": "-- CREATE_3M_CAP_FLOOR_FLOATING_6M_CALLABLE_BOND_SCHEDULE_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-instrument-bond-test-util-create-multi-schedule-callable-bond-instrument-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Bond/Test/Util.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_MULTI_SCHEDULE_CALLABLE_BOND_INSTRUMENT_BEGIN", + "end": "-- CREATE_MULTI_SCHEDULE_CALLABLE_BOND_INSTRUMENT_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-instrument-bond-test-inflation-linked-create-inflation-linked-bond-variables-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Bond/Test/InflationLinked.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_INFLATION_LINKED_BOND_VARIABLES_BEGIN", + "end": "-- CREATE_INFLATION_LINKED_BOND_VARIABLES_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-instrument-bond-test-util-create-inflation-linked-bond-instrument-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Bond/Test/Util.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_INFLATION_LINKED_BOND_INSTRUMENT_BEGIN", + "end": "-- CREATE_INFLATION_LINKED_BOND_INSTRUMENT_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-instrument-bond-test-zero-coupon-create-zero-coupon-bond-variables-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Bond/Test/ZeroCoupon.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_ZERO_COUPON_BOND_VARIABLES_BEGIN", + "end": "-- CREATE_ZERO_COUPON_BOND_VARIABLES_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-instrument-bond-test-util-create-zero-coupon-bond-instrument-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Bond/Test/Util.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_ZERO_COUPON_BOND_INSTRUMENT_BEGIN", + "end": "-- CREATE_ZERO_COUPON_BOND_INSTRUMENT_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-instrument-equity-test-dividend-create-equity-instruments-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Equity/Test/Dividend.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_EQUITY_INSTRUMENTS_BEGIN", + "end": "-- CREATE_EQUITY_INSTRUMENTS_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-instrument-equity-test-dividend-create-equity-holding-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Equity/Test/Dividend.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_EQUITY_HOLDING_BEGIN", + "end": "-- CREATE_EQUITY_HOLDING_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-instrument-equity-test-dividend-create-equity-distribution-rule-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Equity/Test/Dividend.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_EQUITY_DISTRIBUTION_RULE_BEGIN", + "end": "-- CREATE_EQUITY_DISTRIBUTION_RULE_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-instrument-equity-test-dividend-create-equity-distribution-event-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Equity/Test/Dividend.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_EQUITY_DISTRIBUTION_EVENT_BEGIN", + "end": "-- CREATE_EQUITY_DISTRIBUTION_EVENT_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-instrument-equity-test-dividend-lifecycle-cash-dividend-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Equity/Test/Dividend.daml", + "location": { + "type": "stringMarker", + "start": "-- LIFECYCLE_CASH_DIVIDEND_BEGIN", + "end": "-- LIFECYCLE_CASH_DIVIDEND_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-instrument-equity-test-dividend-create-equity-bonus-issue-distribution-event-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Equity/Test/Dividend.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_EQUITY_BONUS_ISSUE_DISTRIBUTION_EVENT_BEGIN", + "end": "-- CREATE_EQUITY_BONUS_ISSUE_DISTRIBUTION_EVENT_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-instrument-equity-test-dividend-create-equity-dividend-option-distribution-event-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Equity/Test/Dividend.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_EQUITY_DIVIDEND_OPTION_DISTRIBUTION_EVENT_BEGIN", + "end": "-- CREATE_EQUITY_DIVIDEND_OPTION_DISTRIBUTION_EVENT_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-instrument-equity-test-dividend-livecycle-dividend-option-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Equity/Test/Dividend.daml", + "location": { + "type": "stringMarker", + "start": "-- LIVECYCLE_DIVIDEND_OPTION_BEGIN", + "end": "-- LIVECYCLE_DIVIDEND_OPTION_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-instrument-equity-test-dividend-investor-claims-dividend-option-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Equity/Test/Dividend.daml", + "location": { + "type": "stringMarker", + "start": "-- INVESTOR_CLAIMS_DIVIDEND_OPTION_BEGIN", + "end": "-- INVESTOR_CLAIMS_DIVIDEND_OPTION_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-instrument-equity-test-stock-split-create-equity-instruments-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Equity/Test/StockSplit.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_EQUITY_INSTRUMENTS_BEGIN", + "end": "-- CREATE_EQUITY_INSTRUMENTS_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-instrument-equity-test-stock-split-create-equity-replacement-rule-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Equity/Test/StockSplit.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_EQUITY_REPLACEMENT_RULE_BEGIN", + "end": "-- CREATE_EQUITY_REPLACEMENT_RULE_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-instrument-equity-test-stock-split-create-equity-replacement-event-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Equity/Test/StockSplit.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_EQUITY_REPLACEMENT_EVENT_BEGIN", + "end": "-- CREATE_EQUITY_REPLACEMENT_EVENT_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-instrument-equity-test-stock-split-lifecycle-stock-split-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Equity/Test/StockSplit.daml", + "location": { + "type": "stringMarker", + "start": "-- LIFECYCLE_STOCK_SPLIT_BEGIN", + "end": "-- LIFECYCLE_STOCK_SPLIT_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-instrument-equity-test-merger-create-equity-instruments-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Equity/Test/Merger.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_EQUITY_INSTRUMENTS_BEGIN", + "end": "-- CREATE_EQUITY_INSTRUMENTS_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-instrument-equity-test-merger-create-equity-replacement-rule-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Equity/Test/Merger.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_EQUITY_REPLACEMENT_RULE_BEGIN", + "end": "-- CREATE_EQUITY_REPLACEMENT_RULE_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-instrument-equity-test-merger-create-equity-replacement-event-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Equity/Test/Merger.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_EQUITY_REPLACEMENT_EVENT_BEGIN", + "end": "-- CREATE_EQUITY_REPLACEMENT_EVENT_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-instrument-equity-test-merger-lifecycle-merger-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Equity/Test/Merger.daml", + "location": { + "type": "stringMarker", + "start": "-- LIFECYCLE_MERGER_BEGIN", + "end": "-- LIFECYCLE_MERGER_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-instrument-generic-test-intermediated-bond-coupon-create-cc-instrument-variables-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Generic/Test/Intermediated/BondCoupon.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_CC_INSTRUMENT_VARIABLES_BEGIN", + "end": "-- CREATE_CC_INSTRUMENT_VARIABLES_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-instrument-generic-test-intermediated-bond-coupon-create-cc-instrument-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Generic/Test/Intermediated/BondCoupon.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_CC_INSTRUMENT_BEGIN", + "end": "-- CREATE_CC_INSTRUMENT_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-instrument-generic-test-european-option-create-cc-option-instrument-variables-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Generic/Test/EuropeanOption.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_CC_OPTION_INSTRUMENT_VARIABLES_BEGIN", + "end": "-- CREATE_CC_OPTION_INSTRUMENT_VARIABLES_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-instrument-generic-test-european-option-create-election-factory-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Generic/Test/EuropeanOption.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_ELECTION_FACTORY_BEGIN", + "end": "-- CREATE_ELECTION_FACTORY_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-instrument-generic-test-european-option-create-election-offer-exercise-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Generic/Test/EuropeanOption.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_ELECTION_OFFER_EXERCISE_BEGIN", + "end": "-- CREATE_ELECTION_OFFER_EXERCISE_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-instrument-generic-test-european-option-create-election-offer-expire-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Generic/Test/EuropeanOption.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_ELECTION_OFFER_EXPIRE_BEGIN", + "end": "-- CREATE_ELECTION_OFFER_EXPIRE_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-instrument-generic-test-european-option-create-too-big-election-candidate-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Generic/Test/EuropeanOption.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_TOO_BIG_ELECTION_CANDIDATE_BEGIN", + "end": "-- CREATE_TOO_BIG_ELECTION_CANDIDATE_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-instrument-generic-test-european-option-create-election-candidate-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Generic/Test/EuropeanOption.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_ELECTION_CANDIDATE_BEGIN", + "end": "-- CREATE_ELECTION_CANDIDATE_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-instrument-generic-test-european-option-create-clock-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Generic/Test/EuropeanOption.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_CLOCK_BEGIN", + "end": "-- CREATE_CLOCK_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-instrument-generic-test-european-option-create-election-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Generic/Test/EuropeanOption.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_ELECTION_BEGIN", + "end": "-- CREATE_ELECTION_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-instrument-generic-test-european-option-create-lifecycle-rule-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Generic/Test/EuropeanOption.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_LIFECYCLE_RULE_BEGIN", + "end": "-- CREATE_LIFECYCLE_RULE_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-instrument-generic-test-european-option-apply-election-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Generic/Test/EuropeanOption.daml", + "location": { + "type": "stringMarker", + "start": "-- APPLY_ELECTION_BEGIN", + "end": "-- APPLY_ELECTION_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-main-daml-contingent-claims-lifecycle-v3-lifecycle-claims-lifecycle-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/ContingentClaims/Lifecycle/V3/Lifecycle.daml", + "location": { + "type": "stringMarker", + "start": "-- CLAIMS_LIFECYCLE_BEGIN", + "end": "-- CLAIMS_LIFECYCLE_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-contingent-claims-test-financial-contract-claims-lifecycle-test-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/ContingentClaims/Test/FinancialContract.daml", + "location": { + "type": "stringMarker", + "start": "-- CLAIMS_LIFECYCLE_TEST_BEGIN", + "end": "-- CLAIMS_LIFECYCLE_TEST_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-instrument-option-test-european-physical-create-european-physical-option-variables-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Option/Test/EuropeanPhysical.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_EUROPEAN_PHYSICAL_OPTION_VARIABLES_BEGIN", + "end": "-- CREATE_EUROPEAN_PHYSICAL_OPTION_VARIABLES_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-instrument-option-test-util-create-european-physical-option-instrument-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Option/Test/Util.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_EUROPEAN_PHYSICAL_OPTION_INSTRUMENT_BEGIN", + "end": "-- CREATE_EUROPEAN_PHYSICAL_OPTION_INSTRUMENT_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-instrument-option-test-european-cash-create-european-option-variables-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Option/Test/EuropeanCash.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_EUROPEAN_OPTION_VARIABLES_BEGIN", + "end": "-- CREATE_EUROPEAN_OPTION_VARIABLES_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-instrument-option-test-util-create-european-option-instrument-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Option/Test/Util.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_EUROPEAN_OPTION_INSTRUMENT_BEGIN", + "end": "-- CREATE_EUROPEAN_OPTION_INSTRUMENT_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-instrument-option-test-european-cash-create-european-option-observations-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Option/Test/EuropeanCash.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_EUROPEAN_OPTION_OBSERVATIONS_BEGIN", + "end": "-- CREATE_EUROPEAN_OPTION_OBSERVATIONS_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-instrument-option-test-barrier-european-cash-create-barrier-european-option-variables-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Option/Test/BarrierEuropeanCash.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_BARRIER_EUROPEAN_OPTION_VARIABLES_BEGIN", + "end": "-- CREATE_BARRIER_EUROPEAN_OPTION_VARIABLES_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-instrument-option-test-util-create-barrier-european-option-instrument-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Option/Test/Util.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_BARRIER_EUROPEAN_OPTION_INSTRUMENT_BEGIN", + "end": "-- CREATE_BARRIER_EUROPEAN_OPTION_INSTRUMENT_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-instrument-option-test-dividend-create-dividend-option-variables-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Option/Test/Dividend.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_DIVIDEND_OPTION_VARIABLES_BEGIN", + "end": "-- CREATE_DIVIDEND_OPTION_VARIABLES_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-instrument-option-test-util-create-dividend-option-instrument-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Option/Test/Util.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_DIVIDEND_OPTION_INSTRUMENT_BEGIN", + "end": "-- CREATE_DIVIDEND_OPTION_INSTRUMENT_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-instrument-structured-product-test-barrier-reverse-convertible-create-barrier-reverse-convertible-variables-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/StructuredProduct/Test/BarrierReverseConvertible.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_BARRIER_REVERSE_CONVERTIBLE_VARIABLES_BEGIN", + "end": "-- CREATE_BARRIER_REVERSE_CONVERTIBLE_VARIABLES_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-instrument-structured-product-test-util-create-barrier-reverse-convertible-instrument-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/StructuredProduct/Test/Util.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_BARRIER_REVERSE_CONVERTIBLE_INSTRUMENT_BEGIN", + "end": "-- CREATE_BARRIER_REVERSE_CONVERTIBLE_INSTRUMENT_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-instrument-structured-product-test-barrier-reverse-convertible-create-barrier-reverse-convertible-observations-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/StructuredProduct/Test/BarrierReverseConvertible.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_BARRIER_REVERSE_CONVERTIBLE_OBSERVATIONS_BEGIN", + "end": "-- CREATE_BARRIER_REVERSE_CONVERTIBLE_OBSERVATIONS_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-instrument-structured-product-test-auto-callable-create-auto-callable-variables-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/StructuredProduct/Test/AutoCallable.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_AUTO_CALLABLE_VARIABLES_BEGIN", + "end": "-- CREATE_AUTO_CALLABLE_VARIABLES_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-instrument-structured-product-test-util-create-auto-callable-instrument-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/StructuredProduct/Test/Util.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_AUTO_CALLABLE_INSTRUMENT_BEGIN", + "end": "-- CREATE_AUTO_CALLABLE_INSTRUMENT_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-instrument-swap-test-interest-rate-create-interest-rate-swap-variables-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Swap/Test/InterestRate.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_INTEREST_RATE_SWAP_VARIABLES_BEGIN", + "end": "-- CREATE_INTEREST_RATE_SWAP_VARIABLES_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-instrument-swap-test-util-create-interest-rate-swap-instrument-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Swap/Test/Util.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_INTEREST_RATE_SWAP_INSTRUMENT_BEGIN", + "end": "-- CREATE_INTEREST_RATE_SWAP_INSTRUMENT_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-instrument-swap-test-currency-create-currency-swap-cash-instruments-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Swap/Test/Currency.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_CURRENCY_SWAP_CASH_INSTRUMENTS_BEGIN", + "end": "-- CREATE_CURRENCY_SWAP_CASH_INSTRUMENTS_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-instrument-swap-test-currency-create-currency-swap-variables-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Swap/Test/Currency.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_CURRENCY_SWAP_VARIABLES_BEGIN", + "end": "-- CREATE_CURRENCY_SWAP_VARIABLES_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-instrument-swap-test-util-create-currency-swap-instrument-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Swap/Test/Util.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_CURRENCY_SWAP_INSTRUMENT_BEGIN", + "end": "-- CREATE_CURRENCY_SWAP_INSTRUMENT_BEGIN" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-instrument-swap-test-foreign-exchange-create-fx-swap-cash-instruments-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Swap/Test/ForeignExchange.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_FX_SWAP_CASH_INSTRUMENTS_BEGIN", + "end": "-- CREATE_FX_SWAP_CASH_INSTRUMENTS_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-instrument-swap-test-foreign-exchange-create-fx-swap-variables-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Swap/Test/ForeignExchange.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_FX_SWAP_VARIABLES_BEGIN", + "end": "-- CREATE_FX_SWAP_VARIABLES_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-instrument-swap-test-util-create-foreign-exchange-swap-instrument-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Swap/Test/Util.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_FOREIGN_EXCHANGE_SWAP_INSTRUMENT_BEGIN", + "end": "-- CREATE_FOREIGN_EXCHANGE_SWAP_INSTRUMENT_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-instrument-swap-test-credit-default-create-credit-default-swap-variables-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Swap/Test/CreditDefault.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_CREDIT_DEFAULT_SWAP_VARIABLES_BEGIN", + "end": "-- CREATE_CREDIT_DEFAULT_SWAP_VARIABLES_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-instrument-swap-test-util-create-credit-default-swap-instrument-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Swap/Test/Util.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_CREDIT_DEFAULT_SWAP_INSTRUMENT_BEGIN", + "end": "-- CREATE_CREDIT_DEFAULT_SWAP_INSTRUMENT_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-instrument-swap-test-asset-create-asset-swap-variables-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Swap/Test/Asset.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_ASSET_SWAP_VARIABLES_BEGIN", + "end": "-- CREATE_ASSET_SWAP_VARIABLES_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-instrument-swap-test-util-create-asset-swap-instrument-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Swap/Test/Util.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_ASSET_SWAP_INSTRUMENT_BEGIN", + "end": "-- CREATE_ASSET_SWAP_INSTRUMENT_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-instrument-swap-test-asset-asset-swap-div-lifecycling-start", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Swap/Test/Asset.daml", + "location": { + "type": "stringMarker", + "start": "-- ASSET_SWAP_DIV_LIFECYCLING_START", + "end": "-- ASSET_SWAP_DIV_LIFECYCLING_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-instrument-swap-test-fpml-create-fpml-swap-variables-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Swap/Test/Fpml.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_FPML_SWAP_VARIABLES_BEGIN", + "end": "-- CREATE_FPML_SWAP_VARIABLES_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-instrument-swap-test-fpml-create-fpml-swap-fix-leg-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Swap/Test/Fpml.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_FPML_SWAP_FIX_LEG_BEGIN", + "end": "-- CREATE_FPML_SWAP_FIX_LEG_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-instrument-swap-test-fpml-create-fpml-swap-float-leg-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Swap/Test/Fpml.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_FPML_SWAP_FLOAT_LEG_BEGIN", + "end": "-- CREATE_FPML_SWAP_FLOAT_LEG_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-instrument-swap-test-util-create-fpml-swap-instrument-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Swap/Test/Util.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_FPML_SWAP_INSTRUMENT_BEGIN", + "end": "-- CREATE_FPML_SWAP_INSTRUMENT_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-quickstart-finance-daml-scripts-holding-create-instrument-factory-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/quickstart-finance/daml/Scripts/Holding.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_INSTRUMENT_FACTORY_BEGIN", + "end": "-- CREATE_INSTRUMENT_FACTORY_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-quickstart-finance-daml-scripts-holding-issue-cash-instrument-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/quickstart-finance/daml/Scripts/Holding.daml", + "location": { + "type": "stringMarker", + "start": "-- ISSUE_CASH_INSTRUMENT_BEGIN", + "end": "-- ISSUE_CASH_INSTRUMENT_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-main-daml-daml-finance-instrument-bond-v3-fixed-rate-instrument-fixed-rate-bond-template-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Instrument/Bond/V3/FixedRate/Instrument.daml", + "location": { + "type": "stringMarker", + "start": "-- FIXED_RATE_BOND_TEMPLATE_BEGIN", + "end": "-- FIXED_RATE_BOND_TEMPLATE_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-main-daml-daml-finance-instrument-bond-v3-fixed-rate-instrument-fixed-rate-bond-claims-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Instrument/Bond/V3/FixedRate/Instrument.daml", + "location": { + "type": "stringMarker", + "start": "-- FIXED_RATE_BOND_CLAIMS_BEGIN", + "end": "-- FIXED_RATE_BOND_CLAIMS_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-main-daml-daml-finance-claims-v3-util-builders-fixed-rate-bond-redemption-claim-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Claims/V3/Util/Builders.daml", + "location": { + "type": "stringMarker", + "start": "-- FIXED_RATE_BOND_REDEMPTION_CLAIM_BEGIN", + "end": "-- FIXED_RATE_BOND_REDEMPTION_CLAIM_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-main-daml-daml-finance-claims-v3-util-builders-fixed-rate-bond-coupon-claims-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Claims/V3/Util/Builders.daml", + "location": { + "type": "stringMarker", + "start": "-- FIXED_RATE_BOND_COUPON_CLAIMS_BEGIN", + "end": "-- FIXED_RATE_BOND_COUPON_CLAIMS_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-main-daml-daml-finance-claims-v3-lifecycle-rule-bond-process-clock-update-inital-claims-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Claims/V3/Lifecycle/Rule.daml", + "location": { + "type": "stringMarker", + "start": "-- BOND_PROCESS_CLOCK_UPDATE_INITAL_CLAIMS_BEGIN", + "end": "-- BOND_PROCESS_CLOCK_UPDATE_INITAL_CLAIMS_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-main-daml-daml-finance-claims-v3-lifecycle-rule-bond-process-clock-update-lifecycle-fastforward-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Claims/V3/Lifecycle/Rule.daml", + "location": { + "type": "stringMarker", + "start": "-- BOND_PROCESS_CLOCK_UPDATE_LIFECYCLE_FASTFORWARD_BEGIN", + "end": "-- BOND_PROCESS_CLOCK_UPDATE_LIFECYCLE_FASTFORWARD_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-main-daml-daml-finance-claims-v3-lifecycle-rule-bond-process-clock-update-lifecycle-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Claims/V3/Lifecycle/Rule.daml", + "location": { + "type": "stringMarker", + "start": "-- BOND_PROCESS_CLOCK_UPDATE_LIFECYCLE_BEGIN", + "end": "-- BOND_PROCESS_CLOCK_UPDATE_LIFECYCLE_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-main-daml-daml-finance-claims-v3-lifecycle-rule-create-new-dynamic-instrument-version-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Claims/V3/Lifecycle/Rule.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_NEW_DYNAMIC_INSTRUMENT_VERSION_BEGIN", + "end": "-- CREATE_NEW_DYNAMIC_INSTRUMENT_VERSION_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-main-daml-daml-finance-instrument-bond-v3-floating-rate-instrument-floating-rate-bond-template-until-refrate-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Instrument/Bond/V3/FloatingRate/Instrument.daml", + "location": { + "type": "stringMarker", + "start": "-- FLOATING_RATE_BOND_TEMPLATE_UNTIL_REFRATE_BEGIN", + "end": "-- FLOATING_RATE_BOND_TEMPLATE_UNTIL_REFRATE_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-main-daml-daml-finance-claims-v3-util-builders-floating-rate-bond-coupon-claims-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/main/daml/Daml/Finance/Claims/V3/Util/Builders.daml", + "location": { + "type": "stringMarker", + "start": "-- FLOATING_RATE_BOND_COUPON_CLAIMS_BEGIN", + "end": "-- FLOATING_RATE_BOND_COUPON_CLAIMS_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-util-test-date-calendar-create-holiday-calendar-data-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Util/Test/Date/Calendar.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_HOLIDAY_CALENDAR_DATA_BEGIN", + "end": "-- CREATE_HOLIDAY_CALENDAR_DATA_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-util-test-date-calendar-test-is-business-day-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Util/Test/Date/Calendar.daml", + "location": { + "type": "stringMarker", + "start": "-- TEST_IS_BUSINESS_DAY_BEGIN", + "end": "-- TEST_IS_BUSINESS_DAY_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-util-test-date-calendar-test-previous-business-day-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Util/Test/Date/Calendar.daml", + "location": { + "type": "stringMarker", + "start": "-- TEST_PREVIOUS_BUSINESS_DAY_BEGIN", + "end": "-- TEST_PREVIOUS_BUSINESS_DAY_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-util-test-date-calendar-test-next-business-day-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Util/Test/Date/Calendar.daml", + "location": { + "type": "stringMarker", + "start": "-- TEST_NEXT_BUSINESS_DAY_BEGIN", + "end": "-- TEST_NEXT_BUSINESS_DAY_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-util-test-date-calendar-test-add-business-days-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Util/Test/Date/Calendar.daml", + "location": { + "type": "stringMarker", + "start": "-- TEST_ADD_BUSINESS_DAYS_BEGIN", + "end": "-- TEST_ADD_BUSINESS_DAYS_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-util-test-date-calendar-test-add-business-days-negative-offset-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Util/Test/Date/Calendar.daml", + "location": { + "type": "stringMarker", + "start": "-- TEST_ADD_BUSINESS_DAYS_NEGATIVE_OFFSET_BEGIN", + "end": "-- TEST_ADD_BUSINESS_DAYS_NEGATIVE_OFFSET_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-util-test-date-calendar-test-adjust-date-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Util/Test/Date/Calendar.daml", + "location": { + "type": "stringMarker", + "start": "-- TEST_ADJUST_DATE_BEGIN", + "end": "-- TEST_ADJUST_DATE_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-util-test-date-roll-convention-test-add-period-day-week-month-year-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Util/Test/Date/RollConvention.daml", + "location": { + "type": "stringMarker", + "start": "-- TEST_ADD_PERIOD_DAY_WEEK_MONTH_YEAR_BEGIN", + "end": "-- TEST_ADD_PERIOD_DAY_WEEK_MONTH_YEAR_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-util-test-date-roll-convention-test-add-period-month-end-edge-case-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Util/Test/Date/RollConvention.daml", + "location": { + "type": "stringMarker", + "start": "-- TEST_ADD_PERIOD_MONTH_END_EDGE_CASE_BEGIN", + "end": "-- TEST_ADD_PERIOD_MONTH_END_EDGE_CASE_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-util-test-date-roll-convention-test-add-period-negative-offset-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Util/Test/Date/RollConvention.daml", + "location": { + "type": "stringMarker", + "start": "-- TEST_ADD_PERIOD_NEGATIVE_OFFSET_BEGIN", + "end": "-- TEST_ADD_PERIOD_NEGATIVE_OFFSET_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-util-test-date-roll-convention-test-next-eom-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Util/Test/Date/RollConvention.daml", + "location": { + "type": "stringMarker", + "start": "-- TEST_NEXT_EOM_BEGIN", + "end": "-- TEST_NEXT_EOM_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-util-test-date-roll-convention-test-next-dom1-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Util/Test/Date/RollConvention.daml", + "location": { + "type": "stringMarker", + "start": "-- TEST_NEXT_DOM1_BEGIN", + "end": "-- TEST_NEXT_DOM1_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-util-test-date-roll-convention-test-next-dom-past-eom-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Util/Test/Date/RollConvention.daml", + "location": { + "type": "stringMarker", + "start": "-- TEST_NEXT_DOM_PAST_EOM_BEGIN", + "end": "-- TEST_NEXT_DOM_PAST_EOM_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-util-test-date-roll-convention-test-next-dom-past-eofeb-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Util/Test/Date/RollConvention.daml", + "location": { + "type": "stringMarker", + "start": "-- TEST_NEXT_DOM_PAST_EOFEB_BEGIN", + "end": "-- TEST_NEXT_DOM_PAST_EOFEB_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-util-test-date-roll-convention-test-previous-dom-from-eofeb-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Util/Test/Date/RollConvention.daml", + "location": { + "type": "stringMarker", + "start": "-- TEST_PREVIOUS_DOM_FROM_EOFEB_BEGIN", + "end": "-- TEST_PREVIOUS_DOM_FROM_EOFEB_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-util-test-date-schedule-create-periodic-schedule-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Util/Test/Date/Schedule.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_PERIODIC_SCHEDULE_BEGIN", + "end": "-- CREATE_PERIODIC_SCHEDULE_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-util-test-date-schedule-create-expected-schedule-result-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Util/Test/Date/Schedule.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_EXPECTED_SCHEDULE_RESULT_BEGIN", + "end": "-- CREATE_EXPECTED_SCHEDULE_RESULT_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-util-test-date-schedule-create-schedule-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Util/Test/Date/Schedule.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_SCHEDULE_BEGIN", + "end": "-- CREATE_SCHEDULE_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-util-test-date-schedule-create-periodic-schedule-with-stub-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Util/Test/Date/Schedule.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_PERIODIC_SCHEDULE_WITH_STUB_BEGIN", + "end": "-- CREATE_PERIODIC_SCHEDULE_WITH_STUB_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-util-test-date-schedule-create-expected-schedule-result-with-stub-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Util/Test/Date/Schedule.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_EXPECTED_SCHEDULE_RESULT_WITH_STUB_BEGIN", + "end": "-- CREATE_EXPECTED_SCHEDULE_RESULT_WITH_STUB_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-util-test-date-schedule-create-schedule-with-stub-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Util/Test/Date/Schedule.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_SCHEDULE_WITH_STUB_BEGIN", + "end": "-- CREATE_SCHEDULE_WITH_STUB_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-util-test-date-day-count-calculate-act360-dcf-period1-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Util/Test/Date/DayCount.daml", + "location": { + "type": "stringMarker", + "start": "-- CALCULATE_ACT360_DCF_PERIOD1_BEGIN", + "end": "-- CALCULATE_ACT360_DCF_PERIOD1_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-util-test-date-day-count-calculate-act360-dcf-period2-and3-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Util/Test/Date/DayCount.daml", + "location": { + "type": "stringMarker", + "start": "-- CALCULATE_ACT360_DCF_PERIOD2AND3_BEGIN", + "end": "-- CALCULATE_ACT360_DCF_PERIOD2AND3_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-util-test-date-day-count-calculate-actactisda-dcf-schedule-period-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Util/Test/Date/DayCount.daml", + "location": { + "type": "stringMarker", + "start": "-- CALCULATE_ACTACTISDA_DCF_SCHEDULE_PERIOD_BEGIN", + "end": "-- CALCULATE_ACTACTISDA_DCF_SCHEDULE_PERIOD_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-instrument-generic-test-intermediated-bond-coupon-create-bond-route-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Generic/Test/Intermediated/BondCoupon.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_BOND_ROUTE_BEGIN", + "end": "-- CREATE_BOND_ROUTE_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-instrument-generic-test-intermediated-bond-coupon-create-cash-route-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Generic/Test/Intermediated/BondCoupon.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_CASH_ROUTE_BEGIN", + "end": "-- CREATE_CASH_ROUTE_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-instrument-generic-test-intermediated-bond-coupon-create-clock-for-bond-lifecycling-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Generic/Test/Intermediated/BondCoupon.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_CLOCK_FOR_BOND_LIFECYCLING_BEGIN", + "end": "-- CREATE_CLOCK_FOR_BOND_LIFECYCLING_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-instrument-generic-test-intermediated-bond-coupon-lifecycle-bond-create-rule-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Generic/Test/Intermediated/BondCoupon.daml", + "location": { + "type": "stringMarker", + "start": "-- LIFECYCLE_BOND_CREATE_RULE_BEGIN", + "end": "-- LIFECYCLE_BOND_CREATE_RULE_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-instrument-generic-test-intermediated-bond-coupon-lifecycle-bond-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Generic/Test/Intermediated/BondCoupon.daml", + "location": { + "type": "stringMarker", + "start": "-- LIFECYCLE_BOND_BEGIN", + "end": "-- LIFECYCLE_BOND_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-instrument-generic-test-intermediated-bond-coupon-lifecycle-bond-issuer-csd-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Generic/Test/Intermediated/BondCoupon.daml", + "location": { + "type": "stringMarker", + "start": "-- LIFECYCLE_BOND_ISSUER_CSD_BEGIN", + "end": "-- LIFECYCLE_BOND_ISSUER_CSD_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-instrument-generic-test-intermediated-bond-coupon-lifecycle-bond-settlement-factory-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Generic/Test/Intermediated/BondCoupon.daml", + "location": { + "type": "stringMarker", + "start": "-- LIFECYCLE_BOND_SETTLEMENT_FACTORY_BEGIN", + "end": "-- LIFECYCLE_BOND_SETTLEMENT_FACTORY_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-instrument-generic-test-intermediated-bond-coupon-lifecycle-bond-csd-investor-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Generic/Test/Intermediated/BondCoupon.daml", + "location": { + "type": "stringMarker", + "start": "-- LIFECYCLE_BOND_CSD_INVESTOR_BEGIN", + "end": "-- LIFECYCLE_BOND_CSD_INVESTOR_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-instrument-generic-test-intermediated-bond-coupon-lifecycle-bond-allocate-approve-settle-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Generic/Test/Intermediated/BondCoupon.daml", + "location": { + "type": "stringMarker", + "start": "-- LIFECYCLE_BOND_ALLOCATE_APPROVE_SETTLE_BEGIN", + "end": "-- LIFECYCLE_BOND_ALLOCATE_APPROVE_SETTLE_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-instrument-generic-test-intermediated-bond-coupon-lifecycle-bond-atomic-claimeffect-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Generic/Test/Intermediated/BondCoupon.daml", + "location": { + "type": "stringMarker", + "start": "-- LIFECYCLE_BOND_ATOMIC_CLAIMEFFECT_BEGIN", + "end": "-- LIFECYCLE_BOND_ATOMIC_CLAIMEFFECT_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-src-test-daml-daml-finance-instrument-generic-test-intermediated-bond-coupon-lifecycle-bond-atomic-instructions-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/src/test/daml/Daml/Finance/Instrument/Generic/Test/Intermediated/BondCoupon.daml", + "location": { + "type": "stringMarker", + "start": "-- LIFECYCLE_BOND_ATOMIC_INSTRUCTIONS_BEGIN", + "end": "-- LIFECYCLE_BOND_ATOMIC_INSTRUCTIONS_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-quickstart-finance-daml-scripts-holding-create-account-factory-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/quickstart-finance/daml/Scripts/Holding.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_ACCOUNT_FACTORY_BEGIN", + "end": "-- CREATE_ACCOUNT_FACTORY_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-quickstart-finance-daml-scripts-holding-create-holding-factory-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/quickstart-finance/daml/Scripts/Holding.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_HOLDING_FACTORY_BEGIN", + "end": "-- CREATE_HOLDING_FACTORY_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-quickstart-finance-daml-scripts-holding-setup-alice-account-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/quickstart-finance/daml/Scripts/Holding.daml", + "location": { + "type": "stringMarker", + "start": "-- SETUP_ALICE_ACCOUNT_BEGIN", + "end": "-- SETUP_ALICE_ACCOUNT_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-quickstart-finance-daml-scripts-holding-create-alice-holding-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/quickstart-finance/daml/Scripts/Holding.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_ALICE_HOLDING_BEGIN", + "end": "-- CREATE_ALICE_HOLDING_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-quickstart-finance-daml-scripts-lifecycling-new-version-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/quickstart-finance/daml/Scripts/Lifecycling.daml", + "location": { + "type": "stringMarker", + "start": "-- NEW_VERSION_BEGIN", + "end": "-- NEW_VERSION_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-quickstart-finance-daml-scripts-lifecycling-lifecycle-rules-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/quickstart-finance/daml/Scripts/Lifecycling.daml", + "location": { + "type": "stringMarker", + "start": "-- LIFECYCLE_RULES_BEGIN", + "end": "-- LIFECYCLE_RULES_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-quickstart-finance-daml-scripts-lifecycling-create-event-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/quickstart-finance/daml/Scripts/Lifecycling.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_EVENT_BEGIN", + "end": "-- CREATE_EVENT_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-quickstart-finance-daml-scripts-lifecycling-lifecycle-event-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/quickstart-finance/daml/Scripts/Lifecycling.daml", + "location": { + "type": "stringMarker", + "start": "-- LIFECYCLE_EVENT_BEGIN", + "end": "-- LIFECYCLE_EVENT_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-quickstart-finance-daml-scripts-lifecycling-claim-event-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/quickstart-finance/daml/Scripts/Lifecycling.daml", + "location": { + "type": "stringMarker", + "start": "-- CLAIM_EVENT_BEGIN", + "end": "-- CLAIM_EVENT_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-quickstart-finance-daml-scripts-lifecycling-effect-settlement-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/quickstart-finance/daml/Scripts/Lifecycling.daml", + "location": { + "type": "stringMarker", + "start": "-- EFFECT_SETTLEMENT_BEGIN", + "end": "-- EFFECT_SETTLEMENT_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-quickstart-finance-daml-scripts-settlement-route-provider-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/quickstart-finance/daml/Scripts/Settlement.daml", + "location": { + "type": "stringMarker", + "start": "-- ROUTE_PROVIDER_BEGIN", + "end": "-- ROUTE_PROVIDER_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-quickstart-finance-daml-scripts-settlement-settlement-factory-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/quickstart-finance/daml/Scripts/Settlement.daml", + "location": { + "type": "stringMarker", + "start": "-- SETTLEMENT_FACTORY_BEGIN", + "end": "-- SETTLEMENT_FACTORY_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-quickstart-finance-daml-scripts-settlement-dvp-propose-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/quickstart-finance/daml/Scripts/Settlement.daml", + "location": { + "type": "stringMarker", + "start": "-- DVP_PROPOSE_BEGIN", + "end": "-- DVP_PROPOSE_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-quickstart-finance-daml-scripts-settlement-dvp-accept-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/quickstart-finance/daml/Scripts/Settlement.daml", + "location": { + "type": "stringMarker", + "start": "-- DVP_ACCEPT_BEGIN", + "end": "-- DVP_ACCEPT_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-quickstart-finance-daml-workflow-dv-p-instruct-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/quickstart-finance/daml/Workflow/DvP.daml", + "location": { + "type": "stringMarker", + "start": "-- INSTRUCT_BEGIN", + "end": "-- INSTRUCT_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-quickstart-finance-daml-scripts-settlement-allocate-approve-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/quickstart-finance/daml/Scripts/Settlement.daml", + "location": { + "type": "stringMarker", + "start": "-- ALLOCATE_APPROVE_BEGIN", + "end": "-- ALLOCATE_APPROVE_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-quickstart-finance-daml-scripts-settlement-settle-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/quickstart-finance/daml/Scripts/Settlement.daml", + "location": { + "type": "stringMarker", + "start": "-- SETTLE_BEGIN", + "end": "-- SETTLE_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-quickstart-finance-daml-scripts-transfer-transfer-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/quickstart-finance/daml/Scripts/Transfer.daml", + "location": { + "type": "stringMarker", + "start": "-- TRANSFER_BEGIN", + "end": "-- TRANSFER_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-quickstart-finance-daml-workflow-transfer-do-transfer-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/quickstart-finance/daml/Workflow/Transfer.daml", + "location": { + "type": "stringMarker", + "start": "-- DO_TRANSFER_BEGIN", + "end": "-- DO_TRANSFER_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-finance-lifecycling-daml-scripts-callable-bond-create-callable-bond-instrument-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/finance-lifecycling/daml/Scripts/CallableBond.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_CALLABLE_BOND_INSTRUMENT_BEGIN", + "end": "-- CREATE_CALLABLE_BOND_INSTRUMENT_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-finance-lifecycling-daml-scripts-callable-bond-create-callable-bond-holding-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/finance-lifecycling/daml/Scripts/CallableBond.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_CALLABLE_BOND_HOLDING_BEGIN", + "end": "-- CREATE_CALLABLE_BOND_HOLDING_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-finance-lifecycling-daml-scripts-callable-bond-create-election-factory-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/finance-lifecycling/daml/Scripts/CallableBond.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_ELECTION_FACTORY_BEGIN", + "end": "-- CREATE_ELECTION_FACTORY_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-finance-lifecycling-daml-scripts-callable-bond-create-election-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/finance-lifecycling/daml/Scripts/CallableBond.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_ELECTION_BEGIN", + "end": "-- CREATE_ELECTION_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-finance-lifecycling-daml-scripts-callable-bond-lifecycle-bond-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/finance-lifecycling/daml/Scripts/CallableBond.daml", + "location": { + "type": "stringMarker", + "start": "-- LIFECYCLE_BOND_BEGIN", + "end": "-- LIFECYCLE_BOND_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-finance-lifecycling-daml-scripts-callable-bond-create-claim-rule-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/finance-lifecycling/daml/Scripts/CallableBond.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_CLAIM_RULE_BEGIN", + "end": "-- CREATE_CLAIM_RULE_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-finance-lifecycling-daml-scripts-callable-bond-claim-effect-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/finance-lifecycling/daml/Scripts/CallableBond.daml", + "location": { + "type": "stringMarker", + "start": "-- CLAIM_EFFECT_BEGIN", + "end": "-- CLAIM_EFFECT_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-finance-lifecycling-daml-scripts-fixed-rate-bond-create-fixed-rate-bond-instrument-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/finance-lifecycling/daml/Scripts/FixedRateBond.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_FIXED_RATE_BOND_INSTRUMENT_BEGIN", + "end": "-- CREATE_FIXED_RATE_BOND_INSTRUMENT_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-finance-lifecycling-daml-scripts-fixed-rate-bond-create-fixed-rate-bond-holding-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/finance-lifecycling/daml/Scripts/FixedRateBond.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_FIXED_RATE_BOND_HOLDING_BEGIN", + "end": "-- CREATE_FIXED_RATE_BOND_HOLDING_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-finance-lifecycling-daml-scripts-fixed-rate-bond-create-lifecycle-rule-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/finance-lifecycling/daml/Scripts/FixedRateBond.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_LIFECYCLE_RULE_BEGIN", + "end": "-- CREATE_LIFECYCLE_RULE_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-finance-lifecycling-daml-scripts-fixed-rate-bond-create-clock-update-event-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/finance-lifecycling/daml/Scripts/FixedRateBond.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_CLOCK_UPDATE_EVENT_BEGIN", + "end": "-- CREATE_CLOCK_UPDATE_EVENT_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-finance-lifecycling-daml-scripts-fixed-rate-bond-lifecycle-bond-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/finance-lifecycling/daml/Scripts/FixedRateBond.daml", + "location": { + "type": "stringMarker", + "start": "-- LIFECYCLE_BOND_BEGIN", + "end": "-- LIFECYCLE_BOND_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-finance-lifecycling-daml-scripts-fixed-rate-bond-create-claim-rule-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/finance-lifecycling/daml/Scripts/FixedRateBond.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_CLAIM_RULE_BEGIN", + "end": "-- CREATE_CLAIM_RULE_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-finance-lifecycling-daml-scripts-fixed-rate-bond-claim-effect-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/finance-lifecycling/daml/Scripts/FixedRateBond.daml", + "location": { + "type": "stringMarker", + "start": "-- CLAIM_EFFECT_BEGIN", + "end": "-- CLAIM_EFFECT_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-finance-lifecycling-daml-scripts-fixed-rate-bond-effect-settlement-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/finance-lifecycling/daml/Scripts/FixedRateBond.daml", + "location": { + "type": "stringMarker", + "start": "-- EFFECT_SETTLEMENT_BEGIN", + "end": "-- EFFECT_SETTLEMENT_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-finance-lifecycling-daml-scripts-floating-rate-bond-create-floating-rate-bond-instrument-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/finance-lifecycling/daml/Scripts/FloatingRateBond.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_FLOATING_RATE_BOND_INSTRUMENT_BEGIN", + "end": "-- CREATE_FLOATING_RATE_BOND_INSTRUMENT_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-finance-lifecycling-daml-scripts-floating-rate-bond-create-floating-rate-bond-holding-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/finance-lifecycling/daml/Scripts/FloatingRateBond.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_FLOATING_RATE_BOND_HOLDING_BEGIN", + "end": "-- CREATE_FLOATING_RATE_BOND_HOLDING_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-finance-lifecycling-daml-scripts-floating-rate-bond-create-floating-rate-observations-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/finance-lifecycling/daml/Scripts/FloatingRateBond.daml", + "location": { + "type": "stringMarker", + "start": "-- CREATE_FLOATING_RATE_OBSERVATIONS_BEGIN", + "end": "-- CREATE_FLOATING_RATE_OBSERVATIONS_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-finance-lifecycling-daml-scripts-floating-rate-bond-lifecycle-bond-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/finance-lifecycling/daml/Scripts/FloatingRateBond.daml", + "location": { + "type": "stringMarker", + "start": "-- LIFECYCLE_BOND_BEGIN", + "end": "-- LIFECYCLE_BOND_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-finance-payoff-modeling-daml-examples-basic-combinators-zero-claim-setup-start", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/finance-payoff-modeling/daml/Examples/BasicCombinators.daml", + "location": { + "type": "stringMarker", + "start": "-- ZERO_CLAIM_SETUP_START", + "end": "-- ZERO_CLAIM_SETUP_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-finance-payoff-modeling-daml-examples-basic-combinators-one-claim-setup-start", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/finance-payoff-modeling/daml/Examples/BasicCombinators.daml", + "location": { + "type": "stringMarker", + "start": "-- ONE_CLAIM_SETUP_START", + "end": "-- ONE_CLAIM_SETUP_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-finance-payoff-modeling-daml-examples-basic-combinators-one-ld-start", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/finance-payoff-modeling/daml/Examples/BasicCombinators.daml", + "location": { + "type": "stringMarker", + "start": "-- ONE_LD_START", + "end": "-- ONE_LD_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-finance-payoff-modeling-daml-examples-basic-combinators-scale-claim-setup-start", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/finance-payoff-modeling/daml/Examples/BasicCombinators.daml", + "location": { + "type": "stringMarker", + "start": "-- SCALE_CLAIM_SETUP_START", + "end": "-- SCALE_CLAIM_SETUP_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-finance-payoff-modeling-daml-examples-basic-combinators-giveand-claim-setup-start", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/finance-payoff-modeling/daml/Examples/BasicCombinators.daml", + "location": { + "type": "stringMarker", + "start": "-- GIVEAND_CLAIM_SETUP_START", + "end": "-- GIVEAND_CLAIM_SETUP_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-finance-payoff-modeling-daml-examples-basic-combinators-when-claim-setup-start", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/finance-payoff-modeling/daml/Examples/BasicCombinators.daml", + "location": { + "type": "stringMarker", + "start": "-- WHEN_CLAIM_SETUP_START", + "end": "-- WHEN_CLAIM_SETUP_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-finance-payoff-modeling-daml-examples-basic-combinators-fwd-claim-setup-start", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/finance-payoff-modeling/daml/Examples/BasicCombinators.daml", + "location": { + "type": "stringMarker", + "start": "-- FWD_CLAIM_SETUP_START", + "end": "-- FWD_CLAIM_SETUP_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-finance-payoff-modeling-daml-examples-basic-combinators-fwd-obs-start", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/finance-payoff-modeling/daml/Examples/BasicCombinators.daml", + "location": { + "type": "stringMarker", + "start": "-- FWD_OBS_START", + "end": "-- FWD_OBS_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-finance-payoff-modeling-daml-examples-basic-combinators-frn-claim-setup-start", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/finance-payoff-modeling/daml/Examples/BasicCombinators.daml", + "location": { + "type": "stringMarker", + "start": "-- FRN_CLAIM_SETUP_START", + "end": "-- FRN_CLAIM_SETUP_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-finance-payoff-modeling-daml-examples-basic-combinators-frn-obs-start", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/finance-payoff-modeling/daml/Examples/BasicCombinators.daml", + "location": { + "type": "stringMarker", + "start": "-- FRN_OBS_START", + "end": "-- FRN_OBS_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-finance-settlement-daml-scripts-intermediated-wrapped-transfers-setup-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/finance-settlement/daml/Scripts/Intermediated.daml", + "location": { + "type": "stringMarker", + "start": "-- WRAPPED_TRANSFERS_SETUP_BEGIN", + "end": "-- WRAPPED_TRANSFERS_SETUP_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-finance-settlement-daml-scripts-intermediated-wrapped-transfers-discover-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/finance-settlement/daml/Scripts/Intermediated.daml", + "location": { + "type": "stringMarker", + "start": "-- WRAPPED_TRANSFERS_DISCOVER_BEGIN", + "end": "-- WRAPPED_TRANSFERS_DISCOVER_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-finance-settlement-daml-scripts-intermediated-wrapped-transfers-instruct-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/finance-settlement/daml/Scripts/Intermediated.daml", + "location": { + "type": "stringMarker", + "start": "-- WRAPPED_TRANSFERS_INSTRUCT_BEGIN", + "end": "-- WRAPPED_TRANSFERS_INSTRUCT_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-finance-settlement-daml-scripts-intermediated-wrapped-transfers-settle-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/finance-settlement/daml/Scripts/Intermediated.daml", + "location": { + "type": "stringMarker", + "start": "-- WRAPPED_TRANSFERS_SETTLE_BEGIN", + "end": "-- WRAPPED_TRANSFERS_SETTLE_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-finance-settlement-daml-scripts-intermediated-route-provider-discover-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/finance-settlement/daml/Scripts/Intermediated.daml", + "location": { + "type": "stringMarker", + "start": "-- ROUTE_PROVIDER_DISCOVER_BEGIN", + "end": "-- ROUTE_PROVIDER_DISCOVER_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-finance-settlement-daml-scripts-intermediated-route-provider-instruct-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/finance-settlement/daml/Scripts/Intermediated.daml", + "location": { + "type": "stringMarker", + "start": "-- ROUTE_PROVIDER_INSTRUCT_BEGIN", + "end": "-- ROUTE_PROVIDER_INSTRUCT_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-finance-settlement-daml-scripts-intermediated-route-provider-settle-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/finance-settlement/daml/Scripts/Intermediated.daml", + "location": { + "type": "stringMarker", + "start": "-- ROUTE_PROVIDER_SETTLE_BEGIN", + "end": "-- ROUTE_PROVIDER_SETTLE_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-finance-settlement-daml-scripts-internal-wrapped-transfer-setup-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/finance-settlement/daml/Scripts/Internal.daml", + "location": { + "type": "stringMarker", + "start": "-- WRAPPED_TRANSFER_SETUP_BEGIN", + "end": "-- WRAPPED_TRANSFER_SETUP_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-finance-settlement-daml-scripts-internal-wrapped-transfer-instruct-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/finance-settlement/daml/Scripts/Internal.daml", + "location": { + "type": "stringMarker", + "start": "-- WRAPPED_TRANSFER_INSTRUCT_BEGIN", + "end": "-- WRAPPED_TRANSFER_INSTRUCT_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-finance-settlement-daml-scripts-internal-wrapped-transfer-settle-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/finance-settlement/daml/Scripts/Internal.daml", + "location": { + "type": "stringMarker", + "start": "-- WRAPPED_TRANSFER_SETTLE_BEGIN", + "end": "-- WRAPPED_TRANSFER_SETTLE_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-finance-settlement-daml-scripts-internal-credit-debit-instruct-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/finance-settlement/daml/Scripts/Internal.daml", + "location": { + "type": "stringMarker", + "start": "-- CREDIT_DEBIT_INSTRUCT_BEGIN", + "end": "-- CREDIT_DEBIT_INSTRUCT_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-finance-settlement-daml-scripts-internal-credit-debit-settle-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/finance-settlement/daml/Scripts/Internal.daml", + "location": { + "type": "stringMarker", + "start": "-- CREDIT_DEBIT_SETTLE_BEGIN", + "end": "-- CREDIT_DEBIT_SETTLE_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-finance-settlement-daml-scripts-internal-pass-through-instruct-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/finance-settlement/daml/Scripts/Internal.daml", + "location": { + "type": "stringMarker", + "start": "-- PASS_THROUGH_INSTRUCT_BEGIN", + "end": "-- PASS_THROUGH_INSTRUCT_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-finance-settlement-daml-scripts-internal-pass-through-settle-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/finance-settlement/daml/Scripts/Internal.daml", + "location": { + "type": "stringMarker", + "start": "-- PASS_THROUGH_SETTLE_BEGIN", + "end": "-- PASS_THROUGH_SETTLE_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-finance-settlement-daml-scripts-transfer-transfer-request-setup-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/finance-settlement/daml/Scripts/Transfer.daml", + "location": { + "type": "stringMarker", + "start": "-- TRANSFER_REQUEST_SETUP_BEGIN", + "end": "-- TRANSFER_REQUEST_SETUP_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-finance-settlement-daml-workflow-transfer-transfer-request-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/finance-settlement/daml/Workflow/Transfer.daml", + "location": { + "type": "stringMarker", + "start": "-- TRANSFER_REQUEST_BEGIN", + "end": "-- TRANSFER_REQUEST_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-finance-settlement-daml-scripts-transfer-dual-control-setup-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/finance-settlement/daml/Scripts/Transfer.daml", + "location": { + "type": "stringMarker", + "start": "-- DUAL_CONTROL_SETUP_BEGIN", + "end": "-- DUAL_CONTROL_SETUP_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-finance-settlement-daml-scripts-transfer-dual-control-transfer-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/finance-settlement/daml/Scripts/Transfer.daml", + "location": { + "type": "stringMarker", + "start": "-- DUAL_CONTROL_TRANSFER_BEGIN", + "end": "-- DUAL_CONTROL_TRANSFER_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-finance-settlement-daml-scripts-transfer-discretionary-setup-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/finance-settlement/daml/Scripts/Transfer.daml", + "location": { + "type": "stringMarker", + "start": "-- DISCRETIONARY_SETUP_BEGIN", + "end": "-- DISCRETIONARY_SETUP_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-finance-settlement-daml-scripts-transfer-discretionary-transfer-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/finance-settlement/daml/Scripts/Transfer.daml", + "location": { + "type": "stringMarker", + "start": "-- DISCRETIONARY_TRANSFER_BEGIN", + "end": "-- DISCRETIONARY_TRANSFER_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-finance-settlement-daml-scripts-transfer-sovereign-setup-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/finance-settlement/daml/Scripts/Transfer.daml", + "location": { + "type": "stringMarker", + "start": "-- SOVEREIGN_SETUP_BEGIN", + "end": "-- SOVEREIGN_SETUP_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-finance-settlement-daml-scripts-transfer-sovereign-transfer-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/finance-settlement/daml/Scripts/Transfer.daml", + "location": { + "type": "stringMarker", + "start": "-- SOVEREIGN_TRANSFER_BEGIN", + "end": "-- SOVEREIGN_TRANSFER_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-finance-settlement-daml-scripts-transfer-unilateral-setup-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/finance-settlement/daml/Scripts/Transfer.daml", + "location": { + "type": "stringMarker", + "start": "-- UNILATERAL_SETUP_BEGIN", + "end": "-- UNILATERAL_SETUP_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-finance-settlement-daml-scripts-transfer-unilateral-transfer-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/finance-settlement/daml/Scripts/Transfer.daml", + "location": { + "type": "stringMarker", + "start": "-- UNILATERAL_TRANSFER_BEGIN", + "end": "-- UNILATERAL_TRANSFER_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-finance-upgrades-daml-scripts-upgrade-account-upgrade-account-setup-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/finance-upgrades/daml/Scripts/UpgradeAccount.daml", + "location": { + "type": "stringMarker", + "start": "-- UPGRADE_ACCOUNT_SETUP_BEGIN", + "end": "-- UPGRADE_ACCOUNT_SETUP_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-finance-upgrades-daml-scripts-upgrade-account-upgrade-account-archive-old-account-factory-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/finance-upgrades/daml/Scripts/UpgradeAccount.daml", + "location": { + "type": "stringMarker", + "start": "-- UPGRADE_ACCOUNT_ARCHIVE_OLD_ACCOUNT_FACTORY_BEGIN", + "end": "-- UPGRADE_ACCOUNT_ARCHIVE_OLD_ACCOUNT_FACTORY_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-finance-upgrades-daml-scripts-upgrade-account-upgrade-account-create-new-account-factory-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/finance-upgrades/daml/Scripts/UpgradeAccount.daml", + "location": { + "type": "stringMarker", + "start": "-- UPGRADE_ACCOUNT_CREATE_NEW_ACCOUNT_FACTORY_BEGIN", + "end": "-- UPGRADE_ACCOUNT_CREATE_NEW_ACCOUNT_FACTORY_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-finance-upgrades-daml-scripts-upgrade-account-upgrade-account-create-upgrade-rule-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/finance-upgrades/daml/Scripts/UpgradeAccount.daml", + "location": { + "type": "stringMarker", + "start": "-- UPGRADE_ACCOUNT_CREATE_UPGRADE_RULE_BEGIN", + "end": "-- UPGRADE_ACCOUNT_CREATE_UPGRADE_RULE_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-finance-upgrades-daml-scripts-upgrade-account-upgrade-account-clients-upgrade-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/finance-upgrades/daml/Scripts/UpgradeAccount.daml", + "location": { + "type": "stringMarker", + "start": "-- UPGRADE_ACCOUNT_CLIENTS_UPGRADE_BEGIN", + "end": "-- UPGRADE_ACCOUNT_CLIENTS_UPGRADE_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-finance-upgrades-daml-scripts-upgrade-holding-upgrade-holding-setup-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/finance-upgrades/daml/Scripts/UpgradeHolding.daml", + "location": { + "type": "stringMarker", + "start": "-- UPGRADE_HOLDING_SETUP_BEGIN", + "end": "-- UPGRADE_HOLDING_SETUP_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-finance-upgrades-daml-scripts-upgrade-holding-upgrade-holding-remove-old-holding-factory-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/finance-upgrades/daml/Scripts/UpgradeHolding.daml", + "location": { + "type": "stringMarker", + "start": "-- UPGRADE_HOLDING_REMOVE_OLD_HOLDING_FACTORY_BEGIN", + "end": "-- UPGRADE_HOLDING_REMOVE_OLD_HOLDING_FACTORY_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-finance-upgrades-daml-scripts-upgrade-holding-upgrade-holding-create-new-holding-factory-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/finance-upgrades/daml/Scripts/UpgradeHolding.daml", + "location": { + "type": "stringMarker", + "start": "-- UPGRADE_HOLDING_CREATE_NEW_HOLDING_FACTORY_BEGIN", + "end": "-- UPGRADE_HOLDING_CREATE_NEW_HOLDING_FACTORY_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-literal-docs-generated-finance-upgrades-daml-scripts-upgrade-holding-upgrade-holding-transfer-begin", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/finance-upgrades/daml/Scripts/UpgradeHolding.daml", + "location": { + "type": "stringMarker", + "start": "-- UPGRADE_HOLDING_TRANSFER_BEGIN", + "end": "-- UPGRADE_HOLDING_TRANSFER_END" + }, + "description": "", + "options": { + "language": "daml" + } + }, + { + "snippetName": "daml-finance-rst-code-docs-generated-instruments-generic-contingent-claims-daml-47", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/instruments/generic/contingent-claims.rst", + "location": { + "type": "lines", + "start": 47, + "end": 57 + }, + "description": "", + "options": { + "language": "daml", + "normalizeIndent": false + } + }, + { + "snippetName": "daml-finance-rst-code-docs-generated-instruments-generic-contingent-claims-shell-68", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/instruments/generic/contingent-claims.rst", + "location": { + "type": "lines", + "start": 68, + "end": 69 + }, + "description": "", + "options": { + "language": "shell", + "normalizeIndent": false + } + }, + { + "snippetName": "daml-finance-rst-code-docs-generated-overview-building-applications-shell-24", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/overview/building-applications.rst", + "location": { + "type": "lines", + "start": 24, + "end": 27 + }, + "description": "", + "options": { + "language": "shell", + "normalizeIndent": false + } + }, + { + "snippetName": "daml-finance-rst-code-docs-generated-overview-building-applications-shell-32", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/overview/building-applications.rst", + "location": { + "type": "lines", + "start": 32, + "end": 35 + }, + "description": "", + "options": { + "language": "shell", + "normalizeIndent": false + } + }, + { + "snippetName": "daml-finance-rst-code-docs-generated-overview-building-applications-shell-120", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/overview/building-applications.rst", + "location": { + "type": "lines", + "start": 120, + "end": 121 + }, + "description": "", + "options": { + "language": "shell", + "normalizeIndent": false + } + }, + { + "snippetName": "daml-finance-rst-code-docs-generated-overview-building-applications-shell-127", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/overview/building-applications.rst", + "location": { + "type": "lines", + "start": 127, + "end": 128 + }, + "description": "", + "options": { + "language": "shell", + "normalizeIndent": false + } + }, + { + "snippetName": "daml-finance-rst-code-docs-generated-overview-intro-shell-98", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/overview/intro.rst", + "location": { + "type": "lines", + "start": 98, + "end": 99 + }, + "description": "", + "options": { + "language": "shell", + "normalizeIndent": false + } + }, + { + "snippetName": "daml-finance-rst-code-docs-generated-overview-intro-shell-105", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/overview/intro.rst", + "location": { + "type": "lines", + "start": 105, + "end": 106 + }, + "description": "", + "options": { + "language": "shell", + "normalizeIndent": false + } + }, + { + "snippetName": "daml-finance-rst-code-docs-generated-overview-intro-shell-111", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/overview/intro.rst", + "location": { + "type": "lines", + "start": 111, + "end": 112 + }, + "description": "", + "options": { + "language": "shell", + "normalizeIndent": false + } + }, + { + "snippetName": "daml-finance-rst-code-docs-generated-reference-code-documentation-daml-finance-rst-contingent-claims-core-v3-builders-daml-67", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/reference/code-documentation/daml-finance-rst/ContingentClaims-Core-V3-Builders.rst", + "location": { + "type": "lines", + "start": 67, + "end": 68 + }, + "description": "", + "options": { + "language": "daml", + "normalizeIndent": false + } + }, + { + "snippetName": "daml-finance-rst-code-docs-generated-reference-code-documentation-daml-finance-rst-contingent-claims-core-v3-builders-daml-96", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/reference/code-documentation/daml-finance-rst/ContingentClaims-Core-V3-Builders.rst", + "location": { + "type": "lines", + "start": 96, + "end": 99 + }, + "description": "", + "options": { + "language": "daml", + "normalizeIndent": false + } + }, + { + "snippetName": "daml-finance-rst-code-docs-generated-reference-code-documentation-daml-finance-rst-daml-finance-interface-account-v4-account-daml-271", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/reference/code-documentation/daml-finance-rst/Daml-Finance-Interface-Account-V4-Account.rst", + "location": { + "type": "lines", + "start": 271, + "end": 272 + }, + "description": "", + "options": { + "language": "daml", + "normalizeIndent": false + } + }, + { + "snippetName": "daml-finance-rst-code-docs-generated-reference-code-documentation-daml-finance-rst-daml-finance-interface-holding-v4-factory-daml-214", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/reference/code-documentation/daml-finance-rst/Daml-Finance-Interface-Holding-V4-Factory.rst", + "location": { + "type": "lines", + "start": 214, + "end": 216 + }, + "description": "", + "options": { + "language": "daml", + "normalizeIndent": false + } + }, + { + "snippetName": "daml-finance-rst-code-docs-generated-reference-code-documentation-daml-finance-rst-daml-finance-interface-util-v3-disclosure-daml-210", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/reference/code-documentation/daml-finance-rst/Daml-Finance-Interface-Util-V3-Disclosure.rst", + "location": { + "type": "lines", + "start": 210, + "end": 211 + }, + "description": "", + "options": { + "language": "daml", + "normalizeIndent": false + } + }, + { + "snippetName": "daml-finance-rst-code-docs-generated-reference-patterns-daml-25", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/reference/patterns.rst", + "location": { + "type": "lines", + "start": 25, + "end": 29 + }, + "description": "", + "options": { + "language": "daml", + "normalizeIndent": false + } + }, + { + "snippetName": "daml-finance-rst-code-docs-generated-tutorials-getting-started-intro-shell-40", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/tutorials/getting-started/intro.rst", + "location": { + "type": "lines", + "start": 40, + "end": 41 + }, + "description": "", + "options": { + "language": "shell", + "normalizeIndent": false + } + }, + { + "snippetName": "daml-finance-rst-code-docs-generated-tutorials-getting-started-intro-shell-47", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/tutorials/getting-started/intro.rst", + "location": { + "type": "lines", + "start": 47, + "end": 48 + }, + "description": "", + "options": { + "language": "shell", + "normalizeIndent": false + } + }, + { + "snippetName": "daml-finance-rst-code-docs-generated-tutorials-getting-started-intro-shell-53", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/tutorials/getting-started/intro.rst", + "location": { + "type": "lines", + "start": 53, + "end": 54 + }, + "description": "", + "options": { + "language": "shell", + "normalizeIndent": false + } + }, + { + "snippetName": "daml-finance-rst-code-docs-generated-tutorials-getting-started-intro-shell-59", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/tutorials/getting-started/intro.rst", + "location": { + "type": "lines", + "start": 59, + "end": 60 + }, + "description": "", + "options": { + "language": "shell", + "normalizeIndent": false + } + }, + { + "snippetName": "daml-finance-rst-code-docs-generated-tutorials-lifecycling-intro-shell-35", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/tutorials/lifecycling/intro.rst", + "location": { + "type": "lines", + "start": 35, + "end": 36 + }, + "description": "", + "options": { + "language": "shell", + "normalizeIndent": false + } + }, + { + "snippetName": "daml-finance-rst-code-docs-generated-tutorials-lifecycling-intro-shell-42", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/tutorials/lifecycling/intro.rst", + "location": { + "type": "lines", + "start": 42, + "end": 43 + }, + "description": "", + "options": { + "language": "shell", + "normalizeIndent": false + } + }, + { + "snippetName": "daml-finance-rst-code-docs-generated-tutorials-lifecycling-intro-shell-48", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/tutorials/lifecycling/intro.rst", + "location": { + "type": "lines", + "start": 48, + "end": 49 + }, + "description": "", + "options": { + "language": "shell", + "normalizeIndent": false + } + }, + { + "snippetName": "daml-finance-rst-code-docs-generated-tutorials-lifecycling-intro-shell-54", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/tutorials/lifecycling/intro.rst", + "location": { + "type": "lines", + "start": 54, + "end": 54 + }, + "description": "", + "options": { + "language": "shell", + "normalizeIndent": false + } + }, + { + "snippetName": "daml-finance-rst-code-docs-generated-tutorials-payoff-modeling-basic-builders-none-62", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/tutorials/payoff-modeling/basic-builders.rst", + "location": { + "type": "lines", + "start": 62, + "end": 67 + }, + "description": "", + "options": { + "language": "none", + "normalizeIndent": false + } + }, + { + "snippetName": "daml-finance-rst-code-docs-generated-tutorials-payoff-modeling-basic-builders-none-88", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/tutorials/payoff-modeling/basic-builders.rst", + "location": { + "type": "lines", + "start": 88, + "end": 93 + }, + "description": "", + "options": { + "language": "none", + "normalizeIndent": false + } + }, + { + "snippetName": "daml-finance-rst-code-docs-generated-tutorials-payoff-modeling-basic-builders-none-114", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/tutorials/payoff-modeling/basic-builders.rst", + "location": { + "type": "lines", + "start": 114, + "end": 120 + }, + "description": "", + "options": { + "language": "none", + "normalizeIndent": false + } + }, + { + "snippetName": "daml-finance-rst-code-docs-generated-tutorials-payoff-modeling-basic-builders-daml-131", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/tutorials/payoff-modeling/basic-builders.rst", + "location": { + "type": "lines", + "start": 131, + "end": 132 + }, + "description": "", + "options": { + "language": "daml", + "normalizeIndent": false + } + }, + { + "snippetName": "daml-finance-rst-code-docs-generated-tutorials-payoff-modeling-basic-builders-none-153", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/tutorials/payoff-modeling/basic-builders.rst", + "location": { + "type": "lines", + "start": 153, + "end": 158 + }, + "description": "", + "options": { + "language": "none", + "normalizeIndent": false + } + }, + { + "snippetName": "daml-finance-rst-code-docs-generated-tutorials-payoff-modeling-basic-builders-daml-176", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/tutorials/payoff-modeling/basic-builders.rst", + "location": { + "type": "lines", + "start": 176, + "end": 183 + }, + "description": "", + "options": { + "language": "daml", + "normalizeIndent": false + } + }, + { + "snippetName": "daml-finance-rst-code-docs-generated-tutorials-payoff-modeling-intro-shell-39", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/tutorials/payoff-modeling/intro.rst", + "location": { + "type": "lines", + "start": 39, + "end": 40 + }, + "description": "", + "options": { + "language": "shell", + "normalizeIndent": false + } + }, + { + "snippetName": "daml-finance-rst-code-docs-generated-tutorials-payoff-modeling-intro-shell-47", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/tutorials/payoff-modeling/intro.rst", + "location": { + "type": "lines", + "start": 47, + "end": 48 + }, + "description": "", + "options": { + "language": "shell", + "normalizeIndent": false + } + }, + { + "snippetName": "daml-finance-rst-code-docs-generated-tutorials-payoff-modeling-intro-shell-53", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/tutorials/payoff-modeling/intro.rst", + "location": { + "type": "lines", + "start": 53, + "end": 54 + }, + "description": "", + "options": { + "language": "shell", + "normalizeIndent": false + } + }, + { + "snippetName": "daml-finance-rst-code-docs-generated-tutorials-payoff-modeling-intro-shell-59", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/tutorials/payoff-modeling/intro.rst", + "location": { + "type": "lines", + "start": 59, + "end": 60 + }, + "description": "", + "options": { + "language": "shell", + "normalizeIndent": false + } + }, + { + "snippetName": "daml-finance-rst-code-docs-generated-tutorials-payoff-modeling-observations-none-41", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/tutorials/payoff-modeling/observations.rst", + "location": { + "type": "lines", + "start": 41, + "end": 46 + }, + "description": "", + "options": { + "language": "none", + "normalizeIndent": false + } + }, + { + "snippetName": "daml-finance-rst-code-docs-generated-tutorials-payoff-modeling-observations-none-92", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/tutorials/payoff-modeling/observations.rst", + "location": { + "type": "lines", + "start": 92, + "end": 97 + }, + "description": "", + "options": { + "language": "none", + "normalizeIndent": false + } + }, + { + "snippetName": "daml-finance-rst-code-docs-generated-tutorials-settlement-intermediated-none-33", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/tutorials/settlement/intermediated.rst", + "location": { + "type": "lines", + "start": 33, + "end": 34 + }, + "description": "", + "options": { + "language": "none", + "normalizeIndent": false + } + }, + { + "snippetName": "daml-finance-rst-code-docs-generated-tutorials-settlement-intermediated-none-62", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/tutorials/settlement/intermediated.rst", + "location": { + "type": "lines", + "start": 62, + "end": 63 + }, + "description": "", + "options": { + "language": "none", + "normalizeIndent": false + } + }, + { + "snippetName": "daml-finance-rst-code-docs-generated-tutorials-settlement-intermediated-none-105", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/tutorials/settlement/intermediated.rst", + "location": { + "type": "lines", + "start": 105, + "end": 105 + }, + "description": "", + "options": { + "language": "none", + "normalizeIndent": false + } + }, + { + "snippetName": "daml-finance-rst-code-docs-generated-tutorials-settlement-intro-shell-42", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/tutorials/settlement/intro.rst", + "location": { + "type": "lines", + "start": 42, + "end": 43 + }, + "description": "", + "options": { + "language": "shell", + "normalizeIndent": false + } + }, + { + "snippetName": "daml-finance-rst-code-docs-generated-tutorials-settlement-intro-shell-49", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/tutorials/settlement/intro.rst", + "location": { + "type": "lines", + "start": 49, + "end": 50 + }, + "description": "", + "options": { + "language": "shell", + "normalizeIndent": false + } + }, + { + "snippetName": "daml-finance-rst-code-docs-generated-tutorials-settlement-intro-shell-55", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/tutorials/settlement/intro.rst", + "location": { + "type": "lines", + "start": 55, + "end": 56 + }, + "description": "", + "options": { + "language": "shell", + "normalizeIndent": false + } + }, + { + "snippetName": "daml-finance-rst-code-docs-generated-tutorials-settlement-intro-shell-61", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/tutorials/settlement/intro.rst", + "location": { + "type": "lines", + "start": 61, + "end": 62 + }, + "description": "", + "options": { + "language": "shell", + "normalizeIndent": false + } + }, + { + "snippetName": "daml-finance-rst-code-docs-generated-tutorials-upgrade-intro-shell-56", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/tutorials/upgrade/intro.rst", + "location": { + "type": "lines", + "start": 56, + "end": 57 + }, + "description": "", + "options": { + "language": "shell", + "normalizeIndent": false + } + }, + { + "snippetName": "daml-finance-rst-code-docs-generated-tutorials-upgrade-intro-shell-63", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/tutorials/upgrade/intro.rst", + "location": { + "type": "lines", + "start": 63, + "end": 64 + }, + "description": "", + "options": { + "language": "shell", + "normalizeIndent": false + } + }, + { + "snippetName": "daml-finance-rst-code-docs-generated-tutorials-upgrade-intro-shell-69", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/tutorials/upgrade/intro.rst", + "location": { + "type": "lines", + "start": 69, + "end": 70 + }, + "description": "", + "options": { + "language": "shell", + "normalizeIndent": false + } + }, + { + "snippetName": "daml-finance-rst-code-docs-generated-tutorials-upgrade-intro-shell-75", + "sourceRepo": "daml-finance", + "sourceFilepath": "docs/generated/tutorials/upgrade/intro.rst", + "location": { + "type": "lines", + "start": 75, + "end": 76 + }, + "description": "", + "options": { + "language": "shell", + "normalizeIndent": false + } + } + ] } diff --git a/config/snippet-config/splice-snippet-list-remote.json b/config/snippet-config/splice-snippet-list-remote.json index 5cbdd63af..8a5e9932d 100644 --- a/config/snippet-config/splice-snippet-list-remote.json +++ b/config/snippet-config/splice-snippet-list-remote.json @@ -1,5 +1,270 @@ { + "rstIncludeRefTargets": { + "validator-backups": "/global-synchronizer/production-operations/validator-backups", + "sv_backups": "/global-synchronizer/production-operations/sv-backup", + "traffic": "/global-synchronizer/deployment/synchronizer-traffic", + "traffic_topup": "/global-synchronizer/deployment/synchronizer-traffic#traffic-top-ups-how-does-one-buy-traffic", + "traffic_parameters": "/global-synchronizer/deployment/synchronizer-traffic#traffic-parameters", + "traffic parameters": "/global-synchronizer/deployment/synchronizer-traffic#traffic-parameters", + "traffic_accounting": "/global-synchronizer/deployment/synchronizer-traffic#traffic-accounting-what-counts-as-traffic" + }, "snippets": [ + { + "snippetName": "splice-literal-full-apps-app-src-pack-examples-recovery-manual-identities-dump", + "sourceRepo": "splice", + "sourceFilepath": "apps/app/src/pack/examples/recovery/manual-identities-dump.sc", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "language": "scala" + } + }, + { + "snippetName": "splice-literal-marker-apps-app-src-pack-examples-sv-helm-standalone-validator-values-configuring-topup-start", + "sourceRepo": "splice", + "sourceFilepath": "apps/app/src/pack/examples/sv-helm/standalone-validator-values.yaml", + "location": { + "type": "stringMarker", + "start": "CONFIGURING_TOPUP_START", + "end": "CONFIGURING_TOPUP_END" + }, + "description": "", + "options": { + "language": "yaml" + } + }, + { + "snippetName": "splice-literal-marker-apps-app-src-pack-examples-sv-helm-standalone-validator-values-participant-bootstrap-migrate-to-new-participant-start", + "sourceRepo": "splice", + "sourceFilepath": "apps/app/src/pack/examples/sv-helm/standalone-validator-values.yaml", + "location": { + "type": "stringMarker", + "start": "PARTICIPANT_BOOTSTRAP_MIGRATE_TO_NEW_PARTICIPANT_START", + "end": "PARTICIPANT_BOOTSTRAP_MIGRATE_TO_NEW_PARTICIPANT_END" + }, + "description": "", + "options": { + "language": "yaml" + } + }, + { + "snippetName": "splice-literal-marker-apps-app-src-pack-examples-sv-helm-standalone-validator-values-scan-client-configuration-start", + "sourceRepo": "splice", + "sourceFilepath": "apps/app/src/pack/examples/sv-helm/standalone-validator-values.yaml", + "location": { + "type": "stringMarker", + "start": "SCAN_CLIENT_CONFIGURATION_START", + "end": "SCAN_CLIENT_CONFIGURATION_END" + }, + "description": "", + "options": { + "language": "yaml" + } + }, + { + "snippetName": "splice-literal-marker-apps-app-src-pack-examples-sv-helm-standalone-validator-values-synchronizer-configuration-start", + "sourceRepo": "splice", + "sourceFilepath": "apps/app/src/pack/examples/sv-helm/standalone-validator-values.yaml", + "location": { + "type": "stringMarker", + "start": "SYNCHRONIZER_CONFIGURATION_START", + "end": "SYNCHRONIZER_CONFIGURATION_END" + }, + "description": "", + "options": { + "language": "yaml" + } + }, + { + "snippetName": "splice-literal-marker-apps-app-src-pack-examples-sv-helm-sv-validator-values-sv-participant-pruning-schedule-start", + "sourceRepo": "splice", + "sourceFilepath": "apps/app/src/pack/examples/sv-helm/sv-validator-values.yaml", + "location": { + "type": "stringMarker", + "start": "SV_PARTICIPANT_PRUNING_SCHEDULE_START", + "end": "SV_PARTICIPANT_PRUNING_SCHEDULE_END" + }, + "description": "", + "options": { + "language": "yaml" + } + }, + { + "snippetName": "splice-literal-marker-apps-app-src-pack-examples-sv-helm-sv-values-docs-pruning-start", + "sourceRepo": "splice", + "sourceFilepath": "apps/app/src/pack/examples/sv-helm/sv-values.yaml", + "location": { + "type": "stringMarker", + "start": "DOCS_PRUNING_START", + "end": "DOCS_PRUNING_END" + }, + "description": "", + "options": { + "language": "yaml" + } + }, + { + "snippetName": "splice-literal-marker-apps-app-src-pack-examples-sv-helm-sv-values-migration-start", + "sourceRepo": "splice", + "sourceFilepath": "apps/app/src/pack/examples/sv-helm/sv-values.yaml", + "location": { + "type": "stringMarker", + "start": "MIGRATION_START", + "end": "MIGRATION_END" + }, + "description": "", + "options": { + "language": "yaml" + } + }, + { + "snippetName": "splice-literal-marker-apps-app-src-pack-examples-sv-helm-validator-values-auto-accept-start", + "sourceRepo": "splice", + "sourceFilepath": "apps/app/src/pack/examples/sv-helm/validator-values.yaml", + "location": { + "type": "stringMarker", + "start": "AUTO_ACCEPT_START", + "end": "AUTO_ACCEPT_END" + }, + "description": "", + "options": { + "language": "yaml" + } + }, + { + "snippetName": "splice-literal-marker-apps-app-src-pack-examples-sv-helm-validator-values-enablewallet-start", + "sourceRepo": "splice", + "sourceFilepath": "apps/app/src/pack/examples/sv-helm/validator-values.yaml", + "location": { + "type": "stringMarker", + "start": "ENABLEWALLET_START", + "end": "ENABLEWALLET_END" + }, + "description": "", + "options": { + "language": "yaml" + } + }, + { + "snippetName": "splice-literal-marker-apps-app-src-pack-examples-sv-helm-validator-values-participant-pruning-schedule-start", + "sourceRepo": "splice", + "sourceFilepath": "apps/app/src/pack/examples/sv-helm/validator-values.yaml", + "location": { + "type": "stringMarker", + "start": "PARTICIPANT_PRUNING_SCHEDULE_START", + "end": "PARTICIPANT_PRUNING_SCHEDULE_END" + }, + "description": "", + "options": { + "language": "yaml" + } + }, + { + "snippetName": "splice-literal-marker-cluster-helm-splice-cometbft-values-template-docs-cometbft-pruning-start", + "sourceRepo": "splice", + "sourceFilepath": "cluster/helm/splice-cometbft/values-template.yaml", + "location": { + "type": "stringMarker", + "start": "DOCS_COMETBFT_PRUNING_START", + "end": "DOCS_COMETBFT_PRUNING_END" + }, + "description": "", + "options": { + "language": "yaml" + } + }, + { + "snippetName": "splice-rst-code-docs-src-app-dev-overview-version-information-bash-42", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/app_dev/overview/version_information.rst", + "location": { + "type": "lines", + "start": 42, + "end": 42 + }, + "description": "", + "options": { + "language": "bash", + "normalizeIndent": false + } + }, + { + "snippetName": "splice-rst-code-docs-src-app-dev-testing-localnet-bash-162", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/app_dev/testing/localnet.rst", + "location": { + "type": "lines", + "start": 162, + "end": 168 + }, + "description": "", + "options": { + "language": "bash", + "normalizeIndent": false + } + }, + { + "snippetName": "splice-rst-code-docs-src-app-dev-testing-localnet-bash-175", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/app_dev/testing/localnet.rst", + "location": { + "type": "lines", + "start": 175, + "end": 181 + }, + "description": "", + "options": { + "language": "bash", + "normalizeIndent": false + } + }, + { + "snippetName": "splice-rst-code-docs-src-app-dev-testing-localnet-bash-190", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/app_dev/testing/localnet.rst", + "location": { + "type": "lines", + "start": 190, + "end": 197 + }, + "description": "", + "options": { + "language": "bash", + "normalizeIndent": false + } + }, + { + "snippetName": "splice-rst-code-docs-src-app-dev-testing-localnet-bash-206", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/app_dev/testing/localnet.rst", + "location": { + "type": "lines", + "start": 206, + "end": 213 + }, + "description": "", + "options": { + "language": "bash", + "normalizeIndent": false + } + }, + { + "snippetName": "splice-rst-code-docs-src-app-dev-testing-localnet-bash-228", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/app_dev/testing/localnet.rst", + "location": { + "type": "lines", + "start": 228, + "end": 232 + }, + "description": "", + "options": { + "language": "bash", + "normalizeIndent": false + } + }, { "snippetName": "splice-rst-code-docs-src-app-dev-testing-localnet-none-126", "sourceRepo": "splice", @@ -7,52 +272,1298 @@ "location": { "type": "lines", "start": 126, - "end": 129 + "end": 127 + }, + "description": "", + "options": { + "language": "", + "normalizeIndent": "baseline" + } + }, + { + "snippetName": "splice-rst-code-docs-src-app-dev-testing-localnet-none-147", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/app_dev/testing/localnet.rst", + "location": { + "type": "lines", + "start": 147, + "end": 147 + }, + "description": "", + "options": { + "language": "none", + "normalizeIndent": "baseline" + } + }, + { + "snippetName": "splice-rst-code-docs-src-deployment-configuration-none-51", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/deployment/configuration.rst", + "location": { + "type": "lines", + "start": 51, + "end": 53 + }, + "description": "", + "options": { + "language": "", + "normalizeIndent": "baseline" + } + }, + { + "snippetName": "splice-rst-code-docs-src-deployment-configuration-yaml-70", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/deployment/configuration.rst", + "location": { + "type": "lines", + "start": 70, + "end": 72 + }, + "description": "", + "options": { + "language": "yaml", + "normalizeIndent": "baseline" + } + }, + { + "snippetName": "splice-rst-code-docs-src-deployment-console-access-bash-166", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/deployment/console_access.rst", + "location": { + "type": "lines", + "start": 166, + "end": 166 + }, + "description": "", + "options": { + "language": "bash", + "normalizeIndent": false + } + }, + { + "snippetName": "splice-rst-code-docs-src-deployment-console-access-bash-174", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/deployment/console_access.rst", + "location": { + "type": "lines", + "start": 174, + "end": 177 + }, + "description": "", + "options": { + "language": "bash", + "normalizeIndent": false + } + }, + { + "snippetName": "splice-rst-code-docs-src-deployment-console-access-none-104", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/deployment/console_access.rst", + "location": { + "type": "lines", + "start": 104, + "end": 120 + }, + "description": "", + "options": { + "language": "", + "normalizeIndent": "baseline" + } + }, + { + "snippetName": "splice-rst-code-docs-src-deployment-console-access-none-136", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/deployment/console_access.rst", + "location": { + "type": "lines", + "start": 136, + "end": 148 + }, + "description": "", + "options": { + "language": "", + "normalizeIndent": "baseline" + } + }, + { + "snippetName": "splice-rst-code-docs-src-deployment-console-access-none-40", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/deployment/console_access.rst", + "location": { + "type": "lines", + "start": 40, + "end": 57 + }, + "description": "", + "options": { + "language": "", + "normalizeIndent": "baseline" + } + }, + { + "snippetName": "splice-rst-code-docs-src-deployment-console-access-none-71", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/deployment/console_access.rst", + "location": { + "type": "lines", + "start": 71, + "end": 88 + }, + "description": "", + "options": { + "language": "", + "normalizeIndent": "baseline" + } + }, + { + "snippetName": "splice-rst-code-docs-src-deployment-console-access-parsed-literal-126", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/deployment/console_access.rst", + "location": { + "type": "lines", + "start": 126, + "end": 126 + }, + "description": "", + "options": { + "language": "bash", + "normalizeIndent": "baseline" + } + }, + { + "snippetName": "splice-rst-code-docs-src-deployment-console-access-parsed-literal-154", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/deployment/console_access.rst", + "location": { + "type": "lines", + "start": 154, + "end": 154 + }, + "description": "", + "options": { + "language": "bash", + "normalizeIndent": "baseline" + } + }, + { + "snippetName": "splice-rst-code-docs-src-deployment-console-access-parsed-literal-63", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/deployment/console_access.rst", + "location": { + "type": "lines", + "start": 63, + "end": 63 + }, + "description": "", + "options": { + "language": "bash", + "normalizeIndent": "baseline" + } + }, + { + "snippetName": "splice-rst-code-docs-src-deployment-console-access-parsed-literal-94", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/deployment/console_access.rst", + "location": { + "type": "lines", + "start": 94, + "end": 94 + }, + "description": "", + "options": { + "language": "bash", + "normalizeIndent": "baseline" + } + }, + { + "snippetName": "splice-rst-code-docs-src-deployment-traffic-json-94", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/deployment/traffic.rst", + "location": { + "type": "lines", + "start": 94, + "end": 104 + }, + "description": "", + "options": { + "language": "json", + "normalizeIndent": "baseline" + } + }, + { + "snippetName": "splice-rst-code-docs-src-deployment-traffic-parsed-literal-129", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/deployment/traffic.rst", + "location": { + "type": "lines", + "start": 129, + "end": 129 + }, + "description": "", + "options": { + "language": "bash", + "normalizeIndent": "baseline" + } + }, + { + "snippetName": "splice-rst-code-docs-src-deployment-traffic-parsed-literal-88", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/deployment/traffic.rst", + "location": { + "type": "lines", + "start": 88, + "end": 88 + }, + "description": "", + "options": { + "language": "bash", + "normalizeIndent": "baseline" + } + }, + { + "snippetName": "splice-rst-code-docs-src-deployment-troubleshooting-text-109", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/deployment/troubleshooting.rst", + "location": { + "type": "lines", + "start": 109, + "end": 110 + }, + "description": "", + "options": { + "language": "text", + "normalizeIndent": false + } + }, + { + "snippetName": "splice-rst-code-docs-src-deployment-troubleshooting-text-123", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/deployment/troubleshooting.rst", + "location": { + "type": "lines", + "start": 123, + "end": 124 + }, + "description": "", + "options": { + "language": "text", + "normalizeIndent": false + } + }, + { + "snippetName": "splice-rst-code-docs-src-deployment-troubleshooting-text-135", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/deployment/troubleshooting.rst", + "location": { + "type": "lines", + "start": 135, + "end": 136 + }, + "description": "", + "options": { + "language": "text", + "normalizeIndent": false + } + }, + { + "snippetName": "splice-rst-code-docs-src-deployment-troubleshooting-text-161", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/deployment/troubleshooting.rst", + "location": { + "type": "lines", + "start": 161, + "end": 162 + }, + "description": "", + "options": { + "language": "text", + "normalizeIndent": false + } + }, + { + "snippetName": "splice-rst-code-docs-src-deployment-troubleshooting-text-174", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/deployment/troubleshooting.rst", + "location": { + "type": "lines", + "start": 174, + "end": 177 + }, + "description": "", + "options": { + "language": "text", + "normalizeIndent": false + } + }, + { + "snippetName": "splice-rst-code-docs-src-deployment-troubleshooting-text-89", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/deployment/troubleshooting.rst", + "location": { + "type": "lines", + "start": 89, + "end": 90 + }, + "description": "", + "options": { + "language": "text", + "normalizeIndent": false + } + }, + { + "snippetName": "splice-rst-code-docs-src-scalability-scalability-none-117", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/scalability/scalability.rst", + "location": { + "type": "lines", + "start": 117, + "end": 119 + }, + "description": "", + "options": { + "language": "", + "normalizeIndent": "baseline" + } + }, + { + "snippetName": "splice-rst-code-docs-src-sv-operator-sv-backup-bash-23", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/sv_operator/sv_backup.rst", + "location": { + "type": "lines", + "start": 23, + "end": 23 + }, + "description": "", + "options": { + "language": "bash", + "normalizeIndent": false + } + }, + { + "snippetName": "splice-rst-code-docs-src-sv-operator-sv-helm-bash-1033", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/sv_operator/sv_helm.rst", + "location": { + "type": "lines", + "start": 1033, + "end": 1033 + }, + "description": "", + "options": { + "language": "bash", + "normalizeIndent": false + } + }, + { + "snippetName": "splice-rst-code-docs-src-sv-operator-sv-helm-bash-302", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/sv_operator/sv_helm.rst", + "location": { + "type": "lines", + "start": 302, + "end": 308 + }, + "description": "", + "options": { + "language": "bash", + "normalizeIndent": false + } + }, + { + "snippetName": "splice-rst-code-docs-src-sv-operator-sv-helm-bash-314", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/sv_operator/sv_helm.rst", + "location": { + "type": "lines", + "start": 314, + "end": 320 + }, + "description": "", + "options": { + "language": "bash", + "normalizeIndent": false + } + }, + { + "snippetName": "splice-rst-code-docs-src-sv-operator-sv-helm-bash-326", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/sv_operator/sv_helm.rst", + "location": { + "type": "lines", + "start": 326, + "end": 336 + }, + "description": "", + "options": { + "language": "bash", + "normalizeIndent": false + } + }, + { + "snippetName": "splice-rst-code-docs-src-sv-operator-sv-helm-bash-381", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/sv_operator/sv_helm.rst", + "location": { + "type": "lines", + "start": 381, + "end": 383 + }, + "description": "", + "options": { + "language": "bash", + "normalizeIndent": false + } + }, + { + "snippetName": "splice-rst-code-docs-src-sv-operator-sv-helm-bash-39", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/sv_operator/sv_helm.rst", + "location": { + "type": "lines", + "start": 39, + "end": 40 + }, + "description": "", + "options": { + "language": "bash", + "normalizeIndent": false + } + }, + { + "snippetName": "splice-rst-code-docs-src-sv-operator-sv-helm-bash-507", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/sv_operator/sv_helm.rst", + "location": { + "type": "lines", + "start": 507, + "end": 518 + }, + "description": "", + "options": { + "language": "bash", + "normalizeIndent": false + } + }, + { + "snippetName": "splice-rst-code-docs-src-sv-operator-sv-helm-bash-55", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/sv_operator/sv_helm.rst", + "location": { + "type": "lines", + "start": 55, + "end": 67 + }, + "description": "SV keygen shell commands (RST verbatim block)", + "options": { + "language": "bash", + "normalizeIndent": "baseline" + } + }, + { + "snippetName": "splice-rst-code-docs-src-sv-operator-sv-helm-bash-627", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/sv_operator/sv_helm.rst", + "location": { + "type": "lines", + "start": 627, + "end": 629 + }, + "description": "", + "options": { + "language": "bash", + "normalizeIndent": false + } + }, + { + "snippetName": "splice-rst-code-docs-src-sv-operator-sv-helm-bash-725", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/sv_operator/sv_helm.rst", + "location": { + "type": "lines", + "start": 725, + "end": 742 + }, + "description": "", + "options": { + "language": "bash", + "normalizeIndent": false + } + }, + { + "snippetName": "splice-rst-code-docs-src-sv-operator-sv-helm-bash-835", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/sv_operator/sv_helm.rst", + "location": { + "type": "lines", + "start": 835, + "end": 835 + }, + "description": "", + "options": { + "language": "bash", + "normalizeIndent": false + } + }, + { + "snippetName": "splice-rst-code-docs-src-sv-operator-sv-helm-bash-844", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/sv_operator/sv_helm.rst", + "location": { + "type": "lines", + "start": 844, + "end": 846 + }, + "description": "", + "options": { + "language": "bash", + "normalizeIndent": false + } + }, + { + "snippetName": "splice-rst-code-docs-src-sv-operator-sv-helm-bash-861", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/sv_operator/sv_helm.rst", + "location": { + "type": "lines", + "start": 861, + "end": 864 + }, + "description": "", + "options": { + "language": "bash", + "normalizeIndent": false + } + }, + { + "snippetName": "splice-rst-code-docs-src-sv-operator-sv-helm-bash-873", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/sv_operator/sv_helm.rst", + "location": { + "type": "lines", + "start": 873, + "end": 873 + }, + "description": "", + "options": { + "language": "bash", + "normalizeIndent": false + } + }, + { + "snippetName": "splice-rst-code-docs-src-sv-operator-sv-helm-bash-914", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/sv_operator/sv_helm.rst", + "location": { + "type": "lines", + "start": 914, + "end": 914 + }, + "description": "", + "options": { + "language": "bash", + "normalizeIndent": false + } + }, + { + "snippetName": "splice-rst-code-docs-src-sv-operator-sv-helm-bash-93", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/sv_operator/sv_helm.rst", + "location": { + "type": "lines", + "start": 93, + "end": 93 + }, + "description": "", + "options": { + "language": "bash", + "normalizeIndent": false + } + }, + { + "snippetName": "splice-rst-code-docs-src-sv-operator-sv-helm-bash-990", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/sv_operator/sv_helm.rst", + "location": { + "type": "lines", + "start": 990, + "end": 990 + }, + "description": "", + "options": { + "language": "bash", + "normalizeIndent": false + } + }, + { + "snippetName": "splice-rst-code-docs-src-sv-operator-sv-helm-none-1135", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/sv_operator/sv_helm.rst", + "location": { + "type": "lines", + "start": 1135, + "end": 1143 + }, + "description": "", + "options": { + "language": "", + "normalizeIndent": "baseline" + } + }, + { + "snippetName": "splice-rst-code-docs-src-sv-operator-sv-helm-parsed-literal-1005", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/sv_operator/sv_helm.rst", + "location": { + "type": "lines", + "start": 1005, + "end": 1005 + }, + "description": "", + "options": { + "language": "bash", + "normalizeIndent": "baseline" + } + }, + { + "snippetName": "splice-rst-code-docs-src-sv-operator-sv-helm-parsed-literal-354", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/sv_operator/sv_helm.rst", + "location": { + "type": "lines", + "start": 354, + "end": 360 + }, + "description": "", + "options": { + "language": "bash", + "normalizeIndent": "baseline" + } + }, + { + "snippetName": "splice-rst-code-docs-src-sv-operator-sv-helm-parsed-literal-468", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/sv_operator/sv_helm.rst", + "location": { + "type": "lines", + "start": 468, + "end": 480 + }, + "description": "Canton console sample; unescape RST quotes, haskell fence", + "options": { + "language": "haskell", + "normalizeIndent": "baseline", + "unescapeRstQuotes": true + } + }, + { + "snippetName": "splice-rst-code-docs-src-sv-operator-sv-helm-parsed-literal-528", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/sv_operator/sv_helm.rst", + "location": { + "type": "lines", + "start": 528, + "end": 531 + }, + "description": "", + "options": { + "language": "bash", + "normalizeIndent": "baseline" + } + }, + { + "snippetName": "splice-rst-code-docs-src-sv-operator-sv-helm-parsed-literal-691", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/sv_operator/sv_helm.rst", + "location": { + "type": "lines", + "start": 691, + "end": 692 + }, + "description": "", + "options": { + "language": "bash", + "normalizeIndent": "baseline" + } + }, + { + "snippetName": "splice-rst-code-docs-src-sv-operator-sv-helm-parsed-literal-701", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/sv_operator/sv_helm.rst", + "location": { + "type": "lines", + "start": 701, + "end": 701 + }, + "description": "", + "options": { + "language": "bash", + "normalizeIndent": "baseline" + } + }, + { + "snippetName": "splice-rst-code-docs-src-sv-operator-sv-helm-parsed-literal-707", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/sv_operator/sv_helm.rst", + "location": { + "type": "lines", + "start": 707, + "end": 709 + }, + "description": "", + "options": { + "language": "bash", + "normalizeIndent": "baseline" + } + }, + { + "snippetName": "splice-rst-code-docs-src-sv-operator-sv-helm-parsed-literal-715", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/sv_operator/sv_helm.rst", + "location": { + "type": "lines", + "start": 715, + "end": 715 + }, + "description": "", + "options": { + "language": "bash", + "normalizeIndent": "baseline" + } + }, + { + "snippetName": "splice-rst-code-docs-src-sv-operator-sv-helm-text-366", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/sv_operator/sv_helm.rst", + "location": { + "type": "lines", + "start": 366, + "end": 367 + }, + "description": "CometBFT config files to retain (RST verbatim block)", + "options": { + "language": "text", + "normalizeIndent": "baseline" + } + }, + { + "snippetName": "splice-rst-code-docs-src-sv-operator-sv-helm-text-74", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/sv_operator/sv_helm.rst", + "location": { + "type": "lines", + "start": 74, + "end": 75 + }, + "description": "Sample SV keygen output (RST verbatim block)", + "options": { + "language": "text", + "normalizeIndent": "baseline" + } + }, + { + "snippetName": "splice-rst-code-docs-src-sv-operator-sv-helm-yaml-440", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/sv_operator/sv_helm.rst", + "location": { + "type": "lines", + "start": 440, + "end": 442 + }, + "description": "", + "options": { + "language": "yaml", + "normalizeIndent": "baseline" + } + }, + { + "snippetName": "splice-rst-code-docs-src-sv-operator-sv-helm-yaml-448", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/sv_operator/sv_helm.rst", + "location": { + "type": "lines", + "start": 448, + "end": 450 + }, + "description": "", + "options": { + "language": "yaml", + "normalizeIndent": "baseline" + } + }, + { + "snippetName": "splice-rst-code-docs-src-sv-operator-sv-helm-yaml-456", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/sv_operator/sv_helm.rst", + "location": { + "type": "lines", + "start": 456, + "end": 458 + }, + "description": "", + "options": { + "language": "yaml", + "normalizeIndent": "baseline" + } + }, + { + "snippetName": "splice-rst-code-docs-src-sv-operator-sv-helm-yaml-882", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/sv_operator/sv_helm.rst", + "location": { + "type": "lines", + "start": 882, + "end": 892 + }, + "description": "", + "options": { + "language": "yaml", + "normalizeIndent": "baseline" + } + }, + { + "snippetName": "splice-rst-code-docs-src-sv-operator-sv-helm-yaml-900", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/sv_operator/sv_helm.rst", + "location": { + "type": "lines", + "start": 900, + "end": 906 + }, + "description": "", + "options": { + "language": "yaml", + "normalizeIndent": "baseline" + } + }, + { + "snippetName": "splice-rst-code-docs-src-sv-operator-sv-helm-yaml-926", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/sv_operator/sv_helm.rst", + "location": { + "type": "lines", + "start": 926, + "end": 984 + }, + "description": "", + "options": { + "language": "yaml", + "normalizeIndent": "baseline" + } + }, + { + "snippetName": "splice-rst-code-docs-src-sv-operator-sv-logical-synchronizer-upgrade-none-118", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/sv_operator/sv_logical_synchronizer_upgrade.rst", + "location": { + "type": "lines", + "start": 118, + "end": 124 + }, + "description": "", + "options": { + "language": "", + "normalizeIndent": "baseline" + } + }, + { + "snippetName": "splice-rst-code-docs-src-sv-operator-sv-logical-synchronizer-upgrade-none-142", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/sv_operator/sv_logical_synchronizer_upgrade.rst", + "location": { + "type": "lines", + "start": 142, + "end": 144 + }, + "description": "", + "options": { + "language": "", + "normalizeIndent": "baseline" + } + }, + { + "snippetName": "splice-rst-code-docs-src-sv-operator-sv-logical-synchronizer-upgrade-none-87", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/sv_operator/sv_logical_synchronizer_upgrade.rst", + "location": { + "type": "lines", + "start": 87, + "end": 89 + }, + "description": "", + "options": { + "language": "", + "normalizeIndent": "baseline" + } + }, + { + "snippetName": "splice-rst-code-docs-src-sv-operator-sv-network-resets-bash-75", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/sv_operator/sv_network_resets.rst", + "location": { + "type": "lines", + "start": 75, + "end": 75 + }, + "description": "", + "options": { + "language": "bash", + "normalizeIndent": false + } + }, + { + "snippetName": "splice-rst-code-docs-src-sv-operator-sv-network-resets-bash-81", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/sv_operator/sv_network_resets.rst", + "location": { + "type": "lines", + "start": 81, + "end": 83 + }, + "description": "", + "options": { + "language": "bash", + "normalizeIndent": false + } + }, + { + "snippetName": "splice-rst-code-docs-src-sv-operator-sv-network-resets-bash-90", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/sv_operator/sv_network_resets.rst", + "location": { + "type": "lines", + "start": 90, + "end": 92 + }, + "description": "", + "options": { + "language": "bash", + "normalizeIndent": false + } + }, + { + "snippetName": "splice-rst-code-docs-src-sv-operator-sv-operations-bash-482", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/sv_operator/sv_operations.rst", + "location": { + "type": "lines", + "start": 482, + "end": 501 + }, + "description": "", + "options": { + "language": "bash", + "normalizeIndent": false + } + }, + { + "snippetName": "splice-rst-code-docs-src-sv-operator-sv-operations-bash-507", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/sv_operator/sv_operations.rst", + "location": { + "type": "lines", + "start": 507, + "end": 532 + }, + "description": "", + "options": { + "language": "bash", + "normalizeIndent": false + } + }, + { + "snippetName": "splice-rst-code-docs-src-sv-operator-sv-operations-bash-538", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/sv_operator/sv_operations.rst", + "location": { + "type": "lines", + "start": 538, + "end": 558 + }, + "description": "", + "options": { + "language": "bash", + "normalizeIndent": false + } + }, + { + "snippetName": "splice-rst-code-docs-src-sv-operator-sv-operations-bash-564", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/sv_operator/sv_operations.rst", + "location": { + "type": "lines", + "start": 564, + "end": 585 + }, + "description": "", + "options": { + "language": "bash", + "normalizeIndent": false + } + }, + { + "snippetName": "splice-rst-code-docs-src-sv-operator-sv-operations-bash-683", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/sv_operator/sv_operations.rst", + "location": { + "type": "lines", + "start": 683, + "end": 684 + }, + "description": "", + "options": { + "language": "bash", + "normalizeIndent": false + } + }, + { + "snippetName": "splice-rst-code-docs-src-sv-operator-sv-operations-parsed-literal-171", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/sv_operator/sv_operations.rst", + "location": { + "type": "lines", + "start": 171, + "end": 178 + }, + "description": "", + "options": { + "language": "bash", + "normalizeIndent": "baseline" + } + }, + { + "snippetName": "splice-rst-code-docs-src-sv-operator-sv-operations-parsed-literal-193", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/sv_operator/sv_operations.rst", + "location": { + "type": "lines", + "start": 193, + "end": 193 + }, + "description": "", + "options": { + "language": "bash", + "normalizeIndent": "baseline" + } + }, + { + "snippetName": "splice-rst-code-docs-src-sv-operator-sv-operations-parsed-literal-204", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/sv_operator/sv_operations.rst", + "location": { + "type": "lines", + "start": 204, + "end": 206 + }, + "description": "", + "options": { + "language": "bash", + "normalizeIndent": "baseline" + } + }, + { + "snippetName": "splice-rst-code-docs-src-sv-operator-sv-operations-parsed-literal-222", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/sv_operator/sv_operations.rst", + "location": { + "type": "lines", + "start": 222, + "end": 224 + }, + "description": "", + "options": { + "language": "bash", + "normalizeIndent": "baseline" + } + }, + { + "snippetName": "splice-rst-code-docs-src-sv-operator-sv-operations-sql-344", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/sv_operator/sv_operations.rst", + "location": { + "type": "lines", + "start": 344, + "end": 344 + }, + "description": "", + "options": { + "language": "sql", + "normalizeIndent": "baseline" + } + }, + { + "snippetName": "splice-rst-code-docs-src-sv-operator-sv-operations-sql-359", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/sv_operator/sv_operations.rst", + "location": { + "type": "lines", + "start": 359, + "end": 365 + }, + "description": "", + "options": { + "language": "sql", + "normalizeIndent": "baseline" + } + }, + { + "snippetName": "splice-rst-code-docs-src-sv-operator-sv-operations-yaml-296", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/sv_operator/sv_operations.rst", + "location": { + "type": "lines", + "start": 296, + "end": 299 + }, + "description": "", + "options": { + "language": "yaml", + "normalizeIndent": "baseline" + } + }, + { + "snippetName": "splice-rst-code-docs-src-sv-operator-sv-operations-yaml-309", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/sv_operator/sv_operations.rst", + "location": { + "type": "lines", + "start": 309, + "end": 314 + }, + "description": "", + "options": { + "language": "yaml", + "normalizeIndent": "baseline" + } + }, + { + "snippetName": "splice-rst-code-docs-src-sv-operator-sv-operations-yaml-821", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/sv_operator/sv_operations.rst", + "location": { + "type": "lines", + "start": 821, + "end": 823 + }, + "description": "", + "options": { + "language": "yaml", + "normalizeIndent": "baseline" + } + }, + { + "snippetName": "splice-rst-code-docs-src-sv-operator-sv-operations-yaml-829", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/sv_operator/sv_operations.rst", + "location": { + "type": "lines", + "start": 829, + "end": 831 + }, + "description": "", + "options": { + "language": "yaml", + "normalizeIndent": "baseline" + } + }, + { + "snippetName": "splice-rst-code-docs-src-sv-operator-sv-operations-yaml-838", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/sv_operator/sv_operations.rst", + "location": { + "type": "lines", + "start": 838, + "end": 840 + }, + "description": "", + "options": { + "language": "yaml", + "normalizeIndent": "baseline" + } + }, + { + "snippetName": "splice-rst-code-docs-src-sv-operator-sv-operations-yaml-846", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/sv_operator/sv_operations.rst", + "location": { + "type": "lines", + "start": 846, + "end": 848 + }, + "description": "", + "options": { + "language": "yaml", + "normalizeIndent": "baseline" + } + }, + { + "snippetName": "splice-rst-code-docs-src-sv-operator-sv-operations-yaml-865", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/sv_operator/sv_operations.rst", + "location": { + "type": "lines", + "start": 865, + "end": 868 + }, + "description": "", + "options": { + "language": "yaml", + "normalizeIndent": "baseline" + } + }, + { + "snippetName": "splice-rst-code-docs-src-sv-operator-sv-operations-yaml-889", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/sv_operator/sv_operations.rst", + "location": { + "type": "lines", + "start": 889, + "end": 893 }, "description": "", "options": { - "language": "", - "normalizeIndent": false + "language": "yaml", + "normalizeIndent": "baseline" } }, { - "snippetName": "splice-rst-code-docs-src-deployment-configuration-none-49", + "snippetName": "splice-rst-code-docs-src-sv-operator-sv-pruning-yaml-62", "sourceRepo": "splice", - "sourceFilepath": "docs/src/deployment/configuration.rst", + "sourceFilepath": "docs/src/sv_operator/sv_pruning.rst", "location": { "type": "lines", - "start": 49, - "end": 52 + "start": 62, + "end": 65 }, "description": "", "options": { - "language": "", - "normalizeIndent": false + "language": "yaml", + "normalizeIndent": "baseline" } }, { - "snippetName": "splice-rst-code-docs-src-deployment-configuration-yaml-68", + "snippetName": "splice-rst-code-docs-src-sv-operator-sv-restore-bash-102", "sourceRepo": "splice", - "sourceFilepath": "docs/src/deployment/configuration.rst", + "sourceFilepath": "docs/src/sv_operator/sv_restore.rst", "location": { "type": "lines", - "start": 68, - "end": 71 + "start": 102, + "end": 102 }, "description": "", "options": { - "language": "yaml", + "language": "bash", "normalizeIndent": false } }, { - "snippetName": "splice-rst-code-docs-src-deployment-console-access-bash-166", + "snippetName": "splice-rst-code-docs-src-sv-operator-sv-restore-bash-57", "sourceRepo": "splice", - "sourceFilepath": "docs/src/deployment/console_access.rst", + "sourceFilepath": "docs/src/sv_operator/sv_restore.rst", "location": { "type": "lines", - "start": 166, - "end": 167 + "start": 57, + "end": 64 }, "description": "", "options": { @@ -61,13 +1572,13 @@ } }, { - "snippetName": "splice-rst-code-docs-src-deployment-console-access-bash-174", + "snippetName": "splice-rst-code-docs-src-sv-operator-sv-restore-bash-74", "sourceRepo": "splice", - "sourceFilepath": "docs/src/deployment/console_access.rst", + "sourceFilepath": "docs/src/sv_operator/sv_restore.rst", "location": { "type": "lines", - "start": 174, - "end": 178 + "start": 74, + "end": 81 }, "description": "", "options": { @@ -76,148 +1587,148 @@ } }, { - "snippetName": "splice-rst-code-docs-src-deployment-observability-validator-health-yaml-22", + "snippetName": "splice-rst-code-docs-src-sv-operator-sv-security-bash-110", "sourceRepo": "splice", - "sourceFilepath": "docs/src/deployment/observability/validator_health.rst", + "sourceFilepath": "docs/src/sv_operator/sv_security.rst", "location": { "type": "lines", - "start": 22, - "end": 23 + "start": 110, + "end": 112 }, "description": "", "options": { - "language": "yaml", - "normalizeIndent": false + "language": "bash", + "normalizeIndent": "baseline" } }, { - "snippetName": "splice-rst-code-docs-src-deployment-observability-validator-health-yaml-28", + "snippetName": "splice-rst-code-docs-src-sv-operator-sv-security-bash-73", "sourceRepo": "splice", - "sourceFilepath": "docs/src/deployment/observability/validator_health.rst", + "sourceFilepath": "docs/src/sv_operator/sv_security.rst", "location": { "type": "lines", - "start": 28, - "end": 29 + "start": 73, + "end": 87 }, "description": "", "options": { - "language": "yaml", - "normalizeIndent": false + "language": "bash", + "normalizeIndent": "baseline" } }, { - "snippetName": "splice-rst-code-docs-src-deployment-traffic-json-94", + "snippetName": "splice-rst-code-docs-src-sv-operator-sv-security-json-94", "sourceRepo": "splice", - "sourceFilepath": "docs/src/deployment/traffic.rst", + "sourceFilepath": "docs/src/sv_operator/sv_security.rst", "location": { "type": "lines", "start": 94, - "end": 106 + "end": 97 }, "description": "", "options": { "language": "json", - "normalizeIndent": false + "normalizeIndent": "baseline" } }, { - "snippetName": "splice-rst-code-docs-src-deployment-troubleshooting-text-89", + "snippetName": "splice-rst-code-docs-src-validator-operator-validator-backups-bash-36", "sourceRepo": "splice", - "sourceFilepath": "docs/src/deployment/troubleshooting.rst", + "sourceFilepath": "docs/src/validator_operator/validator_backups.rst", "location": { "type": "lines", - "start": 89, - "end": 90 + "start": 36, + "end": 36 }, "description": "", "options": { - "language": "text", + "language": "bash", "normalizeIndent": false } }, { - "snippetName": "splice-rst-code-docs-src-deployment-troubleshooting-text-109", + "snippetName": "splice-rst-code-docs-src-validator-operator-validator-backups-bash-67", "sourceRepo": "splice", - "sourceFilepath": "docs/src/deployment/troubleshooting.rst", + "sourceFilepath": "docs/src/validator_operator/validator_backups.rst", "location": { "type": "lines", - "start": 109, - "end": 110 + "start": 67, + "end": 69 }, "description": "", "options": { - "language": "text", + "language": "bash", "normalizeIndent": false } }, { - "snippetName": "splice-rst-code-docs-src-deployment-troubleshooting-text-123", + "snippetName": "splice-rst-code-docs-src-validator-operator-validator-compose-bash-167", "sourceRepo": "splice", - "sourceFilepath": "docs/src/deployment/troubleshooting.rst", + "sourceFilepath": "docs/src/validator_operator/validator_compose.rst", "location": { "type": "lines", - "start": 123, - "end": 124 + "start": 167, + "end": 168 }, "description": "", "options": { - "language": "text", + "language": "bash", "normalizeIndent": false } }, { - "snippetName": "splice-rst-code-docs-src-deployment-troubleshooting-text-135", + "snippetName": "splice-rst-code-docs-src-validator-operator-validator-compose-bash-175", "sourceRepo": "splice", - "sourceFilepath": "docs/src/deployment/troubleshooting.rst", + "sourceFilepath": "docs/src/validator_operator/validator_compose.rst", "location": { "type": "lines", - "start": 135, - "end": 136 + "start": 175, + "end": 176 }, "description": "", "options": { - "language": "text", + "language": "bash", "normalizeIndent": false } }, { - "snippetName": "splice-rst-code-docs-src-deployment-troubleshooting-text-161", + "snippetName": "splice-rst-code-docs-src-validator-operator-validator-compose-bash-281", "sourceRepo": "splice", - "sourceFilepath": "docs/src/deployment/troubleshooting.rst", + "sourceFilepath": "docs/src/validator_operator/validator_compose.rst", "location": { "type": "lines", - "start": 161, - "end": 162 + "start": 281, + "end": 282 }, "description": "", "options": { - "language": "text", + "language": "bash", "normalizeIndent": false } }, { - "snippetName": "splice-rst-code-docs-src-deployment-troubleshooting-text-174", + "snippetName": "splice-rst-code-docs-src-validator-operator-validator-compose-bash-306", "sourceRepo": "splice", - "sourceFilepath": "docs/src/deployment/troubleshooting.rst", + "sourceFilepath": "docs/src/validator_operator/validator_compose.rst", "location": { "type": "lines", - "start": 174, - "end": 177 + "start": 306, + "end": 308 }, "description": "", "options": { - "language": "text", + "language": "bash", "normalizeIndent": false } }, { - "snippetName": "splice-rst-code-docs-src-sv-operator-sv-major-upgrade-bash-148", + "snippetName": "splice-rst-code-docs-src-validator-operator-validator-compose-bash-58", "sourceRepo": "splice", - "sourceFilepath": "docs/src/sv_operator/sv_major_upgrade.rst", + "sourceFilepath": "docs/src/validator_operator/validator_compose.rst", "location": { "type": "lines", - "start": 148, - "end": 149 + "start": 58, + "end": 67 }, "description": "", "options": { @@ -226,43 +1737,43 @@ } }, { - "snippetName": "splice-rst-code-docs-src-sv-operator-sv-major-upgrade-sql-255", + "snippetName": "splice-rst-code-docs-src-validator-operator-validator-compose-yaml-105", "sourceRepo": "splice", - "sourceFilepath": "docs/src/sv_operator/sv_major_upgrade.rst", + "sourceFilepath": "docs/src/validator_operator/validator_compose.rst", "location": { "type": "lines", - "start": 255, - "end": 259 + "start": 105, + "end": 111 }, "description": "", "options": { - "language": "sql", + "language": "yaml", "normalizeIndent": false } }, { - "snippetName": "splice-rst-code-docs-src-validator-operator-validator-compose-bash-58", + "snippetName": "splice-rst-code-docs-src-validator-operator-validator-compose-yaml-152", "sourceRepo": "splice", "sourceFilepath": "docs/src/validator_operator/validator_compose.rst", "location": { "type": "lines", - "start": 58, - "end": 67 + "start": 152, + "end": 159 }, "description": "", "options": { - "language": "bash", + "language": "yaml", "normalizeIndent": false } }, { - "snippetName": "splice-rst-code-docs-src-validator-operator-validator-compose-yaml-96", + "snippetName": "splice-rst-code-docs-src-validator-operator-validator-compose-yaml-347", "sourceRepo": "splice", "sourceFilepath": "docs/src/validator_operator/validator_compose.rst", "location": { "type": "lines", - "start": 96, - "end": 102 + "start": 347, + "end": 357 }, "description": "", "options": { @@ -271,13 +1782,13 @@ } }, { - "snippetName": "splice-rst-code-docs-src-validator-operator-validator-compose-yaml-105", + "snippetName": "splice-rst-code-docs-src-validator-operator-validator-compose-yaml-96", "sourceRepo": "splice", "sourceFilepath": "docs/src/validator_operator/validator_compose.rst", "location": { "type": "lines", - "start": 105, - "end": 111 + "start": 96, + "end": 102 }, "description": "", "options": { @@ -286,13 +1797,13 @@ } }, { - "snippetName": "splice-rst-code-docs-src-validator-operator-validator-compose-bash-262", + "snippetName": "splice-rst-code-docs-src-validator-operator-validator-delegations-bash-201", "sourceRepo": "splice", - "sourceFilepath": "docs/src/validator_operator/validator_compose.rst", + "sourceFilepath": "docs/src/validator_operator/validator_delegations.rst", "location": { "type": "lines", - "start": 262, - "end": 264 + "start": 201, + "end": 209 }, "description": "", "options": { @@ -301,13 +1812,13 @@ } }, { - "snippetName": "splice-rst-code-docs-src-validator-operator-validator-helm-bash-65", + "snippetName": "splice-rst-code-docs-src-validator-operator-validator-delegations-bash-215", "sourceRepo": "splice", - "sourceFilepath": "docs/src/validator_operator/validator_helm.rst", + "sourceFilepath": "docs/src/validator_operator/validator_delegations.rst", "location": { "type": "lines", - "start": 65, - "end": 66 + "start": 215, + "end": 234 }, "description": "", "options": { @@ -316,13 +1827,13 @@ } }, { - "snippetName": "splice-rst-code-docs-src-validator-operator-validator-helm-bash-116", + "snippetName": "splice-rst-code-docs-src-validator-operator-validator-delegations-bash-251", "sourceRepo": "splice", - "sourceFilepath": "docs/src/validator_operator/validator_helm.rst", + "sourceFilepath": "docs/src/validator_operator/validator_delegations.rst", "location": { "type": "lines", - "start": 116, - "end": 119 + "start": 251, + "end": 269 }, "description": "", "options": { @@ -331,13 +1842,13 @@ } }, { - "snippetName": "splice-rst-code-docs-src-validator-operator-validator-helm-bash-310", + "snippetName": "splice-rst-code-docs-src-validator-operator-validator-delegations-bash-276", "sourceRepo": "splice", - "sourceFilepath": "docs/src/validator_operator/validator_helm.rst", + "sourceFilepath": "docs/src/validator_operator/validator_delegations.rst", "location": { "type": "lines", - "start": 310, - "end": 317 + "start": 276, + "end": 294 }, "description": "", "options": { @@ -346,13 +1857,13 @@ } }, { - "snippetName": "splice-rst-code-docs-src-validator-operator-validator-helm-bash-322", + "snippetName": "splice-rst-code-docs-src-validator-operator-validator-delegations-bash-309", "sourceRepo": "splice", - "sourceFilepath": "docs/src/validator_operator/validator_helm.rst", + "sourceFilepath": "docs/src/validator_operator/validator_delegations.rst", "location": { "type": "lines", - "start": 322, - "end": 329 + "start": 309, + "end": 324 }, "description": "", "options": { @@ -361,88 +1872,148 @@ } }, { - "snippetName": "splice-rst-code-docs-src-validator-operator-validator-helm-bash-451", + "snippetName": "splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-none-240", "sourceRepo": "splice", - "sourceFilepath": "docs/src/validator_operator/validator_helm.rst", + "sourceFilepath": "docs/src/validator_operator/validator_disaster_recovery.rst", "location": { "type": "lines", - "start": 451, - "end": 459 + "start": 240, + "end": 241 }, "description": "", "options": { - "language": "bash", - "normalizeIndent": false + "language": "", + "normalizeIndent": "baseline" } }, { - "snippetName": "splice-rst-code-docs-src-validator-operator-validator-helm-bash-514", + "snippetName": "splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-none-248", "sourceRepo": "splice", - "sourceFilepath": "docs/src/validator_operator/validator_helm.rst", + "sourceFilepath": "docs/src/validator_operator/validator_disaster_recovery.rst", "location": { "type": "lines", - "start": 514, - "end": 518 + "start": 248, + "end": 249 }, "description": "", "options": { - "language": "bash", - "normalizeIndent": false + "language": "", + "normalizeIndent": "baseline" } }, { - "snippetName": "splice-rst-code-docs-src-validator-operator-validator-helm-bash-526", + "snippetName": "splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-none-260", "sourceRepo": "splice", - "sourceFilepath": "docs/src/validator_operator/validator_helm.rst", + "sourceFilepath": "docs/src/validator_operator/validator_disaster_recovery.rst", + "location": { + "type": "lines", + "start": 260, + "end": 260 + }, + "description": "", + "options": { + "language": "", + "normalizeIndent": "baseline" + } + }, + { + "snippetName": "splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-none-299", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/validator_operator/validator_disaster_recovery.rst", + "location": { + "type": "lines", + "start": 299, + "end": 300 + }, + "description": "", + "options": { + "language": "", + "normalizeIndent": "baseline" + } + }, + { + "snippetName": "splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-none-314", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/validator_operator/validator_disaster_recovery.rst", + "location": { + "type": "lines", + "start": 314, + "end": 319 + }, + "description": "", + "options": { + "language": "", + "normalizeIndent": "baseline" + } + }, + { + "snippetName": "splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-none-485", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/validator_operator/validator_disaster_recovery.rst", + "location": { + "type": "lines", + "start": 485, + "end": 491 + }, + "description": "", + "options": { + "language": "", + "normalizeIndent": "baseline" + } + }, + { + "snippetName": "splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-parsed-literal-268", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/validator_operator/validator_disaster_recovery.rst", "location": { "type": "lines", - "start": 526, - "end": 528 + "start": 268, + "end": 268 }, "description": "", "options": { "language": "bash", - "normalizeIndent": false + "normalizeIndent": "baseline" } }, { - "snippetName": "splice-rst-code-docs-src-validator-operator-validator-helm-yaml-535", + "snippetName": "splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-parsed-literal-443", "sourceRepo": "splice", - "sourceFilepath": "docs/src/validator_operator/validator_helm.rst", + "sourceFilepath": "docs/src/validator_operator/validator_disaster_recovery.rst", "location": { "type": "lines", - "start": 535, - "end": 547 + "start": 443, + "end": 444 }, "description": "", "options": { - "language": "yaml", - "normalizeIndent": false + "language": "bash", + "normalizeIndent": "baseline" } }, { - "snippetName": "splice-rst-code-docs-src-validator-operator-validator-helm-yaml-553", + "snippetName": "splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-yaml-185", "sourceRepo": "splice", - "sourceFilepath": "docs/src/validator_operator/validator_helm.rst", + "sourceFilepath": "docs/src/validator_operator/validator_disaster_recovery.rst", "location": { "type": "lines", - "start": 553, - "end": 562 + "start": 185, + "end": 187 }, "description": "", "options": { "language": "yaml", - "normalizeIndent": false + "normalizeIndent": "baseline" } }, { - "snippetName": "splice-rst-code-docs-src-validator-operator-validator-helm-bash-567", + "snippetName": "splice-rst-code-docs-src-validator-operator-validator-helm-bash-65", "sourceRepo": "splice", "sourceFilepath": "docs/src/validator_operator/validator_helm.rst", "location": { "type": "lines", - "start": 567, - "end": 569 + "start": 65, + "end": 65 }, "description": "", "options": { @@ -451,73 +2022,73 @@ } }, { - "snippetName": "splice-rst-code-docs-src-validator-operator-validator-helm-yaml-576", + "snippetName": "splice-rst-code-docs-src-validator-operator-validator-helm-parsed-literal-472", "sourceRepo": "splice", "sourceFilepath": "docs/src/validator_operator/validator_helm.rst", "location": { "type": "lines", - "start": 576, - "end": 606 + "start": 472, + "end": 474 }, "description": "", "options": { - "language": "yaml", - "normalizeIndent": false + "language": "bash", + "normalizeIndent": "baseline" } }, { - "snippetName": "splice-rst-code-docs-src-validator-operator-validator-helm-bash-611", + "snippetName": "splice-rst-code-docs-src-validator-operator-validator-helm-parsed-literal-657", "sourceRepo": "splice", "sourceFilepath": "docs/src/validator_operator/validator_helm.rst", "location": { "type": "lines", - "start": 611, - "end": 613 + "start": 657, + "end": 657 }, "description": "", "options": { "language": "bash", - "normalizeIndent": false + "normalizeIndent": "baseline" } }, { - "snippetName": "splice-rst-code-docs-src-validator-operator-validator-helm-yaml-771", + "snippetName": "splice-rst-code-docs-src-validator-operator-validator-helm-yaml-127", "sourceRepo": "splice", "sourceFilepath": "docs/src/validator_operator/validator_helm.rst", "location": { "type": "lines", - "start": 771, - "end": 780 + "start": 127, + "end": 130 }, "description": "", "options": { "language": "yaml", - "normalizeIndent": false + "normalizeIndent": "baseline" } }, { - "snippetName": "splice-rst-code-docs-src-validator-operator-validator-helm-yaml-797", + "snippetName": "splice-rst-code-docs-src-validator-operator-validator-helm-yaml-82", "sourceRepo": "splice", "sourceFilepath": "docs/src/validator_operator/validator_helm.rst", "location": { "type": "lines", - "start": 797, - "end": 805 + "start": 82, + "end": 84 }, "description": "", "options": { "language": "yaml", - "normalizeIndent": false + "normalizeIndent": "baseline" } }, { - "snippetName": "splice-rst-code-docs-src-validator-operator-validator-major-upgrades-bash-182", + "snippetName": "splice-rst-code-docs-src-validator-operator-validator-onboarding-bash-107", "sourceRepo": "splice", - "sourceFilepath": "docs/src/validator_operator/validator_major_upgrades.rst", + "sourceFilepath": "docs/src/validator_operator/validator_onboarding.rst", "location": { "type": "lines", - "start": 182, - "end": 183 + "start": 107, + "end": 116 }, "description": "", "options": { @@ -526,20 +2097,65 @@ } }, { - "snippetName": "splice-rst-code-docs-src-validator-operator-validator-major-upgrades-sql-237", + "snippetName": "splice-rst-code-docs-src-validator-operator-validator-onboarding-bash-136", "sourceRepo": "splice", - "sourceFilepath": "docs/src/validator_operator/validator_major_upgrades.rst", + "sourceFilepath": "docs/src/validator_operator/validator_onboarding.rst", "location": { "type": "lines", - "start": 237, - "end": 241 + "start": 136, + "end": 165 }, "description": "", "options": { - "language": "sql", + "language": "bash", "normalizeIndent": false } }, + { + "snippetName": "splice-rst-code-docs-src-validator-operator-validator-onboarding-parsed-literal-126", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/validator_operator/validator_onboarding.rst", + "location": { + "type": "lines", + "start": 126, + "end": 130 + }, + "description": "", + "options": { + "language": "bash", + "normalizeIndent": "baseline" + } + }, + { + "snippetName": "splice-rst-code-docs-src-validator-operator-validator-onboarding-parsed-literal-86", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/validator_operator/validator_onboarding.rst", + "location": { + "type": "lines", + "start": 86, + "end": 86 + }, + "description": "", + "options": { + "language": "bash", + "normalizeIndent": "baseline" + } + }, + { + "snippetName": "splice-rst-code-docs-src-validator-operator-validator-onboarding-parsed-literal-95", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/validator_operator/validator_onboarding.rst", + "location": { + "type": "lines", + "start": 95, + "end": 100 + }, + "description": "", + "options": { + "language": "bash", + "normalizeIndent": "baseline" + } + }, { "snippetName": "splice-rst-code-docs-src-validator-operator-validator-users-bash-48", "sourceRepo": "splice", @@ -569,6 +2185,86 @@ "language": "bash", "normalizeIndent": false } + }, + { + "snippetName": "splice-rst-full-docs-src-common-backup-suggestion", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/common/backup_suggestion.rst", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "transform": "rstinclude", + "normalizeIndent": false + } + }, + { + "snippetName": "splice-rst-full-docs-src-common-reloader-recommendation", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/common/reloader_recommendation.rst", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "transform": "rstinclude", + "normalizeIndent": false + } + }, + { + "snippetName": "splice-rst-full-docs-src-common-sv-extra-dars-notice", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/common/sv_extra_dars_notice.rst", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "transform": "rstinclude", + "normalizeIndent": false + } + }, + { + "snippetName": "splice-rst-full-docs-src-common-traffic-topups", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/common/traffic_topups.rst", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "transform": "rstinclude", + "normalizeIndent": false + } + }, + { + "snippetName": "splice-rst-full-docs-src-common-wallet-sweeps", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/common/wallet_sweeps.rst", + "location": { + "type": "fullFile" + }, + "description": "", + "options": { + "transform": "rstinclude", + "normalizeIndent": false + } + }, + { + "snippetName": "splice-rst-partial-docs-src-validator-operator-required-network-parameters-9", + "sourceRepo": "splice", + "sourceFilepath": "docs/src/validator_operator/required_network_parameters.rst", + "location": { + "type": "lines", + "start": 9, + "end": 35 + }, + "description": "", + "options": { + "transform": "rstinclude", + "normalizeIndent": false + } } ] } diff --git a/docs-main/docs.json b/docs-main/docs.json index 6699ac8aa..d23785cc1 100644 --- a/docs-main/docs.json +++ b/docs-main/docs.json @@ -373,7 +373,6 @@ "global-synchronizer/deployment/sv-network-resets", "global-synchronizer/production-operations/sv-security", "global-synchronizer/production-operations/sv-upgrades", - "global-synchronizer/production-operations/sv-major-upgrade", "global-synchronizer/production-operations/logical-synchronizer-upgrade", "global-synchronizer/deployment/sv-operations", "global-synchronizer/deployment/sv-scratchnet" @@ -408,7 +407,6 @@ "global-synchronizer/production-operations/monitoring-setup", "global-synchronizer/production-operations/key-metrics", "global-synchronizer/production-operations/splice-metrics-overview", - "global-synchronizer/production-operations/validator-major-upgrade", "global-synchronizer/production-operations/performance-optimization", "global-synchronizer/production-operations/key-management", "global-synchronizer/production-operations/party-management", @@ -483,7 +481,6 @@ "global-synchronizer/reference/crypto-schemes", "global-synchronizer/reference/kms-driver-guide", "global-synchronizer/reference/canton-metrics", - "global-synchronizer/reference/splice-metrics", "global-synchronizer/reference/error-codes" ] }, diff --git a/docs-main/global-synchronizer/canton-console/console-overview.mdx b/docs-main/global-synchronizer/canton-console/console-overview.mdx index 39c7e9f92..62f8e676a 100644 --- a/docs-main/global-synchronizer/canton-console/console-overview.mdx +++ b/docs-main/global-synchronizer/canton-console/console-overview.mdx @@ -3,10 +3,16 @@ title: "Console Overview" description: "Accessing and using the Canton Console for validator and SV node operations" --- -import ExternalSpliceMainSpliceRstCodeDocsSrcDeploymentConsoleAccessNone40 from "/snippets/external/splice/main/splice-rst-code-docs-src-deployment-console-access-none-40.mdx"; import ExternalSpliceMainSpliceRstCodeDocsSrcDeploymentConsoleAccessBash166 from "/snippets/external/splice/main/splice-rst-code-docs-src-deployment-console-access-bash-166.mdx"; import ExternalSpliceMainSpliceRstCodeDocsSrcDeploymentConsoleAccessBash174 from "/snippets/external/splice/main/splice-rst-code-docs-src-deployment-console-access-bash-174.mdx"; - +import ExternalSpliceMainSpliceRstCodeDocsSrcDeploymentConsoleAccessNone104 from "/snippets/external/splice/main/splice-rst-code-docs-src-deployment-console-access-none-104.mdx"; +import ExternalSpliceMainSpliceRstCodeDocsSrcDeploymentConsoleAccessNone136 from "/snippets/external/splice/main/splice-rst-code-docs-src-deployment-console-access-none-136.mdx"; +import ExternalSpliceMainSpliceRstCodeDocsSrcDeploymentConsoleAccessNone40 from "/snippets/external/splice/main/splice-rst-code-docs-src-deployment-console-access-none-40.mdx"; +import ExternalSpliceMainSpliceRstCodeDocsSrcDeploymentConsoleAccessNone71 from "/snippets/external/splice/main/splice-rst-code-docs-src-deployment-console-access-none-71.mdx"; +import ExternalSpliceMainSpliceRstCodeDocsSrcDeploymentConsoleAccessParsedLiteral126 from "/snippets/external/splice/main/splice-rst-code-docs-src-deployment-console-access-parsed-literal-126.mdx"; +import ExternalSpliceMainSpliceRstCodeDocsSrcDeploymentConsoleAccessParsedLiteral154 from "/snippets/external/splice/main/splice-rst-code-docs-src-deployment-console-access-parsed-literal-154.mdx"; +import ExternalSpliceMainSpliceRstCodeDocsSrcDeploymentConsoleAccessParsedLiteral63 from "/snippets/external/splice/main/splice-rst-code-docs-src-deployment-console-access-parsed-literal-63.mdx"; +import ExternalSpliceMainSpliceRstCodeDocsSrcDeploymentConsoleAccessParsedLiteral94 from "/snippets/external/splice/main/splice-rst-code-docs-src-deployment-console-access-parsed-literal-94.mdx"; import { NetworkVariables } from '/snippets/components/version.mdx'; import { networkData } from '/snippets/generated/version-dashboard-data.mdx'; @@ -21,15 +27,15 @@ Requirements: Once you see the following banner for the console you have successfully gained access -``` text -_____ _ -/ ____| | | -| | __ _ _ __ | |_ ___ _ __ -| | / _` | '_ \| __/ _ \| '_ \ -| |___| (_| | | | | || (_) | | | | -\_____\__,_|_| |_|\__\___/|_| |_| - -Welcome to Canton! +```text + _____ _ + / ____| | | + | | __ _ _ __ | |_ ___ _ __ + | | / _` | '_ \| __/ _ \| '_ \ + | |___| (_| | | | | || (_) | | | | + \_____\__,_|_| |_|\__\___/|_| |_| + + Welcome to Canton! ``` ## Participant console @@ -45,9 +51,7 @@ Welcome to Canton! -```bash -docker run -it --rm --network host -v $(pwd)/console.conf:/app/app.conf |docker_repo_prefix|/canton:|version_literal| --console -``` + @@ -55,34 +59,13 @@ docker run -it --rm --network host -v $(pwd)/console.conf:/app/app.conf |docker_ If you run the participant using the docker compose setup the docker command must be run with the docker network used by the participant. Adjust the configuration to connect to the participant container: -```text -canton { - remote-participants { - participant { - admin-api { - port = 5002 - address = participant - } - ledger-api { - port = 5001 - address = participant - } - token = "" - } - } - features.enable-preview-commands = yes - features.enable-testing-commands = yes - features.enable-repair-commands = yes -} -``` + Running docker with the default network (`splice-validator`): -```bash -docker run -it --rm --network splice-validator -v $(pwd)/console.conf:/app/app.conf |docker_repo_prefix|/canton:|version_literal| --console -``` + @@ -94,31 +77,11 @@ docker run -it --rm --network splice-validator -v $(pwd)/console.conf:/app/app.c 2. Add the configuration to a local file `console.conf` -``` -canton { - remote-sequencers { - sequencer { - public-api { - port = 5008 - address = localhost - } - admin-api { - port = 5009 - address = localhost - } - } - } - features.enable-preview-commands = yes - features.enable-testing-commands = yes - features.enable-repair-commands = yes -} -``` + 3. Run the docker command -```bash -docker run -it --rm --network host -v $(pwd)/console.conf:/app/app.conf |docker_repo_prefix|/canton:|version_literal| --console -``` + @@ -130,27 +93,11 @@ docker run -it --rm --network host -v $(pwd)/console.conf:/app/app.conf |docker_ 2. Add the configuration to a local file `console.conf` -``` -canton { - remote-mediators { - mediator { - admin-api { - port = 5007 - address = localhost - } - } - } - features.enable-preview-commands = yes - features.enable-testing-commands = yes - features.enable-repair-commands = yes -} -``` + 3. Run the docker command -```bash -docker run -it --rm --network host -v $(pwd)/console.conf:/app/app.conf |docker_repo_prefix|/canton:|version_literal| --console -``` + diff --git a/docs-main/global-synchronizer/deployment/configuration.mdx b/docs-main/global-synchronizer/deployment/configuration.mdx index 37f3a910f..a6f2a12e8 100644 --- a/docs-main/global-synchronizer/deployment/configuration.mdx +++ b/docs-main/global-synchronizer/deployment/configuration.mdx @@ -3,8 +3,8 @@ title: "Custom Configuration" description: "Key configuration parameters for Canton Network validator nodes" --- -import ExternalSpliceMainSpliceRstCodeDocsSrcDeploymentConfigurationNone49 from "/snippets/external/splice/main/splice-rst-code-docs-src-deployment-configuration-none-49.mdx"; -import ExternalSpliceMainSpliceRstCodeDocsSrcDeploymentConfigurationYaml68 from "/snippets/external/splice/main/splice-rst-code-docs-src-deployment-configuration-yaml-68.mdx"; +import ExternalSpliceMainSpliceRstCodeDocsSrcDeploymentConfigurationNone51 from "/snippets/external/splice/main/splice-rst-code-docs-src-deployment-configuration-none-51.mdx"; +import ExternalSpliceMainSpliceRstCodeDocsSrcDeploymentConfigurationYaml70 from "/snippets/external/splice/main/splice-rst-code-docs-src-deployment-configuration-yaml-70.mdx"; {/* COPIED_START source="splice:docs/src/deployment/configuration.rst" hash="22d3b95a" */} @@ -40,7 +40,7 @@ point to the release that these docs are built from; or inline the source code o Both Canton and splice support bootstrap scripts during initialization. While this usually should not be needed as the validator app takes care of initializing the node, in some scenarios it can be useful. To do so, you need to set the `OVERRIDE_BOOTSTRAP_SCRIPT` environment variable to the content of your bootstrap script. Note that the script must be wrapped in a `main` function, e.g., - + You can set this environment variable through `additionalEnvVars` as described below. @@ -50,7 +50,7 @@ Note that this overwrites any bootstrap scripts baked into the container image. The helm charts can be configured through the value `additionalEnvVars`, which passes the values as environment variables to the apps. - + {/* COPIED_END */} \ No newline at end of file diff --git a/docs-main/global-synchronizer/deployment/kubernetes-deployment.mdx b/docs-main/global-synchronizer/deployment/kubernetes-deployment.mdx index 5b3549625..de157326e 100644 --- a/docs-main/global-synchronizer/deployment/kubernetes-deployment.mdx +++ b/docs-main/global-synchronizer/deployment/kubernetes-deployment.mdx @@ -3,27 +3,43 @@ title: "Super Validator Helm Deployment" description: "Deploying a Super Validator node on Kubernetes using Helm charts" --- -import ExternalSpliceMainSpliceRstCodeDocsSrcSvOperatorSvHelmBash91 from "/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-91.mdx"; -import ExternalSpliceMainSpliceRstCodeDocsSrcSvOperatorSvHelmBash301 from "/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-301.mdx"; -import ExternalSpliceMainSpliceRstCodeDocsSrcSvOperatorSvHelmBash313 from "/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-313.mdx"; -import ExternalSpliceMainSpliceRstCodeDocsSrcSvOperatorSvHelmBash325 from "/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-325.mdx"; -import ExternalSpliceMainSpliceRstCodeDocsSrcSvOperatorSvHelmBash380 from "/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-380.mdx"; -import ExternalSpliceMainSpliceRstCodeDocsSrcSvOperatorSvHelmYaml441 from "/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-yaml-441.mdx"; -import ExternalSpliceMainSpliceRstCodeDocsSrcSvOperatorSvHelmYaml449 from "/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-yaml-449.mdx"; -import ExternalSpliceMainSpliceRstCodeDocsSrcSvOperatorSvHelmBash500 from "/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-500.mdx"; -import ExternalSpliceMainSpliceRstCodeDocsSrcSvOperatorSvHelmBash616 from "/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-616.mdx"; -import ExternalSpliceMainSpliceRstCodeDocsSrcSvOperatorSvHelmBash713 from "/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-713.mdx"; -import ExternalSpliceMainSpliceRstCodeDocsSrcSvOperatorSvHelmBash823 from "/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-823.mdx"; -import ExternalSpliceMainSpliceRstCodeDocsSrcSvOperatorSvHelmBash832 from "/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-832.mdx"; -import ExternalSpliceMainSpliceRstCodeDocsSrcSvOperatorSvHelmBash849 from "/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-849.mdx"; +import ExternalSpliceMainSpliceRstFullDocsSrcCommonBackupSuggestion from '/snippets/external/splice/main/splice-rst-full-docs-src-common-backup-suggestion.mdx'; +import ExternalSpliceMainSpliceRstFullDocsSrcCommonReloaderRecommendation from '/snippets/external/splice/main/splice-rst-full-docs-src-common-reloader-recommendation.mdx'; +import ExternalSpliceMainSpliceRstCodeDocsSrcSvOperatorSvHelmBash1033 from "/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-1033.mdx"; +import ExternalSpliceMainSpliceRstCodeDocsSrcSvOperatorSvHelmBash39 from "/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-39.mdx"; +import ExternalSpliceMainSpliceRstCodeDocsSrcSvOperatorSvHelmParsedLiteral354 from "/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-parsed-literal-354.mdx"; +import ExternalSpliceMainSpliceRstCodeDocsSrcSvOperatorSvHelmParsedLiteral468 from "/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-parsed-literal-468.mdx"; +import ExternalSpliceMainSpliceRstCodeDocsSrcSvOperatorSvHelmParsedLiteral528 from "/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-parsed-literal-528.mdx"; +import ExternalSpliceMainSpliceRstCodeDocsSrcSvOperatorSvHelmParsedLiteral691 from "/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-parsed-literal-691.mdx"; +import ExternalSpliceMainSpliceRstCodeDocsSrcSvOperatorSvHelmParsedLiteral701 from "/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-parsed-literal-701.mdx"; +import ExternalSpliceMainSpliceRstCodeDocsSrcSvOperatorSvHelmParsedLiteral707 from "/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-parsed-literal-707.mdx"; +import ExternalSpliceMainSpliceRstCodeDocsSrcSvOperatorSvHelmParsedLiteral715 from "/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-parsed-literal-715.mdx"; +import ExternalSpliceMainSpliceRstCodeDocsSrcSvOperatorSvHelmParsedLiteral1005 from "/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-parsed-literal-1005.mdx"; +import ExternalSpliceMainSpliceRstCodeDocsSrcSvOperatorSvHelmYaml456 from "/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-yaml-456.mdx"; +import ExternalSpliceMainSpliceRstLiteralMarkerAppsAppSrcPackExamplesSvHelmSvValuesMigrationStart from "/snippets/external/splice/main/splice-literal-marker-apps-app-src-pack-examples-sv-helm-sv-values-migration-start.mdx"; +import ExternalSpliceMainSpliceRstCodeDocsSrcSvOperatorSvHelmBash55 from "/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-55.mdx"; +import ExternalSpliceMainSpliceRstCodeDocsSrcSvOperatorSvHelmText74 from "/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-text-74.mdx"; +import ExternalSpliceMainSpliceRstCodeDocsSrcSvOperatorSvHelmText366 from "/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-text-366.mdx"; +import ExternalSpliceMainSpliceRstCodeDocsSrcSvOperatorSvHelmBash302 from "/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-302.mdx"; +import ExternalSpliceMainSpliceRstCodeDocsSrcSvOperatorSvHelmBash314 from "/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-314.mdx"; +import ExternalSpliceMainSpliceRstCodeDocsSrcSvOperatorSvHelmBash326 from "/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-326.mdx"; +import ExternalSpliceMainSpliceRstCodeDocsSrcSvOperatorSvHelmBash381 from "/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-381.mdx"; +import ExternalSpliceMainSpliceRstCodeDocsSrcSvOperatorSvHelmBash507 from "/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-507.mdx"; +import ExternalSpliceMainSpliceRstCodeDocsSrcSvOperatorSvHelmBash627 from "/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-627.mdx"; +import ExternalSpliceMainSpliceRstCodeDocsSrcSvOperatorSvHelmBash725 from "/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-725.mdx"; +import ExternalSpliceMainSpliceRstCodeDocsSrcSvOperatorSvHelmBash835 from "/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-835.mdx"; +import ExternalSpliceMainSpliceRstCodeDocsSrcSvOperatorSvHelmBash844 from "/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-844.mdx"; import ExternalSpliceMainSpliceRstCodeDocsSrcSvOperatorSvHelmBash861 from "/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-861.mdx"; -import ExternalSpliceMainSpliceRstCodeDocsSrcSvOperatorSvHelmYaml870 from "/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-yaml-870.mdx"; -import ExternalSpliceMainSpliceRstCodeDocsSrcSvOperatorSvHelmYaml888 from "/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-yaml-888.mdx"; -import ExternalSpliceMainSpliceRstCodeDocsSrcSvOperatorSvHelmBash902 from "/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-902.mdx"; -import ExternalSpliceMainSpliceRstCodeDocsSrcSvOperatorSvHelmYaml914 from "/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-yaml-914.mdx"; -import ExternalSpliceMainSpliceRstCodeDocsSrcSvOperatorSvHelmBash978 from "/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-978.mdx"; -import ExternalSpliceMainSpliceRstCodeDocsSrcSvOperatorSvHelmNone1145 from "/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-none-1145.mdx"; - +import ExternalSpliceMainSpliceRstCodeDocsSrcSvOperatorSvHelmBash873 from "/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-873.mdx"; +import ExternalSpliceMainSpliceRstCodeDocsSrcSvOperatorSvHelmBash914 from "/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-914.mdx"; +import ExternalSpliceMainSpliceRstCodeDocsSrcSvOperatorSvHelmBash93 from "/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-93.mdx"; +import ExternalSpliceMainSpliceRstCodeDocsSrcSvOperatorSvHelmBash990 from "/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-990.mdx"; +import ExternalSpliceMainSpliceRstCodeDocsSrcSvOperatorSvHelmNone1135 from "/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-none-1135.mdx"; +import ExternalSpliceMainSpliceRstCodeDocsSrcSvOperatorSvHelmYaml440 from "/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-yaml-440.mdx"; +import ExternalSpliceMainSpliceRstCodeDocsSrcSvOperatorSvHelmYaml448 from "/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-yaml-448.mdx"; +import ExternalSpliceMainSpliceRstCodeDocsSrcSvOperatorSvHelmYaml882 from "/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-yaml-882.mdx"; +import ExternalSpliceMainSpliceRstCodeDocsSrcSvOperatorSvHelmYaml900 from "/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-yaml-900.mdx"; +import ExternalSpliceMainSpliceRstCodeDocsSrcSvOperatorSvHelmYaml926 from "/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-yaml-926.mdx"; import { NetworkVariables } from '/snippets/components/version.mdx'; import { networkData } from '/snippets/generated/version-dashboard-data.mdx'; @@ -52,10 +68,9 @@ tar xzvf |version|_splice-node.tar.gz 5) Please inquire the migration id and serial id of the global synchronizer on your target network. The migration ID is frozen at the value after the last major upgrade and is only used for `migration.id` in the helm chart values. The serial ID is 0 for the initial synchronizer deployment and is incremented by 1 for each logical synchronizer upgrade. The serial ID is used for helm release names, DNS entries, database names, and deployment naming. -```bash -export MIGRATION_ID=0 -export SERIAL_ID=0 -``` + + + @@ -65,28 +80,11 @@ SV operators are identified by a human-readable name and an EC public key. This Use the following shell commands to generate a keypair in the format expected by the SV node software: -```bash -# Generate the keypair -openssl ecparam -name prime256v1 -genkey -noout -out sv-keys.pem - -# Encode the keys -public_key_base64=$(openssl ec -in sv-keys.pem -pubout -outform DER 2>/dev/null | base64 | tr -d "\n") -private_key_base64=$(openssl pkcs8 -topk8 -nocrypt -in sv-keys.pem -outform DER 2>/dev/null | base64 | tr -d "\n") - -# Output the keys -echo "public-key = \"$public_key_base64\"" -echo "private-key = \"$private_key_base64\"" - -# Clean up -rm sv-keys.pem -``` + These commands should result in an output similar to: -```text -public-key = "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE1eb+JkH2QFRCZedO/P5cq5d2+yfdwP+jE+9w3cT6BqfHxCd/PyA0mmWMePovShmf97HlUajFuN05kZgxvjcPQw==" -private-key = "MEECAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQcEJzAlAgEBBCBsFuFa7Eumkdg4dcf/vxIXgAje2ULVz+qTKP3s/tHqKw==" -``` + Store both keys in a safe location. You will be using them every time you want to deploy a new SV node, i.e., also when deploying an SV node to a different deployment of the Global Synchronizer and for redeploying an SV node after a (test-)network reset. @@ -102,7 +100,7 @@ adjust wording above to the fact the MainNet is live Create the application namespace within Kubernetes. - + ## Configuring Authentication @@ -234,15 +232,15 @@ We are now going to configure your SV node software based on the OIDC provider c The following kubernetes secret will instruct the participant to create a service user for your SV app (omit the scope if it is not needed in your setup). - + The validator app backend requires the following secret (omit the scope if it is not needed in your setup). - + To setup the wallet, CNS and SV UI, create the following two secrets. - + ## Configuring your CometBFT node @@ -256,24 +254,13 @@ To generate the node config you use the CometBFT docker image provided through G Use the following shell commands to generate the proper keys: -```bash -# Create a folder to store the config -mkdir cometbft -cd cometbft -# Init the node -docker run --rm -v "$(pwd):/init" |docker_repo_prefix|/cometbft:|version| init --home /init -# Read the node id and keep a note of it for the deployment -docker run --rm -v "$(pwd):/init" |docker_repo_prefix|/cometbft:|version| show-node-id --home /init -``` + Please keep a note of the node ID printed out above. In addition, please retain some of the configuration files generated, as follows (you might need to change the permissions/ownership for them as they are accessible only by the root user): -```text -cometbft/config/node_key.json -cometbft/config/priv_validator_key.json -``` + Any other files can be ignored. @@ -283,7 +270,7 @@ Any other files can be ignored. The CometBFT node is configured with a secret, based on the output from Generating the CometBFT node identity The secret is created as follows, with the `node_key.json` and `priv_validator_key.json` files representing the files generated as part of the node identity: - + ### Configuring CometBFT state sync @@ -314,39 +301,21 @@ To do so, SV operators must perform the following steps. Step 1. In `sv-validator-values.yaml`, add the following `synchronizer` config. -```yaml -synchronizer: - connectionType: "trust-single" - url: "SEQUENCER_PUBLIC_URI" # synchronizers.current.sequencerPublicUrl from sv-values.yaml -``` + Step 2. In `validator-values.yaml`, add the following or an equivalent config override: - + Step 3. In `sv-values.yaml`, add the following or an equivalent config override: - + The default behavior is restored by undoing above changes. To confirm the current configuration of your SV participant, open a Canton console to it and execute `participant.synchronizers.config("global")`. In case BFT sequencer connections are disabled, this should return a single sequencer connection in an output similar to the following: -```bash -@ participant.synchronizers.config("global") -res1: Option[SynchronizerConnectionConfig] = Some( - value = SynchronizerConnectionConfig( - synchronizer = Synchronizer \'global\', - sequencerConnections = SequencerConnections( - connections = Sequencer \'DefaultSequencer\' -> GrpcSequencerConnection(sequencerAlias = Sequencer \'DefaultSequencer\', endpoints = http://global-domain-0-sequencer:5008), - sequencer trust threshold = 1, - submission request amplification = SubmissionRequestAmplification(factor = 1, patience = 10s) - ), - manualConnect = false, - timeTracker = SynchronizerTimeTrackerConfig(minObservationDuration = 30m) - ) -) -``` + Alternatively, you can also search your participant logs for a `DEBUG`-level entry such as `Connecting to synchronizer with config: SynchronizerConnectionConfig(...)`, which contains the same information. @@ -360,7 +329,7 @@ We support both Cloud-hosted Postgres instances and Postgres instances running i All apps support reading the Postgres password from a Kubernetes secret. Currently, all apps use the Postgres user `cnadmin`. The password can be setup with the following command, assuming you set the environment variables `POSTGRES_PASSWORD_XXX` to secure values: - + ### Postgres in the Cluster @@ -368,12 +337,7 @@ All apps support reading the Postgres password from a Kubernetes secret. Current If you wish to run the Postgres instances as pods in your cluster, you can use the `splice-postgres` Helm chart to install them: -```bash -helm install sequencer-pg |helm_repo_prefix|/splice-postgres -n sv --version ${CHART_VERSION} -f splice-node/examples/sv-helm/postgres-values-sequencer.yaml --wait -helm install mediator-pg |helm_repo_prefix|/splice-postgres -n sv --version ${CHART_VERSION} -f splice-node/examples/sv-helm/postgres-values-mediator.yaml --wait -helm install participant-pg |helm_repo_prefix|/splice-postgres -n sv --version ${CHART_VERSION} -f splice-node/examples/sv-helm/postgres-values-participant.yaml --wait -helm install apps-pg |helm_repo_prefix|/splice-postgres -n sv --version ${CHART_VERSION} -f splice-node/examples/sv-helm/postgres-values-apps.yaml --wait -``` + @@ -389,6 +353,8 @@ Note that the default Helm values files used below assume that the Postgres inst ## Installing the Software + + ### Configuring the Helm Charts @@ -451,7 +417,7 @@ Additionally, please modify the file `splice-node/examples/sv-helm/sv-validator- The private and public key for your SV are defined in a K8s secret. If you haven't done so yet, please first follow the instructions in the Generating an SV Identity section to obtain and register a name and keypair for your SV. Replace `YOUR_PUBLIC_KEY` and `YOUR_PRIVATE_KEY` with the `public-key` and `private-key` values obtained as part of generating your SV identity. - + For configuring your sv app, please modify the file `splice-node/examples/sv-helm/sv-values.yaml` as follows: @@ -468,17 +434,7 @@ For configuring your sv app, please modify the file `splice-node/examples/sv-hel - If you would like to redistribute all or part of the SV rewards with other parties, you can fill up the `extraBeneficiaries` section with the desired parties and the percentage of the reward that corresponds to them. Note that the party you register must be known on the network for the reward coupon issuance to succeed. Furthermore, that party must be hosted on a validator node for its wallet to collect the SV reward coupons. That collection will happen automatically if the wallet is running. If it is not running during the time that the reward coupon can be collected, the corresponding reward is marked as unclaimed, and stored in an DSO-wide unclaimed reward pool. The `extraBeneficiaries` can be changed with just a restart of the SV app. - Optionally, uncomment the line for `initialAmuletPrice` and set it to your desired amulet price. This will create an amulet price vote from your SV with the configured price when onboarded. If not set, no vote will be cast. This can always be done later manually from the SV app UI. -```yaml -# Replace MIGRATION_ID with the migration ID of the global synchronizer. -migration: - id: "MIGRATION_ID" - # Uncomment these when redeploying as part of a migration, - # i.e., MIGRATION_ID was incremented and a migration dump was exported to the attached pvc. - # migrating: true - # This declares that your sequencer with that migration id is still up. You should remove it - # once you take down the sequencer for the prior migration id - # legacyId: "MIGRATION_ID_BEFORE_INCREMENTED" -``` + Please modify the file `splice-node/examples/sv-helm/info-values.yaml` as follows: @@ -510,36 +466,25 @@ With these files in place, you can execute the following helm commands in sequen Install the Canton and CometBFT components: -```bash -helm install global-domain-${SERIAL_ID}-cometbft |helm_repo_prefix|/splice-cometbft -n sv --version ${CHART_VERSION} -f splice-node/examples/sv-helm/cometbft-values.yaml --wait -helm install global-domain-${SERIAL_ID} |helm_repo_prefix|/splice-global-domain -n sv --version ${CHART_VERSION} -f splice-node/examples/sv-helm/global-domain-values.yaml --wait -``` + Note that we use the serial ID when naming Canton synchronizer components. This is to support operating multiple instances of these components side by side as part of a logical synchronizer upgrade. Install the participant: -```bash -helm install participant |helm_repo_prefix|/splice-participant -n sv --version ${CHART_VERSION} -f splice-node/examples/sv-helm/participant-values.yaml --wait -``` + Install the SV node apps: -```bash -helm install sv |helm_repo_prefix|/splice-sv-node -n sv --version ${CHART_VERSION} -f splice-node/examples/sv-helm/sv-values.yaml -f ${SV_IDENTITIES_FILE} -f ${UI_CONFIG_VALUES_FILE} --wait -helm install scan |helm_repo_prefix|/splice-scan -n sv --version ${CHART_VERSION} -f splice-node/examples/sv-helm/scan-values.yaml -f ${UI_CONFIG_VALUES_FILE} --wait -helm install validator |helm_repo_prefix|/splice-validator -n sv --version ${CHART_VERSION} -f splice-node/examples/sv-helm/validator-values.yaml -f splice-node/examples/sv-helm/sv-validator-values.yaml -f ${UI_CONFIG_VALUES_FILE} --wait -``` + Install the INFO app, which is used to provide information about the SV node and its configuration: -```bash -helm install info |helm_repo_prefix|/splice-info -n sv --version ${CHART_VERSION} -f splice-node/examples/sv-helm/info-values.yaml -``` + Once everything is running, you should be able to inspect the state of the cluster and observe pods running in the new namespace. A typical query might look as follows: - + Note also that `Pod` restarts may happen during bringup, particularly if all helm charts are deployed at the same time. The `splice-sv-node` cannot start until `participant` is running and `participant` cannot start until `postgres` is running. @@ -597,13 +542,13 @@ Your SV node should be configured with a url to your `global-domain-sequencer` s Make sure your cluster's ingress is correctly configured for the sequencer service and can be accessed through the provided URL. To check whether the sequencer is accessible, we can use the command below with the [grpcurl tool](https://github.com/fullstorydev/grpcurl) : - + If you are using the ingress configuration of this runbook, the `:` should be `sequencer-SERIAL_ID.sv.YOUR_HOSTNAME:443` Please replace `YOUR_HOSTNAME` with your host name and `SERIAL_ID` with the serial ID of the synchronizer that the sequencer is part of. If you see the response below, it means the sequencer is up and accessible through the URL. - + ### Requirements @@ -614,7 +559,7 @@ In order to install the reference charts, the following must be satisfied in you **Example of Istio installation:** - + ### Installation Instructions @@ -622,30 +567,30 @@ In order to install the reference charts, the following must be satisfied in you Create a `cluster-ingress` namespace: - + Ensure that there is a cert-manager certificate available in a secret named `cn-net-tls`. An example of a suitable certificate definition: - + Create a file named `istio-gateway-values.yaml` with the following content (Tip: on GCP you can get the cluster IP from `gcloud compute addresses list`): - + And install it to your cluster: - + Create Istio Gateway resources in the `cluster-ingress` namespace. Save the following to a file named `gateways.yaml`, with the following modifications: - Replace `YOUR_HOSTNAME` with the actual hostname of your SV node - The second gateway (cn-apps-gateway) exposes ports for three migration IDs (0, 1, and 2) for the CometBFT apps of the SV node. If a higher migration ID is reached, expand that list using the same pattern. - + And apply them to your cluster: - + The http gateway terminates tls using the secret that you configured above, and exposes raw http traffic in its outbound port 443. Istio VirtualServices can now be created to route traffic from there to the required pods within the cluster. A reference Helm chart is provided for that, which can be installed after @@ -654,9 +599,7 @@ The http gateway terminates tls using the secret that you configured above, and using: -```bash -helm install cluster-ingress-sv |helm_repo_prefix|/splice-cluster-ingress-runbook -n sv --version ${CHART_VERSION} -f splice-node/examples/sv-helm/sv-cluster-ingress-values.yaml -``` + @@ -673,9 +616,7 @@ Connectivity to the following destinations is required throughout operation to e Connectivity from the local scan app to the scan instances of all other SVs is required so that the scan app can backfill its data in a `BFT` fashion. It might also be required in the future to support the operation of the ordering layer (post CometBFT). To get a list of all current scan instances, you can query the `/api/scan/v0/scans` endpoint on any scan instances known to you. For example using the sponsor's scan instance (and with some optional post-processing using [jq](https://jqlang.org/)): -```bash -curl https://scan.sv-1./api/scan/v0/scans | jq -r '.scans.[].scans.[].publicUrl' -``` +
@@ -732,7 +673,7 @@ This will automatically pick up the conversion rate from `#splice-amulet-name-se Note that SVs must wait `voteCooldownTime` (a governance parameter that defaults to 1min) between updates to their rate. Therefore updates made by the publisher will not propagate immediately. - + [^1]: The URL must be reachable from the Canton participant, validator app and SV app running in your cluster, as well as from all web browsers that should be able to interact with the SV and wallet UIs. diff --git a/docs-main/global-synchronizer/deployment/onboarding-process.mdx b/docs-main/global-synchronizer/deployment/onboarding-process.mdx index f0b38bce8..529dab2e3 100644 --- a/docs-main/global-synchronizer/deployment/onboarding-process.mdx +++ b/docs-main/global-synchronizer/deployment/onboarding-process.mdx @@ -8,6 +8,9 @@ import ExternalSpliceMainSpliceRstCodeDocsSrcValidatorOperatorValidatorOnboardin import { NetworkVariables } from '/snippets/components/version.mdx'; import { networkData } from '/snippets/generated/version-dashboard-data.mdx'; +import ExternalSpliceMainSpliceRstCodeDocsSrcValidatorOperatorValidatorOnboardingParsedLiteral126 from "/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-onboarding-parsed-literal-126.mdx"; +import ExternalSpliceMainSpliceRstCodeDocsSrcValidatorOperatorValidatorOnboardingParsedLiteral95 from "/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-onboarding-parsed-literal-95.mdx"; +import ExternalSpliceMainSpliceRstCodeDocsSrcValidatorOperatorValidatorOnboardingParsedLiteral86 from "/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-onboarding-parsed-literal-86.mdx"; {/* COPIED_START source="splice:docs/src/validator_operator/validator_onboarding.rst" hash="a1a3ab0c" */} @@ -45,22 +48,13 @@ To validate that the SVs have added you to their respective IP allowlists, you c First, please confirm that your egress IP in the terminal in which you are running the command is indeed the one you provided for whitelisting by running: -```bash -curl -sSL http://checkip.amazonaws.com -``` + and confirming that the IP matches what you have provided for whitelisting. If it does, run the following command to check to which instance of Scan you can connect. Note that the following snippet requires installing [jq](https://jqlang.org/). -```bash -(set -o pipefail -CURL='curl -fsS -m 5 --connect-timeout 5' -for url in $($CURL |gsf_scan_url|/api/scan/v0/scans | jq -r '.scans[].scans[].publicUrl'); do - echo -n "$url: " - $CURL "$url"/api/scan/version | jq -r '.version' -done) -``` + You should see output in the form shown below, where each line indicates one SV and the version it is on. If you see timeouts that SV has not yet added you to their allowlist, if you do not get any errors, then all SVs have added you. Note that the URLs and versions will vary over time so don't try to compare exactly. @@ -68,13 +62,7 @@ You should see output in the form shown below, where each line indicates one SV Apart from connectivity to Scan, your validator must also be able to connect to the sequencer endpoints of the SVs. If you are encountering issues related to connecting to the synchronizer, you can use the following snippet to confirm that you are able to reach those endpoints (i.e., that SVs have whitelisted your IP for those endpoints as well). Note that the following snippet requires installing [jq](https://jqlang.org/) and [grpcurl](https://github.com/fullstorydev/grpcurl). -```bash -(set -o pipefail -for url in $(curl -fsS -m 5 --connect-timeout 5 |gsf_scan_url|/api/scan/v0/dso-sequencers | jq -r '.domainSequencers[].sequencers[].url | sub("https://"; "")'); do - echo -n "$url: " - grpcurl --max-time 10 "$url":443 grpc.health.v1.Health/Check -done) -``` + Sequencers that are functional and have whitelisted your IP correctly will return `"status": "SERVING"` in the `grpcurl` output. diff --git a/docs-main/global-synchronizer/deployment/sv-operations.mdx b/docs-main/global-synchronizer/deployment/sv-operations.mdx index eeb7899d9..aec472d84 100644 --- a/docs-main/global-synchronizer/deployment/sv-operations.mdx +++ b/docs-main/global-synchronizer/deployment/sv-operations.mdx @@ -12,11 +12,24 @@ import ExternalSpliceMainSpliceRstCodeDocsSrcSvOperatorSvOperationsBash507 from import ExternalSpliceMainSpliceRstCodeDocsSrcSvOperatorSvOperationsBash538 from "/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-bash-538.mdx"; import ExternalSpliceMainSpliceRstCodeDocsSrcSvOperatorSvOperationsBash564 from "/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-bash-564.mdx"; import ExternalSpliceMainSpliceRstCodeDocsSrcSvOperatorSvOperationsBash683 from "/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-bash-683.mdx"; +import ExternalSpliceMainSpliceRstCodeDocsSrcSvOperatorSvOperationsParsedLiteral222 from "/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-parsed-literal-222.mdx"; +import ExternalSpliceMainSpliceRstCodeDocsSrcSvOperatorSvOperationsParsedLiteral204 from "/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-parsed-literal-204.mdx"; +import ExternalSpliceMainSpliceRstCodeDocsSrcSvOperatorSvOperationsParsedLiteral193 from "/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-parsed-literal-193.mdx"; +import ExternalSpliceMainSpliceRstCodeDocsSrcSvOperatorSvOperationsParsedLiteral171 from "/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-parsed-literal-171.mdx"; +import ExternalSpliceMainSpliceRstFullDocsSrcCommonSvExtraDarsNotice from '/snippets/external/splice/main/splice-rst-full-docs-src-common-sv-extra-dars-notice.mdx'; +import ExternalSpliceMainSpliceRstCodeDocsSrcSvOperatorSvOperationsYaml821 from "/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-yaml-821.mdx"; +import ExternalSpliceMainSpliceRstCodeDocsSrcSvOperatorSvOperationsYaml829 from "/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-yaml-829.mdx"; +import ExternalSpliceMainSpliceRstCodeDocsSrcSvOperatorSvOperationsYaml838 from "/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-yaml-838.mdx"; +import ExternalSpliceMainSpliceRstCodeDocsSrcSvOperatorSvOperationsYaml846 from "/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-yaml-846.mdx"; +import ExternalSpliceMainSpliceRstCodeDocsSrcSvOperatorSvOperationsYaml865 from "/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-yaml-865.mdx"; +import ExternalSpliceMainSpliceRstCodeDocsSrcSvOperatorSvOperationsYaml889 from "/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-yaml-889.mdx"; {/* COPIED_START source="splice:docs/src/sv_operator/sv_operations.rst" hash="cbceece9" */} These sections give an overview of some of the functionalities enabled through your SV node as well as general information useful to SV node operators. + + ## Security Notice For more information on hardening your SV node, see `sv-security`. @@ -96,42 +109,23 @@ One way to determine the current traffic consumption (in bytes) of a CC transfer \(b\) had a single coin input. You can confirm both of these conditions by looking at the matching log entry of the form: - ```bash - executing batch AmuletOperationBatch( - nonMergeOperations = AmuletOperation( - from = tid:80afc8ae63defcb7a636d2cd23e38c0d, - op = CO_CompleteAcceptedTransfer(ContractId(00ebc78671f4b5f688d8245a1e0c6c72f378c0c90c7ca574a3c3a615489f3ca15dca1012208d8f9eb3ffe0d0a05b207e2bc3fb3f3e7d31c0b594eaefcfd486411386de775c)), - priority = Low - ), - priority = Low - ) with inputs Vector(InputAmulet(ContractId(002ace5687dc7f82cb0ca80d2b349a39b1127ffd01db2cd7172053fef88308e6faca1012202646cd3cbb31c78314c3ef22657d4ba6f7f096e90167dcd0d71eba565fa35844))) - ``` + Use the `trace-id` from this log enty's metadata (**not** the `tid` in view here but from the dedicated `trace-id` field on the log entry JSON) to confirm that this log entry matches your transfer (by searching your logs by the `trace-id` to find for entries that contain the full `AcceptedTransferOffer`, for example). Note in this example that (a) there is a single operation in the executed bach and (b) the operation has a single input. If this is not true for the transfer you initiated, go back to step 2 and initiate a new transfer, as batching or multi-input transfers will skew the measurement results. 4. Search your `validator-app` logs on the `sender` for the `trace-id` visible in the previous step. The goal is to tie the action here to a `trace-id` on the Canton side. Search for a log entry of the following form: - ```bash - Request (tid:43fd8ad332ca637b0c7c1509b2bdf715) com.daml.ledger.api.v2.CommandService/SubmitAndWaitForTransactionTree to participant-1:5001: sending request - ``` + The `tid` in this log entry is the `trace-id` that you're looking for. It will be different from the `trace-id` in the log entry metadata (that you used to link this log entry to the transfer operation visible above). 5. Search your SV's `sequencer` logs for the `trace-id` from the previous step. You want to use a log filter along the lines of (all rules here should be concatenated with logical "AND"s): - ```bash - resource.labels.container_name="sequencer" - jsonPayload.logger_name="c.d.c.s.t.TrafficConsumedManager:sequencer=sequencer" - jsonPayload."trace-id"="43fd8ad332ca637b0c7c1509b2bdf715" - ``` + 6. The resulting log lines contain traffic consumption information about the sender and receiver participants, but also about all SV participants. (SV participants are stakeholders to all CC transfers.) To determine only the traffic consumption of the sender and receiver participants, you must filter for the participant IDs of the sender and receiver. A simple approach to achieve the correct filtering is to filter for parts of the party suffixes of the sender and receiver parties, as the suffix (namespace) of a party will typically be identical to that of the participants hosting the party. Filtering the resulting log lines for the participant IDs corresponding to the sender and receiver, you should get log lines similar to the following: - ```bash - Consumed 16147 for PAR::sender::... - Consumed 711 for PAR::receiver::... - Consumed 1450 for PAR::sender::... - ``` + 7. Sum up the numbers in the log lines to get the total traffic consumed for the last leg of a CC transfer. In this example, the total traffic consumed would be 17597 bytes for the sender and 711 bytes for the receiver. @@ -346,17 +340,17 @@ t0 t1 t2 t3 - For `(t0, t1]` remaining portion: - > ```bash - > --begin-record-time=t0 --end-record-time=t1 \ - > --weight=10000 --already-minted-weight=10000 - > ``` + ```bash + --begin-record-time=t0 --end-record-time=t1 \ + --weight=10000 --already-minted-weight=10000 + ``` - For `(t1, t2]`: - > ```bash - > --begin-record-time=t1 --end-record-time=t2 \ - > --weight=10000 --already-minted-weight=0 - > ``` + ```bash + --begin-record-time=t1 --end-record-time=t2 \ + --weight=10000 --already-minted-weight=0 + ``` - A vote is initiated for **m₂**. @@ -368,24 +362,24 @@ t0 t1 t2 t3 - For `(t0, t1]` remaining portion: - > ```bash - > --begin-record-time=t0 --end-record-time=t1 \ - > --weight=20000 --already-minted-weight=20000 - > ``` + ```bash + --begin-record-time=t0 --end-record-time=t1 \ + --weight=20000 --already-minted-weight=20000 + ``` - For `(t1, t2]` remaining portion: - > ```bash - > --begin-record-time=t1 --end-record-time=t2 \ - > --weight=20000 --already-minted-weight=10000 - > ``` + ```bash + --begin-record-time=t1 --end-record-time=t2 \ + --weight=20000 --already-minted-weight=10000 + ``` - For `(t2, t3]`: - > ```bash - > --begin-record-time=t2 --end-record-time=t3 \ - > --weight=20000 --already-minted-weight=0 - > ``` + ```bash + --begin-record-time=t2 --end-record-time=t3 \ + --weight=20000 --already-minted-weight=0 + ``` - A vote is initiated for **m₃**. @@ -418,35 +412,34 @@ The `ScanAppBackendConfig` has a field for both the ACS store and the TxLog stor The helm chart value `acsStoreDescriptorUserVersion` sets the `user version` of the ACS store, which is shown in the example below: -> ```yaml -> # Example to trigger re-ingestion of the ACS store for the first time -> persistence: -> acsStoreDescriptorUserVersion: 1 -> ``` + A subsequent re-ingestion can be triggered by incrementing the value, as shown in the example below: -> ```yaml -> # Example to trigger re-ingestion of the ACS store for the second time -> persistence: -> acsStoreDescriptorUserVersion: 2 -> ``` + The helm chart value `txLogStoreDescriptorUserVersion` sets the `user version` of the TxLog store, which is shown in the example below: -> ```yaml -> # Example to trigger re-ingestion of the TxLog store for the first time -> persistence: -> txLogStoreDescriptorUserVersion: 1 -> ``` + A subsequent re-ingestion can be triggered by incrementing the value, as shown in the example below: -> ```yaml -> # Example to trigger re-ingestion of the TxLog store for the second time -> persistence: -> txLogStoreDescriptorUserVersion: 2 -> ``` + + +The `activityIngestionUserVersion` field controls the activity record ingestion version. Incrementing this value causes the scan app to record a new app activity record completeness lower bound. Reward accounting excludes rounds before this boundary, even though their activity records are retained. Thus bumping the user version has the same effect as reinitializing the app activity record computation from the time of the bump onwards. + +Consequences of incrementing the user version: + +- Reward accounting excludes rounds before the new boundary, which may result in the SV node participating in reward computation by asking other SV nodes for the data for the rounds for which the SV node does not have complete activity records. +- Scan will not serve activity records ingested before bumping the user version. The results of this SV node's `v0/events` Scan API may therefore miss some activity records compared to the responses from other Scan APIs. + +This is useful for recovering from unexpected ingestion or reward processing errors without reprocessing historical data. + +The user version must never decrease. A lower value than previously stored will cause the scan app to shut down to prevent data corruption. + +The HOCON configuration key is `canton.scan-apps.scan-app.activity-ingestion-user-version`. It can be set via an `ADDITIONAL_CONFIG` environment variable: + + ## Unvet insecure package versions @@ -460,13 +453,7 @@ To unvet supported packages, SVs (but not regular validators) must set the follo Here an example of how to unvet specific versions of a package: -> ```yaml -> additionalEnvVars: -> - name: ADDITIONAL_CONFIG_ADDITIONAL_PACKAGES_TO_UNVET -> value: | -> canton.sv-apps.sv.additional-packages-to-unvet.splice-wallet = ["0.1.16"] -> canton.sv-apps.sv.additional-packages-to-unvet.splice-amulet = ["0.1.16", "0.1.17"] -> ``` + Unvetting is only supported for SVs and SV validators and does not unvet dependencies for now. diff --git a/docs-main/global-synchronizer/deployment/synchronizer-traffic.mdx b/docs-main/global-synchronizer/deployment/synchronizer-traffic.mdx index 0216ffe58..e1da6e780 100644 --- a/docs-main/global-synchronizer/deployment/synchronizer-traffic.mdx +++ b/docs-main/global-synchronizer/deployment/synchronizer-traffic.mdx @@ -7,6 +7,8 @@ import ExternalSpliceMainSpliceRstCodeDocsSrcDeploymentTrafficJson94 from "/snip import { NetworkVariables } from '/snippets/components/version.mdx'; import { networkData } from '/snippets/generated/version-dashboard-data.mdx'; +import ExternalSpliceMainSpliceRstCodeDocsSrcDeploymentTrafficParsedLiteral129 from "/snippets/external/splice/main/splice-rst-code-docs-src-deployment-traffic-parsed-literal-129.mdx"; +import ExternalSpliceMainSpliceRstCodeDocsSrcDeploymentTrafficParsedLiteral88 from "/snippets/external/splice/main/splice-rst-code-docs-src-deployment-traffic-parsed-literal-88.mdx"; {/* COPIED_START source="splice:docs/src/deployment/traffic.rst" hash="0e110a7b" */} @@ -45,9 +47,7 @@ Traffic accounting is "by participant"; all parties hosted on the same participa The current synchronizer traffic parameters are recorded on the global `AmuletRules` contract and can be obtained from Scan. You can obtain them via the Scan UI or by querying the Scan API using, for example, this command (requires installing [jq](https://jqlang.org/)): -```bash -curl -X POST --header "Content-Type: application/json" -d "{}" |gsf_scan_url|/api/scan/v0/amulet-rules | jq ".amulet_rules_update.contract.payload.configSchedule.initialValue.decentralizedSynchronizer.fees" -``` + Above command will return a JSON object similar to the following: @@ -59,9 +59,7 @@ This represents an encoded instance of the `SynchronizerFeesConfig` Daml data ty - `extraTrafficPrice`: the price of extra traffic beyond the free tier, denominated in USD per MB. The price is charged in `CC` as per the current USD exchange rate. The exchange rate is determined by SVs via median voting and recorded on current `OpenMiningRound` contracts obtainable from Scan. For querying the current CC price in USD as per the currently open mining round, you can check the Scan UI or use the following command (requires installing [jq](https://jqlang.org/)): - ```bash - curl -X POST --header "Content-Type: application/json" -d "{\"cached_open_mining_round_contract_ids\":[], \"cached_issuing_round_contract_ids\":[]}" |gsf_scan_url|/api/scan/v0/open-and-issuing-mining-rounds | jq ".open_mining_rounds | values[] | .contract.payload | {round, amuletPrice}" - ``` + - `readVsWriteScalingFactor`: specifies the weight of additional traffic balance subtractions (from a sender's balance) for delivering a synchronizer message to each of its recipients. Delivering messages incurs actual costs for the SVs, even if this cost is much smaller than the cost of ordering and persisting messages. The `readVsWriteScalingFactor` is specified in basis points (parts per 10,000), i.e., a value of 1 means that for each 1000 bytes that need to be delivered to a recipient, 0.1 bytes of traffic will be charged. So for example: At a factor of 4, a 1 MB message with 10 recipients will draw `1,000,000 * (1 + 10 * 0.004) = 1,040,000` bytes from the sending participant's traffic balance. diff --git a/docs-main/global-synchronizer/deployment/validator-docker-compose.mdx b/docs-main/global-synchronizer/deployment/validator-docker-compose.mdx index 9c557865a..7d9a71680 100644 --- a/docs-main/global-synchronizer/deployment/validator-docker-compose.mdx +++ b/docs-main/global-synchronizer/deployment/validator-docker-compose.mdx @@ -6,11 +6,19 @@ description: "Deploy a Canton Network validator using Docker Compose" import ExternalSpliceMainSpliceRstCodeDocsSrcValidatorOperatorValidatorComposeBash58 from "/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-compose-bash-58.mdx"; import ExternalSpliceMainSpliceRstCodeDocsSrcValidatorOperatorValidatorComposeYaml96 from "/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-compose-yaml-96.mdx"; import ExternalSpliceMainSpliceRstCodeDocsSrcValidatorOperatorValidatorComposeYaml105 from "/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-compose-yaml-105.mdx"; -import ExternalSpliceMainSpliceRstCodeDocsSrcValidatorOperatorValidatorComposeBash123 from "/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-compose-bash-123.mdx"; -import ExternalSpliceMainSpliceRstCodeDocsSrcValidatorOperatorValidatorComposeBash262 from "/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-compose-bash-262.mdx"; +import ExternalSpliceMainSpliceRstCodeDocsSrcValidatorOperatorValidatorComposeBash167 from "/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-compose-bash-167.mdx"; +import ExternalSpliceMainSpliceRstCodeDocsSrcValidatorOperatorValidatorComposeBash306 from "/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-compose-bash-306.mdx"; +import ExternalSpliceMainSpliceRstFullDocsSrcCommonTrafficTopups from '/snippets/external/splice/main/splice-rst-full-docs-src-common-traffic-topups.mdx'; +import ExternalSpliceMainSpliceRstFullDocsSrcCommonWalletSweeps from '/snippets/external/splice/main/splice-rst-full-docs-src-common-wallet-sweeps.mdx'; import { NetworkVariables } from '/snippets/components/version.mdx'; import { networkData } from '/snippets/generated/version-dashboard-data.mdx'; +import ExternalSpliceMainSpliceRstFullDocsSrcCommonBackupSuggestion from '/snippets/external/splice/main/splice-rst-full-docs-src-common-backup-suggestion.mdx'; +import ExternalSpliceMainSpliceRstPartialDocsSrcValidatorOperatorRequiredNetworkParameters9 from '/snippets/external/splice/main/splice-rst-partial-docs-src-validator-operator-required-network-parameters-9.mdx'; +import ExternalSpliceMainSpliceRstCodeDocsSrcValidatorOperatorValidatorComposeYaml347 from "/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-compose-yaml-347.mdx"; +import ExternalSpliceMainSpliceRstCodeDocsSrcValidatorOperatorValidatorComposeBash281 from "/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-compose-bash-281.mdx"; +import ExternalSpliceMainSpliceRstCodeDocsSrcValidatorOperatorValidatorComposeYaml152 from "/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-compose-yaml-152.mdx"; +import ExternalSpliceMainSpliceRstCodeDocsSrcValidatorOperatorValidatorComposeBash175 from "/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-compose-bash-175.mdx"; {/* COPIED_START source="splice:docs/src/validator_operator/validator_compose.rst" hash="074ae45b" */} @@ -49,6 +57,12 @@ To validate that the dependencies are set up correctly, run the following comman tar xzvf |version|_splice-node.tar.gz ``` + + +### Required Network Parameters + + + Additional parameters describing your own setup as opposed to the connection to the network are described below. @@ -84,15 +98,7 @@ The value is a `|`-separated list of patterns that follows the standard Java `no Example that proxies external traffic from the `validator` service but bypasses the proxy for `localhost` / `127.0.0.1`, any host in the `.internal` domain, and any IPv4 address whose literal string representation starts with `10.`: -```yaml -services: - validator: - environment: - JAVA_TOOL_OPTIONS: >- - -Dhttps.proxyHost=your.proxy.host - -Dhttps.proxyPort=your_proxy_port - -Dhttp.nonProxyHosts=localhost|127.0.0.1|*.internal|10.* -``` + ## Deployment @@ -100,14 +106,12 @@ services: 1) Change to the `docker-compose` directory inside the extracted bundle: - + 2) Export the current version to an environment variable: |image_tag_set| 3) Run the following command to start the validator node, and wait for it to become ready (could take a few minutes): -> ```bash -> ./start.sh -s "" -o "" -p "" -m "" -w -> ``` +> > > Where: > @@ -221,9 +225,7 @@ Once you have set up your OAuth provider, you need to configure it by setting th In order to enable auth in the deployment, add the `-a` flag to the `start.sh` command, as follows: -```bash -./start.sh -s "" -o "" -p "" -m "" -w -a -``` + If you have already deployed a non-authenticated validator on your machine, you can migrate it to an authenticated one by stopping the validator with `./stop.sh` and restarting it with the `-a` flag as above. The validator operator user will be automatically migrated, and the user indicated by the `WALLET_ADMIN_USER` variable will be associated with the validator operator party. If you have also onboarded other users onto your validator, those will not be automatically migrated, and you need to manually associate the OAuth users with their corresponding parties. In order to do that, first take note of the party IDs of all relevant users (do this before stopping the unauthenticated validator), e.g. by copying them from the top-right corner of their wallet UIs. Now for every user that you wish to migrate, follow the instructions for associating a user with a party in the Users, Parties and Wallets in the Splice Wallet section, but replace the admin party ID with the party ID which you wish to associate with each user. @@ -231,10 +233,14 @@ If you have already deployed a non-authenticated validator on your machine, you Your node is configured to automatically purchase traffic on a pay-as-you-go basis (see automatically purchase traffic). To tune to your needs, you can set environment variables, for example: - + + + ## Configuring sweeps and auto-accepts of transfer offers + + To do so, fill the following section and add the following additional config to your validator environment: ```yaml @@ -261,18 +267,7 @@ services: Similarly, you can configure the validator to automatically accept transfer offers from certain parties on the network. To do so, add the following additional config: -```yaml -services: - validator: - environment: - - | - ADDITIONAL_CONFIG_AUTO_ACCEPT_TRANSFERS= - canton.validator-apps.validator_backend.auto-accept-transfers { - "" { - from-parties = ["", ""] - } - } -``` + ## Integration with systemd and other init systems diff --git a/docs-main/global-synchronizer/deployment/validator-kubernetes.mdx b/docs-main/global-synchronizer/deployment/validator-kubernetes.mdx index 5f3d33c56..34fde34c8 100644 --- a/docs-main/global-synchronizer/deployment/validator-kubernetes.mdx +++ b/docs-main/global-synchronizer/deployment/validator-kubernetes.mdx @@ -19,9 +19,22 @@ import ExternalSpliceMainSpliceRstCodeDocsSrcValidatorOperatorValidatorHelmYaml5 import ExternalSpliceMainSpliceRstCodeDocsSrcValidatorOperatorValidatorHelmBash611 from "/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-helm-bash-611.mdx"; import ExternalSpliceMainSpliceRstCodeDocsSrcValidatorOperatorValidatorHelmYaml771 from "/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-helm-yaml-771.mdx"; import ExternalSpliceMainSpliceRstCodeDocsSrcValidatorOperatorValidatorHelmYaml797 from "/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-helm-yaml-797.mdx"; +import ExternalSpliceMainSpliceRstFullDocsSrcCommonBackupSuggestion from '/snippets/external/splice/main/splice-rst-full-docs-src-common-backup-suggestion.mdx'; +import ExternalSpliceMainSpliceRstPartialDocsSrcValidatorOperatorRequiredNetworkParameters9 from '/snippets/external/splice/main/splice-rst-partial-docs-src-validator-operator-required-network-parameters-9.mdx'; +import ExternalSpliceMainSpliceRstFullDocsSrcCommonReloaderRecommendation from '/snippets/external/splice/main/splice-rst-full-docs-src-common-reloader-recommendation.mdx'; +import ExternalSpliceMainSpliceRstFullDocsSrcCommonTrafficTopups from '/snippets/external/splice/main/splice-rst-full-docs-src-common-traffic-topups.mdx'; +import ExternalSpliceMainSpliceRstFullDocsSrcCommonWalletSweeps from '/snippets/external/splice/main/splice-rst-full-docs-src-common-wallet-sweeps.mdx'; +import ExternalSpliceMainSpliceRstLiteralMarkerAppsAppSrcPackExamplesSvHelmStandaloneValidatorValuesConfiguringTopupStart from '/snippets/external/splice/main/splice-literal-marker-apps-app-src-pack-examples-sv-helm-standalone-validator-values-configuring-topup-start.mdx'; +import ExternalSpliceMainSpliceRstLiteralMarkerAppsAppSrcPackExamplesSvHelmStandaloneValidatorValuesScanClientConfigurationStart from '/snippets/external/splice/main/splice-literal-marker-apps-app-src-pack-examples-sv-helm-standalone-validator-values-scan-client-configuration-start.mdx'; +import ExternalSpliceMainSpliceRstLiteralMarkerAppsAppSrcPackExamplesSvHelmStandaloneValidatorValuesSynchronizerConfigurationStart from '/snippets/external/splice/main/splice-literal-marker-apps-app-src-pack-examples-sv-helm-standalone-validator-values-synchronizer-configuration-start.mdx'; +import ExternalSpliceMainSpliceRstLiteralMarkerAppsAppSrcPackExamplesSvHelmValidatorValuesAutoAcceptStart from '/snippets/external/splice/main/splice-literal-marker-apps-app-src-pack-examples-sv-helm-validator-values-auto-accept-start.mdx'; +import ExternalSpliceMainSpliceRstLiteralMarkerAppsAppSrcPackExamplesSvHelmValidatorValuesParticipantPruningScheduleStart from '/snippets/external/splice/main/splice-literal-marker-apps-app-src-pack-examples-sv-helm-validator-values-participant-pruning-schedule-start.mdx'; import { NetworkVariables } from '/snippets/components/version.mdx'; import { networkData } from '/snippets/generated/version-dashboard-data.mdx'; +import ExternalSpliceMainSpliceRstCodeDocsSrcValidatorOperatorValidatorHelmParsedLiteral657 from "/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-helm-parsed-literal-657.mdx"; +import ExternalSpliceMainSpliceRstCodeDocsSrcValidatorOperatorValidatorHelmParsedLiteral472 from "/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-helm-parsed-literal-472.mdx"; +import ExternalSpliceMainSpliceRstCodeDocsSrcValidatorOperatorValidatorHelmYaml127 from "/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-helm-yaml-127.mdx"; {/* COPIED_START source="splice:docs/src/validator_operator/validator_helm.rst" hash="b0bc851d" */} @@ -46,6 +59,10 @@ This section describes how to deploy a standalone validator node in Kubernetes u tar xzvf |version|_splice-node.tar.gz ``` + + + + - **TRUSTED_SCAN_URL** — The scan URL of an SV that you trust and that is reachable by your validator, often your SV sponsor. This should be of the form |generic_scan_url|, e.g., for the Global Synchronizer Foundation SV it is |gsf_scan_url|. Additional parameters describing your own setup as opposed to the connection to the network are described below. @@ -95,12 +112,7 @@ The value is a `|`-separated list of patterns that follows the standard Java `no Example `additionalJvmOptions` for the validator helm chart that proxies external traffic but bypasses the proxy for `localhost` / `127.0.0.1`, any host in the `.internal` domain, and any IPv4 address whose literal string representation starts with `10.`: -```yaml -additionalJvmOptions: | - -Dhttps.proxyHost=your.proxy.host - -Dhttps.proxyPort=your_proxy_port - -Dhttp.nonProxyHosts=localhost|127.0.0.1|*.internal|10.* -``` + ## Configuring PostgreSQL authentication @@ -258,6 +270,8 @@ When running without authentication, the username of the validator administrator ## Installing the Software + + ### Configuring the Helm Charts @@ -284,41 +298,7 @@ Additionally, please modify the file `splice-node/examples/sv-helm/standalone-pa You need to configure how your validator connects to the network's **scan** services by defining a `scanClient` block in your `standalone-validator-values.yaml`. -```yaml -scanClient: - scanType: "bft" - seedUrls: ["TRUSTED_SCAN_URL"] # replace with scan seed url. Supports multiple urls, separated by comma. - -# scanClient denotes how the validator makes connections to scan service and supports three modes of operation. - -# Mode 1: bft (Byzantine Fault Tolerance) -# Connects to all available scans in the network. It validates responses by ensuring -# at least f+1 matching responses are received. - -# scanClient: -# scanType: "bft" -# seedUrls: ["TRUSTED_SCAN_URL"] # replace with scan seed url(s). Supports multiple urls, separated by comma. - -# Mode 2: bft-custom -# A specialized version of bft where you specify a subset of trusted SVs. -# The validator connects only to the scans of the SVs listed in 'svNames'. -# Optional param 'threshold' defines how many identical responses are required to consider the scan responses valid. - -# scanClient: -# scanType: "bft-custom" -# svNames: ["TRUSTED_SV"] # replace with trusted SV names(s) -# seedUrls: ["TRUSTED_SCAN_URL"] # replace with actual scan seed urls(s) -# threshold: # optional integer indicating the number of matching responses required for validation - -# Mode 3: trust-single -# Connects to a single trusted scan address. -# This means that you depend on that single SV and if it is broken or malicious you will be unable to use the network. -# Hence, usually you want to default to not enabling this - -# scanClient: -# scanType: "trust-single" -# scanAddress: "TRUSTED_SCAN_URL" # replace with the trusted scan url -``` + For your selected `scanClient` type, replace `TRUSTED_SCAN_URL` with a URL of a Scan you host or trust that is reachable by your Validator. For example, the GSF scan URL, |gsf_scan_url|. For `bft-custom` and `bft` modes of `scanClient`, you can specify more than one scan seed URL by separating them with commas. @@ -330,37 +310,7 @@ For your selected `scanClient` type, replace `TRUSTED_SCAN_URL` with a URL of a You need to configure how your validator's participant connects to **sequencers** by defining a `synchronizer` config in your `standalone-validator-values.yaml`. -```yaml -synchronizer: - connectionType: "bft" - -# synchronizer configuration enables to configure how the validator's participant connects to the synchronizer. -# synchronizer configuration has three modes of operation. - -# Mode 1: bft (Byzantine Fault Tolerance) -# Uses all available synchronizer connections provided by the scan service. -# Responses are validated against the network's f+1 fault tolerance logic. - -# synchronizer: -# connectionType: "bft" - -# Mode 2: bft-custom -# Connects only to sequencers operated by the specific SVs listed in 'svNames'. -# optional param 'threshold' defines the minimum number of matching responses required for validation. - -# synchronizer: -# connectionType: "bft-custom" -# svNames: ["TRUSTED_SV"] # replace with trusted SV name(s) -# threshold: # optional integer indicating the number of matching responses required for validation - -# Mode 3: trust-Single -# Connects to a single specified sequencer URL. -# trust-single makes you dependent on a single SV; if it is malicious or down, you will be unable to use the network. - -#synchronizer: -# connectionType: "trust-single" -# url: "TRUSTED_SYNCHRONIZER_SEQUENCER_URL" # replace with the trusted synchronizer sequencer url -``` + Additionally, please modify the file `splice-node/examples/sv-helm/standalone-validator-values.yaml` as follows: @@ -379,11 +329,7 @@ Finally, please download the UI config values file from [https://github.com/glob With these files in place, you can execute the following helm commands in sequence. It's generally a good idea to wait until each deployment reaches a stable state prior to moving on to the next step. -```bash -helm install postgres |helm_repo_prefix|/splice-postgres -n validator --version ${CHART_VERSION} -f splice-node/examples/sv-helm/postgres-values-validator-participant.yaml --wait -helm install participant |helm_repo_prefix|/splice-participant -n validator --version ${CHART_VERSION} -f splice-node/examples/sv-helm/participant-values.yaml -f splice-node/examples/sv-helm/standalone-participant-values.yaml --wait -helm install validator |helm_repo_prefix|/splice-validator -n validator --version ${CHART_VERSION} -f splice-node/examples/sv-helm/validator-values.yaml -f splice-node/examples/sv-helm/standalone-validator-values.yaml --wait -``` + Once this is running, you should be able to inspect the state of the cluster and observe pods running in the new namespace. A typical query might look as follows: @@ -463,9 +409,7 @@ This gateway terminates tls using the secret that you configured above, and expo using: -```bash -helm install cluster-ingress-validator |helm_repo_prefix|/splice-cluster-ingress-runbook -n validator --version ${CHART_VERSION} -f splice-node/examples/sv-helm/validator-cluster-ingress-values.yaml -``` + @@ -485,17 +429,9 @@ explain the config sections below in a way that makes them also accessible to th By default your node will be configured to automatically purchase traffic on a pay-as-you-go basis (see automatically purchase traffic). To disable or tune to your needs, edit the following section in the validator-values.yaml file: -```yaml -# Configuring a validator's traffic top-up loop; -# see documentation for more detailed information. -topup: - # set to false in order to disable automatic traffic top-ups - enabled: true - # target throughput in bytes / second of sequenced traffic; targetThroughput=0 <=> enabled=false - targetThroughput: 20000 - # minTopupInterval - minimum time interval that must elapse before the next top-up - minTopupInterval: "1m" -``` + + +
@@ -505,6 +441,8 @@ topup: ## Configuring sweeps and auto-accepts of transfer offers + + To do so, uncomment and fill in the following section in the `validator-values.yaml` file: ```yaml @@ -524,13 +462,7 @@ To do so, uncomment and fill in the following section in the `validator-values.y Similarly, you can configure the validator to automatically accept transfer offers from certain parties on the network. To do so, uncomment and fill in the following section in the `validator-values.yaml` file: -```yaml -# To configure the validator to auto-accept transfer offers from specific parties, uncomment and fill in the following: -#autoAcceptTransfers: -# "": -# fromParties: -# - "" -``` + ## Logging into the CNS UI @@ -552,14 +484,7 @@ Note that if your node is down for longer than the pruning window (48 hours in t Refer to the [pruning guide](/global-synchronizer/production-operations/pruning) for more details on participant pruning. -```yaml -# To configure participant pruning uncomment the following section. -# Refer to the documentation for more details. -# participantPruningSchedule: -# cron: 0 /10 * * * ? # Run every 10min -# maxDuration: 5m # Run for a max of 5min per iteration -# retention: 48h # Retain history that is newer than 48h. -``` + ## Configuring init containers diff --git a/docs-main/global-synchronizer/deployment/validator-users.mdx b/docs-main/global-synchronizer/deployment/validator-users.mdx index 6e9678d06..a59a57be5 100644 --- a/docs-main/global-synchronizer/deployment/validator-users.mdx +++ b/docs-main/global-synchronizer/deployment/validator-users.mdx @@ -5,6 +5,7 @@ description: "Manage users, parties, and wallets on a validator node" import ExternalSpliceMainSpliceRstCodeDocsSrcValidatorOperatorValidatorUsersBash48 from "/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-users-bash-48.mdx"; import ExternalSpliceMainSpliceRstCodeDocsSrcValidatorOperatorValidatorUsersBash66 from "/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-users-bash-66.mdx"; +import ExternalSpliceMainSpliceRstLiteralMarkerAppsAppSrcPackExamplesSvHelmValidatorValuesEnablewalletStart from "/snippets/external/splice/main/splice-literal-marker-apps-app-src-pack-examples-sv-helm-validator-values-enablewallet-start.mdx"; {/* COPIED_START source="splice:docs/src/validator_operator/validator_users.rst" hash="b6c1f50f" */} @@ -43,10 +44,7 @@ Custom Party Hint: This mode allows providing a human-readable Party hint when c To disable the wallet HTTP server and the wallet automation, update the `validator-values.yaml` file with `enableWallet: false` -```yaml -# This will disable the wallet HTTP server and wallet automations when set to false -enableWallet: true -``` + Since your wallet is disabled, your validator will not have funds to pay for traffic. You should therefore remove the validator top-up config to prevent its automation from trying to top up the traffic. See `helm_validator_topup` for more details. diff --git a/docs-main/global-synchronizer/production-operations/disaster-recovery.mdx b/docs-main/global-synchronizer/production-operations/disaster-recovery.mdx index 39cf4597c..e02098948 100644 --- a/docs-main/global-synchronizer/production-operations/disaster-recovery.mdx +++ b/docs-main/global-synchronizer/production-operations/disaster-recovery.mdx @@ -3,7 +3,9 @@ title: "Disaster Recovery" description: "Recovery procedures for data corruption, SV re-onboarding, and CometBFT layer loss" --- -import ExternalSpliceMainSpliceRstCodeDocsSrcSvOperatorSvRestoreBash104 from "/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-restore-bash-104.mdx"; +import ExternalSpliceMainSpliceRstCodeDocsSrcSvOperatorSvRestoreBash102 from "/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-restore-bash-102.mdx"; +import ExternalSpliceMainSpliceRstCodeDocsSrcSvOperatorSvRestoreBash74 from "/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-restore-bash-74.mdx"; +import ExternalSpliceMainSpliceRstCodeDocsSrcSvOperatorSvRestoreBash57 from "/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-restore-bash-57.mdx"; {/* COPIED_START source="splice:docs/src/sv_operator/sv_restore.rst" hash="9e120ae8" */} @@ -28,31 +30,13 @@ Assuming such a consistent set of backups is available, the following steps can Scale down all components in the SV node to 0 replicas (replace `-0` with the correct serial ID in case a logical synchronizer upgrade has already been performed): -```bash -kubectl scale deployment --replicas=0 -n sv \ - global-domain-0-cometbft \ - global-domain-0-mediator \ - global-domain-0-sequencer \ - participant \ - scan-app \ - sv-app \ - validator-app -``` + Restore the storage and DBs of all components from the backups. The exact process for this depends on the storage and DBs used by the components, and is not documented here. Once all storage has been restored, scale up all components in the SV node back to 1 replica (replace `-0` with the correct serial ID in case a logical synchronizer upgrade has already been performed): -```bash -kubectl scale deployment --replicas=1 -n sv \ - global-domain-0-cometbft \ - global-domain-0-mediator \ - global-domain-0-sequencer \ - participant \ - scan-app \ - sv-app \ - validator-app -``` + Once all components are healthy again, they should start catching up their state from peer SVs, and eventually become functional again. @@ -64,7 +48,7 @@ In order to be able to recover the amulet, the backup of the identities of your From the backup of Node Identities, copy the content of the field `identities.participant` and save it as a separate JSON file. This file will be used as identities bootstrap dump for the validator runbook. - + Once the failed SV node is offboarded by a majority of SVs (via a governance vote on a `OffboardMember` action), we can deploy a standalone validator node for recovering the SV's amulets. diff --git a/docs-main/global-synchronizer/production-operations/logical-synchronizer-upgrade.mdx b/docs-main/global-synchronizer/production-operations/logical-synchronizer-upgrade.mdx index 292f71e04..1450363d9 100644 --- a/docs-main/global-synchronizer/production-operations/logical-synchronizer-upgrade.mdx +++ b/docs-main/global-synchronizer/production-operations/logical-synchronizer-upgrade.mdx @@ -5,6 +5,9 @@ description: "Upgrade the protocol version of a Global Synchronizer with very li import { Version, VersionOption } from '/snippets/components/version.mdx'; import { networkData } from '/snippets/generated/version-dashboard-data.mdx'; +import ExternalSpliceMainSpliceRstCodeDocsSrcSvOperatorSvLogicalSynchronizerUpgradeNone87 from '/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-logical-synchronizer-upgrade-none-87.mdx'; +import ExternalSpliceMainSpliceRstCodeDocsSrcSvOperatorSvLogicalSynchronizerUpgradeNone118 from '/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-logical-synchronizer-upgrade-none-118.mdx'; +import ExternalSpliceMainSpliceRstCodeDocsSrcSvOperatorSvLogicalSynchronizerUpgradeNone142 from '/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-logical-synchronizer-upgrade-none-142.mdx'; {/* COPIED_START source="splice:docs/src/sv_operator/sv_logical_synchronizer_upgrade.rst" hash="687d5313" */} @@ -79,11 +82,7 @@ Concretely, the procedure is as follows: 1. The old physical synchronizer is deemed broken and the last sequenced message was at record time R. 2. Super validators configure this as the max sequencing time on the old sequencer to guarantee that nothing accidentally gets sequenced after that time. This is done by applying the following environment variable to the existing sequencer: -``` -- name: ADDITIONAL_CONFIG_SEQUENCER_LSU_MAX_SEQUENCING_TIME - value: | - canton.sequencers.sequencer.parameters.lsu-repair.global-max-sequencing-time-exclusive=MAX_SEQUENCING_TIME -``` + 2. Super validators deploy successor nodes. Depending on the issue, the successor nodes may be configured with older image and protocol @@ -105,7 +104,7 @@ Concretely, the procedure is as follows: + canton.sequencers.sequencer.parameters.parameters.lsu-repair.lsu-sequencing-bounds-override.upgrade-time=UPGRADE_TIME`} /> 5. Validators initiate the *procedure* on their side. @@ -140,11 +131,7 @@ To do so, use the following steps: 1. Super validators configure the manual LSU in their scan. -``` -rollForwardLsu: - enabled: true - upgradeTime: UPGRADE_TIME # Must be agreed between SVs, optional, if not specified it is taken from an existing LSU announcement which should usually be sufficient. -``` + 2. Validator app automation picks up that configuration and initiates a manual roll-forward LSU to the new synchronizer. diff --git a/docs-main/global-synchronizer/production-operations/sv-major-upgrade.mdx b/docs-main/global-synchronizer/production-operations/sv-major-upgrade.mdx deleted file mode 100644 index 36161b655..000000000 --- a/docs-main/global-synchronizer/production-operations/sv-major-upgrade.mdx +++ /dev/null @@ -1,379 +0,0 @@ ---- -title: "SV Major Upgrades" -description: "Detailed procedure for Super Validator operators performing a non-backwards-compatible Canton software upgrade with synchronizer downtime." ---- - -import ExternalSpliceMainSpliceRstCodeDocsSrcSvOperatorSvMajorUpgradeBash148 from "/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-major-upgrade-bash-148.mdx"; -import ExternalSpliceMainSpliceRstCodeDocsSrcSvOperatorSvMajorUpgradeSql255 from "/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-major-upgrade-sql-255.mdx"; - -{/* COPIED_START source="splice:docs/src/sv_operator/sv_major_upgrade.rst" hash="1ca238da" */} - -For supporting non-backwards-compatible major version upgrades of the -Canton software the Global Synchronizer uses, the SV operatores follow -the procedure for synchronizer (i.e., domain) upgrades with downtime -described below. - -## Overview -1. Canton releases containing breaking changes become available and - Splice releases compatible with these Canton releases become - available. -2. SVs agree and eventually confirm via an on-ledger vote (cast via the - SV UI) on which specific date and time the network downtime - necessary for the upgrade will start. It is the responsibility of - the DSO to make sure that validator operators are informed about - planned upgrades and upgrade timelines. -3. Once the downtime has been scheduled, all SVs deploy new Kubernetes - pods containing the new versions of the Canton components of their - Super Validator node (participant, sequencer, and mediator) as well - as a new CometBFT node, alongside the old versioned ones which are - not yet deleted. See `sv-upgrades-deploying-domain`. -4. At the start of the downtime window, the SV app of SVs automatically - pauses all traffic on the operating version of the global - synchronizer. -5. Shortly after pausing traffic on the global synchronizer (there is a - short delay to ensure that all components have synced up to the - final state of the existing synchronizer), the node software of SVs - and validators automatically exports so-called migration dumps to - attached Kubernetes volumes. See `sv-upgrades-dumps`. -6. SV operators verify that their nodes have caught up to the - now-paused global synchronizer. See `sv-upgrades-catching-up`. -7. All SVs and validators previously using the now-paused global - synchronizer create full backups of their nodes. (Both for disaster - recovery and for supporting audit requirements). See `sv_backups`. -8. All SVs upgrade theirs CN apps pods. See - `sv-upgrades-deploying-apps`. -9. Upon (re-)initialization, the SV node backend automatically consumes - the migration dump and initializes all components based on the - contents of this dump. The process is analogous for validators, - where the validator app is tasked with importing the dump and - initializing components. App databases are - *preserved*. -10. Once a BFT majority (i.e., \>⅔) of SVs have initialized their - upgraded nodes, the new version of the synchronizer (with an - incremented migration ID and, typically, a new version of the core - Canton components) becomes operational automatically. The end of the - downtime window is therefore determined by the speed at which a - sufficient number of SVs complete the necessary deployment and - initialization steps. -11. The remaining (Canton and CometBFT) components of the old - synchronizer can be retired now. We recommend to only do so after - (non-super) validators have had sufficient time to - *catch up* to the latest state from before the - pause. - -## Technical Details - -The following section assumes that the SV node on the original -synchronizer was deployed using the instructions in `sv-helm`. - -### State and Migration IDs -Synchronizer upgrades with downtime effectively clone the state of the -existing synchronizer, with some finer points: - -- All *identities* are reused, which includes - all party IDs, all participant, sequencer and mediator (node) - identities, as well as CometBFT node identities. This is realized - through exporting and importing a - *migration dump*. -- Active ledger state is preserved. This is also realized through - exporting and importing a *migration dump*. -- Historical app state in SV, validator and scan (such as transaction - history) is preserved. Note however, that the transaction history - exposed by the participant is not preserved and the participant will - only serve history going forward. This is realized through - persisting and reusing the (PostgreSQL) databases of the SV node - apps (`sv`, `scan`, `validator`). -- The CometBFT blockchain is **not** preserved. The upgraded - synchronizer starts with a fresh CometBFT chain. CometBFT node state - from the existing synchronizer is discarded. - -For avoiding conflicts across migrations, we use the concept of a -migration ID: - -- The migration ID is 0 during the initial bootstrapping of a network - and incremented after each synchronizer upgrade with downtime. -- The SV node apps (`sv`, `scan`, `validator`) are aware of the - migration ID and use it for ensuring the consistency of their - internal stores and avoiding connections to nodes on the "wrong" - synchronizer. -- The SV node Canton components (participant, sequencer, mediator) are - **not** directly aware of the migration ID. To keep Canton - components apart across migrations (new Canton components are needed - to upgrade across non-backwards-compatible changes to the Canton - software), we deploy them with migration ID-specific names and - ingress rules (see `sv-upgrades-deploying-domain`). We furthermore - configure Canton components to create and use migration ID-specific - (PostgreSQL) database names. As part of - `sv-upgrades-deploying-apps`, the SV app will initialize Canton - components based on its configured migration ID. -- The SV node CometBFT component is aware of the migration ID - it is - used for forming the CometBFT chain ID. - -### Migration Dumps -Migration dumps contain identity and transaction data from all of an -SV's Canton components (participant, sequencer, and mediator) connected -to the global synchronizer that is being upgraded. When using the -official Helm charts and following the -*Helm-based deployment documentation*, the migration dump is -automatically created once a scheduled synchronizer upgrade begins and -the existing synchronizer has been paused. As part of the Helm-based -deployment of the SV app (`splice-sv-node`), a persistent Kubernetes -volume is attached to the `sv-app` pod and configured as the target -storage location for migration dumps. When redeploying the SV app as -part of the migration process (see `sv-upgrades-deploying-apps`), the SV -app will automatically consume the migration dump and initialize new -components (see `sv-upgrades-deploying-domain`) based on the contents of -this dump. - -### Deploying new Canton Components and CometBFT Node -Repeat the steps described in `helm-sv-install` for installing the -participant, sequencer, mediator and CometBFT components, substituting -the migration ID (`MIGRATION_ID`) with the target migration ID after the -upgrade (typically the existing synchronizer's migration ID + 1). - -While doing so, please note the following: - -- You don't need to wait for the existing synchronizer to have paused - before performing these steps. Performing them well in advance of - the scheduled downtime can reduce the downtime (s.a. - `sv-upgrades-testing-preparation`). -- Please make sure to pick the correct (incremented) `MIGRATION_ID` - when following the steps. -- Please make sure that all new Helm charts you install as part of - this step have the expected Helm chart version; during an actual - upgrade this version will be different from the one on your existing - deployment. -- Please don't uninstall any Helm charts installed as part of the - original deployment run (with the smaller migration ID). We - deliberately keep SV participants and core synchronizer components - running longer so that validators get a chance to sync up to the - latest state from before the pause, which they need to do for - successfully completing their part of the migration. -- Note that repeating the process with the incremented migration ID - will result in the deployment of new pods with new Canton components - and a new CometBFT node. Among other things, these deployments - differ in k8s-internal host names, which are formed based on the - migration ID. -- We recommend disabling CometBFT - *state sync* while going through a - synchronizer migration, to reduce dependencies on the readiness of - other SVs. To do so, please modify the file - `splice-node/examples/sv-helm/cometbft-values.yaml` so that - `stateSync.enable` is set to `false`. -- Please ensure that your ingress rules are extended accordingly to - accommodate the new pods. Revisit `helm-sv-ingress` with the updated - migration ID in mind. -- Note that the exposed CometBFT port and CometBFT `externalAddress` - are changed due to a limitation in CometBFT. There is no fundamental - need to use the port numbers suggested in the runbook, the only - requirement is that either the (external) host IP of the CometBFT - pod must be different for each migration ID or its (external) port - number. - -### Catching Up Before the Migration -In order for the migration to the new synchronizer to be safe and -successful, it is important that the SV node is fully caught up on the -existing synchronizer before proceeding to `sv-upgrades-deploying-apps`. - -- For making sure that the SV participant has caught up and the - *migration dump* has been created as expected, - operators can check the logs of the `sv-app` pod for the message - `Wrote domain migration dump`. -- For making sure that alls apps - `sv-app`, `scan-app`, and - `validator-app` - have caught up, operators can check the logs of - the respective pods for `Ingested transaction` messages. If the - latest such message for a given app is 10 or more minutes old, that - app has very likely (with a large safety margin) caught up to the - state on the participant, and hence to the state of the existing - (paused) synchronizer. - -### Updating Apps -Repeat the steps described in `helm-sv-install` for installing the `sv`, -`scan` and `validator` components, substituting the migration ID -(`MIGRATION_ID`) with the target migration ID after the upgrade -(typically the existing synchronizer's migration ID + 1). - -While doing so, please note the following: - -- Please make sure to pick the correct (incremented) `MIGRATION_ID` - when following the steps. -- Please modify the file `splice-node/examples/sv-helm/sv-values.yaml` - so that `migration.migrating` is set to `true`. This will ensure - that the SV app will consume the migration dump and initialize new - components based on the contents of this dump. Also set - `migration.legacyId` to the value of migration ID before - incremented. (`MIGRATION_ID` - 1). -- Use `helm upgrade` in place of `helm install` for the `sv`, `scan` - and `validator` charts and do not uninstall any Helm charts - installed as part of the original deployment run (with the smaller - migration ID). -- Please make sure that all Helm chart deployments you upgrade as part - of this step are upgraded to the expected Helm chart version; during - an actual upgrade this version will be different from the one on - your existing deployment. -- No ingress rules need to be updated as part of this step. Once the - redeployment is complete the existing ingress rules will apply to - the updated pods. - -Once you have confirmed that the migration has been successful: - -- Please change the `migration.migrating` value on the `sv` chart back - to `false`. - -### Recovering from a failed upgrade - -In the event of a failed upgrade, Each SV must submit a topology -transaction to resume the old synchronizer. This can be triggered using -the following command: - - - -where \ is an OAuth2 Bearer Token -obtained from your OAuth provider. For context, see the Authentication -section *here*. - -The command will complete successfully once a sufficient number of SVs -have executed it. The old synchronizer will then be un-paused. - -## Organizational Details -### Coordination calls -For keeping upgrade downtimes short and assisting with the quick -resolution of individual issues, we propose to perform upgrades and -*upgrade tests* in a synchronized manner, with -coordination over a group call (Zoom meeting). All SV operators will -hereby be invited to join a call that starts shortly before the -beginning of the downtime window (step 4 above) and ends once the -upgrade and synchronizer migration has concluded (step 10 above). Our -aim is that the core of the upgrade procedure (steps 4-10) can in -principle be completed within one hour, realizing that the first -coordinated tests will likely take longer. - -Each SV must be represented in these calls by at least one person that -is capable of performing the steps described in -`sv-upgrades-deploying-domain` and `sv-upgrades-deploying-apps`. The -operators representing an SV must be: - -- Familiar with the technical details around the SV’s deployment. -- Capable (in terms of both skills and permissions) to interact with - the SV’s node deployment via Helm and (for debugging with support - from the CN team) Kubernetes (kubectl) commands. -- For being able to amend potential errors during - *preparation*: Capable (in terms - of both skills and permissions) to register new ingress rules for - internal synchronizer components (sequencer, mediator and CometBFT) - and SV participants. Resulting addresses will only be relevant to - technical personnel and will follow a schema such as - `component-migrationId.hostname`. Note that for fully supporting the - migration flow for CometBFT nodes, it will also be necessary to - allow communication over additional ports. - -
- -update this with references to the GSF processes, which are now being -used to run these calls - -
- -## Testing -The success of synchronizer upgrades and the duration of downtime both -depend on the effectiveness of all SVs in performing the necessary -upgrading steps. We therefore recommend that the DSO performs -*coordinated tests* before attempting -an upgrade on MainNet. Mirroring the recommended process for an actual -upgrade, we also recommend that SVs perform -*preparation* steps in advance of -every coordinated test. - -### Individual Preparation -The following steps can be performed before the downtime window has -started and even before a synchronizer upgrade has been formally -scheduled: - -1. Ensure that the *backup and restore* process for the SV - works as expected. -2. Deploy a new version of the CometBFT component as per - `sv-upgrades-deploying-domain` (`MIGRATION_ID += 1` compared to the - currently active synchronizer), including setting up the ingress for - this component. Ensure that the pod reports as healthy. For checking - that the ingress rules are set up correctly, ensure that TCP - connections to the new CometBFT port are possible, for example by - using the `nc` command: `nc -vz `. -3. Deploy new versions of the Canton components (participant, - sequencer, mediator) as per `sv-upgrades-deploying-domain` - (`MIGRATION_ID += 1` compared to the currently active synchronizer), - including setting up the ingress for the new sequencer. Note that - these components are only initialized by the SV app once the - synchronizer migration has started. Ensure that all pods report as - healthy. Note that when using `grpcurl` to check that the ingress - rule for the new sequencer is set up correctly (as described in - `helm-sv-ingress`), you will get a `rpc error: code = Unavailable` - error as the sequencer is not yet initialized (and its public gRPC - endpoint is therefore not yet available). If the rpc error details - include a `delayed connect error: 111` message, this is an indicator - that the ingress rule is set up correctly. - -We recommend that all SVs perform these steps before a -*coordinated test* starts and signal -their readiness once they have done so. - -### Coordinated Tests -Coordinated tests mirror the steps that will later be used for upgrading -MainNet (see *above*). Specifically, coordinated -tests involve: - -- Scheduling a *group call* covering the - planned synchronizer downtime. -- Pausing the global synchronizer via a governance vote. -- Each SV making sure that all of its node's components have caught up - to the final state of the existing synchronizer - see - `sv-upgrades-catching-up`. -- Creating full backups of SV nodes after they have fully caught up - and the synchronizer has been paused. -- Performing all remaining deployment steps necessary for a successful - migration to the new synchronizer. If - `sv-upgrades-testing-preparation` was followed, this involves only - the steps outlined in `sv-upgrades-deploying-apps`. It is fully - supported that SVs perform these deployment steps concurrently after - the synchronizer has been paused. -- Each SV verifying that its local state is consistent with the state - of the global synchronizer before the pause. For example, verifying - that their own coin balance is as expected. -- Once all SVs (or a governance threshold of SVs) have completed the - migration: Collectively verifying that the new synchronizer is - healthy and operational. Synchronizer health can be inferred from - monitoring signals such as timely `SV Status Reports` from all SVs. -- Agreeing on a timeline for decommissioning the Canton and CometBFT - nodes connected to the original (pre-migration) synchronizer. -- Before we decommission the Canton and CometBFT nodes connected to - the original (pre-migration) synchronizer, we should remove - `migration.legacyId` we have set previously in the file - `splice-node/examples/sv-helm/sv-values.yaml`. - -We recommend to perform at least one coordinated test on TestNet, with -the exact same configuration and versions that will be used for the -upgrade on MainNet, before scheduling a MainNet upgrade with downtime. - -## Cleanup in the event of failure -In rare occasions, where the upgrade is not successful but the apps -manage to start ingesting from the new migration id, the apps' databases -might contain data of the failed migration id that should be removed. To -check whether any such data has been stored, you can query all of the -apps' databases (that is: validator, scan and sv apps) with the -following query: - - - -Replace the migration_id parameter with the migration_id for which the -upgrade procedure just failed. - -If no rows are returned by the query in any of the apps' databases, that -means that nothing was ingested and thus the app databases do not -contain any invalid data. - -If a row is returned, that means that data was ingested that should be -purged. The easiest way is to restore the backup that was taken as part -of the upgrade process (as per `sv_backups`) for the validator, scan and -SV apps and drop the databases of the failed migration id for sequencer, -mediator and participant. - -{/* COPIED_END */} diff --git a/docs-main/global-synchronizer/production-operations/sv-pruning.mdx b/docs-main/global-synchronizer/production-operations/sv-pruning.mdx index a82d5e228..4193efab7 100644 --- a/docs-main/global-synchronizer/production-operations/sv-pruning.mdx +++ b/docs-main/global-synchronizer/production-operations/sv-pruning.mdx @@ -3,6 +3,11 @@ title: "SV Pruning" description: "Sequencer and CometBFT pruning on Super Validator nodes" --- +import ExternalSpliceMainSpliceRstCodeDocsSrcSvOperatorSvPruningYaml62 from "/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-pruning-yaml-62.mdx"; +import ExternalSpliceMainSpliceRstLiteralMarkerAppsAppSrcPackExamplesSvHelmSvValuesDocsPruningStart from "/snippets/external/splice/main/splice-literal-marker-apps-app-src-pack-examples-sv-helm-sv-values-docs-pruning-start.mdx"; +import ExternalSpliceMainSpliceRstLiteralMarkerClusterHelmSpliceCometbftValuesTemplateDocsCometbftPruningStart from "/snippets/external/splice/main/splice-literal-marker-cluster-helm-splice-cometbft-values-template-docs-cometbft-pruning-start.mdx"; +import ExternalSpliceMainSpliceRstLiteralMarkerAppsAppSrcPackExamplesSvHelmSvValidatorValuesSvParticipantPruningScheduleStart from "/snippets/external/splice/main/splice-literal-marker-apps-app-src-pack-examples-sv-helm-sv-validator-values-sv-participant-pruning-schedule-start.mdx"; + {/* COPIED_START source="splice:docs/src/sv_operator/sv_pruning.rst" hash="07e081c3" */} The sequencer, participant and CometBFT have pruning options that can be used to ensure storage use is kept within reasonable bounds. @@ -11,17 +16,7 @@ The sequencer, participant and CometBFT have pruning options that can be used to Can be enabled in helm through the following config: -```yaml -synchronizers: - current: - sequencerPruningConfig: - # Enable or disable sequencer pruning - enabled: true - # The pruning interval is the time between two consecutive prunings. - pruningInterval: "1 hour" - # The retention period is the time for which the sequencer will retain the data. - retentionPeriod: "30 days" -``` + It is recommended that sequencer pruning is enabled and the `pruningInterval` is set to `1 hour` and the `retentionPeriod` to `30 days`. @@ -33,31 +28,17 @@ It is enabled by default. Pruning is defined as the number of blocks to keep. Ol The number of blocks to keep can be configured under the `node` helm values key. -```yaml -# Number of blocks to keep, used for pruning. 0 -> keep all blocks. -# Number of blocks to keep for 30 days with an upper bound of 7k blocks/h. -retainBlocks: 5040000 -``` + ## Participant pruning Participant pruning is also supported and recommend. To enable it, set the following helm value on your validator chart: -```yaml -participantPruningSchedule: - cron: 0 /10 * * * ? # Run every 10min - maxDuration: 5m # Run for a max of 5min per iteration - retention: 30d # Retain history that is newer than 30d. -``` + You also need to tell the participant to continue pruning even if it has not received an ACS commitment from one of its counter participant in the last 30 days. Without this pruning will essentially never run on mainnet as validators get shut down relatively frequently: To do so, set the following through the `additionalEnvVars` on your participant: -```yaml -additionalEnvVars: - - name: ADDITIONAL_CONFIG_PRUNING_ACS_COMMITMENTS - value: | - canton.participants.participant.parameters.stores.safe-to-prune-commitment-state = "all" -``` + {/* COPIED_END */} \ No newline at end of file diff --git a/docs-main/global-synchronizer/production-operations/sv-security.mdx b/docs-main/global-synchronizer/production-operations/sv-security.mdx index 80b007305..b44dece32 100644 --- a/docs-main/global-synchronizer/production-operations/sv-security.mdx +++ b/docs-main/global-synchronizer/production-operations/sv-security.mdx @@ -10,6 +10,9 @@ import KmsMigrationContext from "/snippets/external/splice/main/common/kms-migra import KmsConfigGeneral from "/snippets/external/splice/main/common/kms-config-general.mdx"; import KmsConfigGcp from "/snippets/external/splice/main/common/kms-config-gcp.mdx"; import KmsConfigAws from "/snippets/external/splice/main/common/kms-config-aws.mdx"; +import ExternalSpliceMainSpliceRstCodeDocsSrcSvOperatorSvSecurityBash110 from "/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-security-bash-110.mdx"; +import ExternalSpliceMainSpliceRstCodeDocsSrcSvOperatorSvSecurityJson94 from "/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-security-json-94.mdx"; +import ExternalSpliceMainSpliceRstCodeDocsSrcSvOperatorSvSecurityBash73 from "/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-security-bash-73.mdx"; {/* COPIED_START source="splice:docs/src/sv_operator/sv_security.rst" hash="ae70b7be" */} @@ -54,32 +57,11 @@ This involves the following steps: Use the following shell commands to generate a keypair in the expected format: -```bash -# Generate the private key -openssl genpkey -algorithm ed25519 -out cometbft-governance-keys.pem - -# Extract and encode the keys -public_key_base64=$(openssl pkey -in cometbft-governance-keys.pem -pubout -outform DER | tail -c 32 | base64 | tr -d "\n") -private_key_base64=$(openssl pkey -in cometbft-governance-keys.pem -outform DER | tail -c 32 | base64 | tr -d "\n") - -echo "{" -# Output the keys -echo " \"publicKey\": \"$public_key_base64\"," -echo " \"privateKey\": \"$private_key_base64\"" -echo "}" - -# Clean up -rm cometbft-governance-keys.pem -``` + These commands should result in an output similar to: -```json -{ - "public": "A9tWyYq/HIJ3B73ym1eIUV8yqnDBligGJUE8463CBUM=", - "private": "FDG16PaSh9hGLu2fXzEHmTECMjSyQuZnEg+w5HKCEtg=" -} -``` + Save this output to a file, e.g., `cometbft-governance-keys.json`. @@ -89,11 +71,7 @@ You inject the externally generated CometBFT governance key into the SV app via Assuming that your SV deployment resides in the `sv` namespace, use the following command to create the secret from the JSON file generated above: -```bash -kubectl create secret --namespace sv generic splice-app-sv-cometbft-governance-key \ - --from-literal=publicKey="$(jq -r .public cometbft-governance-keys.json)" \ - --from-literal=privateKey="$(jq -r .private cometbft-governance-keys.json)" -``` + To instruct the SV app to use the externally managed CometBFT governance key instead of generating a fresh one itself, set the `cometBFT.externalGovernanceKey` value in the `splice-sv-node` Helm chart to `true`. (You can comment out the respective line in `splice-node/examples/sv-helm/sv-values.yaml`.) diff --git a/docs-main/global-synchronizer/production-operations/validator-disaster-recovery.mdx b/docs-main/global-synchronizer/production-operations/validator-disaster-recovery.mdx index cd6dd4d67..6f1d50455 100644 --- a/docs-main/global-synchronizer/production-operations/validator-disaster-recovery.mdx +++ b/docs-main/global-synchronizer/production-operations/validator-disaster-recovery.mdx @@ -4,8 +4,14 @@ description: "Disaster recovery and restore procedures for validator nodes" --- import ExternalSpliceMainSpliceRstCodeDocsSrcValidatorOperatorValidatorDisasterRecoveryBash137 from "/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-bash-137.mdx"; -import ExternalSpliceMainSpliceRstCodeDocsSrcValidatorOperatorValidatorDisasterRecoveryNone230 from "/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-none-230.mdx"; -import ExternalSpliceMainSpliceRstCodeDocsSrcValidatorOperatorValidatorDisasterRecoveryNone250 from "/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-none-250.mdx"; +import ExternalSpliceMainSpliceRstLiteralMarkerAppsAppSrcPackExamplesSvHelmStandaloneValidatorValuesParticipantBootstrapMigrateToNewParticipantStart from "/snippets/external/splice/main/splice-literal-marker-apps-app-src-pack-examples-sv-helm-standalone-validator-values-participant-bootstrap-migrate-to-new-participant-start.mdx"; +import ExternalSpliceMainSpliceRstCodeDocsSrcValidatorOperatorValidatorDisasterRecoveryYaml185 from "/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-yaml-185.mdx"; +import ExternalSpliceMainSpliceRstLiteralFullAppsAppSrcPackExamplesRecoveryManualIdentitiesDump from "/snippets/external/splice/main/splice-literal-full-apps-app-src-pack-examples-recovery-manual-identities-dump.mdx"; +import ExternalSpliceMainSpliceRstCodeDocsSrcValidatorOperatorValidatorDisasterRecoveryNone240 from "/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-none-240.mdx"; +import ExternalSpliceMainSpliceRstCodeDocsSrcValidatorOperatorValidatorDisasterRecoveryNone248 from "/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-none-248.mdx"; +import ExternalSpliceMainSpliceRstCodeDocsSrcValidatorOperatorValidatorDisasterRecoveryNone260 from "/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-none-260.mdx"; +import ExternalSpliceMainSpliceRstCodeDocsSrcValidatorOperatorValidatorDisasterRecoveryNone299 from "/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-none-299.mdx"; +import ExternalSpliceMainSpliceRstCodeDocsSrcValidatorOperatorValidatorDisasterRecoveryNone314 from "/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-none-314.mdx"; import ExternalSpliceMainSpliceRstCodeDocsSrcValidatorOperatorValidatorDisasterRecoveryNone264 from "/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-none-264.mdx"; import ExternalSpliceMainSpliceRstCodeDocsSrcValidatorOperatorValidatorDisasterRecoveryNone309 from "/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-none-309.mdx"; import ExternalSpliceMainSpliceRstCodeDocsSrcValidatorOperatorValidatorDisasterRecoveryNone351 from "/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-none-351.mdx"; @@ -14,6 +20,9 @@ import ExternalSpliceMainSpliceRstCodeDocsSrcValidatorOperatorValidatorDisasterR import { NetworkVariables } from '/snippets/components/version.mdx'; import { networkData } from '/snippets/generated/version-dashboard-data.mdx'; +import ExternalSpliceMainSpliceRstCodeDocsSrcValidatorOperatorValidatorDisasterRecoveryNone485 from "/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-none-485.mdx"; +import ExternalSpliceMainSpliceRstCodeDocsSrcValidatorOperatorValidatorDisasterRecoveryParsedLiteral443 from "/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-parsed-literal-443.mdx"; +import ExternalSpliceMainSpliceRstCodeDocsSrcValidatorOperatorValidatorDisasterRecoveryParsedLiteral268 from "/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-parsed-literal-268.mdx"; {/* COPIED_START source="splice:docs/src/validator_operator/validator_disaster_recovery.rst" hash="48572fc5" */} @@ -85,13 +94,7 @@ To re-onboard a validator in a Kubernetes deployment and recover the balances of - Uncomment the following lines in the `standalone-validator-values.yaml` file. This will specify a new participant ID for the validator. Replace `put-some-new-string-never-used-before` with a string that was never used before. Make sure to also adjust `nodeIdentifier` to match the same value. -```yaml -# participantIdentitiesDumpImport: -# secretName: participant-bootstrap-dump -# # Make sure to also adjust nodeIdentifier to the same value -# newParticipantIdentifier: put-some-new-string-never-used-before -# migrateValidatorParty: true -``` + ### Docker-Compose Deployment @@ -113,35 +116,13 @@ In case you do not have a usable identities backup but instead have a backup of - You only need to restore and scale up the participant, i.e., you can ignore the validator app and its database. - In case the restored participant shuts down immediately due to failures, add the following additional configuration: - > ```yaml - > additionalEnvVars: - > - name: ADDITIONAL_CONFIG_EXIT_ON_FATAL_FAILURES - > value: canton.parameters.exit-on-fatal-failures = false - > ``` + 2. Open a Canton console to the temporary participant. 3. Run below commands in the opened console. This will store the backup into a *local* file (relative to the local directory from which you opened the console) called `identities-dump.json`. - > ``` text - > import com.digitalasset.canton.topology.transaction.TopologyMapping - > import com.digitalasset.canton.topology.store.TimeQuery - > import java.util.Base64 - > - > val id = participant.id.toProtoPrimitive - > - > // This line needs to be adapted if your participant stores keys in an external KMS - > val keys = "[" + participant.keys.secret.list().filter(k => k.name.get.unwrap != "cometbft-governance-keys").map(key => s"{\"keyPair\": \"${Base64.getEncoder.encodeToString(participant.keys.secret.download(key.publicKey.fingerprint).toByteArray)}\", \"name\": \"${key.name.get.unwrap}\"}") .mkString(",") + "]" - > - > val authorizedStoreSnapshot = Base64.getEncoder.encodeToString(participant.topology.transactions.export_topology_snapshot(timeQuery = TimeQuery.Range(from = None, until = None), filterMappings = Seq(TopologyMapping.Code.NamespaceDelegation, TopologyMapping.Code.OwnerToKeyMapping, TopologyMapping.Code.VettedPackages), filterNamespace = participant.id.namespace.toProtoPrimitive).toByteArray) - > - > val combinedJson = s"""{ "id" : "$id", "keys" : $keys, "authorizedStoreSnapshot" : "$authorizedStoreSnapshot" }""" - > - > // Write to file - > import java.nio.file.{Files, Paths} - > val dumpPath = Paths.get("identities-dump.json") - > Files.writeString(dumpPath, combinedJson) - > ``` + Note that above commands need to be adapted if your participant is configured to store keys in an external KMS. @@ -166,14 +147,11 @@ If you still observe issues, in particular you observe `ACS_COMMITMENT_MISMATCH` 1. First make sure all parties are hosted on the same node. The most common case is that either the parties are still on the old node with the old participant ID or they have been migrated to the new node. You can check by opening a Canton console to any participant on the network (i.e., you can also ask another validator or SV operator for this information) and running the following query where \ is the part after the `::` in, for example, your validator party ID. - + If all parties are on the same node, proceed to the next step. If some are on the old node and some are on the new node, migrate the ones on the old node to the new node by opening a console to the new node and running the following command (adjust the parameters as required for your parties): - ``` - val participantId = participant.id // ID of the new participant - participant.topology.party_to_participant_mappings.propose(<party-id>, Seq((participantId, <participant-permission>)), store = syncId) - ``` + 2. If all parties are on the new node already, you can attempt to (re-)import the ACS for those parties manually. The following steps concern your new validator node: @@ -183,15 +161,13 @@ If you still observe issues, in particular you observe `ACS_COMMITMENT_MISMATCH` 3. From the Canton console, run: - + 4. For each `PARTY_ID` you want to migrate / re-import the ACS for: Run from a regular shell (same working directory like the one you started your Canton console from): - ```bash - curl -sSL --fail-with-body '|gsf_scan_url|/api/scan/v0/acs/YOUR_PARTY_ID' -H 'Content-Type: application/json' | jq -r .acs_snapshot | base64 -d > acs_snapshot - ``` + From the Canton console: @@ -209,10 +185,7 @@ If you still observe issues, in particular you observe `ACS_COMMITMENT_MISMATCH` In rare cases, the re-onboarding process may fail at the `ImportTopologySnapshot` step because an `OwnerToKeyMapping` for the old participant ID has an insufficient number of signatures in the topology snapshot. This only affects validators that were originally onboarded on Splice 0.4.1 or earlier, which used a Canton version that did not require the mapped keys to co-sign `OwnerToKeyMapping` transactions. You can identify this issue by looking for the following messages in your participant logs: -``` -Missing authorizers: ReferencedAuthorizations(extraKeys = <key-id>...) -Rejected transaction ... OwnerToKeyMapping(...) ... due to Not authorized -``` + To work around this, follow these steps: @@ -220,14 +193,7 @@ To work around this, follow these steps: 2. Open a Canton console to the new participant and run the following commands to propose the corrected `OwnerToKeyMapping`. Replace the key ID prefixes with those from the rejected `OwnerToKeyMapping` in your participant logs, and replace the old participant ID with your actual old participant ID: - ``` - val keys = Seq("<signing-key-id-prefix>", "<encryption-key-id-prefix>").map(prefix => - participant.keys.public.list().filter(_.publicKey.id.toProtoPrimitive.startsWith(prefix)).head.publicKey) - - val oldParticipantId = ParticipantId.fromProtoPrimitive("<old-participant-id>", "participant").toOption.get - val otk = OwnerToKeyMapping(member = oldParticipantId, keys = NonEmpty.from(keys).get) - participant.topology.owner_to_key_mappings.propose(otk, force = ForceFlag.AlienMember) - ``` + 3. Start the validator app using your original identities dump configuration. @@ -267,10 +233,7 @@ In this example, the validFrom time is `2025-05-14T10:19:33.534074Z`. We can now query CC Scan to get the active contract set (ACS) for a party and write it to the file `acs_snapshot`: -```bash -// Make sure to adjust YOUR_VALID_FROM to the time you got from the previous query and YOUR_PARY_ID -curl -sSL --fail-with-body '|gsf_scan_url|/api/scan/v0/acs/YOUR_PARTY_ID?record_time=YOUR_VALID_FROM' -H 'Content-Type: application/json' | jq -r .acs_snapshot | base64 -d > acs_snapshot -``` + Lastly, we can import the ACS: @@ -289,15 +252,7 @@ Validators then need to: 1. Wait for their node to finish catching up to the latest transaction on the existing synchronizer. A good indicator for that is that you don't see any new logs containing `Processing event at` in your participant INFO logs. 2. Initiate the roll forward LSU through a Canton console: -``` -val existingPhysicalSynchronizerId = participant.synchronizers.list_connected().find(_.synchronizerAlias == "global").head.physicalSynchronizerId -participant.synchronizers.perform_manual_lsu( - existingPhysicalSynchronizerId, - newPhysicalSynchronizerId, - upgradeTime = None, - sequencerSuccessors, -) -``` + ### Resolving ACS mismatches diff --git a/docs-main/global-synchronizer/production-operations/validator-major-upgrade.mdx b/docs-main/global-synchronizer/production-operations/validator-major-upgrade.mdx deleted file mode 100644 index d97803625..000000000 --- a/docs-main/global-synchronizer/production-operations/validator-major-upgrade.mdx +++ /dev/null @@ -1,332 +0,0 @@ ---- -title: "Validator Major Upgrades" -description: "Detailed procedure for validator operators when the Global Synchronizer undergoes a major (downtime) upgrade." ---- - -import ExternalSpliceMainSpliceRstCodeDocsSrcValidatorOperatorValidatorMajorUpgradesBash182 from "/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-major-upgrades-bash-182.mdx"; -import ExternalSpliceMainSpliceRstCodeDocsSrcValidatorOperatorValidatorMajorUpgradesSql237 from "/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-major-upgrades-sql-237.mdx"; - -{/* COPIED_START source="splice:docs/src/validator_operator/validator_major_upgrades.rst" hash="794a1313" */} - -To consume non-backwards-compatible major version upgrades of the Canton -software the Global Synchronizer uses, you need to follow the procedure -for synchronizer (i.e., domain) upgrades with downtime described below. - -## Overview -This overview is trimmed to what is most relevant for the operators of -regular (non-super) validators. For a more comprehensive overview, -please refer to the -*documentation for SV operators*. - -1. Canton releases containing breaking changes become available and - Splice releases compatible with these Canton releases become - available. -2. SVs agree and eventually confirm via an on-ledger vote on which - specific date and time the network downtime necessary for the - upgrade will start. Information about the downtime window is - communicated to validators. -3. At the start of the downtime window, the SVs automatically pause all - traffic on the operating version of the global synchronizer. -4. Shortly after traffic on the global synchronizer has been paused - (there is a short delay to ensure that all components have synced up - to the final state of the existing synchronizer), the validator node - software automatically exports so-called migration dumps. In a - Kubernetes deployment, this dump is saved to attached Kubernetes - volumes. In Docker-compose deployments, the dump is saved to a - docker volume. See `validator-upgrades-dumps`. -5. Validator operators verify that their nodes have caught up to the - now-paused global synchronizer. See - `validator-upgrades-catching-up`. -6. All SVs and validators previously using the now-paused global - synchronizer create full backups of their nodes. (Both for disaster - recovery and for supporting audit requirements). See - `validator-backups`. -7. Validators wait until the SVs signal that the migration has been - successful. -8. All validators upgrade theirs deployments. See - `validator-upgrades-deploying`. -9. Upon (re-)initialization, the validator backend automatically - consumes the migration dump and initializes the new validator - participant based on the contents of this dump. App databases are - *preserved*. - -
- -
- -Note - -
- -This process creates a new synchronizer instance. Because -`synchronizer traffic balances ` are tracked per synchronizer -instance this implies that all validator traffic balances start at zero -on this new instance. The remaining traffic on the old synchronizer -instance cannot be used anymore once that instance is shut down, -effectively resulting in a loss of that balance. - -**Validator operators are thus strongly encouraged to purchase traffic -on a pay-as-you-go basis** in small enough increments such that the cost -of the remaining traffic balance lost due to a synchronizer upgrade with -downtime is well acceptable and easily amortized across the activity of -the validator node on the old synchronizer instance. - -
- -## Technical Details - -The following section assumes that the validator node connected to the -original synchronizer has already been deployed. - -### State and Migration IDs -Synchronizer upgrades with downtime effectively clone the state of the -existing synchronizer, with some finer points: - -- All *identities* are reused, which includes - all party IDs and participant identities. This is realized through - exporting and importing a - *migration dump*. -- Active ledger state is preserved. This is realized through exporting - and importing a *migration dump*. -- Historical app state in the validator app (such as transaction - history) is preserved. This is realized through persisting and - reusing the (PostgreSQL) database of the validator app. The - transaction history exposed by *the participant*, however, is *not* - preserved and the participant will only serve history going forward. - See also `validator-upgrades-apps`. - -For avoiding conflicts across migrations, we use the concept of a -migration ID: - -- The migration ID is 0 during the initial bootstrapping of a network - and incremented after each synchronizer upgrade with downtime. -- The validator app is aware of the migration ID and uses it for - ensuring the consistency of its internal stores and avoiding - connections to nodes on the "wrong" synchronizer. -- The validator Canton participant is **not** directly aware of the - migration ID. As part of `validator-upgrades-deploying`, you will - configure the participant to use a fresh (empty) database. The - validator app will initialize the participant from a clean slate - based on the migration ID configured in the validator app. A fresh - participant is needed in order to upgrade across - non-backwards-compatible changes to the Canton software. - -### Implications for Apps and Integrations -This guide focuses on the steps necessary for upgrading the validator -node itself. Additional considerations may apply for ensuring that -custom applications and integrations remain functional and consistent -across major upgrades. As a consequence of `validator-upgrades-state`, -additional considerations may include the following: - -- A major upgrade only preserves the active contracts but not the - update history inside the participant. In particular, you will not - be able to get transactions from before the major upgrade on the - update service on the Ledger API of the newly deployed validator - node. -- Participant offsets on the upgraded validator node start from `0` - again. -- The update history will include special import transactions for the - contracts imported from the old synchronizer. They all have record - time `0001-01-01T00:00:00.000000Z`, and represent the creation of - the imported contracts. - -For a representative example runbook covering the migration of a -specific integration use-case, see the [Rolling out Major Splice -Upgrades](/integrations/exchanges/node-operations#rolling-out-major-splice-upgrades) -section of the [Validator Node Operations](/integrations/exchanges/node-operations) -guide. - -### Migration Dumps -Migration dumps contain identity and transaction data from the validator -participant. The migration dump is automatically created once a -scheduled synchronizer upgrade begins and the existing synchronizer has -been paused. When redeploying the validator app as part of the migration -process (see `validator-upgrades-deploying`), the validator app will -automatically consume the migration dump and initialize the participant -based on the contents of this dump. - -For Kubernetes deployments deployed using the official Helm charts and -following the *Helm-based deployment documentation*, a -persistent Kubernetes volume is attached to the `validator-app` pod and -configured as the target storage location for migration dumps. - -Similarly, for Docker-compose deployments, a docker volume is created, -mounted to the `validator-app` container, and is configured as the -target storage location for migration dumps. - -### Catching Up Before the Migration -In order for the migration to the new synchronizer to be safe and -successful, it is important that the validator node is fully caught up -on the existing synchronizer before proceeding to -`validator-upgrades-deploying`. - -- To ensure that the validator participant has caught up and the - *migration dump* has been created as - expected, operators can check the logs of the `validator-app` pod - for `Wrote domain migration dump` messages. If you can't find it, - you can alternatively go inside the container and check if it has - the migration dump with the expected date: - `kubectl exec -it -- bash; ls -lha /domain-upgrade-dump`. -- To ensure that the validator app has caught up, operators can check - the logs of the `validator-app` pod for the message - `Ingested transaction`. If the latest such message is 10 or more - minutes old, the validator app has very likely (with a large safety - margin) caught up to the state on the participant, and hence to the - state of the existing (paused) synchronizer. -- Note that the sequencers of the existing (old) synchronizer will be - kept available by SVs for a limited time after the migration to the - new synchronizer has been completed. Once they are shut down, the - validator will not be able to catch up anymore. You should therefore - ensure that your node is caught up and migrated to the new - synchronizer in a timely manner after the migration. - -### Deploying the Validator App and Participant -#### Deploying the Validator App and Participant (Kubernetes) - -This section refers to validators that have been deployed in Kubernetes -using the instructions in `k8s_validator`. - -Once you confirmed that your validator is caught up, as explained above, -confirm that a migration dump has been created by searching the logs of -the `validator-app` pod for `Wrote domain migration dump` messages. - -Repeat the steps described in `helm-validator-install` for installing -the validator app and participant, substituting the migration ID -(`MIGRATION_ID`) with the target migration ID after the upgrade -(typically the existing synchronizer's migration ID + 1). - -While doing so, please note the following: - -- Please make sure to pick the correct (incremented) `MIGRATION_ID` - when following the steps. Notably, by consistently following through - on updating the `MIGRATION_ID`, you should (re-)deploy your - participant so that is uses a fresh (empty) database. (In case your - database setup requires you to create databases manually, for - example because you want to limit the permissions of the database - user used by the participant deployment, please ensure that you have - created the new database as per the updated - `.persistence.databaseName` value on the participant chart.) -- Please modify the file - `splice-node/examples/sv-helm/standalone-validator-values.yaml` so - that `migration.migrating` is set to `true`. This will ensure that - the validator app will consume the migration dump and initialize the - participant based on the contents of this dump. -- You do not need to redeploy the `postgres` release. The updated - Canton participant will use a new database on the PostgreSQL - instance, whereas the validator app will reuse the existing state - (see `validator-upgrades-state`). -- Use `helm upgrade` in place of `helm install` for the `validator` - chart. -- Please make sure that Helm chart deployments are upgraded to the - expected Helm chart version; during an actual upgrade this version - will be different from the one on your existing deployment. - -See `validator_health` for pointers on determining the status of your -validator after the migration. In case of issues, check your logs for -warnings and errors and consult `validator-migration-troubleshooting` -below. - -Once you have confirmed that the migration has been successful: - -- Change the `migration.migrating` value on the `validator` chart back - to `false` (**keep** the incremented `MIGRATION_ID`!) and perform - another `helm upgrade`. -- The old participant database (usually - `participant_`) is no longer used and can be - pruned. We recommend retaining it (or a current backup thereof) for - at least another week after the migration, in case the synchronizer - migration needs to be rolled back due to an unexpected major issue. - -#### Deploying the validator App and Participant (Docker-Compose) - -This section refers to validators that have been deployed in -Docker-Compose using the instructions in `compose_validator`. - -Once you confirmed that your validator is caught up, as explained above, -confirm that a migration dump has been created using: - - - -(For general reading about docker compose log retention and rotation, -see these [Docker -docs](https://docs.docker.com/engine/logging/configure/)). - -If the migration dump has been created, proceed with the following -steps: - -- Stop the validator, using `./stop.sh`. -- In case of an actual version upgrade (not just a test migration), - upgrade your validator to the target version by updating the bundle - and adjusting the `IMAGE_TAG` as you would during a - *minor upgrade*. -- Restart the validator, while updating the migration ID in the - `-m ` argument, and also including `-M` to instruct - the validator to perform the actual migration to the new migration - ID. - -See `validator_health` for pointers on determining the status of your -validator after the migration. In case of issues, check your logs for -warnings and errors and consult `validator-migration-troubleshooting` -below. - -Once you have confirmed that the migration has been successful: - -- Restart the validator app once more, keeping the `-m ` - but omitting the `-M`. The `-M` is required only for the first - startup after the migration, to instruct the validator to perform - the actual migration. -- The old participant database (`participant=-`) is - no longer used and can be pruned. We recommend retaining it (or a - current backup thereof) for at least another week after the - migration, in case the synchronizer migration needs to be rolled - back due to an unexpected major issue. - -## Troubleshooting -### Common errors - -If any of the steps above fail, double check the following: - -- The expected versions were deployed, both *before* the migration and - *after* the migration. -- In case that you don't see the `Wrote domain migration dump` message - in the logs of the validator app despite confirming that your are on - the expected version before the migration, your validator might - already have taken a dump at an earlier time. You can inspect the - contents of the `domain-migration-validator-pvc` PVC (Helm) or - `domain-upgrade-dump` volume (compose). In case a - `domain_migration_dump.json` exists there and you are unsure about - the circumstances of its creation, it is recommended to remove it - and restart the validator app (on the older version and migration - ID) to trigger the creation of a fresh dump. -- The Canton participant (re-)deployed as part of the upgrade uses a - fresh (empty) database. By correctly setting the migration ID while - following the deployment steps above, this should be the case. -- The correct (incremented) `MIGRATION_ID` has been set *after* the - upgrade. -- If you get an error like - `Migration ID was incremented (to 1) but no migration dump for restoring from was specified.` - you are missing the `migrating: true` flag (for Helm) or `-M` - argument (for Docker compose). - -### Cleaning up the validator app database in the event of a failed upgrade -In rare occasions, where the upgrade is not successful but the validator -app manages to start ingesting from the new migration id, the app's -database might contain data of the failed migration id that should be -removed. To check whether any such data has been stored, you can query -your validator app's database with the following query: - - - -Replace the migration_id parameter with the migration_id for which the -upgrade procedure just failed. - -If no rows are returned by the query, that means that nothing was -ingested and thus the app's database does not contain any invalid data. - -If a row is returned, that means that data was ingested that should be -purged. The easiest way is to restore the backup that was taken as part -of the upgrade process (as per `validator-backups`) for the validator -app and drop the database of the failed migration id for the -participant. - -{/* COPIED_END */} diff --git a/docs-main/global-synchronizer/reference/canton-console-reference.mdx b/docs-main/global-synchronizer/reference/canton-console-reference.mdx index 0c1614e65..3708b71a7 100644 --- a/docs-main/global-synchronizer/reference/canton-console-reference.mdx +++ b/docs-main/global-synchronizer/reference/canton-console-reference.mdx @@ -9,6 +9,11 @@ import ExternalSpliceMainSpliceRstCodeDocsSrcDeploymentConsoleAccessBash174 from import { NetworkVariables } from '/snippets/components/version.mdx'; import { networkData } from '/snippets/generated/version-dashboard-data.mdx'; +import ExternalSpliceMainSpliceRstCodeDocsSrcDeploymentConsoleAccessNone136 from "/snippets/external/splice/main/splice-rst-code-docs-src-deployment-console-access-none-136.mdx"; +import ExternalSpliceMainSpliceRstCodeDocsSrcDeploymentConsoleAccessNone104 from "/snippets/external/splice/main/splice-rst-code-docs-src-deployment-console-access-none-104.mdx"; +import ExternalSpliceMainSpliceRstCodeDocsSrcDeploymentConsoleAccessParsedLiteral94 from "/snippets/external/splice/main/splice-rst-code-docs-src-deployment-console-access-parsed-literal-94.mdx"; +import ExternalSpliceMainSpliceRstCodeDocsSrcDeploymentConsoleAccessNone71 from "/snippets/external/splice/main/splice-rst-code-docs-src-deployment-console-access-none-71.mdx"; +import ExternalSpliceMainSpliceRstCodeDocsSrcDeploymentConsoleAccessParsedLiteral63 from "/snippets/external/splice/main/splice-rst-code-docs-src-deployment-console-access-parsed-literal-63.mdx"; {/* COPIED_START source="splice:docs/src/deployment/console_access.rst" hash="bccf3653" */} @@ -45,9 +50,7 @@ Welcome to Canton! -```bash -docker run -it --rm --network host -v $(pwd)/console.conf:/app/app.conf |docker_repo_prefix|/canton:|version_literal| --console -``` + @@ -55,34 +58,13 @@ docker run -it --rm --network host -v $(pwd)/console.conf:/app/app.conf |docker_ If you run the participant using the docker compose setup the docker command must be run with the docker network used by the participant. Adjust the configuration to connect to the participant container: -```text -canton { - remote-participants { - participant { - admin-api { - port = 5002 - address = participant - } - ledger-api { - port = 5001 - address = participant - } - token = "" - } - } - features.enable-preview-commands = yes - features.enable-testing-commands = yes - features.enable-repair-commands = yes -} -``` + Running docker with the default network (`splice-validator`): -```bash -docker run -it --rm --network splice-validator -v $(pwd)/console.conf:/app/app.conf |docker_repo_prefix|/canton:|version_literal| --console -``` + @@ -94,31 +76,11 @@ docker run -it --rm --network splice-validator -v $(pwd)/console.conf:/app/app.c 2. Add the configuration to a local file `console.conf` -``` -canton { - remote-sequencers { - sequencer { - public-api { - port = 5008 - address = localhost - } - admin-api { - port = 5009 - address = localhost - } - } - } - features.enable-preview-commands = yes - features.enable-testing-commands = yes - features.enable-repair-commands = yes -} -``` + 3. Run the docker command -```bash -docker run -it --rm --network host -v $(pwd)/console.conf:/app/app.conf |docker_repo_prefix|/canton:|version_literal| --console -``` + @@ -130,27 +92,11 @@ docker run -it --rm --network host -v $(pwd)/console.conf:/app/app.conf |docker_ 2. Add the configuration to a local file `console.conf` -``` -canton { - remote-mediators { - mediator { - admin-api { - port = 5007 - address = localhost - } - } - } - features.enable-preview-commands = yes - features.enable-testing-commands = yes - features.enable-repair-commands = yes -} -``` + 3. Run the docker command -```bash -docker run -it --rm --network host -v $(pwd)/console.conf:/app/app.conf |docker_repo_prefix|/canton:|version_literal| --console -``` + diff --git a/docs-main/global-synchronizer/reference/splice-metrics.mdx b/docs-main/global-synchronizer/reference/splice-metrics.mdx deleted file mode 100644 index 860713307..000000000 --- a/docs-main/global-synchronizer/reference/splice-metrics.mdx +++ /dev/null @@ -1,353 +0,0 @@ ---- -title: "Splice Metrics Reference" -description: "Reference for Canton Network application metrics (Common, Validator, SV, and Scan) exposed by Splice apps." ---- - -{/* COPIED_START source="splice:docs/src/deployment/observability/metrics_reference.rst" hash="bde3c37a" */} - -## Common Metrics -### splice.domain_params_store.confirmation-requests-max-rate - -- **Summary**: - DynamicSynchronizerParameters.confirmationRequestsMaxRate -- **Description**: Last known value of - DynamicSynchronizerParameters.confirmationRequestsMaxRate on the - configured global domain. -- **Type**: gauge -- **Qualification**: Traffic - -### splice.domain_params_store.mediator-reaction-timeout-ms - -- **Summary**: DynamicSynchronizerParameters.mediatorReactionTimeout -- **Description**: Last known value of - DynamicSynchronizerParameters.mediatorReactionTimeout in ms on the - configured global domain. -- **Type**: gauge -- **Qualification**: Traffic - -### splice.domain_params_store.confirmation-response-timeout-ms - -- **Summary**: - DynamicSynchronizerParameters.confirmationResponseTimeout -- **Description**: Last known value of - DynamicSynchronizerParameters.confirmationResponseTimeout in ms on - the configured global domain. -- **Type**: gauge -- **Qualification**: Traffic - -### splice.store.signal-when-ingested-latency - -- **Summary**: How long it takes to signal offset ingestion. -- **Description**: This metric measures the time taken for the future - returned by - signalWhenIngestedOrShutdown to - complete as an indicication for how far our transaction ingestion - lags behind ledger end. -- **Type**: timer -- **Qualification**: Latency - -### splice.store.acs-size - -- **Summary**: The number of active contracts in this store -- **Description**: The number of active contracts in this store. Note - that this is only in the given store. The participant might have - contracts we do not ingest. -- **Type**: gauge -- **Qualification**: Traffic - -### splice.store.ingested-tx-log-entries - -- **Summary**: The number of transaction log entries ingested by this - store -- **Description**: The number of transaction log entries ingested by - this store. Note that there can be more than one entry per - transaction. -- **Type**: meter -- **Qualification**: Traffic - -### splice.store.event-count - -- **Summary**: The number of events that have been ingested -- **Description**: -- **Type**: counter -- **Qualification**: Traffic - -### splice.store.ingestion-batch-size - -- **Summary**: The number of TreeUpdateOrOffsetCheckpoint in each - batch -- **Description**: -- **Type**: histogram -- **Qualification**: Traffic - -### splice.store.completed-ingestions - -- **Summary**: The number of completed ingestions by this store -- **Description**: The number of completed ingestions by this store. - This is one for each ACS, transaction tree or reassignment. -- **Type**: meter -- **Qualification**: Traffic - -### daml.grpc.client - -- **Summary**: Distribution of the durations of serving gRPC requests. -- **Description**: -- **Type**: timer -- **Qualification**: Latency - -### daml.grpc.client.messages.sent - -- **Summary**: Total number of gRPC messages sent (on either type of - connection). -- **Description**: -- **Type**: meter -- **Qualification**: Traffic - -### daml.grpc.client.messages.received - -- **Summary**: Total number of gRPC messages received (on either type - of connection). -- **Description**: -- **Type**: meter -- **Qualification**: Traffic - -### daml.grpc.client.messages.sent.bytes - -- **Summary**: Distribution of payload sizes in gRPC messages sent - (both unary and streaming). -- **Description**: -- **Type**: histogram -- **Qualification**: Traffic - -### daml.grpc.client.messages.received.bytes - -- **Summary**: Distribution of payload sizes in gRPC messages received - (both unary and streaming). -- **Description**: -- **Type**: histogram -- **Qualification**: Traffic - -### daml.grpc.client.started - -- **Summary**: Total number of started gRPC requests (on either type - of connection). -- **Description**: -- **Type**: meter -- **Qualification**: Traffic - -### daml.grpc.client.completed - -- **Summary**: Total number of completed (not necessarily successful) - gRPC requests. -- **Description**: -- **Type**: meter -- **Qualification**: Traffic - -### splice.trigger.latency - -- **Summary**: How long it takes to complete one trigger task -- **Description**: This metric measures the time taken of individual - polling iterations processed by the trigger. -- **Type**: timer -- **Qualification**: Latency - -### splice.trigger.iterations - -- **Summary**: How often a polling trigger was run -- **Description**: This metric measures the number of individual - polling iterations processed by the trigger. -- **Type**: meter -- **Qualification**: Traffic - -### splice.trigger.completed - -- **Summary**: Number of trigger tasks that finished -- **Description**: This metric measures the total number of tasks - processed by the trigger, labeled with the outcome. -- **Type**: meter -- **Qualification**: Traffic - -### splice.trigger.attempted - -- **Summary**: Number of trigger tasks that were attempted -- **Description**: This metric measures the total number of tasks - attempted by the trigger, labeled with statusCode, and errorCodeId. -- **Type**: meter -- **Qualification**: Traffic - -## Validator Metrics -### splice.wallet.unlocked-amulet-balance - -- **Summary**: Unlocked amulet balance -- **Description**: The number of unlocked amulets. -- **Type**: gauge -- **Qualification**: Traffic - -### splice.wallet.locked-amulet-balance - -- **Summary**: Locked amulet balance -- **Description**: The number of locked amulets. -- **Type**: gauge -- **Qualification**: Traffic - -### splice.synchronizer-topology.num-parties - -- **Summary**: Total number of parties -- **Description**: The total number of parties allocated on the Global - Synchronizer. Only available if the topology metrics are exported. -- **Type**: gauge -- **Qualification**: Saturation - -### splice.synchronizer-topology.num-parties-per-participant - -- **Summary**: Number of parties per participant -- **Description**: The number of parties hosted on a participant - connected to the Global Synchronizer. Only available if the topology - metrics are exported. -- **Type**: gauge -- **Qualification**: Saturation - -## SV Metrics -### splice.sv_dso_store.latest-open-mining-round - -- **Summary**: Latest open mining round -- **Description**: The number of the latest open mining round (not - necessarily active yet) ingested by the store. -- **Type**: gauge -- **Qualification**: Latency - -### splice.sv_dso_store.latest-issuing-mining-round - -- **Summary**: Latest issuing mining round -- **Description**: The number of the latest issuing mining round (not - necessarily active yet) ingested by the store. -- **Type**: gauge -- **Qualification**: Latency - -### splice.sequencer_pruning.latency - -- **Summary**: How long it takes to complete a single sequencer - pruning request -- **Description**: This metric measures the time a single sequencer - pruning request takes. -- **Type**: timer -- **Qualification**: Latency - -### splice.sequencer_pruning.disabled_members - -- **Summary**: How many members had to be disabled for pruning to - succeed -- **Description**: The number of members that have not caught up to - the timestamp that we want to prune to and are therefore disabled.. -- **Type**: gauge -- **Qualification**: Debug - -### splice.sv_cometbft.earliest_block_height - -- **Summary**: The earliest available block -- **Description**: Earliest available block on the CometBFT node, that - was not pruned yet. -- **Type**: gauge -- **Qualification**: Debug - -### splice.sv_cometbft.latest_block_height - -- **Summary**: The latest available block -- **Description**: Latest available block on the CometBFT node, and - that can be read by the sequencer. -- **Type**: gauge -- **Qualification**: Debug - -### splice.sv_status_report.number - -- **Summary**: The report number, as reported in the contract -- **Description**: -- **Type**: gauge -- **Qualification**: Debug - -### splice.sv_status_report.creation_time_us - -- **Summary**: When was the last report created -- **Description**: -- **Type**: gauge -- **Qualification**: Debug - -### splice.sv_status_report.cometbft_height - -- **Summary**: CometBFT height as reported during the last report -- **Description**: -- **Type**: gauge -- **Qualification**: Debug - -### splice.sv_status_report.domain_time_us - -- **Summary**: The domain time as observed during the last report -- **Description**: -- **Type**: gauge -- **Qualification**: Debug - -### splice.sv_status_report.domain_time_us - -- **Summary**: The domain time as observed during the last report -- **Description**: -- **Type**: gauge -- **Qualification**: Debug - -### splice.sv_status_report.latest_open_round - -- **Summary**: Latest open round -- **Description**: -- **Type**: gauge -- **Qualification**: Debug - -### splice.amulet_price.latest_open_round_price - -- **Summary**: The price in the latest open round -- **Description**: -- **Type**: gauge -- **Qualification**: Debug - -## Scan Metrics -### splice.scan_store.earliest-aggregated-round - -- **Summary**: Earliest aggregated round -- **Description**: The earliest aggregated round. -- **Type**: gauge -- **Qualification**: Latency - -### splice.scan_store.latest-aggregated-round - -- **Summary**: Latest aggregated round -- **Description**: The latest aggregated round. -- **Type**: gauge -- **Qualification**: Latency - -### splice.scan.verdict_ingestion.last_record_time_us - -- **Summary**: Latest ingested mediator verdict record_time -- **Description**: -- **Type**: gauge -- **Qualification**: Traffic - -### splice.scan.verdict_ingestion.count - -- **Summary**: Total number of ingested mediator verdicts -- **Description**: -- **Type**: meter -- **Qualification**: Traffic - -### splice.scan.verdict_ingestion.errors - -- **Summary**: Count of ingestion stream errors -- **Description**: -- **Type**: meter -- **Qualification**: Traffic - -### splice.scan.verdict_ingestion.restart_errors - -- **Summary**: Count of ingestion restart errors -- **Description**: -- **Type**: meter -- **Qualification**: Traffic - -{/* COPIED_END */} diff --git a/docs-main/global-synchronizer/release-notes/splice.mdx b/docs-main/global-synchronizer/release-notes/splice.mdx index 71d0550a0..02a9b886e 100644 --- a/docs-main/global-synchronizer/release-notes/splice.mdx +++ b/docs-main/global-synchronizer/release-notes/splice.mdx @@ -3,8 +3,6 @@ title: "Splice" description: "Release notes and version history for Global Synchronizer software" --- -import ExternalSpliceMainSpliceRstCodeDocsSrcReleaseNotesYaml192 from "/snippets/external/splice/main/splice-rst-code-docs-src-release-notes-yaml-192.mdx"; - {/* COPIED_START source="splice:docs/src/release_notes.rst" hash="b9660f66" */} ## 0.6.3 @@ -551,7 +549,11 @@ Note: 0.5.7 introduced a significant performance regression related to the proce In some cases, helm might not properly update the state after you removed the `migrating` flag. You can check before the upgrade if it got properly applied through `kubectl describe deployment -n validator validator-app` and look for this env var: - + ```yaml + - name: ADDITIONAL_CONFIG_VALIDATOR_MIGRATION_RESTORE + value: | + canton.validator-apps.validator_backend.restore-from-migration-dump = "/domain-upgrade-dump/domain_migration_dump.json" + ``` If you see it, the deployment still has `migrating: true` activated. You can clear that flag by, for example, uninstalling and reinstalling the validator helm release (but not participant and postgres). You can either directly reinstall the new version or first do the reinstall on the old version and then upgrade. diff --git a/docs-main/global-synchronizer/splice-fundamentals/rewards-minting.mdx b/docs-main/global-synchronizer/splice-fundamentals/rewards-minting.mdx index dd8a494cc..2279cec2a 100644 --- a/docs-main/global-synchronizer/splice-fundamentals/rewards-minting.mdx +++ b/docs-main/global-synchronizer/splice-fundamentals/rewards-minting.mdx @@ -3,6 +3,12 @@ title: "Minting Delegations" description: "How validator operators delegate minting authority for external parties hosted on their node" --- +import ExternalSpliceMainSpliceRstCodeDocsSrcValidatorOperatorValidatorDelegationsBash309 from "/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-delegations-bash-309.mdx"; +import ExternalSpliceMainSpliceRstCodeDocsSrcValidatorOperatorValidatorDelegationsBash276 from "/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-delegations-bash-276.mdx"; +import ExternalSpliceMainSpliceRstCodeDocsSrcValidatorOperatorValidatorDelegationsBash251 from "/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-delegations-bash-251.mdx"; +import ExternalSpliceMainSpliceRstCodeDocsSrcValidatorOperatorValidatorDelegationsBash215 from "/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-delegations-bash-215.mdx"; +import ExternalSpliceMainSpliceRstCodeDocsSrcValidatorOperatorValidatorDelegationsBash201 from "/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-delegations-bash-201.mdx"; + {/* COPIED_START source="splice:docs/src/validator_operator/validator_delegations.rst" hash="af0084d8" */} Minting delegations allow a delegate to instruct their validator node to automate the minting of rewards on behalf of an external party (the beneficiary) hosted on the same validator node. The delegate can be any party onboarded to the validator node's wallet (e.g., the validator operator party, but other internal parties are also possible). This is useful to automate the reward collection for external parties. @@ -131,42 +137,11 @@ To create the proposal, submit a `create` command via the Ledger API [command su First, set up the required environment variables: -```bash -export LEDGER_API_URL="https://validator.example.com:5003" -export TOKEN="your-auth-token" -export BENEFICIARY_PARTY="beneficiary::1220abcd..." -export DELEGATE_PARTY="validator_operator::1220efgh..." -export DSO_PARTY="DSO::1220ijkl..." -export EXPIRES_AT="2025-12-31T23:59:59Z" -# This could be created by -# export EXPIRES_AT="$(date -u -d '+1 year' '+%Y-%m-%dT%H:%M:%SZ')" -export AMULET_MERGE_LIMIT=10 -``` + Then create the proposal using curl: -```bash -curl -X POST -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \ ---data-raw '{ - "commands": [ - { - "CreateCommand": { - "templateId": "#splice-wallet:Splice.Wallet.MintingDelegation:MintingDelegationProposal", - "createArguments": { - "delegation": { - "beneficiary": "'"$BENEFICIARY_PARTY"'", - "delegate": "'"$DELEGATE_PARTY"'", - "dso": "'"$DSO_PARTY"'", - "expiresAt": "'"$EXPIRES_AT"'", - "amuletMergeLimit": '"$AMULET_MERGE_LIMIT"' - } - } - } - } - ] -}' \ -"$LEDGER_API_URL/v2/commands" -``` + See the [MintingDelegationProposal template source code](https://github.com/canton-network/splice/blob/main/daml/splice-wallet/daml/Splice/Wallet/MintingDelegation.daml) for the complete Daml definition. @@ -176,51 +151,11 @@ The beneficiary can monitor their proposal status by querying for active `Mintin To query for pending proposals: -```bash -curl -X POST -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \ ---data-raw '{ - "filter": { - "filtersByParty": { - "'"$BENEFICIARY_PARTY"'": { - "filters": [ - { - "inclusive": { - "templateFilters": [ - {"templateId": "#splice-wallet:Splice.Wallet.MintingDelegation:MintingDelegationProposal"} - ] - } - } - ] - } - } - } -}' \ -"$LEDGER_API_URL/v2/state/active-contracts" -``` + Once accepted, query for the active `MintingDelegation` contract to confirm the delegation is active: -```bash -curl -X POST -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \ ---data-raw '{ - "filter": { - "filtersByParty": { - "'"$BENEFICIARY_PARTY"'": { - "filters": [ - { - "inclusive": { - "templateFilters": [ - {"templateId": "#splice-wallet:Splice.Wallet.MintingDelegation:MintingDelegation"} - ] - } - } - ] - } - } - } -}' \ -"$LEDGER_API_URL/v2/state/active-contracts" -``` + #### Withdrawing a Proposal @@ -228,24 +163,7 @@ If the beneficiary wants to withdraw their proposal before it is accepted or rej First, obtain the contract ID of the proposal from the active contracts query above, then exercise the withdrawal choice: -```bash -export PROPOSAL_CONTRACT_ID="00abcd1234..." - -curl -X POST -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \ ---data-raw '{ - "commands": [ - { - "ExerciseCommand": { - "templateId": "#splice-wallet:Splice.Wallet.MintingDelegation:MintingDelegationProposal", - "contractId": "'"$PROPOSAL_CONTRACT_ID"'", - "choice": "MintingDelegationProposal_Withdraw", - "choiceArgument": {} - } - } - ] -}' \ -"$LEDGER_API_URL/v2/commands" -``` + ### Security Considerations diff --git a/docs-main/global-synchronizer/understand/installing-daml-sdk.mdx b/docs-main/global-synchronizer/understand/installing-daml-sdk.mdx index 80a6e10b0..278decfe2 100644 --- a/docs-main/global-synchronizer/understand/installing-daml-sdk.mdx +++ b/docs-main/global-synchronizer/understand/installing-daml-sdk.mdx @@ -3,6 +3,8 @@ title: "Installing a Compatible Daml SDK" description: "How to install a Daml SDK version compatible with the current Splice release" --- +import ExternalSpliceMainSpliceRstCodeDocsSrcAppDevOverviewVersionInformationBash42 from "/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-overview-version-information-bash-42.mdx"; + {/* COPIED_START source="splice:docs/src/app_dev/overview/version_information.rst#installing-a-compatible-daml-sdk" hash="2149e7a4" */} You are not required to install the exact same Daml SDK versions used to build this Splice release. These versions are provided for reference only. `.dar` files built by older 3.x Daml SDKs are generally compatible with the Canton version used in this Splice release. @@ -17,9 +19,7 @@ Follow these steps to install a recent, compatible OSS Daml SDK version: 2. Install that release using - ```bash - curl -sSL https://get.digitalasset.com/ | sh - ``` + For more information about installing the Daml SDK, see the [DPM installation guide](/sdks-tools/cli-tools/dpm). diff --git a/docs-main/global-synchronizer/understand/local-testing.mdx b/docs-main/global-synchronizer/understand/local-testing.mdx index af7e083f9..41d0a12b9 100644 --- a/docs-main/global-synchronizer/understand/local-testing.mdx +++ b/docs-main/global-synchronizer/understand/local-testing.mdx @@ -5,6 +5,13 @@ description: "Docker-Compose based deployment of a local Canton Network for deve import { NetworkVariables } from '/snippets/components/version.mdx'; import { networkData } from '/snippets/generated/version-dashboard-data.mdx'; +import ExternalSpliceMainSpliceRstCodeDocsSrcAppDevTestingLocalnetBash228 from "/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-testing-localnet-bash-228.mdx"; +import ExternalSpliceMainSpliceRstCodeDocsSrcAppDevTestingLocalnetBash206 from "/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-testing-localnet-bash-206.mdx"; +import ExternalSpliceMainSpliceRstCodeDocsSrcAppDevTestingLocalnetBash190 from "/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-testing-localnet-bash-190.mdx"; +import ExternalSpliceMainSpliceRstCodeDocsSrcAppDevTestingLocalnetBash175 from "/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-testing-localnet-bash-175.mdx"; +import ExternalSpliceMainSpliceRstCodeDocsSrcAppDevTestingLocalnetBash162 from "/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-testing-localnet-bash-162.mdx"; +import ExternalSpliceMainSpliceRstCodeDocsSrcAppDevTestingLocalnetNone147 from "/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-testing-localnet-none-147.mdx"; +import ExternalSpliceMainSpliceRstCodeDocsSrcAppDevTestingLocalnetNone126 from "/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-testing-localnet-none-126.mdx"; {/* COPIED_START source="splice:docs/src/app_dev/testing/localnet.rst" hash="a3270359" */} @@ -111,10 +118,7 @@ LocalNet uses a single PostgreSQL database for all components. Database configur In most scenarios, the `*.localhost` domains (e.g., `http://scan.localhost`) will resolve to your local host IP `127.0.0.1`. There are some situations where the resolution does not occur and the solution is to add entries to your `/etc/hosts` file. For example, to resolve `http://scan.localhost` and `http://wallet.localhost` add these entry to the file: -``` -127.0.0.1 scan.localhost -127.0.0.1 wallet.localhost -``` + ## Default Wallet Users @@ -126,9 +130,7 @@ In most scenarios, the `*.localhost` domains (e.g., `http://scan.localhost`) wil When the `swagger-ui` profile is enabled, the Swagger UI for the `JSON Ledger API HTTP Endpoints` across all running participants is available at [http://localhost:9090](http://localhost:9090). Note: Some endpoints require a JWT token when using the **Try it out** feature. One method to obtain this token is via the Canton Console. Start the Canton Console `make canton-console` and execute the following command: -``` none -`app-provider`.adminToken -``` + For proper functionality, Swagger UI relies on a localhost nginx proxy for `canton.localhost` configured for each participant. For example, the `JSON Ledger API HTTP Endpoints` for the app-provider can be accessed at the nginx proxy URL `http://canton.localhost:${APP_PROVIDER_UI_PORT}` via Swagger UI, which corresponds to accessing `localhost:3${PARTICIPANT_JSON_API_PORT}` directly. The nginx proxy only adds additional headers to resolve CORS issues within Swagger UI. @@ -136,57 +138,23 @@ For proper functionality, Swagger UI relies on a localhost nginx proxy for `cant ### Start LocalNet nodes -```bash -docker compose --env-file $LOCALNET_DIR/compose.env \ - --env-file $LOCALNET_DIR/env/common.env \ - -f $LOCALNET_DIR/compose.yaml \ - -f $LOCALNET_DIR/resource-constraints.yaml \ - --profile sv \ - --profile app-provider \ - --profile app-user up -d -``` + ### Stop LocalNet nodes -```bash -docker compose --env-file $LOCALNET_DIR/compose.env \ - --env-file $LOCALNET_DIR/env/common.env \ - -f $LOCALNET_DIR/compose.yaml \ - -f $LOCALNET_DIR/resource-constraints.yaml \ - --profile sv \ - --profile app-provider \ - --profile app-user down -v -``` + ### Start nodes including a swagger-ui See `swagger-ui` for more information. -```bash -docker compose --env-file $LOCALNET_DIR/compose.env \ - --env-file $LOCALNET_DIR/env/common.env \ - -f $LOCALNET_DIR/compose.yaml \ - -f $LOCALNET_DIR/resource-constraints.yaml \ - --profile sv \ - --profile app-provider \ - --profile app-user \ - --profile swagger-ui up -d -``` + ### Stop nodes including a swagger-ui See `swagger-ui` for more information. -```bash -docker compose --env-file $LOCALNET_DIR/compose.env \ - --env-file $LOCALNET_DIR/env/common.env \ - -f $LOCALNET_DIR/compose.yaml \ - -f $LOCALNET_DIR/resource-constraints.yaml \ - --profile sv \ - --profile app-provider \ - --profile app-user \ - --profile swagger-ui down -v -``` + ### Access the Canton Admin Console @@ -195,13 +163,7 @@ Use the Canton Admin Console to inspect and modify the run configuration of the - [Canton Console How-To](/global-synchronizer/canton-console/console-overview) - [Canton Console commands](/global-synchronizer/reference/canton-console-commands) -```bash -docker compose --env-file $LOCALNET_DIR/compose.env \ - --env-file $LOCALNET_DIR/env/common.env \ - -f $LOCALNET_DIR/compose.yaml \ - -f $LOCALNET_DIR/resource-constraints.yaml \ - run --rm console -``` + ## Multiple Synchronizers diff --git a/docs-main/integrations/exchanges/node-operations.mdx b/docs-main/integrations/exchanges/node-operations.mdx index 1223eb6c2..e4863cdf0 100644 --- a/docs-main/integrations/exchanges/node-operations.mdx +++ b/docs-main/integrations/exchanges/node-operations.mdx @@ -149,21 +149,19 @@ See the Splice documentation for guidance on [how to monitor your validator node](/global-synchronizer/production-operations/splice-metrics-overview). Note in particular that it includes [Grafana dashboards](/global-synchronizer/production-operations/splice-metrics-overview#grafana-dashboards) -for monitoring the traffic usage, balances of local parties (e.g., the `exchangeParty`), -and [many other metrics](/global-synchronizer/reference/splice-metrics). +for monitoring the traffic usage, balances of local parties (e.g., the `exchangeParty`). ## Rolling out Major Splice Upgrades -For major protocol changes, the global sychronizer undergoes a [Major -Upgrade Procedure](/global-synchronizer/production-operations/validator-major-upgrade). +For major protocol changes, the global sychronizer undergoes a Major +Upgrade Procedure. The schedule for these upgrades is published by the [Super Validators](https://docs.google.com/document/d/1QhLL5bL0u8temBL86y957VbWDtZJhH9udH-_C7nBlvc/edit?tab=t.0#heading=h.ripdn5ydglli) and also announced in the `#validator-operations` slack channel. As part of this procedure, the old synchronizer is paused, all validator operators create an export of the state of their validator, and deploy a new validator connected to the new synchronizer and -import their state again. For a more detailed overview, refer to the -[Splice docs](/global-synchronizer/production-operations/validator-major-upgrade). +import their state again. The procedure requires some experience to get it right, so it is highly recommended to run nodes on DevNet and TestNet so you can practice the @@ -186,16 +184,14 @@ From an integration perspective, there are a few things to keep in mind: We recommend to roll-out the upgrade as follows: 1. Wait for the synchronizer to be paused and your node to have - written the migration dump as described in the [Splice - docs](/global-synchronizer/production-operations/validator-major-upgrade#catching-up-before-the-migration). + written the migration dump. 2. Open the migration dump and extract the `acs_timestamp` from it, e.g., using `jq .acs_timestamp < /domain-upgrade-dump/domain_migration_dump.json`. This is the timestamp at which the synchronizer was paused. 3. Wait for your Tx History Ingestion to have caught up to record time `acs_timestamp` or higher. Note that you must consume *offset checkpoints* to guarantee that your Tx History Ingestion advances past `acs_timestamp`. 4. Stop your Tx History Ingestion component. -5. Upgrade your validator and connect it to the new synchronizer following the - [Splice docs](/global-synchronizer/production-operations/validator-major-upgrade#deploying-the-validator-app-and-participant-docker-compose). +5. Upgrade your validator and connect it to the new synchronizer. 6. Follow the shortened version below of the [procedure for restoring a validator node from a backup](/global-synchronizer/production-operations/validator-disaster-recovery) to determine the offset from which to restart your Tx History Ingestion: diff --git a/docs-main/snippets/external/splice/main/splice-literal-marker-apps-app-src-pack-examples-sv-helm-standalone-validator-values-configuring-topup-start.mdx b/docs-main/snippets/external/splice/main/splice-literal-marker-apps-app-src-pack-examples-sv-helm-standalone-validator-values-configuring-topup-start.mdx index c1c1f80b2..440d1f804 100644 --- a/docs-main/snippets/external/splice/main/splice-literal-marker-apps-app-src-pack-examples-sv-helm-standalone-validator-values-configuring-topup-start.mdx +++ b/docs-main/snippets/external/splice/main/splice-literal-marker-apps-app-src-pack-examples-sv-helm-standalone-validator-values-configuring-topup-start.mdx @@ -2,11 +2,10 @@ # Configuring a validator's traffic top-up loop; # see documentation for more detailed information. topup: - # set to false in order to disable automatic traffic top-ups - enabled: true - # target throughput in bytes / second of sequenced traffic; targetThroughput=0 <=> enabled=false - targetThroughput: 20000 - # minTopupInterval - minimum time interval that must elapse before the next top-up - minTopupInterval: "1m" - # + # set to false in order to disable automatic traffic top-ups + enabled: true + # target throughput in bytes / second of sequenced traffic; targetThroughput=0 <=> enabled=false + targetThroughput: 20000 + # minTopupInterval - minimum time interval that must elapse before the next top-up + minTopupInterval: "1m" ``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-literal-marker-apps-app-src-pack-examples-sv-helm-standalone-validator-values-migration-start.mdx b/docs-main/snippets/external/splice/main/splice-literal-marker-apps-app-src-pack-examples-sv-helm-standalone-validator-values-migration-start.mdx deleted file mode 100644 index 9b8baf9f4..000000000 --- a/docs-main/snippets/external/splice/main/splice-literal-marker-apps-app-src-pack-examples-sv-helm-standalone-validator-values-migration-start.mdx +++ /dev/null @@ -1,8 +0,0 @@ -```yaml - # Replace MIGRATION_ID with the migration ID of the global synchronizer. - migration: - id: "MIGRATION_ID" - # Uncomment this when redeploying as part of a migration, i.e., MIGRATION_ID was incremented and a migration dump was exported to the attached pvc. - # migrating: true - # -``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-literal-marker-apps-app-src-pack-examples-sv-helm-standalone-validator-values-participant-bootstrap-migrate-to-new-participant-start.mdx b/docs-main/snippets/external/splice/main/splice-literal-marker-apps-app-src-pack-examples-sv-helm-standalone-validator-values-participant-bootstrap-migrate-to-new-participant-start.mdx index 0b5741e2e..5614b2a8b 100644 --- a/docs-main/snippets/external/splice/main/splice-literal-marker-apps-app-src-pack-examples-sv-helm-standalone-validator-values-participant-bootstrap-migrate-to-new-participant-start.mdx +++ b/docs-main/snippets/external/splice/main/splice-literal-marker-apps-app-src-pack-examples-sv-helm-standalone-validator-values-participant-bootstrap-migrate-to-new-participant-start.mdx @@ -4,5 +4,4 @@ # # Make sure to also adjust nodeIdentifier to the same value # newParticipantIdentifier: put-some-new-string-never-used-before # migrateValidatorParty: true - # ``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-literal-marker-apps-app-src-pack-examples-sv-helm-standalone-validator-values-scan-client-configuration-start.mdx b/docs-main/snippets/external/splice/main/splice-literal-marker-apps-app-src-pack-examples-sv-helm-standalone-validator-values-scan-client-configuration-start.mdx new file mode 100644 index 000000000..d7e68043c --- /dev/null +++ b/docs-main/snippets/external/splice/main/splice-literal-marker-apps-app-src-pack-examples-sv-helm-standalone-validator-values-scan-client-configuration-start.mdx @@ -0,0 +1,35 @@ +```yaml + scanClient: + scanType: "bft" + seedUrls: ["TRUSTED_SCAN_URL"] # replace with scan seed url. Supports multiple urls, separated by comma. + + # scanClient denotes how the validator makes connections to scan service and supports three modes of operation. + + # Mode 1: bft (Byzantine Fault Tolerance) + # Connects to all available scans in the network. It validates responses by ensuring + # at least f+1 matching responses are received. + + # scanClient: + # scanType: "bft" + # seedUrls: ["TRUSTED_SCAN_URL"] # replace with scan seed url(s). Supports multiple urls, separated by comma. + + # Mode 2: bft-custom + # A specialized version of bft where you specify a subset of trusted SVs. + # The validator connects only to the scans of the SVs listed in 'svNames'. + # Optional param 'threshold' defines how many identical responses are required to consider the scan responses valid. + + # scanClient: + # scanType: "bft-custom" + # svNames: ["TRUSTED_SV"] # replace with trusted SV names(s) + # seedUrls: ["TRUSTED_SCAN_URL"] # replace with actual scan seed urls(s) + # threshold: # optional integer indicating the number of matching responses required for validation + + # Mode 3: trust-single + # Connects to a single trusted scan address. + # This means that you depend on that single SV and if it is broken or malicious you will be unable to use the network. + # Hence, usually you want to default to not enabling this + + # scanClient: + # scanType: "trust-single" + # scanAddress: "TRUSTED_SCAN_URL" # replace with the trusted scan url +``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-literal-marker-apps-app-src-pack-examples-sv-helm-standalone-validator-values-synchronizer-configuration-start.mdx b/docs-main/snippets/external/splice/main/splice-literal-marker-apps-app-src-pack-examples-sv-helm-standalone-validator-values-synchronizer-configuration-start.mdx new file mode 100644 index 000000000..cd94b530d --- /dev/null +++ b/docs-main/snippets/external/splice/main/splice-literal-marker-apps-app-src-pack-examples-sv-helm-standalone-validator-values-synchronizer-configuration-start.mdx @@ -0,0 +1,31 @@ +```yaml + synchronizer: + connectionType: "bft" + + # synchronizer configuration enables to configure how the validator's participant connects to the synchronizer. + # synchronizer configuration has three modes of operation. + + # Mode 1: bft (Byzantine Fault Tolerance) + # Uses all available synchronizer connections provided by the scan service. + # Responses are validated against the network's f+1 fault tolerance logic. + + # synchronizer: + # connectionType: "bft" + + # Mode 2: bft-custom + # Connects only to sequencers operated by the specific SVs listed in 'svNames'. + # optional param 'threshold' defines the minimum number of matching responses required for validation. + + # synchronizer: + # connectionType: "bft-custom" + # svNames: ["TRUSTED_SV"] # replace with trusted SV name(s) + # threshold: # optional integer indicating the number of matching responses required for validation + + # Mode 3: trust-Single + # Connects to a single specified sequencer URL. + # trust-single makes you dependent on a single SV; if it is malicious or down, you will be unable to use the network. + + #synchronizer: + # connectionType: "trust-single" + # url: "TRUSTED_SYNCHRONIZER_SEQUENCER_URL" # replace with the trusted synchronizer sequencer url +``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-literal-marker-apps-app-src-pack-examples-sv-helm-sv-validator-values-sv-participant-pruning-schedule-start.mdx b/docs-main/snippets/external/splice/main/splice-literal-marker-apps-app-src-pack-examples-sv-helm-sv-validator-values-sv-participant-pruning-schedule-start.mdx new file mode 100644 index 000000000..c65c297dd --- /dev/null +++ b/docs-main/snippets/external/splice/main/splice-literal-marker-apps-app-src-pack-examples-sv-helm-sv-validator-values-sv-participant-pruning-schedule-start.mdx @@ -0,0 +1,6 @@ +```yaml + participantPruningSchedule: + cron: 0 /10 * * * ? # Run every 10min + maxDuration: 5m # Run for a max of 5min per iteration + retention: 30d # Retain history that is newer than 30d. +``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-literal-marker-apps-app-src-pack-examples-sv-helm-sv-values-docs-pruning-start.mdx b/docs-main/snippets/external/splice/main/splice-literal-marker-apps-app-src-pack-examples-sv-helm-sv-values-docs-pruning-start.mdx index 99e881570..6db77b5b3 100644 --- a/docs-main/snippets/external/splice/main/splice-literal-marker-apps-app-src-pack-examples-sv-helm-sv-values-docs-pruning-start.mdx +++ b/docs-main/snippets/external/splice/main/splice-literal-marker-apps-app-src-pack-examples-sv-helm-sv-values-docs-pruning-start.mdx @@ -1,11 +1,11 @@ ```yaml - domain: - sequencerPruningConfig: - # Enable or disable sequencer pruning - enabled: true - # The pruning interval is the time between two consecutive prunings. - pruningInterval: "1 hour" - # The retention period is the time for which the sequencer will retain the data. - retentionPeriod: "30 days" - # + synchronizers: + current: + sequencerPruningConfig: + # Enable or disable sequencer pruning + enabled: true + # The pruning interval is the time between two consecutive prunings. + pruningInterval: "1 hour" + # The retention period is the time for which the sequencer will retain the data. + retentionPeriod: "30 days" ``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-literal-marker-apps-app-src-pack-examples-sv-helm-sv-values-migration-start.mdx b/docs-main/snippets/external/splice/main/splice-literal-marker-apps-app-src-pack-examples-sv-helm-sv-values-migration-start.mdx index 67638f478..f3613b8c6 100644 --- a/docs-main/snippets/external/splice/main/splice-literal-marker-apps-app-src-pack-examples-sv-helm-sv-values-migration-start.mdx +++ b/docs-main/snippets/external/splice/main/splice-literal-marker-apps-app-src-pack-examples-sv-helm-sv-values-migration-start.mdx @@ -1,12 +1,11 @@ ```yaml # Replace MIGRATION_ID with the migration ID of the global synchronizer. migration: - id: "MIGRATION_ID" - # Uncomment these when redeploying as part of a migration, - # i.e., MIGRATION_ID was incremented and a migration dump was exported to the attached pvc. - # migrating: true - # This declares that your sequencer with that migration id is still up. You should remove it - # once you take down the sequencer for the prior migration id - # legacyId: "MIGRATION_ID_BEFORE_INCREMENTED" - # + id: "MIGRATION_ID" + # Uncomment these when redeploying as part of a migration, + # i.e., MIGRATION_ID was incremented and a migration dump was exported to the attached pvc. + # migrating: true + # This declares that your sequencer with that migration id is still up. You should remove it + # once you take down the sequencer for the prior migration id + # legacyId: "MIGRATION_ID_BEFORE_INCREMENTED" ``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-literal-marker-apps-app-src-pack-examples-sv-helm-validator-values-auto-accept-start.mdx b/docs-main/snippets/external/splice/main/splice-literal-marker-apps-app-src-pack-examples-sv-helm-validator-values-auto-accept-start.mdx index a5e81af4e..a87505bf4 100644 --- a/docs-main/snippets/external/splice/main/splice-literal-marker-apps-app-src-pack-examples-sv-helm-validator-values-auto-accept-start.mdx +++ b/docs-main/snippets/external/splice/main/splice-literal-marker-apps-app-src-pack-examples-sv-helm-validator-values-auto-accept-start.mdx @@ -4,5 +4,4 @@ # "": # fromParties: # - "" - # ``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-literal-marker-apps-app-src-pack-examples-sv-helm-validator-values-enablewallet-start.mdx b/docs-main/snippets/external/splice/main/splice-literal-marker-apps-app-src-pack-examples-sv-helm-validator-values-enablewallet-start.mdx index e891d717f..c5fd6a97e 100644 --- a/docs-main/snippets/external/splice/main/splice-literal-marker-apps-app-src-pack-examples-sv-helm-validator-values-enablewallet-start.mdx +++ b/docs-main/snippets/external/splice/main/splice-literal-marker-apps-app-src-pack-examples-sv-helm-validator-values-enablewallet-start.mdx @@ -1,5 +1,4 @@ ```yaml # This will disable the wallet HTTP server and wallet automations when set to false enableWallet: true - # ``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-literal-marker-apps-app-src-pack-examples-sv-helm-validator-values-participant-pruning-schedule-start.mdx b/docs-main/snippets/external/splice/main/splice-literal-marker-apps-app-src-pack-examples-sv-helm-validator-values-participant-pruning-schedule-start.mdx index 70fab75b3..f32a5b982 100644 --- a/docs-main/snippets/external/splice/main/splice-literal-marker-apps-app-src-pack-examples-sv-helm-validator-values-participant-pruning-schedule-start.mdx +++ b/docs-main/snippets/external/splice/main/splice-literal-marker-apps-app-src-pack-examples-sv-helm-validator-values-participant-pruning-schedule-start.mdx @@ -5,5 +5,4 @@ # cron: 0 /10 * * * ? # Run every 10min # maxDuration: 5m # Run for a max of 5min per iteration # retention: 48h # Retain history that is newer than 48h. - # ``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-literal-marker-apps-app-src-pack-examples-sv-helm-validator-values-sweep-start.mdx b/docs-main/snippets/external/splice/main/splice-literal-marker-apps-app-src-pack-examples-sv-helm-validator-values-sweep-start.mdx deleted file mode 100644 index 0854cb039..000000000 --- a/docs-main/snippets/external/splice/main/splice-literal-marker-apps-app-src-pack-examples-sv-helm-validator-values-sweep-start.mdx +++ /dev/null @@ -1,15 +0,0 @@ -```yaml - # If you want funds sweeped out of parties in this validator, uncomment and fill in the following: - #walletSweep: - # "": - # maxBalanceUSD: - # minBalanceUSD: - # receiver: "" - # useTransferPreapproval: false # sweep by transferring directly through the transfer preapproval of the receiver, - # if set to false sweeping creates transfer offers that need to be accepted on the receiver side. - # Note that this refers to the preapprovals described in /appdev/modules/m7-canton-coin-preapprovals - # and not to auto accepting transfers. Auto accept transfers does not setup preapproval contracts that allow - # for a direct transfer but just automates the acceptance of the transfer offer so in that case - # useTransferPreapproval should be set to false. - # -``` diff --git a/docs-main/snippets/external/splice/main/splice-literal-marker-apps-app-src-pack-examples-sv-helm-validator-values-trusted-single-scan-start.mdx b/docs-main/snippets/external/splice/main/splice-literal-marker-apps-app-src-pack-examples-sv-helm-validator-values-trusted-single-scan-start.mdx deleted file mode 100644 index 5438c232d..000000000 --- a/docs-main/snippets/external/splice/main/splice-literal-marker-apps-app-src-pack-examples-sv-helm-validator-values-trusted-single-scan-start.mdx +++ /dev/null @@ -1,6 +0,0 @@ -```yaml - # If you want to configure validator to use a single trusted scan, set ``nonSvValidatorTrustSingleScan`` to true. - # It will only connect to the scan specified in ``scanAddress``. This does mean that you depend on that single SV and if it is broken or malicious you will be unable to use the network so usually you want to default to not enabling this. - # nonSvValidatorTrustSingleScan: true - # -``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-literal-marker-apps-app-src-pack-examples-sv-helm-validator-values-trusted-single-sequencer-start.mdx b/docs-main/snippets/external/splice/main/splice-literal-marker-apps-app-src-pack-examples-sv-helm-validator-values-trusted-single-sequencer-start.mdx deleted file mode 100644 index 0faa951b9..000000000 --- a/docs-main/snippets/external/splice/main/splice-literal-marker-apps-app-src-pack-examples-sv-helm-validator-values-trusted-single-sequencer-start.mdx +++ /dev/null @@ -1,8 +0,0 @@ -```yaml - # If you want to configure validator to connect to a single trusted sequencer, set ``useSequencerConnectionsFromScan`` to false. - # and replace ``TRUSTED_SYNCHRONIZER_SEQUENCER_URL`` with the publicly accessible URL of the trusted sequencer. - # This does mean that you depend on that single SV and if it is broken or malicious you will be unable to use the network so usually you want to default to not enabling this. - # decentralizedSynchronizerUrl: "TRUSTED_SYNCHRONIZER_SEQUENCER_URL" - # useSequencerConnectionsFromScan: false - # -``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-literal-marker-cluster-helm-splice-cometbft-values-template-docs-cometbft-pruning-start.mdx b/docs-main/snippets/external/splice/main/splice-literal-marker-cluster-helm-splice-cometbft-values-template-docs-cometbft-pruning-start.mdx index 0ba3ee712..5ed5f6aa6 100644 --- a/docs-main/snippets/external/splice/main/splice-literal-marker-cluster-helm-splice-cometbft-values-template-docs-cometbft-pruning-start.mdx +++ b/docs-main/snippets/external/splice/main/splice-literal-marker-cluster-helm-splice-cometbft-values-template-docs-cometbft-pruning-start.mdx @@ -1,6 +1,5 @@ ```yaml # Number of blocks to keep, used for pruning. 0 -> keep all blocks. - # Number of blocks to keep for 30 days with an upper bound of 7k blocks/h. - retainBlocks: 5040000 - # + # Number of blocks to keep for 30 days with an upper bound of 7k blocks/h. + retainBlocks: 5040000 ``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-overview-splice-app-apis-json-82.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-overview-splice-app-apis-json-82.mdx deleted file mode 100644 index bc7a447cd..000000000 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-overview-splice-app-apis-json-82.mdx +++ /dev/null @@ -1,7 +0,0 @@ -```json - { - "sub": "ledgerApiUserId", - "aud": "audience-of-app" - } - -``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-overview-splice-app-apis-none-116.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-overview-splice-app-apis-none-116.mdx deleted file mode 100644 index 69a312ccf..000000000 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-overview-splice-app-apis-none-116.mdx +++ /dev/null @@ -1,4 +0,0 @@ -``` - Authorization: Bearer yourtoken - -``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-overview-splice-app-apis-none-132.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-overview-splice-app-apis-none-132.mdx deleted file mode 100644 index a740a2c7c..000000000 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-overview-splice-app-apis-none-132.mdx +++ /dev/null @@ -1,13 +0,0 @@ -``` - canton { - validator-apps { - validator { - admin-api.port = 5003 - ... - } - } - } - - - -``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-overview-splice-app-apis-none-99.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-overview-splice-app-apis-none-99.mdx deleted file mode 100644 index 6bc971c5f..000000000 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-overview-splice-app-apis-none-99.mdx +++ /dev/null @@ -1,15 +0,0 @@ -``` - canton { - validator-apps { - validator { - auth { - audience = "https://example.com" - algorithm = "rs-256" - jwks-url = "https://example.com/.well-known/jwks.json" - } - ... - } - } - } - -``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-overview-version-information-bash-42.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-overview-version-information-bash-42.mdx new file mode 100644 index 000000000..ed2fe7d15 --- /dev/null +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-overview-version-information-bash-42.mdx @@ -0,0 +1,3 @@ +```bash + curl -sSL https://get.digitalasset.com/ | sh +``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-overview-version-information-bash-54.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-overview-version-information-bash-54.mdx deleted file mode 100644 index 2493c74d5..000000000 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-overview-version-information-bash-54.mdx +++ /dev/null @@ -1,4 +0,0 @@ -```bash - curl -sSL https://get.daml.com/ | sh -s 3.3.0-snapshot.20250603.0 - -``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-scan-api-scan-aggregates-api-json-114.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-scan-api-scan-aggregates-api-json-114.mdx deleted file mode 100644 index 97b5f546e..000000000 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-scan-api-scan-aggregates-api-json-114.mdx +++ /dev/null @@ -1,15 +0,0 @@ -```json - { - "entries": [ - { - "contract_id": null, - "user": "DSO::122084177677350389dd0710d6516f700a33fe348c5f2702dffef6d36e1dedcbfc17", - "name": "dso.cns", - "url": "", - "description": "", - "expires_at": null - } - ] - } - -``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-scan-api-scan-aggregates-api-json-133.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-scan-api-scan-aggregates-api-json-133.mdx deleted file mode 100644 index 5f8302d5a..000000000 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-scan-api-scan-aggregates-api-json-133.mdx +++ /dev/null @@ -1,15 +0,0 @@ -```json - { - "entries": [ - { - "contract_id": "00ab54b0bfc5a70f1fa421b4fd76cd6860d061e0fff2a0ef79d87521ab60215e2fca10122056e3bf53375a1323f296d8348057a0e1a063884e6330fd0b5476acf8811bc193", - "user": "auth0_007c675a429eaf831f0991308d85::12201abe669faf7e657735cdcc96a1b0a98f3ba6ddca688739bcb90933b693c65a8c", - "name": "alice_2e5bbb1c.unverified.cns", - "url": "", - "description": "", - "expires_at": "2025-03-12T01:56:28.974046Z" - } - ] - } - -``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-scan-api-scan-aggregates-api-json-23.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-scan-api-scan-aggregates-api-json-23.mdx deleted file mode 100644 index 340455e15..000000000 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-scan-api-scan-aggregates-api-json-23.mdx +++ /dev/null @@ -1,12 +0,0 @@ -```json - { - "migration_id": 4, - "record_time": "2025-02-14T15:00:00Z", - "owner_party_ids": [ - "digitalasset-testValidator-1::1220e92bbc9d80cb6e283184017b307b9f44f23d32d7d195cdbcac033ae91eac2f28", - "digitalasset-testValidator-1::12201bca369bee8df7a32ee53c6433d437396c9f69c269a1bb51383c0a279ca90626", - "digitalasset-testValidator-1::122079c06f2c4128d44d1ad0b201452c0bb67858bcb9db2cf2d6310cf02960f03eea" - ] - } - -``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-scan-api-scan-aggregates-api-json-37.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-scan-api-scan-aggregates-api-json-37.mdx deleted file mode 100644 index 748d9be8f..000000000 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-scan-api-scan-aggregates-api-json-37.mdx +++ /dev/null @@ -1,21 +0,0 @@ -```json - { - "record_time": "2025-02-14T15:00:00Z", - "migration_id": 4, - "computed_as_of_round": 20203, - "summaries": [ - { - "party_id": "digitalasset-testValidator-1::122079c06f2c4128d44d1ad0b201452c0bb67858bcb9db2cf2d6310cf02960f03eea", - "total_unlocked_coin": "23765.0066688730", - "total_locked_coin": "0.0000000000", - "total_coin_holdings": "23765.0066688730", - "accumulated_holding_fees_unlocked": "1.4193321400", - "accumulated_holding_fees_locked": "0.0000000000", - "accumulated_holding_fees_total": "1.4193321400", - "total_available_coin": "23763.5873367330" - }, - /* similar records for the other party IDs */ - ] - } - -``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-scan-api-scan-aggregates-api-json-67.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-scan-api-scan-aggregates-api-json-67.mdx deleted file mode 100644 index b60a22b6e..000000000 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-scan-api-scan-aggregates-api-json-67.mdx +++ /dev/null @@ -1,37 +0,0 @@ -```json - { - "record_time": "2025-02-14T15:00:00Z", - "migration_id": 4, - "created_events": [ - { - "event_type": "created_event", - "event_id": "#1220da14f2feb58bd88ab07d12feb2c483b2eba91e696ddbacf8196288a32cfcc96b:7", - "contract_id": "0078f4eeb4bc4dd4fe111cc5ed35594db14e70fc9f262158d97df699cb347b3a0eca101220712cd87d67727c259c698cc3ec33eb773cf77bb03a1e4d5ca9b19f7cbf4e250d", - "template_id": "979ec710c3ae3a05cb44edf8461a9b4d7dd2053add95664f94fc89e5f18df80f:Splice.Amulet:Amulet", - "package_name": "splice-amulet", - "create_arguments": { - "dso": "DSO::122084177677350389dd0710d6516f700a33fe348c5f2702dffef6d36e1dedcbfc17", - "owner": "digitalasset-testValidator-1::122079c06f2c4128d44d1ad0b201452c0bb67858bcb9db2cf2d6310cf02960f03eea", - "amount": { - "initialAmount": "23765.0066688730", - "createdAt": { - "number": "19830" - }, - "ratePerRound": { - "rate": "0.0038051800" - } - } - }, - "created_at": "2025-02-12T00:42:56.627908Z", - "signatories": [ - "DSO::122084177677350389dd0710d6516f700a33fe348c5f2702dffef6d36e1dedcbfc17", - "digitalasset-testValidator-1::122079c06f2c4128d44d1ad0b201452c0bb67858bcb9db2cf2d6310cf02960f03eea" - ], - "observers": [] - }, - /* similar records for other parties */ - ], - "next_page_token": null - } - -``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-scan-api-scan-bulk-data-api-json-119.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-scan-api-scan-bulk-data-api-json-119.mdx deleted file mode 100644 index 60b896b0b..000000000 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-scan-api-scan-bulk-data-api-json-119.mdx +++ /dev/null @@ -1,6 +0,0 @@ -```json - { - "page_size": 10 - } - -``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-scan-api-scan-bulk-data-api-json-131.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-scan-api-scan-bulk-data-api-json-131.mdx deleted file mode 100644 index 5df3fa1a0..000000000 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-scan-api-scan-bulk-data-api-json-131.mdx +++ /dev/null @@ -1,10 +0,0 @@ -```json - { - "page_size": 10, - "after": { - "after_migration_id": 0, - "after_record_time": "2024-09-20T13:31:28.405180Z" - } - } - -``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-scan-api-scan-bulk-data-api-json-191.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-scan-api-scan-bulk-data-api-json-191.mdx deleted file mode 100644 index 265e89abe..000000000 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-scan-api-scan-bulk-data-api-json-191.mdx +++ /dev/null @@ -1,22 +0,0 @@ -```json - { - "transactions": [ - { - "update_id": "1220e04f50c4b00024dd3a225611ad96441abd854e461c144b872c0eedac1dc784c7", - "migration_id": 0, - "workflow_id": "", - "record_time": "2024-09-20T13:31:28.405180Z", - "synchronizer_id": "global-domain::122084177677350389dd0710d6516f700a33fe348c5f2702dffef6d36e1dedcbfc17", - "effective_at": "2024-09-20T13:31:29.552807Z", - "root_event_ids": [ - "1220e04f50c4b00024dd3a225611ad96441abd854e461c144b872c0eedac1dc784c7:0", - "1220e04f50c4b00024dd3a225611ad96441abd854e461c144b872c0eedac1dc784c7:1" - ], - "events_by_id": { - "..." : "events omitted for brevity" - } - } - ] - } - -``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-scan-api-scan-bulk-data-api-json-236.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-scan-api-scan-bulk-data-api-json-236.mdx deleted file mode 100644 index c3d99b742..000000000 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-scan-api-scan-bulk-data-api-json-236.mdx +++ /dev/null @@ -1,30 +0,0 @@ -```json - "1220e04f50c4b00024dd3a225611ad96441abd854e461c144b872c0eedac1dc784c7:4": { - "event_type": "exercised_event", - "event_id": "1220e04f50c4b00024dd3a225611ad96441abd854e461c144b872c0eedac1dc784c7:4", - "contract_id": "0036a147673cc66b5e7d27811084897d6eaf1807c2bc024b9c7c9359dbfb25c790ca101220bf3bfb7315fe33fc0bafa88087a8af6794674f2a02a4690ef2897325efd9e973", - "template_id": "a36ef8888fb44caae13d96341ce1fabd84fc9e2e7b209bbc3caabb48b6be1668:Splice.AmuletRules:AmuletRules", - "package_name": "splice-amulet", - "choice": "AmuletRules_Bootstrap_Rounds", - "choice_argument": { - "amuletPrice": "0.0050000000", - "round0Duration": { - "microseconds": "97200000000" - } - }, - "child_event_ids": [ - "1220e04f50c4b00024dd3a225611ad96441abd854e461c144b872c0eedac1dc784c7:5", - "1220e04f50c4b00024dd3a225611ad96441abd854e461c144b872c0eedac1dc784c7:6", - "1220e04f50c4b00024dd3a225611ad96441abd854e461c144b872c0eedac1dc784c7:7" - ], - "exercise_result": { - "openMiningRoundCid": "004eba336d6bbaed0e866e2dd11351fc989b1043b09c34ce3ac16fe08ff9fc1cfaca101220e8339d816712ba0294cdce13216494bb50dd1070be12ede312133003e0f1252d" - }, - "consuming": false, - "acting_parties": [ - "DSO::122084177677350389dd0710d6516f700a33fe348c5f2702dffef6d36e1dedcbfc17" - ], - "interface_id": null - }, - -``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-scan-api-scan-bulk-data-api-json-278.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-scan-api-scan-bulk-data-api-json-278.mdx deleted file mode 100644 index a00fb5ec6..000000000 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-scan-api-scan-bulk-data-api-json-278.mdx +++ /dev/null @@ -1,71 +0,0 @@ -```json - "1220e04f50c4b00024dd3a225611ad96441abd854e461c144b872c0eedac1dc784c7:7": { - "event_type": "created_event", - "event_id": "1220e04f50c4b00024dd3a225611ad96441abd854e461c144b872c0eedac1dc784c7:7", - "contract_id": "004eba336d6bbaed0e866e2dd11351fc989b1043b09c34ce3ac16fe08ff9fc1cfaca101220e8339d816712ba0294cdce13216494bb50dd1070be12ede312133003e0f1252d", - "template_id": "a36ef8888fb44caae13d96341ce1fabd84fc9e2e7b209bbc3caabb48b6be1668:Splice.Round:OpenMiningRound", - "package_name": "splice-amulet", - "create_arguments": { - "dso": "DSO::122084177677350389dd0710d6516f700a33fe348c5f2702dffef6d36e1dedcbfc17", - "round": { - "number": "2" - }, - "amuletPrice": "0.0050000000", - "opensAt": "2024-09-21T16:31:29.552807Z", - "targetClosesAt": "2024-09-21T16:51:29.552807Z", - "issuingFor": { - "microseconds": "1200000000" - }, - "transferConfigUsd": { - "createFee": { - "fee": "0.0300000000" - }, - "holdingFee": { - "rate": "0.0000190259" - }, - "transferFee": { - "initialRate": "0.0100000000", - "steps": [ - { - "_1": "100.0000000000", - "_2": "0.0010000000" - }, - { - "_1": "1000.0000000000", - "_2": "0.0001000000" - }, - { - "_1": "1000000.0000000000", - "_2": "0.0000100000" - } - ] - }, - "lockHolderFee": { - "fee": "0.0050000000" - }, - "extraFeaturedAppRewardAmount": "1.0000000000", - "maxNumInputs": "100", - "maxNumOutputs": "100", - "maxNumLockHolders": "50" - }, - "issuanceConfig": { - "amuletToIssuePerYear": "40000000000.0000000000", - "validatorRewardPercentage": "0.0500000000", - "appRewardPercentage": "0.1500000000", - "validatorRewardCap": "0.2000000000", - "featuredAppRewardCap": "100.0000000000", - "unfeaturedAppRewardCap": "0.6000000000", - "optValidatorFaucetCap": "2.8500000000" - }, - "tickDuration": { - "microseconds": "600000000" - } - }, - "created_at": "2024-09-20T13:31:29.552807Z", - "signatories": [ - "DSO::122084177677350389dd0710d6516f700a33fe348c5f2702dffef6d36e1dedcbfc17" - ], - "observers": [] - } - -``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-scan-api-scan-bulk-data-api-json-453.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-scan-api-scan-bulk-data-api-json-453.mdx deleted file mode 100644 index 8f6943af0..000000000 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-scan-api-scan-bulk-data-api-json-453.mdx +++ /dev/null @@ -1,6 +0,0 @@ -```json - { - "record_time" : "2025-02-11T18:00:00Z" - } - -``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-scan-api-scan-bulk-data-api-json-470.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-scan-api-scan-bulk-data-api-json-470.mdx deleted file mode 100644 index 97ac10f41..000000000 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-scan-api-scan-bulk-data-api-json-470.mdx +++ /dev/null @@ -1,8 +0,0 @@ -```json - { - "migration_id": 4, - "record_time": "2025-02-11T18:00:00Z", - "page_size": 10 - } - -``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-scan-api-scan-bulk-data-api-json-483.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-scan-api-scan-bulk-data-api-json-483.mdx deleted file mode 100644 index 4580e45c9..000000000 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-scan-api-scan-bulk-data-api-json-483.mdx +++ /dev/null @@ -1,38 +0,0 @@ -```json - { - "record_time": "2025-02-11T18:00:00Z", - "migration_id": 4, - "created_events": [ - { - "event_type": "created_event", - "event_id": "#122098355fd6741a763f23fa0b7758d2a59cfce54aef07808ef42d366bdd6296db2d:0", - "contract_id": "001c9216c7194bb6180968abdae59b1718a44857b005613cb47cdbc4a459b3a4caca10122019fd0561c858eac85e7e3374ec8cb27ee6f410f9260d4f89c7a3a398a1d2a37f", - "template_id": "053c7f4c2a77312e7d465a4fa7dc8cb298754ad12c0c987a7c401bd724e65efc:Splice.Ans:AnsRules", - "package_name": "splice-amulet-name-service", - "create_arguments": { - "dso": "DSO::122084177677350389dd0710d6516f700a33fe348c5f2702dffef6d36e1dedcbfc17", - "config": { - "renewalDuration": { - "microseconds": "2592000000000" - }, - "entryLifetime": { - "microseconds": "7776000000000" - }, - "entryFee": "1.0000000000", - "descriptionPrefix": "CNS entry: " - } - }, - "created_at": "2024-09-20T13:31:29.552807Z", - "signatories": [ - "DSO::122084177677350389dd0710d6516f700a33fe348c5f2702dffef6d36e1dedcbfc17" - ], - "observers": [] - }, - { - "..." : "more created events, omitted for brevity" - } - ], - "next_page_token": 61329223 - } - -``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-scan-api-scan-bulk-data-api-json-685.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-scan-api-scan-bulk-data-api-json-685.mdx deleted file mode 100644 index a48f47027..000000000 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-scan-api-scan-bulk-data-api-json-685.mdx +++ /dev/null @@ -1,59 +0,0 @@ -```json - "1220299075b2251a542c4ff0a6aec03dbd3e69041da7d85cd62be9d665f3a959cd25:1": { - "event_type": "exercised_event", - "event_id": "1220299075b2251a542c4ff0a6aec03dbd3e69041da7d85cd62be9d665f3a959cd25:1", - "contract_id": "00aec43c48f896adb70550e22a5bd44f290534058aa9fa1ba939aa17f622639d31ca101220b56087539ec11e1b7803b726e1d833ef9685dfdffb7570644b44d1074882e0fd", - "template_id": "979ec710c3ae3a05cb44edf8461a9b4d7dd2053add95664f94fc89e5f18df80f:Splice.AmuletRules:AmuletRules", - "package_name": "splice-amulet", - "choice": "AmuletRules_BuyMemberTraffic", - "choice_argument": { - "inputs": [ - { - "tag": "InputAmulet", - "value": "0019bc6f3f9b53f1e4e3af43e47a35f3fe43507e861490c0b58656fc08a1408c32ca101220ed59a33d6a79962a0924a1ecae3f539c4003d808a0a564dada0437018adb8c6d" - }, - { - "tag": "InputAmulet", - "value": "00b0acb28b679855d0cab28c662663ccfbb22e78873424ec49eddc18e81a4f5fe9ca10122053517786a087da1055ab0f2adf0d20b6d02238c13fee8d2a773e2dc0514976a9" - } - ], - "context": "<...>", - "provider": "<...>", - "memberId": "<...>", - "synchronizerId": "global-domain::1220e1e594cdb287aeac3e1e6d62e7d2db46b756a5d01656c26f1f1a151345bf2e53", - "migrationId": "1", - "trafficAmount": "1999800" - }, - "child_event_ids": "<...>", - "exercise_result": { - "round": { - "number": "10470" - }, - "summary": { - "inputAppRewardAmount": "0E-10", - "inputValidatorRewardAmount": "0E-10", - "inputSvRewardAmount": "0E-10", - "inputAmuletAmount": "224019632.4829619323", - "balanceChanges": "<...>", - "holdingFees": "0.0076103600", - "outputFees": [ - "209.9976000000" - ], - "senderChangeFee": "6.0000000000", - "senderChangeAmount": "223995628.8753515723", - "amuletPrice": "0.0050000000", - "inputValidatorFaucetAmount": "0E-10" - }, - "amuletPaid": "23997.6000000000", - "purchasedTraffic": "00f040b550e04734b36ca89f3d89f77192566bd3b41ead2435b94f9ab32d9eb013ca101220147966510802349805e611d2b88a289decd32ff9dc80268e0e8de5e84661e4f1", - "senderChangeAmulet": "004997a51da7d833e7122ddd0a10800857c0370a4cc28bcb5f4bc554ec79fb42ccca1012209b58a59bb36a8ad1667a23809bebbc090b9cd5a97612a59a0ad05f2edb129c63" - }, - "consuming": false, - "acting_parties": [ - "Cumberland-GasStation-1::12203f6faf84f106d90b87775def701c39734fe26ce5fb01892c73f45ce8fecc8e86" - ], - "interface_id": null - }, - - -``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-scan-api-scan-bulk-data-api-json-758.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-scan-api-scan-bulk-data-api-json-758.mdx deleted file mode 100644 index 553527796..000000000 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-scan-api-scan-bulk-data-api-json-758.mdx +++ /dev/null @@ -1,64 +0,0 @@ -```json - "1220f207fb8c58969e51c99af570f99302ad4f5adf513de0b70dc93e358371f25bc2:2": { - "event_type": "exercised_event", - "event_id": "1220f207fb8c58969e51c99af570f99302ad4f5adf513de0b70dc93e358371f25bc2:2", - "contract_id": "00aec43c48f896adb70550e22a5bd44f290534058aa9fa1ba939aa17f622639d31ca101220b56087539ec11e1b7803b726e1d833ef9685dfdffb7570644b44d1074882e0fd", - "template_id": "979ec710c3ae3a05cb44edf8461a9b4d7dd2053add95664f94fc89e5f18df80f:Splice.AmuletRules:AmuletRules", - "package_name": "splice-amulet", - "choice": "AmuletRules_Transfer", - "choice_argument": { - "transfer": { - "sender": "<...>", - "provider": "<...>", - "inputs": [ - { - "tag": "InputAmulet", - "value": "0020459e63b92ded757b2d271ae527285d97a28edacd15e2ce9d4b9f209167190cca1012203226f23d0e205f4aa9ffbc9445b39c7a3a2d1ea5b94326adbcd94d7f2862a802" - } - ], - "outputs": [ - { - "receiver": "<...>", - "receiverFeeRatio": "0E-10", - "amount": "9600.2116486069", - "lock": null - } - ] - }, - "context": "<...>" - }, - "child_event_ids": "<...>", - "exercise_result": { - "round": { - "number": "10468" - }, - "summary": { - "inputAppRewardAmount": "0E-10", - "inputValidatorRewardAmount": "0E-10", - "inputSvRewardAmount": "0E-10", - "inputAmuletAmount": "223970271.6123234793", - "balanceChanges": "<...>", - "holdingFees": "0E-10", - "outputFees": [ - "102.0021164861" - ], - "senderChangeFee": "6.0000000000", - "senderChangeAmount": "223960563.3985583863", - "amuletPrice": "0.0050000000", - "inputValidatorFaucetAmount": "0E-10" - }, - "createdAmulets": [ - { - "tag": "TransferResultAmulet", - "value": "0062dfd0dd4e814762c67c4f8264d9f752f1e3291535546bc33a7d1a5d748c9a6cca1012204a3e156db434b9b56af11b7d9b4dca8ba182baf6d161c2c35dac328e58bebe5a" - } - ], - "senderChangeAmulet": "0085965dcb855eb24cc28bdf455aa77c4a60d9ffbbc35d9ac43c64f6bf6667448aca10122018a84ec51c73894877b3897cb415b4569520a6ca32eb992fbf98e72155d62cf9" - }, - "consuming": false, - "acting_parties": "<...>", - "interface_id": null - }, - - -``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-scan-api-scan-bulk-data-api-json-839.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-scan-api-scan-bulk-data-api-json-839.mdx deleted file mode 100644 index d5a033c9f..000000000 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-scan-api-scan-bulk-data-api-json-839.mdx +++ /dev/null @@ -1,21 +0,0 @@ -```json - "1220088866741e05b6ee333fad8fb505856ad78e836aa812afb1ca4a00deae5d50b3:7": { - "event_type": "exercised_event", - "event_id": "1220088866741e05b6ee333fad8fb505856ad78e836aa812afb1ca4a00deae5d50b3:7", - "contract_id": "00ec1e0685d269b19064c9ca45294f4d03024988d3d9e3e86e9fd9d4b8b35db8a3ca1012205aa122cbfb63e63310fcfd024daabea1c379d942261033ab34dd1bfc5405e6af", - "template_id": "4e3e0d9cdadf80f4bf8f3cd3660d5287c084c9a29f23c901aabce597d72fd467:Splice.Wallet.Subscriptions:SubscriptionInitialPayment", - "package_name": "splice-wallet-payments", - "choice": "SubscriptionInitialPayment_Collect", - "choice_argument": { - "transferContext": "<...>" - }, - "child_event_ids": "<...>", - "exercise_result": { - "subscription": "<...>", - "subscriptionState": "<...>", - "amulet": "0064d6918d973d69c626a6d9020c625e30199309bcf36460a8e3a4cc0775b44738ca10122090b18bbdc6ac5da9338e547c3f1c310de27184877cb6c4b1daf91c77cfb3356b" - }, - "consuming": true, - "acting_parties": "<...>", - "interface_id": null -``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-scan-api-scan-bulk-data-api-json-950.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-scan-api-scan-bulk-data-api-json-950.mdx deleted file mode 100644 index a8c9e11c5..000000000 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-scan-api-scan-bulk-data-api-json-950.mdx +++ /dev/null @@ -1,64 +0,0 @@ -```json - "1220986fb3a857bc92ca570bc11d7b3b8579cb4afe0e0c2ac3ac920057f2d968b99f:0": { - "event_type": "exercised_event", - "event_id": "1220986fb3a857bc92ca570bc11d7b3b8579cb4afe0e0c2ac3ac920057f2d968b99f:0", - "contract_id": "0062bacc032e3f6191070940cddec7b0d34fdf0f4d8ff49a2e28bbc51462ef9c35ca1012205bb34d8c4609b3172094908c35107e3d774517054efae35b8c6847f4487e95a7", - "template_id": "4646d50cbdec6f088c98ae543da5c973d2d1be3363b9f32eb097d8fdc063ade7:Splice.AmuletRules:AmuletRules", - "package_name": "splice-amulet", - "choice": "AmuletRules_CreateTransferPreapproval", - "choice_argument": { - "context": { - "amuletRules": "0062bacc032e3f6191070940cddec7b0d34fdf0f4d8ff49a2e28bbc51462ef9c35ca1012205bb34d8c4609b3172094908c35107e3d774517054efae35b8c6847f4487e95a7", - "context": "<...>" - }, - "inputs": [ - { - "tag": "InputAmulet", - "value": "005b5fb07cdf97f2cc32190d0a5cc80176bb20161e581987848ac93c31a07d9932ca101220e3a7885db04643c34edb10fe11a0418810ba881d072c9b40a24a4106aa875a7d" - } - ], - "receiver": "<...>", - "provider": "<...>", - "expiresAt": "2025-05-28T19:19:09.285322Z" - }, - "child_event_ids": "<...>", - "exercise_result": { - "transferPreapprovalCid": "00361db2d2b07253f64deaa7c8db4319625227c27b97143c1b279cdc6294d5cb97ca101220d1c8f06741b5b99477861410e4d4bc460a207af3ea7fa179e903c78846b227e2", - "transferResult": { - "round": { - "number": "32" - }, - "summary": { - "inputAppRewardAmount": "0E-10", - "inputValidatorRewardAmount": "0E-10", - "inputSvRewardAmount": "0E-10", - "inputAmuletAmount": "253917.5244126799", - "balanceChanges": [ - [ - "digitalasset-validator1-1::1220e6ee4d3f5387c9210ce50a46b3c4906335bae0083bb1dcc2819d4b52e178ec7e", - { - "changeToInitialAmountAsOfRoundZero": "-61.3199997000", - "changeToHoldingFeesRate": "0E-10" - } - ] - ], - "holdingFees": "0E-10", - "outputFees": [ - "6.0000000000" - ], - "senderChangeFee": "6.0000000000", - "senderChangeAmount": "253856.2044129799", - "amuletPrice": "0.0050000000", - "inputValidatorFaucetAmount": "0E-10" - }, - "createdAmulets": "<...>", - "senderChangeAmulet": "00fe4c85fc36780c61281ffa37679a4580fe33df727e5614185e8aacde1bcd491eca101220b7e8a17df7ec6598d5b5d5b240513805cdbc31404b0fcef2309763237e7245d9" - }, - "amuletPaid": "49.3199997000" - }, - "consuming": false, - "acting_parties": "<...>", - "interface_id": null - }, - -``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-scan-api-scan-cc-reference-data-api-json-24.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-scan-api-scan-cc-reference-data-api-json-24.mdx deleted file mode 100644 index 3e67231b1..000000000 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-scan-api-scan-cc-reference-data-api-json-24.mdx +++ /dev/null @@ -1,6 +0,0 @@ -```json - { - "dso_party_id": "DSO::122084177677350389dd0710d6516f700a33fe3488c5f2702dffef6d36e1dedcbfc17" - } - -``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-scan-api-scan-current-state-api-json-25.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-scan-api-scan-current-state-api-json-25.mdx deleted file mode 100644 index 0cbdc155a..000000000 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-scan-api-scan-current-state-api-json-25.mdx +++ /dev/null @@ -1,14 +0,0 @@ -```json - { - "traffic_status": { - "actual": { - "total_consumed": 0, - "total_limit": 6000000 - }, - "target": { - "total_purchased": 6000000 - } - } - } - -``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-scan-api-scan-current-state-api-json-50.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-scan-api-scan-current-state-api-json-50.mdx deleted file mode 100644 index 48486ed99..000000000 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-scan-api-scan-current-state-api-json-50.mdx +++ /dev/null @@ -1,7 +0,0 @@ -```json - { - "cached_open_mining_round_contract_ids": [], - "cached_issuing_round_contract_ids": [] - } - -``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-scan-api-scan-current-state-api-json-59.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-scan-api-scan-current-state-api-json-59.mdx deleted file mode 100644 index ec5fffb73..000000000 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-scan-api-scan-current-state-api-json-59.mdx +++ /dev/null @@ -1,63 +0,0 @@ -```json - { - "time_to_live_in_microseconds": 600000000, - "open_mining_rounds": { - "00dea42d6e8aa5cdd8110564774b740943c2f0d57ecef624f2f9ab881a847f3ebfca1012200109878982101a4f2b8106091bdde79793daf8548662f9962b371adc8c3aa294": { - "contract": { - "template_id": "979ec710c3ae3a05cb44edf8461a9b4d7dd2053add95664f94fc89e5f18df80f:Splice.Round:OpenMiningRound", - "contract_id": "00dea42d6e8aa5cdd8110564774b740943c2f0d57ecef624f2f9ab881a847f3ebfca1012200109878982101a4f2b8106091bdde79793daf8548662f9962b371adc8c3aa294", - "payload": { - "dso": "DSO::122084177677350389dd0710d6516f700a33fe348c5f2702dffef6d36e1dedcbfc17", - "tickDuration": { - "microseconds": "600000000" - }, - "issuingFor": { - "microseconds": "12474000000000" - }, - "amuletPrice": "0.005", - "issuanceConfig": /* ... */, - "opensAt": "2025-02-18T22:18:42.495769Z", - "transferConfigUsd": { - "holdingFee": { - "rate": "0.0000190259" - }, - /* other configuration */ - }, - "targetClosesAt": "2025-02-18T22:38:42.495769Z", - "round": { - "number": "20790" - } - }, - /* other contract metadata */ - }, - "domain_id": "global-domain::122084177677350389dd0710d6516f700a33fe348c5f2702dffef6d36e1dedcbfc17" - }, - /* other open rounds; there are usually 3 */ - }, - "issuing_mining_rounds": { - "00f15ce85311175cc62acab235d768f5c8b1e02247a1d0e4c54635fc2b43726262ca101220cc210224ad72ee4a71ae887732898f0f1db81e530b3817e75500ebe5a8a4f7a6": { - "contract": { - "template_id": "979ec710c3ae3a05cb44edf8461a9b4d7dd2053add95664f94fc89e5f18df80f:Splice.Round:IssuingMiningRound", - "contract_id": "00f15ce85311175cc62acab235d768f5c8b1e02247a1d0e4c54635fc2b43726262ca101220cc210224ad72ee4a71ae887732898f0f1db81e530b3817e75500ebe5a8a4f7a6", - "payload": { - "dso": "DSO::122084177677350389dd0710d6516f700a33fe348c5f2702dffef6d36e1dedcbfc17", - "optIssuancePerValidatorFaucetCoupon": "324.0134341208", - "issuancePerFeaturedAppRewardCoupon": "100.0", - "opensAt": "2025-02-18T22:29:35.850299Z", - "issuancePerSvRewardCoupon": "0.4058853374", - "targetClosesAt": "2025-02-18T22:49:35.850299Z", - "issuancePerUnfeaturedAppRewardCoupon": "0.6", - "round": { - "number": "20788" - }, - "issuancePerValidatorRewardCoupon": "0.2" - }, - /* other contract metadata */ - }, - "domain_id": "global-domain::122084177677350389dd0710d6516f700a33fe348c5f2702dffef6d36e1dedcbfc17" - }, - /* any other issuing rounds */ - } - } - -``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-scan-api-scan-global-synchronizer-connectivity-api-json-110.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-scan-api-scan-global-synchronizer-connectivity-api-json-110.mdx deleted file mode 100644 index 06e8629e6..000000000 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-scan-api-scan-global-synchronizer-connectivity-api-json-110.mdx +++ /dev/null @@ -1,36 +0,0 @@ -```json - { - "validator_licenses": [ - /* many similar records */, - { - "template_id": "979ec710c3ae3a05cb44edf8461a9b4d7dd2053add95664f94fc89e5f18df80f:Splice.ValidatorLicense:ValidatorLicense", - "contract_id": "00e17d6e36499b656f8e248c31f18130e00db30332820b6b91da9f222049f3d078ca101220d189c2482b5018eae7c656561bf201a54deb276f81e8a0d715b7305d3a03abc3", - "payload": { - "dso": "DSO::122084177677350389dd0710d6516f700a33fe348c5f2702dffef6d36e1dedcbfc17", - "sponsor": "Digital-Asset-2::1220dcf294bffd10439167f7460b1b6926b7a87d3237b748c7de6d7367fad3e33b20", - "lastActiveAt": "2025-01-23T12:48:21.220193Z", - "validator": "digitalasset-testValidator-1::1220167abbb792b81e5fb1dc45311f32eb9d796c46a5100a1cd446979176f699e117", - "faucetState": { - "firstReceivedFor": { - "number": "17087" - }, - "lastReceivedFor": { - "number": "17122" - }, - "numCouponsMissed": "0" - }, - "metadata": { - "lastUpdatedAt": "2025-01-23T07:03:50.820769Z", - "version": "0.3.6", - "contactPoint": "sv-support@example.com" - } - }, - "created_event_blob": "CgMyLjESwgYKRQDhfW42SZtlb44kjDHxgTDgDbMDMoILa5HanyIgSfPQeMoQEiDRicJIK1AY6ufGVlYb8gGlTesnb4HooNcVtzBdOgOrwxINc3BsaWNlLWFtdWxldBpuCkA5NzllYzcxMGMzYWUzYTA1Y2I0NGVkZjg0NjFhOWI0ZDdkZDIwNTNhZGQ5NTY2NGY5NGZjODllNWYxOGRmODBmEgZTcGxpY2USEFZhbGlkYXRvckxpY2Vuc2UaEFZhbGlkYXRvckxpY2Vuc2UilQNqkgMKZgpkOmJkaWdpdGFsYXNzZXQtdGVzdFZhbGlkYXRvci0xOjoxMjIwMTY3YWJiYjc5MmI4MWU1ZmIxZGM0NTMxMWYzMmViOWQ3OTZjNDZhNTEwMGExY2Q0NDY5NzkxNzZmNjk5ZTExNwpZClc6VURpZ2l0YWwtQXNzZXQtMjo6MTIyMGRjZjI5NGJmZmQxMDQzOTE2N2Y3NDYwYjFiNjkyNmI3YTg3ZDMyMzdiNzQ4YzdkZTZkNzM2N2ZhZDNlMzNiMjAKTQpLOklEU086OjEyMjA4NDE3NzY3NzM1MDM4OWRkMDcxMGQ2NTE2ZjcwMGEzM2ZlMzQ4YzVmMjcwMmRmZmVmNmQzNmUxZGVkY2JmYzE3CioKKFImCiRqIgoMCgpqCAoGCgQY/ooCCgwKCmoICgYKBBjEiwIKBAoCGAAKQQo/Uj0KO2o5CgsKCSmhJ1o2WiwGAAoJCgdCBTAuMy42Ch8KHUIbc3Ytc3VwcG9ydEBkaWdpdGFsYXNzZXQuY29tCg8KDVILCgkpYWtnBl8sBgAqSURTTzo6MTIyMDg0MTc3Njc3MzUwMzg5ZGQwNzEwZDY1MTZmNzAwYTMzZmUzNDhjNWYyNzAyZGZmZWY2ZDM2ZTFkZWRjYmZjMTcyYmRpZ2l0YWxhc3NldC10ZXN0VmFsaWRhdG9yLTE6OjEyMjAxNjdhYmJiNzkyYjgxZTVmYjFkYzQ1MzExZjMyZWI5ZDc5NmM0NmE1MTAwYTFjZDQ0Njk3OTE3NmY2OTllMTE3OWFrZwZfLAYAQioKJgokCAESIBhgA7BpKZodv42OaTYfxCqk4WQhgRJ+scPIQtmbh96gEB4=", - "created_at": "2025-01-23T12:48:21.220193Z" - }, - /* many similar records */, - ], - "next_page_token": 6033 - } - -``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-scan-api-scan-global-synchronizer-connectivity-api-json-149.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-scan-api-scan-global-synchronizer-connectivity-api-json-149.mdx deleted file mode 100644 index 9b095f28b..000000000 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-scan-api-scan-global-synchronizer-connectivity-api-json-149.mdx +++ /dev/null @@ -1,7 +0,0 @@ -```json - { - "validator_licenses": [], - "next_page_token": null - } - -``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-scan-api-scan-global-synchronizer-connectivity-api-json-164.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-scan-api-scan-global-synchronizer-connectivity-api-json-164.mdx deleted file mode 100644 index 6de2e2390..000000000 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-scan-api-scan-global-synchronizer-connectivity-api-json-164.mdx +++ /dev/null @@ -1,6 +0,0 @@ -```json - { - "participant_id": "PAR::validator-runbook::1220e92bbc9d80cb6e283184017b307b9f44f23d32d7d195cdbcac033ae91eac2f28" - } - -``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-scan-api-scan-global-synchronizer-connectivity-api-json-24.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-scan-api-scan-global-synchronizer-connectivity-api-json-24.mdx deleted file mode 100644 index 4ea32185a..000000000 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-scan-api-scan-global-synchronizer-connectivity-api-json-24.mdx +++ /dev/null @@ -1,22 +0,0 @@ -```json - { - "scans": [ - { - "domainId": "global-domain::122084177677350389dd0710d6516f700a33fe348c5f2702dffef6d36e1dedcbfc17", - "scans": [ - /* several scans */, - { - "publicUrl": "https://scan.sv.dev.global.canton.network.digitalasset.com", - "svName": "DA-Helm-Test-Node" - }, - /* several other scans */, - { - "publicUrl": "https://scan.sv-1.dev.global.canton.network.sync.global", - "svName": "Global-Synchronizer-Foundation" - } - ] - } - ] - } - -``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-scan-api-scan-global-synchronizer-connectivity-api-json-58.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-scan-api-scan-global-synchronizer-connectivity-api-json-58.mdx deleted file mode 100644 index b92898411..000000000 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-scan-api-scan-global-synchronizer-connectivity-api-json-58.mdx +++ /dev/null @@ -1,28 +0,0 @@ -```json - { - "domainSequencers": [ - { - "domainId": "global-domain::122084177677350389dd0710d6516f700a33fe348c5f2702dffef6d36e1dedcbfc17", - "sequencers": [ - /* several sequencers */, - { - "migrationId": 4, - "id": "SEQ::DA-Helm-Test-Node::122054dda14cc07dbf8cd56b392263c73b10630c0040f185b737ee5526c8d479ffab", - "url": "https://sequencer-4.sv.dev.global.canton.network.digitalasset.com", - "svName": "DA-Helm-Test-Node", - "availableAfter": "2024-11-29T15:25:05.771558Z" - }, - /* several other sequencers */, - { - "migrationId": 4, - "id": "SEQ::Global-Synchronizer-Foundation::1220408be05ce20b9f7023ec1cad8af61f0280fd30a050ccf052660da2adf35549ed", - "url": "https://sequencer-4.sv-1.dev.global.canton.network.sync.global", - "svName": "Global-Synchronizer-Foundation", - "availableAfter": "2024-12-02T13:30:27.774745Z" - } - ] - } - ] - } - -``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-scan-api-scan-global-synchronizer-operations-api-json-22.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-scan-api-scan-global-synchronizer-operations-api-json-22.mdx deleted file mode 100644 index a136cad43..000000000 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-scan-api-scan-global-synchronizer-operations-api-json-22.mdx +++ /dev/null @@ -1,15 +0,0 @@ -```json - { - "validatorsReceivedFaucets": [ - { - "validator": "digitalasset-testValidator-1::12201bca369bee8df7a32ee53c6433d437396c9f69c269a1bb51383c0a279ca90626", - "numRoundsCollected": 36, - "numRoundsMissed": 0, - "firstCollectedInRound": 19830, - "lastCollectedInRound": 19865 - }, - /* similar structures for the other two validators */ - ] - } - -``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-scan-api-scan-global-synchronizer-operations-api-json-50.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-scan-api-scan-global-synchronizer-operations-api-json-50.mdx deleted file mode 100644 index 38ac9572a..000000000 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-scan-api-scan-global-synchronizer-operations-api-json-50.mdx +++ /dev/null @@ -1,15 +0,0 @@ -```json - { - "sv_user": "bUfFRpl2tEfZBB7wzIo9iRNGTj8wMeIn@clients", - "sv_party_id": "DA-Helm-Test-Node::12201094994818f3b4a165f4b391736a9c2f7c5f4ee926b5a3179cc224fe47cc92f3", - "dso_party_id": "DSO::122084177677350389dd0710d6516f700a33fe348c5f2702dffef6d36e1dedcbfc17", - "voting_threshold": 11, - "latest_mining_round": /* OpenMiningRound Daml contract */, - "amulet_rules": /* AmuletRules Daml contract */, - "dso_rules": /* DsoRules Daml contract */, - "sv_node_states": [ - /* several SvNodeState contracts, one for each SV */ - ] - } - -``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-token-standard-index-json-187.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-token-standard-index-json-187.mdx deleted file mode 100644 index 5e674e97c..000000000 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-token-standard-index-json-187.mdx +++ /dev/null @@ -1,22 +0,0 @@ -```json - { - "filtersByParty": { - "$A_PARTY": { - "cumulative": [ - { - "identifierFilter": { - "InterfaceFilter": { - "value": { - "interfaceId": "$AN_INTERFACE_ID", - "includeInterfaceView": true, - "includeCreatedEventBlob": true - } - } - } - } - ] - } - } - } - -``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-token-standard-index-json-237.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-token-standard-index-json-237.mdx deleted file mode 100644 index d63ad54f9..000000000 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-token-standard-index-json-237.mdx +++ /dev/null @@ -1,22 +0,0 @@ -```json - { - "filtersByParty": { - "$A_PARTY": { - "cumulative": [ - { - "identifierFilter": { - "InterfaceFilter": { - "value": { - "interfaceId": "$AN_INTERFACE_ID", - "includeInterfaceView": true, - "includeCreatedEventBlob": true - } - } - } - } - ] - } - } - } - -``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-token-standard-index-json-267.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-token-standard-index-json-267.mdx deleted file mode 100644 index 4934dc047..000000000 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-app-dev-token-standard-index-json-267.mdx +++ /dev/null @@ -1,12 +0,0 @@ -```json - { - "identifierFilter": { - "WildcardFilter": { - "value": { - "includeCreatedEventBlob": true - } - } - } - } - -``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-background-tokenomics-feat-app-act-marker-tokenomics-bash-79.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-background-tokenomics-feat-app-act-marker-tokenomics-bash-79.mdx deleted file mode 100644 index 009d9e1a7..000000000 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-background-tokenomics-feat-app-act-marker-tokenomics-bash-79.mdx +++ /dev/null @@ -1,28 +0,0 @@ -```bash - curl "http://$lapiParticipant/v2/state/active-contracts" \ - "$jwtToken" "application/json" \ - --data-raw '{ - "filter": { - "filtersByParty": { - "'$holderPartyId'": { - "cumulative": - [ - { - "identifierFilter": { - "InterfaceFilter": { - "value": { - "interfaceId": "'7804375fe5e4c6d5afe067bd314c42fe0b7d005a1300019c73154dd939da4dda:Splice.Api.FeaturedAppRightV1:FeaturedAppRight'", - "includeInterfaceView": true, - "includeCreatedEventBlob": false - } - } - } - } - ]} - } - }, - "verbose": false, - "activeAtOffset":"'$latestOffset'" - }' - -``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-deployment-configuration-none-49.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-deployment-configuration-none-49.mdx deleted file mode 100644 index da6a77fcd..000000000 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-deployment-configuration-none-49.mdx +++ /dev/null @@ -1,6 +0,0 @@ -``` - def main() { - logger.info(s"Participant id from bootstrap script: ${participant.id}") - } - -``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-deployment-configuration-none-51.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-deployment-configuration-none-51.mdx new file mode 100644 index 000000000..713070ff5 --- /dev/null +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-deployment-configuration-none-51.mdx @@ -0,0 +1,5 @@ +``` +def main() { + logger.info(s"Participant id from bootstrap script: ${participant.id}") +} +``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-deployment-configuration-yaml-68.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-deployment-configuration-yaml-68.mdx deleted file mode 100644 index 59e5d4003..000000000 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-deployment-configuration-yaml-68.mdx +++ /dev/null @@ -1,6 +0,0 @@ -```yaml - additionalEnvVars: - - name: ADDITIONAL_CONFIG_EXAMPLE - value: canton.example.key=value - -``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-deployment-configuration-yaml-70.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-deployment-configuration-yaml-70.mdx new file mode 100644 index 000000000..992cffae0 --- /dev/null +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-deployment-configuration-yaml-70.mdx @@ -0,0 +1,5 @@ +```yaml +additionalEnvVars: + - name: ADDITIONAL_CONFIG_EXAMPLE + value: canton.example.key=value +``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-deployment-console-access-bash-166.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-deployment-console-access-bash-166.mdx index c746e8d1f..6b499dd36 100644 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-deployment-console-access-bash-166.mdx +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-deployment-console-access-bash-166.mdx @@ -1,4 +1,3 @@ ```bash kubectl debug "${POD_NAME}" --image "$(kubectl get pod "${POD_NAME}" -o json | jq -re '.spec.containers[0].image')" -i -t -- bash - ``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-deployment-console-access-bash-174.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-deployment-console-access-bash-174.mdx index 11b516883..05d3306e8 100644 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-deployment-console-access-bash-174.mdx +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-deployment-console-access-bash-174.mdx @@ -3,5 +3,4 @@ $ apt-get install -y vim $ vim console.conf # paste in the config from above $ /app/bin/canton -v -c console.conf - ``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-deployment-console-access-none-104.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-deployment-console-access-none-104.mdx index e8a6bc3ae..815638e60 100644 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-deployment-console-access-none-104.mdx +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-deployment-console-access-none-104.mdx @@ -1,20 +1,19 @@ ``` - canton { - remote-sequencers { - sequencer { - public-api { - port = 5008 - address = localhost - } - admin-api { - port = 5009 - address = localhost - } - } - } - features.enable-preview-commands = yes - features.enable-testing-commands = yes - features.enable-repair-commands = yes - } - +canton { + remote-sequencers { + sequencer { + public-api { + port = 5008 + address = localhost + } + admin-api { + port = 5009 + address = localhost + } + } + } + features.enable-preview-commands = yes + features.enable-testing-commands = yes + features.enable-repair-commands = yes +} ``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-deployment-console-access-none-136.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-deployment-console-access-none-136.mdx index a0e550960..7130cdd7c 100644 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-deployment-console-access-none-136.mdx +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-deployment-console-access-none-136.mdx @@ -1,16 +1,15 @@ ``` - canton { - remote-mediators { - mediator { - admin-api { - port = 5007 - address = localhost - } - } - } - features.enable-preview-commands = yes - features.enable-testing-commands = yes - features.enable-repair-commands = yes - } - +canton { + remote-mediators { + mediator { + admin-api { + port = 5007 + address = localhost + } + } + } + features.enable-preview-commands = yes + features.enable-testing-commands = yes + features.enable-repair-commands = yes +} ``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-deployment-console-access-none-40.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-deployment-console-access-none-40.mdx index adc6085b5..0d633e893 100644 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-deployment-console-access-none-40.mdx +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-deployment-console-access-none-40.mdx @@ -1,21 +1,20 @@ ``` - canton { - remote-participants { - participant { - admin-api { - port = 5002 - address = localhost - } - ledger-api { - port = 5001 - address = localhost - } - token = "" - } - } - features.enable-preview-commands = yes - features.enable-testing-commands = yes - features.enable-repair-commands = yes - } - +canton { + remote-participants { + participant { + admin-api { + port = 5002 + address = localhost + } + ledger-api { + port = 5001 + address = localhost + } + token = "" + } + } + features.enable-preview-commands = yes + features.enable-testing-commands = yes + features.enable-repair-commands = yes +} ``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-deployment-console-access-none-71.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-deployment-console-access-none-71.mdx index 910e2156b..264f84bbe 100644 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-deployment-console-access-none-71.mdx +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-deployment-console-access-none-71.mdx @@ -1,21 +1,20 @@ ``` - canton { - remote-participants { - participant { - admin-api { - port = 5002 - address = participant - } - ledger-api { - port = 5001 - address = participant - } - token = "" - } - } - features.enable-preview-commands = yes - features.enable-testing-commands = yes - features.enable-repair-commands = yes - } - +canton { + remote-participants { + participant { + admin-api { + port = 5002 + address = participant + } + ledger-api { + port = 5001 + address = participant + } + token = "" + } + } + features.enable-preview-commands = yes + features.enable-testing-commands = yes + features.enable-repair-commands = yes +} ``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-deployment-console-access-parsed-literal-126.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-deployment-console-access-parsed-literal-126.mdx new file mode 100644 index 000000000..34ce65633 --- /dev/null +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-deployment-console-access-parsed-literal-126.mdx @@ -0,0 +1,3 @@ +```bash +docker run -it --rm --network host -v $(pwd)/console.conf:/app/app.conf |docker_repo_prefix|/canton:|version_literal| --console +``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-deployment-console-access-parsed-literal-154.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-deployment-console-access-parsed-literal-154.mdx new file mode 100644 index 000000000..34ce65633 --- /dev/null +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-deployment-console-access-parsed-literal-154.mdx @@ -0,0 +1,3 @@ +```bash +docker run -it --rm --network host -v $(pwd)/console.conf:/app/app.conf |docker_repo_prefix|/canton:|version_literal| --console +``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-deployment-console-access-parsed-literal-63.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-deployment-console-access-parsed-literal-63.mdx new file mode 100644 index 000000000..34ce65633 --- /dev/null +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-deployment-console-access-parsed-literal-63.mdx @@ -0,0 +1,3 @@ +```bash +docker run -it --rm --network host -v $(pwd)/console.conf:/app/app.conf |docker_repo_prefix|/canton:|version_literal| --console +``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-deployment-console-access-parsed-literal-94.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-deployment-console-access-parsed-literal-94.mdx new file mode 100644 index 000000000..9063f845c --- /dev/null +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-deployment-console-access-parsed-literal-94.mdx @@ -0,0 +1,3 @@ +```bash +docker run -it --rm --network splice-validator -v $(pwd)/console.conf:/app/app.conf |docker_repo_prefix|/canton:|version_literal| --console +``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-deployment-console-access-text-23.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-deployment-console-access-text-23.mdx deleted file mode 100644 index a72df7620..000000000 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-deployment-console-access-text-23.mdx +++ /dev/null @@ -1,3 +0,0 @@ -```text - _____ _ -``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-deployment-observability-validator-health-yaml-22.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-deployment-observability-validator-health-yaml-22.mdx deleted file mode 100644 index 7f6ede1d6..000000000 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-deployment-observability-validator-health-yaml-22.mdx +++ /dev/null @@ -1,4 +0,0 @@ -```yaml - kubectl exec -n -- curl -v https://localhost:5003/api/validator/readyz - -``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-deployment-observability-validator-health-yaml-28.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-deployment-observability-validator-health-yaml-28.mdx deleted file mode 100644 index 31daafd6f..000000000 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-deployment-observability-validator-health-yaml-28.mdx +++ /dev/null @@ -1,4 +0,0 @@ -```yaml - docker exec -- curl -v https://localhost:5003/api/validator/livez - -``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-deployment-traffic-json-94.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-deployment-traffic-json-94.mdx index cdea26537..cb2dce6bc 100644 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-deployment-traffic-json-94.mdx +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-deployment-traffic-json-94.mdx @@ -1,15 +1,13 @@ ```json - "fees": { - "baseRateTrafficLimits": { - "burstAmount": "400000", - "burstWindow": { - "microseconds": "1200000000" - } - }, - "extraTrafficPrice": "60.0", - "readVsWriteScalingFactor": "4", - "minTopupAmount": "200000" +"fees": { + "baseRateTrafficLimits": { + "burstAmount": "400000", + "burstWindow": { + "microseconds": "1200000000" } - - + }, + "extraTrafficPrice": "60.0", + "readVsWriteScalingFactor": "4", + "minTopupAmount": "200000" +} ``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-deployment-traffic-parsed-literal-129.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-deployment-traffic-parsed-literal-129.mdx new file mode 100644 index 000000000..c065008bf --- /dev/null +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-deployment-traffic-parsed-literal-129.mdx @@ -0,0 +1,3 @@ +```bash +curl -X POST --header "Content-Type: application/json" -d "{\"cached_open_mining_round_contract_ids\":[], \"cached_issuing_round_contract_ids\":[]}" |gsf_scan_url|/api/scan/v0/open-and-issuing-mining-rounds | jq ".open_mining_rounds | values[] | .contract.payload | {round, amuletPrice}" +``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-deployment-traffic-parsed-literal-88.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-deployment-traffic-parsed-literal-88.mdx new file mode 100644 index 000000000..102beb59e --- /dev/null +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-deployment-traffic-parsed-literal-88.mdx @@ -0,0 +1,3 @@ +```bash +curl -X POST --header "Content-Type: application/json" -d "{}" |gsf_scan_url|/api/scan/v0/amulet-rules | jq ".amulet_rules_update.contract.payload.configSchedule.initialValue.decentralizedSynchronizer.fees" +``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-faq-text-129.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-faq-text-129.mdx deleted file mode 100644 index 52c73f5ae..000000000 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-faq-text-129.mdx +++ /dev/null @@ -1,20 +0,0 @@ -```text - canton { - participants { - participant1 { - http-ledger-api { - address = 0.0.0.0 - port = 10010 - port-file = "./json.port" - path-prefix = "my-prefix" - websocket-config { - http-list-max-elements-limit = 1000, - http-list-wait-time = 2s, - } - daml-definitions-service-enabled = true - } - } - } - } - -``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-faq-text-64.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-faq-text-64.mdx deleted file mode 100644 index dd1ddeb3b..000000000 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-faq-text-64.mdx +++ /dev/null @@ -1,15 +0,0 @@ -```text - 2025-07-10T14:39:43.155Z [⋮] INFO - c.d.c.p.a.s.c.CommandSubmissionServiceImpl:participant=aliceParticipant (1e2d6bf54d150e230fd0c7f348707bf6---) - Phase 1 started: Submitting commands for interpretation: Commands( - commandId = org.lfdecentralizedtrust.splice.wallet.tap_92d9ffae4bd90068a15dad747559ed641572f057e3beb03f2a9b024f388bdc20, - submissionId = 0a3e62aa-c4e7-44ba-ad8a-fdbd0e55b9e9, - userId = alice_validator_user-b7e18d55, - actAs = alice-validatorb7e18d55-1::12204bfd2aa7..., - readAs = alice__wallet__user-b7e18d55__tc0::12204bfd2aa7..., - submittedAt = 2025-07-10T14:39:43.154021Z, - ledgerEffectiveTime = 1970-01-01T01:11:10Z, - deduplicationPeriod = (duration=PT24H), - synchronizerId = global-domain::12203755b6a7..., - ... - ). - -``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-faq-text-81.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-faq-text-81.mdx deleted file mode 100644 index 937192a18..000000000 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-faq-text-81.mdx +++ /dev/null @@ -1,25 +0,0 @@ -```text - 2025-07-10T14:39:43.202Z [⋮] DEBUG - c.d.c.s.t.TrafficStateController:participant=aliceParticipant/synchronizerId=global-domain::12203755b6a7 (1e2d6bf54d150e230fd0c7f348707bf6---) - Computed following cost for submission request using topology at 1970-01-01T01:11:10.000177Z: EventCostDetails( - cost multiplier = 4, - group to members size = MediatorGroupRecipient(group = 0) -> 1, - envelopes cost details = Seq( - EnvelopeCostDetails(write cost = 1541, read cost = 0, final cost = 1541, recipients = MediatorGroupRecipient(group = 0)), - EnvelopeCostDetails( - write cost = 137, - read cost = 0, - final cost = 137, - recipients = Seq(MemberRecipient(PAR::aliceValidator::12204bfd2aa7...), MediatorGroupRecipient(group = 0), MemberRecipient(PAR::sv1::1220c1e24991...)) - ), - EnvelopeCostDetails(write cost = 1904, read cost = 0, final cost = 1904, recipients = MemberRecipient(PAR::aliceValidator::12204bfd2aa7...)), - EnvelopeCostDetails(write cost = 2509, read cost = 2, final cost = 2511, recipients = Seq(MemberRecipient(PAR::aliceValidator::12204bfd2aa7...), MemberRecipient(PAR::sv1::1220c1e24991...))) - ), - event cost = 6093 - ) - 2025-07-10T14:39:43.414Z [⋮] DEBUG - c.d.c.s.t.TrafficStateController:participant=aliceParticipant/synchronizerId=global-domain::12203755b6a7 (1e2d6bf54d150e230fd0c7f348707bf6---) - Computed following cost for submission request using topology at 1970-01-01T01:11:10.000179Z: EventCostDetails( - cost multiplier = 4, - group to members size = MediatorGroupRecipient(group = 0) -> 1, - envelopes cost details = EnvelopeCostDetails(write cost = 651, read cost = 0, final cost = 651, recipients = MediatorGroupRecipient(group = 0)), - event cost = 651 - ) - -``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-release-notes-yaml-192.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-release-notes-yaml-192.mdx deleted file mode 100644 index 1280c6e7a..000000000 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-release-notes-yaml-192.mdx +++ /dev/null @@ -1,6 +0,0 @@ -```yaml - - name: ADDITIONAL_CONFIG_VALIDATOR_MIGRATION_RESTORE - value: | - canton.validator-apps.validator_backend.restore-from-migration-dump = "/domain-upgrade-dump/domain_migration_dump.json" - -``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-1021.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-1033.mdx similarity index 99% rename from docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-1021.mdx rename to docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-1033.mdx index 507154a05..f395f45b4 100644 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-1021.mdx +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-1033.mdx @@ -1,4 +1,3 @@ ```bash curl https://scan.sv-1./api/scan/v0/scans | jq -r '.scans.[].scans.[].publicUrl' - ``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-301.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-302.mdx similarity index 99% rename from docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-301.mdx rename to docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-302.mdx index 7f60d3790..ae84484c4 100644 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-301.mdx +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-302.mdx @@ -6,5 +6,4 @@ "--from-literal=client-secret=${SV_CLIENT_SECRET}" \ "--from-literal=audience=${OIDC_AUTHORITY_LEDGER_API_AUDIENCE}" "--from-literal=scope=${OIDC_AUTHORITY_LEDGER_API_SCOPE}" - ``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-313.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-314.mdx similarity index 99% rename from docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-313.mdx rename to docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-314.mdx index 65afd3561..3b98758af 100644 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-313.mdx +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-314.mdx @@ -6,5 +6,4 @@ "--from-literal=client-secret=${VALIDATOR_CLIENT_SECRET}" \ "--from-literal=audience=${OIDC_AUTHORITY_LEDGER_API_AUDIENCE}" \ "--from-literal=scope=${OIDC_AUTHORITY_LEDGER_API_SCOPE}" - ``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-325.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-326.mdx similarity index 99% rename from docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-325.mdx rename to docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-326.mdx index edf4e473c..acd9d1948 100644 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-325.mdx +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-326.mdx @@ -10,5 +10,4 @@ kubectl create --namespace sv secret generic splice-app-cns-ui-auth \ "--from-literal=url=${OIDC_AUTHORITY_URL}" \ "--from-literal=client-id=${CNS_UI_CLIENT_ID}" - ``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-380.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-381.mdx similarity index 99% rename from docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-380.mdx rename to docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-381.mdx index 4c1087bd6..bb53d6ee2 100644 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-380.mdx +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-381.mdx @@ -2,5 +2,4 @@ kubectl create --namespace sv secret generic cometbft-keys \ "--from-file=node_key.json=node_key.json" \ "--from-file=priv_validator_key.json=priv_validator_key.json" - ``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-38.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-39.mdx similarity index 62% rename from docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-38.mdx rename to docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-39.mdx index 8e29a9598..fa32187f8 100644 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-38.mdx +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-39.mdx @@ -1,4 +1,4 @@ ```bash export MIGRATION_ID=0 - + export SERIAL_ID=0 ``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-500.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-507.mdx similarity index 99% rename from docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-500.mdx rename to docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-507.mdx index 96c4fbe32..ba2f19a1f 100644 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-500.mdx +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-507.mdx @@ -11,6 +11,4 @@ kubectl create secret generic apps-pg-secret \ --from-literal=postgresPassword=${POSTGRES_PASSWORD_APPS} \ -n sv - - ``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-55.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-55.mdx new file mode 100644 index 000000000..32872456d --- /dev/null +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-55.mdx @@ -0,0 +1,15 @@ +```bash +# Generate the keypair +openssl ecparam -name prime256v1 -genkey -noout -out sv-keys.pem + +# Encode the keys +public_key_base64=$(openssl ec -in sv-keys.pem -pubout -outform DER 2>/dev/null | base64 | tr -d "\n") +private_key_base64=$(openssl pkcs8 -topk8 -nocrypt -in sv-keys.pem -outform DER 2>/dev/null | base64 | tr -d "\n") + +# Output the keys +echo "public-key = \"$public_key_base64\"" +echo "private-key = \"$private_key_base64\"" + +# Clean up +rm sv-keys.pem +``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-616.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-627.mdx similarity index 99% rename from docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-616.mdx rename to docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-627.mdx index 1304f48e6..75541c543 100644 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-616.mdx +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-627.mdx @@ -2,5 +2,4 @@ kubectl create secret --namespace sv generic splice-app-sv-key \ --from-literal=public=YOUR_PUBLIC_KEY \ --from-literal=private=YOUR_PRIVATE_KEY - ``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-713.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-725.mdx similarity index 99% rename from docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-713.mdx rename to docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-725.mdx index 8f52fa80e..0cd0fd9ef 100644 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-713.mdx +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-725.mdx @@ -17,6 +17,4 @@ sv-web-ui-67bfbdfc77-wwvp9 2/2 Running 0 13m validator-app-667445fdfc-rcztx 2/2 Running 0 10m wallet-web-ui-648f86f9f9-lffz5 2/2 Running 0 10m - - ``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-823.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-835.mdx similarity index 98% rename from docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-823.mdx rename to docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-835.mdx index a9c05934e..22ca7394e 100644 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-823.mdx +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-835.mdx @@ -1,4 +1,3 @@ ```bash grpcurl : grpc.health.v1.Health/Check - ``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-832.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-844.mdx similarity index 96% rename from docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-832.mdx rename to docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-844.mdx index 4224e8764..f54f66414 100644 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-832.mdx +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-844.mdx @@ -2,6 +2,4 @@ { "status": "SERVING" } - - ``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-849.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-849.mdx deleted file mode 100644 index 916bc2b40..000000000 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-849.mdx +++ /dev/null @@ -1,7 +0,0 @@ -```bash - helm repo add istio https://istio-release.storage.googleapis.com/charts - helm repo update - helm install istio-base istio/base -n istio-system --set defaults.global.istioNamespace=cluster-ingress --wait - helm install istiod istio/istiod -n cluster-ingress --set global.istioNamespace="cluster-ingress" --set meshConfig.accessLogFile="/dev/stdout" --wait - -``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-861.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-861.mdx index c0901575b..edf844d21 100644 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-861.mdx +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-861.mdx @@ -1,5 +1,6 @@ ```bash - kubectl create ns cluster-ingress - - + helm repo add istio https://istio-release.storage.googleapis.com/charts + helm repo update + helm install istio-base istio/base -n istio-system --set defaults.global.istioNamespace=cluster-ingress --wait + helm install istiod istio/istiod -n cluster-ingress --set global.istioNamespace="cluster-ingress" --set meshConfig.accessLogFile="/dev/stdout" --wait ``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-873.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-873.mdx new file mode 100644 index 000000000..cdb8c4d36 --- /dev/null +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-873.mdx @@ -0,0 +1,3 @@ +```bash + kubectl create ns cluster-ingress +``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-902.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-914.mdx similarity index 98% rename from docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-902.mdx rename to docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-914.mdx index d962210a0..b72c53147 100644 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-902.mdx +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-914.mdx @@ -1,5 +1,3 @@ ```bash helm install istio-ingress istio/gateway -n cluster-ingress -f istio-gateway-values.yaml - - ``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-91.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-93.mdx similarity index 94% rename from docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-91.mdx rename to docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-93.mdx index e6a8e642b..1f2c9ccce 100644 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-91.mdx +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-93.mdx @@ -1,5 +1,3 @@ ```bash kubectl create ns sv - - ``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-978.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-990.mdx similarity index 97% rename from docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-978.mdx rename to docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-990.mdx index 3e814df27..763142d5e 100644 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-978.mdx +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-990.mdx @@ -1,5 +1,3 @@ ```bash kubectl apply -f gateways.yaml -n cluster-ingress - - ``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-none-1135.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-none-1135.mdx new file mode 100644 index 000000000..43f5adae5 --- /dev/null +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-none-1135.mdx @@ -0,0 +1,11 @@ +``` +- name: ADDITIONAL_CONFIG_FOLLOW_AMULET_CONVERSION_RATE_FEED + value: | + canton.sv-apps.sv.follow-amulet-conversion-rate-feed { + publisher = "publisher::namespace" + accepted-range = { + min = 0.01 + max = 100.0 + } + } +``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-none-1145.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-none-1145.mdx deleted file mode 100644 index 1c1da1272..000000000 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-none-1145.mdx +++ /dev/null @@ -1,12 +0,0 @@ -``` - - name: ADDITIONAL_CONFIG_FOLLOW_AMULET_CONVERSION_RATE_FEED - value: | - canton.sv-apps.sv.follow-amulet-conversion-rate-feed { - publisher = "publisher::namespace" - accepted-range = { - min = 0.01 - max = 100.0 - } - } - -``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-parsed-literal-1005.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-parsed-literal-1005.mdx new file mode 100644 index 000000000..6f1f1439d --- /dev/null +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-parsed-literal-1005.mdx @@ -0,0 +1,3 @@ +```bash +helm install cluster-ingress-sv |helm_repo_prefix|/splice-cluster-ingress-runbook -n sv --version ${CHART_VERSION} -f splice-node/examples/sv-helm/sv-cluster-ingress-values.yaml +``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-parsed-literal-354.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-parsed-literal-354.mdx new file mode 100644 index 000000000..2ec24926a --- /dev/null +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-parsed-literal-354.mdx @@ -0,0 +1,9 @@ +```bash +# Create a folder to store the config +mkdir cometbft +cd cometbft +# Init the node +docker run --rm -v "$(pwd):/init" |docker_repo_prefix|/cometbft:|version| init --home /init +# Read the node id and keep a note of it for the deployment +docker run --rm -v "$(pwd):/init" |docker_repo_prefix|/cometbft:|version| show-node-id --home /init +``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-parsed-literal-468.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-parsed-literal-468.mdx new file mode 100644 index 000000000..39f3a1a93 --- /dev/null +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-parsed-literal-468.mdx @@ -0,0 +1,15 @@ +```haskell +@ participant.synchronizers.config("global") +res1: Option[SynchronizerConnectionConfig] = Some( + value = SynchronizerConnectionConfig( + synchronizer = Synchronizer 'global', + sequencerConnections = SequencerConnections( + connections = Sequencer 'DefaultSequencer' -> GrpcSequencerConnection(sequencerAlias = Sequencer 'DefaultSequencer', endpoints = http://global-domain-0-sequencer:5008), + sequencer trust threshold = 1, + submission request amplification = SubmissionRequestAmplification(factor = 1, patience = 10s) + ), + manualConnect = false, + timeTracker = SynchronizerTimeTrackerConfig(minObservationDuration = 30m) + ) +) +``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-parsed-literal-528.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-parsed-literal-528.mdx new file mode 100644 index 000000000..b3fe3e03e --- /dev/null +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-parsed-literal-528.mdx @@ -0,0 +1,6 @@ +```bash +helm install sequencer-pg |helm_repo_prefix|/splice-postgres -n sv --version ${CHART_VERSION} -f splice-node/examples/sv-helm/postgres-values-sequencer.yaml --wait +helm install mediator-pg |helm_repo_prefix|/splice-postgres -n sv --version ${CHART_VERSION} -f splice-node/examples/sv-helm/postgres-values-mediator.yaml --wait +helm install participant-pg |helm_repo_prefix|/splice-postgres -n sv --version ${CHART_VERSION} -f splice-node/examples/sv-helm/postgres-values-participant.yaml --wait +helm install apps-pg |helm_repo_prefix|/splice-postgres -n sv --version ${CHART_VERSION} -f splice-node/examples/sv-helm/postgres-values-apps.yaml --wait +``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-parsed-literal-691.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-parsed-literal-691.mdx new file mode 100644 index 000000000..e77d0fe86 --- /dev/null +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-parsed-literal-691.mdx @@ -0,0 +1,4 @@ +```bash +helm install global-domain-${SERIAL_ID}-cometbft |helm_repo_prefix|/splice-cometbft -n sv --version ${CHART_VERSION} -f splice-node/examples/sv-helm/cometbft-values.yaml --wait +helm install global-domain-${SERIAL_ID} |helm_repo_prefix|/splice-global-domain -n sv --version ${CHART_VERSION} -f splice-node/examples/sv-helm/global-domain-values.yaml --wait +``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-parsed-literal-701.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-parsed-literal-701.mdx new file mode 100644 index 000000000..d18e73e01 --- /dev/null +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-parsed-literal-701.mdx @@ -0,0 +1,3 @@ +```bash +helm install participant |helm_repo_prefix|/splice-participant -n sv --version ${CHART_VERSION} -f splice-node/examples/sv-helm/participant-values.yaml --wait +``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-parsed-literal-707.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-parsed-literal-707.mdx new file mode 100644 index 000000000..092af72c9 --- /dev/null +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-parsed-literal-707.mdx @@ -0,0 +1,5 @@ +```bash +helm install sv |helm_repo_prefix|/splice-sv-node -n sv --version ${CHART_VERSION} -f splice-node/examples/sv-helm/sv-values.yaml -f ${SV_IDENTITIES_FILE} -f ${UI_CONFIG_VALUES_FILE} --wait +helm install scan |helm_repo_prefix|/splice-scan -n sv --version ${CHART_VERSION} -f splice-node/examples/sv-helm/scan-values.yaml -f ${UI_CONFIG_VALUES_FILE} --wait +helm install validator |helm_repo_prefix|/splice-validator -n sv --version ${CHART_VERSION} -f splice-node/examples/sv-helm/validator-values.yaml -f splice-node/examples/sv-helm/sv-validator-values.yaml -f ${UI_CONFIG_VALUES_FILE} --wait +``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-parsed-literal-715.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-parsed-literal-715.mdx new file mode 100644 index 000000000..ece4170c5 --- /dev/null +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-parsed-literal-715.mdx @@ -0,0 +1,3 @@ +```bash +helm install info |helm_repo_prefix|/splice-info -n sv --version ${CHART_VERSION} -f splice-node/examples/sv-helm/info-values.yaml +``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-text-366.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-text-366.mdx new file mode 100644 index 000000000..33a288b4b --- /dev/null +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-text-366.mdx @@ -0,0 +1,4 @@ +```text +cometbft/config/node_key.json +cometbft/config/priv_validator_key.json +``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-text-74.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-text-74.mdx new file mode 100644 index 000000000..2c13dd4b9 --- /dev/null +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-text-74.mdx @@ -0,0 +1,4 @@ +```text +public-key = "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE1eb+JkH2QFRCZedO/P5cq5d2+yfdwP+jE+9w3cT6BqfHxCd/PyA0mmWMePovShmf97HlUajFuN05kZgxvjcPQw==" +private-key = "MEECAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQcEJzAlAgEBBCBsFuFa7Eumkdg4dcf/vxIXgAje2ULVz+qTKP3s/tHqKw==" +``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-yaml-440.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-yaml-440.mdx new file mode 100644 index 000000000..2b6e4af9f --- /dev/null +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-yaml-440.mdx @@ -0,0 +1,5 @@ +```yaml +synchronizer: + connectionType: "trust-single" + url: "SEQUENCER_PUBLIC_URI" # synchronizers.current.sequencerPublicUrl from sv-values.yaml +``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-yaml-441.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-yaml-441.mdx deleted file mode 100644 index c9a8978db..000000000 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-yaml-441.mdx +++ /dev/null @@ -1,6 +0,0 @@ -```yaml - additionalEnvVars: - - name: ADDITIONAL_CONFIG_NO_BFT_SEQUENCER_CONNECTION - value: "canton.validator-apps.validator_backend.disable-sv-validator-bft-sequencer-connection = true" - -``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-yaml-448.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-yaml-448.mdx new file mode 100644 index 000000000..2793d433b --- /dev/null +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-yaml-448.mdx @@ -0,0 +1,5 @@ +```yaml +additionalEnvVars: + - name: ADDITIONAL_CONFIG_NO_BFT_SEQUENCER_CONNECTION + value: "canton.validator-apps.validator_backend.disable-sv-validator-bft-sequencer-connection = true" +``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-yaml-449.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-yaml-449.mdx deleted file mode 100644 index b224db62d..000000000 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-yaml-449.mdx +++ /dev/null @@ -1,6 +0,0 @@ -```yaml - additionalEnvVars: - - name: ADDITIONAL_CONFIG_NO_BFT_SEQUENCER_CONNECTION - value: "canton.sv-apps.sv.bft-sequencer-connection = false" - -``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-yaml-456.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-yaml-456.mdx new file mode 100644 index 000000000..ca810c852 --- /dev/null +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-yaml-456.mdx @@ -0,0 +1,5 @@ +```yaml +additionalEnvVars: + - name: ADDITIONAL_CONFIG_NO_BFT_SEQUENCER_CONNECTION + value: "canton.sv-apps.sv.bft-sequencer-connection = false" +``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-yaml-870.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-yaml-870.mdx deleted file mode 100644 index 8d7d110ee..000000000 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-yaml-870.mdx +++ /dev/null @@ -1,15 +0,0 @@ -```yaml - apiVersion: cert-manager.io/v1 - kind: Certificate - metadata: - name: cn-certificate - namespace: cluster-ingress - spec: - dnsNames: - - '*.sv.YOUR_HOSTNAME' - issuerRef: - name: letsencrypt-production - secretName: cn-net-tls - - -``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-yaml-882.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-yaml-882.mdx new file mode 100644 index 000000000..daa79ffcf --- /dev/null +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-yaml-882.mdx @@ -0,0 +1,13 @@ +```yaml +apiVersion: cert-manager.io/v1 +kind: Certificate +metadata: + name: cn-certificate + namespace: cluster-ingress +spec: + dnsNames: + - '*.sv.YOUR_HOSTNAME' + issuerRef: + name: letsencrypt-production + secretName: cn-net-tls +``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-yaml-888.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-yaml-888.mdx deleted file mode 100644 index 06961ab0c..000000000 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-yaml-888.mdx +++ /dev/null @@ -1,12 +0,0 @@ -```yaml - service: - loadBalancerIP: "YOUR_CLUSTER_IP" - loadBalancerSourceRanges: - - "35.194.81.56/32" - - "35.198.147.95/32" - - "35.189.40.124/32" - - "34.132.91.75/32" - - - -``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-yaml-900.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-yaml-900.mdx new file mode 100644 index 000000000..170696e86 --- /dev/null +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-yaml-900.mdx @@ -0,0 +1,9 @@ +```yaml +service: + loadBalancerIP: "YOUR_CLUSTER_IP" + loadBalancerSourceRanges: + - "35.194.81.56/32" + - "35.198.147.95/32" + - "35.189.40.124/32" + - "34.132.91.75/32" +``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-yaml-914.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-yaml-914.mdx deleted file mode 100644 index 39164c30c..000000000 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-yaml-914.mdx +++ /dev/null @@ -1,62 +0,0 @@ -```yaml - apiVersion: networking.istio.io/v1alpha3 - kind: Gateway - metadata: - name: cn-http-gateway - namespace: cluster-ingress - spec: - selector: - app: istio-ingress - istio: ingress - servers: - - port: - number: 443 - name: https - protocol: HTTPS - tls: - mode: SIMPLE - credentialName: cn-net-tls # name of the secret created above - hosts: - - "*.YOUR_HOSTNAME" - - "YOUR_HOSTNAME" - - port: - number: 80 - name: http - protocol: HTTP - tls: - httpsRedirect: true - hosts: - - "*.YOUR_HOSTNAME" - - "YOUR_HOSTNAME" - --- - apiVersion: networking.istio.io/v1alpha3 - kind: Gateway - metadata: - name: cn-apps-gateway - namespace: cluster-ingress - spec: - selector: - app: istio-ingress - istio: ingress - servers: - - port: - number: 26016 - name: cometbft-0-1-6-gw - protocol: TCP - hosts: - # We cannot really distinguish TCP traffic by hostname, so configuring to "*" to be explicit about that - - "*" - - port: - number: 26116 - name: cometbft-1-1-6-gw - protocol: TCP - hosts: - - "*" - - port: - number: 26216 - name: cometbft-2-1-6-gw - protocol: TCP - hosts: - - "*" - -``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-yaml-926.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-yaml-926.mdx new file mode 100644 index 000000000..a4810b2d4 --- /dev/null +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-yaml-926.mdx @@ -0,0 +1,61 @@ +```yaml +apiVersion: networking.istio.io/v1alpha3 +kind: Gateway +metadata: + name: cn-http-gateway + namespace: cluster-ingress +spec: + selector: + app: istio-ingress + istio: ingress + servers: + - port: + number: 443 + name: https + protocol: HTTPS + tls: + mode: SIMPLE + credentialName: cn-net-tls # name of the secret created above + hosts: + - "*.YOUR_HOSTNAME" + - "YOUR_HOSTNAME" + - port: + number: 80 + name: http + protocol: HTTP + tls: + httpsRedirect: true + hosts: + - "*.YOUR_HOSTNAME" + - "YOUR_HOSTNAME" +--- +apiVersion: networking.istio.io/v1alpha3 +kind: Gateway +metadata: + name: cn-apps-gateway + namespace: cluster-ingress +spec: + selector: + app: istio-ingress + istio: ingress + servers: + - port: + number: 26016 + name: cometbft-0-1-6-gw + protocol: TCP + hosts: + # We cannot really distinguish TCP traffic by hostname, so configuring to "*" to be explicit about that + - "*" + - port: + number: 26116 + name: cometbft-1-1-6-gw + protocol: TCP + hosts: + - "*" + - port: + number: 26216 + name: cometbft-2-1-6-gw + protocol: TCP + hosts: + - "*" +``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-logical-synchronizer-upgrade-none-118.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-logical-synchronizer-upgrade-none-118.mdx new file mode 100644 index 000000000..7ea0a5903 --- /dev/null +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-logical-synchronizer-upgrade-none-118.mdx @@ -0,0 +1,9 @@ +``` +rollForwardLsu: + newPhysicalSynchronizerSerial: NEW_PHYSICAL_SYNCHRONIZER_SERIAL # Must be agreed between SVs, usually existing (broken) synchronizer serial + 1 + newPhysicalSynchronizerProtocolVersion: NEW_PHYSICAL_SYNCHRONIZER_PROTOCOL_VERSION # Must be agreed between SVs, usually existing (broken) synchronizer serial + 1 + exportTimes: + topologyExportTime: TOPOLOGY_EXPORT_TIME # Must be agreed between SVs + trafficExportTime: TRAFFIC_EXPORT_TIME # Must be agreed between SVs + upgradeTime: UPGRADE_TIME # Must be agreed between SVs +``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-logical-synchronizer-upgrade-none-142.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-logical-synchronizer-upgrade-none-142.mdx new file mode 100644 index 000000000..a29f59101 --- /dev/null +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-logical-synchronizer-upgrade-none-142.mdx @@ -0,0 +1,5 @@ +``` +rollForwardLsu: + enabled: true + upgradeTime: UPGRADE_TIME # Must be agreed between SVs, optional, if not specified it is taken from an existing LSU announcement which should usually be sufficient. +``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-logical-synchronizer-upgrade-none-87.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-logical-synchronizer-upgrade-none-87.mdx new file mode 100644 index 000000000..65bbe222b --- /dev/null +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-logical-synchronizer-upgrade-none-87.mdx @@ -0,0 +1,5 @@ +``` +- name: ADDITIONAL_CONFIG_SEQUENCER_LSU_MAX_SEQUENCING_TIME + value: | + canton.sequencers.sequencer.parameters.lsu-repair.global-max-sequencing-time-exclusive=MAX_SEQUENCING_TIME +``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-bash-482.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-bash-482.mdx index 7a47122cf..aea9dcbd1 100644 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-bash-482.mdx +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-bash-482.mdx @@ -19,5 +19,4 @@ --begin-migration-id 3 \ --weight 5000 \ --already-minted-weight 0 - ``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-bash-507.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-bash-507.mdx index 989bca73f..f6db517c1 100644 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-bash-507.mdx +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-bash-507.mdx @@ -25,5 +25,4 @@ --begin-migration-id 3 \ --weight 5000 \ --already-minted-weight 0 - ``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-bash-538.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-bash-538.mdx index 76c4be71a..d8698ba54 100644 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-bash-538.mdx +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-bash-538.mdx @@ -20,5 +20,4 @@ --begin-migration-id 3 \ --weight 5000 \ --already-minted-weight 0 - ``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-bash-564.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-bash-564.mdx index d5b556bda..58cf3b4b1 100644 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-bash-564.mdx +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-bash-564.mdx @@ -21,6 +21,4 @@ --weight 5000 \ --already-minted-weight 0 \ --rebuild-cache - - ``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-bash-683.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-bash-683.mdx index e0e1b44f1..abd42b190 100644 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-bash-683.mdx +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-bash-683.mdx @@ -1,5 +1,4 @@ ```bash --begin-record-time=t0 --end-record-time=t1 \ --weight=10000 --already-minted-weight=0 - ``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-bash-697.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-bash-697.mdx deleted file mode 100644 index 0af166fd0..000000000 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-bash-697.mdx +++ /dev/null @@ -1,5 +0,0 @@ -```bash - --begin-record-time=t0 --end-record-time=t1 \ - --weight=10000 --already-minted-weight=10000 - -``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-bash-704.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-bash-704.mdx deleted file mode 100644 index 772e197b5..000000000 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-bash-704.mdx +++ /dev/null @@ -1,5 +0,0 @@ -```bash - --begin-record-time=t1 --end-record-time=t2 \ - --weight=10000 --already-minted-weight=0 - -``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-bash-718.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-bash-718.mdx deleted file mode 100644 index 3995f45f9..000000000 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-bash-718.mdx +++ /dev/null @@ -1,5 +0,0 @@ -```bash - --begin-record-time=t0 --end-record-time=t1 \ - --weight=20000 --already-minted-weight=20000 - -``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-bash-725.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-bash-725.mdx deleted file mode 100644 index bbd5764ae..000000000 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-bash-725.mdx +++ /dev/null @@ -1,5 +0,0 @@ -```bash - --begin-record-time=t1 --end-record-time=t2 \ - --weight=20000 --already-minted-weight=10000 - -``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-bash-732.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-bash-732.mdx deleted file mode 100644 index 56c40df7b..000000000 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-bash-732.mdx +++ /dev/null @@ -1,5 +0,0 @@ -```bash - --begin-record-time=t2 --end-record-time=t3 \ - --weight=20000 --already-minted-weight=0 - -``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-parsed-literal-171.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-parsed-literal-171.mdx new file mode 100644 index 000000000..28b82b84c --- /dev/null +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-parsed-literal-171.mdx @@ -0,0 +1,10 @@ +```bash +executing batch AmuletOperationBatch( + nonMergeOperations = AmuletOperation( + from = tid:80afc8ae63defcb7a636d2cd23e38c0d, + op = CO_CompleteAcceptedTransfer(ContractId(00ebc78671f4b5f688d8245a1e0c6c72f378c0c90c7ca574a3c3a615489f3ca15dca1012208d8f9eb3ffe0d0a05b207e2bc3fb3f3e7d31c0b594eaefcfd486411386de775c)), + priority = Low + ), + priority = Low +) with inputs Vector(InputAmulet(ContractId(002ace5687dc7f82cb0ca80d2b349a39b1127ffd01db2cd7172053fef88308e6faca1012202646cd3cbb31c78314c3ef22657d4ba6f7f096e90167dcd0d71eba565fa35844))) +``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-parsed-literal-193.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-parsed-literal-193.mdx new file mode 100644 index 000000000..d82009852 --- /dev/null +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-parsed-literal-193.mdx @@ -0,0 +1,3 @@ +```bash +Request (tid:43fd8ad332ca637b0c7c1509b2bdf715) com.daml.ledger.api.v2.CommandService/SubmitAndWaitForTransactionTree to participant-1:5001: sending request +``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-parsed-literal-204.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-parsed-literal-204.mdx new file mode 100644 index 000000000..3fe422764 --- /dev/null +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-parsed-literal-204.mdx @@ -0,0 +1,5 @@ +```bash +resource.labels.container_name="sequencer" +jsonPayload.logger_name="c.d.c.s.t.TrafficConsumedManager:sequencer=sequencer" +jsonPayload."trace-id"="43fd8ad332ca637b0c7c1509b2bdf715" +``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-parsed-literal-222.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-parsed-literal-222.mdx new file mode 100644 index 000000000..e0277087a --- /dev/null +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-parsed-literal-222.mdx @@ -0,0 +1,5 @@ +```bash +Consumed 16147 for PAR::sender::... +Consumed 711 for PAR::receiver::... +Consumed 1450 for PAR::sender::... +``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-sql-344.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-sql-344.mdx index e067617b5..55581cf23 100644 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-sql-344.mdx +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-sql-344.mdx @@ -1,4 +1,3 @@ ```sql - select distinct(reward_party) from dso_acs_store where reward_round < UPGRADE_ROUND; - +select distinct(reward_party) from dso_acs_store where reward_round < UPGRADE_ROUND; ``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-sql-359.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-sql-359.mdx index 4be761167..afe5aeb2b 100644 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-sql-359.mdx +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-sql-359.mdx @@ -1,10 +1,9 @@ ```sql - select m.template_id_qualified_name, m.reward_party, min(m.reward_round) from ( - select c.reward_party, c.reward_round, c.template_id_qualified_name from dso_acs_store c - join dso_acs_store r - on r.mining_round = c.reward_round - and r.mining_round > UPGRADE_ROUND - and r.template_id_qualified_name = 'Splice.Round:ClosedMiningRound' - ) as m group by (template_id_qualified_name, reward_party); - +select m.template_id_qualified_name, m.reward_party, min(m.reward_round) from ( + select c.reward_party, c.reward_round, c.template_id_qualified_name from dso_acs_store c + join dso_acs_store r + on r.mining_round = c.reward_round + and r.mining_round > UPGRADE_ROUND + and r.template_id_qualified_name = 'Splice.Round:ClosedMiningRound' +) as m group by (template_id_qualified_name, reward_party); ``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-text-665.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-text-665.mdx deleted file mode 100644 index 5fbdde39d..000000000 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-text-665.mdx +++ /dev/null @@ -1,4 +0,0 @@ -```text - t0 t1 t2 t3 - | m₁ (w=10K) | m₂ (w=10K) | m₃ (w=20K) | -``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-yaml-296.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-yaml-296.mdx index 4021c7c7a..566e8ebe7 100644 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-yaml-296.mdx +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-yaml-296.mdx @@ -1,7 +1,6 @@ ```yaml - additionalEnvVars: - - name: ADDITIONAL_CONFIG_PAUSED_EXPIRY_TRIGGER - value: | - canton.sv-apps.sv.automation.paused-triggers += "org.lfdecentralizedtrust.splice.sv.automation.delegatebased.ExpireRewardCouponsTrigger" - +additionalEnvVars: + - name: ADDITIONAL_CONFIG_PAUSED_EXPIRY_TRIGGER + value: | + canton.sv-apps.sv.automation.paused-triggers += "org.lfdecentralizedtrust.splice.sv.automation.delegatebased.ExpireRewardCouponsTrigger" ``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-yaml-309.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-yaml-309.mdx index 2e6d588bb..fdc3a11cb 100644 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-yaml-309.mdx +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-yaml-309.mdx @@ -1,9 +1,8 @@ ```yaml - additionalEnvVars: - - name: ADDITIONAL_CONFIG_IGNORED_EXPIRY_PARTY_IDS - value: | - canton.sv-apps.sv { - automation.ignored-expired-rewards-party-ids = [ "party1::12345", "party2:57890" ] - } - +additionalEnvVars: + - name: ADDITIONAL_CONFIG_IGNORED_EXPIRY_PARTY_IDS + value: | + canton.sv-apps.sv { + automation.ignored-expired-rewards-party-ids = [ "party1::12345", "party2:57890" ] + } ``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-yaml-821.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-yaml-821.mdx index d451ad18c..72d2758d2 100644 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-yaml-821.mdx +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-yaml-821.mdx @@ -1,6 +1,5 @@ ```yaml - # Example to trigger re-ingestion of the ACS store for the first time - persistence: - acsStoreDescriptorUserVersion: 1 - +# Example to trigger re-ingestion of the ACS store for the first time +persistence: + acsStoreDescriptorUserVersion: 1 ``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-yaml-829.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-yaml-829.mdx index 8b0111a87..d743da9c8 100644 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-yaml-829.mdx +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-yaml-829.mdx @@ -1,6 +1,5 @@ ```yaml - # Example to trigger re-ingestion of the ACS store for the second time - persistence: - acsStoreDescriptorUserVersion: 2 - +# Example to trigger re-ingestion of the ACS store for the second time +persistence: + acsStoreDescriptorUserVersion: 2 ``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-yaml-838.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-yaml-838.mdx index d7aa3d35b..52a0d5a61 100644 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-yaml-838.mdx +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-yaml-838.mdx @@ -1,6 +1,5 @@ ```yaml - # Example to trigger re-ingestion of the TxLog store for the first time - persistence: - txLogStoreDescriptorUserVersion: 1 - +# Example to trigger re-ingestion of the TxLog store for the first time +persistence: + txLogStoreDescriptorUserVersion: 1 ``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-yaml-846.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-yaml-846.mdx index 0b83a5fb8..60ac18d52 100644 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-yaml-846.mdx +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-yaml-846.mdx @@ -1,6 +1,5 @@ ```yaml - # Example to trigger re-ingestion of the TxLog store for the second time - persistence: - txLogStoreDescriptorUserVersion: 2 - +# Example to trigger re-ingestion of the TxLog store for the second time +persistence: + txLogStoreDescriptorUserVersion: 2 ``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-yaml-865.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-yaml-865.mdx new file mode 100644 index 000000000..4c075c46d --- /dev/null +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-yaml-865.mdx @@ -0,0 +1,6 @@ +```yaml +# Example to reset the activity ingestion completeness boundary +additionalEnvVars: + - name: ADDITIONAL_CONFIG_ACTIVITY_INGESTION_USER_VERSION + value: canton.scan-apps.scan-app.activity-ingestion-user-version = 1 +``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-yaml-889.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-yaml-889.mdx new file mode 100644 index 000000000..2bea5a6f2 --- /dev/null +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-operations-yaml-889.mdx @@ -0,0 +1,7 @@ +```yaml +additionalEnvVars: + - name: ADDITIONAL_CONFIG_ADDITIONAL_PACKAGES_TO_UNVET + value: | + canton.sv-apps.sv.additional-packages-to-unvet.splice-wallet = ["0.1.16"] + canton.sv-apps.sv.additional-packages-to-unvet.splice-amulet = ["0.1.16", "0.1.17"] +``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-pruning-yaml-62.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-pruning-yaml-62.mdx new file mode 100644 index 000000000..db355ad9b --- /dev/null +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-pruning-yaml-62.mdx @@ -0,0 +1,6 @@ +```yaml +additionalEnvVars: + - name: ADDITIONAL_CONFIG_PRUNING_ACS_COMMITMENTS + value: | + canton.participants.participant.parameters.stores.safe-to-prune-commitment-state = "all" +``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-restore-bash-104.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-restore-bash-102.mdx similarity index 97% rename from docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-restore-bash-104.mdx rename to docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-restore-bash-102.mdx index 80ccf6229..30ff10207 100644 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-restore-bash-104.mdx +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-restore-bash-102.mdx @@ -1,5 +1,3 @@ ```bash jq '.identities.participant' backup.json > dump.json - - ``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-restore-bash-190.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-restore-bash-190.mdx deleted file mode 100644 index b4f56e392..000000000 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-restore-bash-190.mdx +++ /dev/null @@ -1,4 +0,0 @@ -```bash - data=$(curl -sSLf "https://sv.sv.YOUR_HOSTNAME/api/sv/v0/admin/domain/data-snapshot?timestamp=" -H "authorization: Bearer " -X GET -H "Content-Type: application/json") - -``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-restore-bash-209.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-restore-bash-209.mdx deleted file mode 100644 index 738cd4eab..000000000 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-restore-bash-209.mdx +++ /dev/null @@ -1,4 +0,0 @@ -```bash - id=$(cat identities.json) - -``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-restore-bash-218.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-restore-bash-218.mdx deleted file mode 100644 index 638717394..000000000 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-restore-bash-218.mdx +++ /dev/null @@ -1,4 +0,0 @@ -```bash - echo "$id" "$data" | jq -s add > dump.json - -``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-restore-bash-224.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-restore-bash-224.mdx deleted file mode 100644 index f891ea58b..000000000 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-restore-bash-224.mdx +++ /dev/null @@ -1,4 +0,0 @@ -```bash - kubectl cp dump.json sv/:/domain-upgrade-dump/domain_migration_dump.json - -``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-restore-bash-59.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-restore-bash-57.mdx similarity index 90% rename from docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-restore-bash-59.mdx rename to docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-restore-bash-57.mdx index 1a662f242..786cc86d9 100644 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-restore-bash-59.mdx +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-restore-bash-57.mdx @@ -3,9 +3,8 @@ global-domain-0-cometbft \ global-domain-0-mediator \ global-domain-0-sequencer \ - participant-0 \ + participant \ scan-app \ sv-app \ validator-app - ``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-restore-bash-76.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-restore-bash-74.mdx similarity index 90% rename from docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-restore-bash-76.mdx rename to docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-restore-bash-74.mdx index 9c036b478..22291ab08 100644 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-restore-bash-76.mdx +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-restore-bash-74.mdx @@ -3,9 +3,8 @@ global-domain-0-cometbft \ global-domain-0-mediator \ global-domain-0-sequencer \ - participant-0 \ + participant \ scan-app \ sv-app \ validator-app - ``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-security-bash-110.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-security-bash-110.mdx new file mode 100644 index 000000000..ed57000db --- /dev/null +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-security-bash-110.mdx @@ -0,0 +1,5 @@ +```bash +kubectl create secret --namespace sv generic splice-app-sv-cometbft-governance-key \ + --from-literal=publicKey="$(jq -r .public cometbft-governance-keys.json)" \ + --from-literal=privateKey="$(jq -r .private cometbft-governance-keys.json)" +``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-security-bash-73.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-security-bash-73.mdx new file mode 100644 index 000000000..be3e5b48c --- /dev/null +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-security-bash-73.mdx @@ -0,0 +1,17 @@ +```bash +# Generate the private key +openssl genpkey -algorithm ed25519 -out cometbft-governance-keys.pem + +# Extract and encode the keys +public_key_base64=$(openssl pkey -in cometbft-governance-keys.pem -pubout -outform DER | tail -c 32 | base64 | tr -d "\n") +private_key_base64=$(openssl pkey -in cometbft-governance-keys.pem -outform DER | tail -c 32 | base64 | tr -d "\n") + +echo "{" +# Output the keys +echo " \"publicKey\": \"$public_key_base64\"," +echo " \"privateKey\": \"$private_key_base64\"" +echo "}" + +# Clean up +rm cometbft-governance-keys.pem +``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-security-json-94.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-security-json-94.mdx new file mode 100644 index 000000000..8c83728fa --- /dev/null +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-security-json-94.mdx @@ -0,0 +1,6 @@ +```json +{ + "public": "A9tWyYq/HIJ3B73ym1eIUV8yqnDBligGJUE8463CBUM=", + "private": "FDG16PaSh9hGLu2fXzEHmTECMjSyQuZnEg+w5HKCEtg=" +} +``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-compose-bash-123.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-compose-bash-167.mdx similarity index 100% rename from docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-compose-bash-123.mdx rename to docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-compose-bash-167.mdx diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-compose-bash-131.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-compose-bash-175.mdx similarity index 100% rename from docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-compose-bash-131.mdx rename to docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-compose-bash-175.mdx diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-compose-bash-237.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-compose-bash-281.mdx similarity index 100% rename from docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-compose-bash-237.mdx rename to docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-compose-bash-281.mdx diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-compose-bash-262.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-compose-bash-306.mdx similarity index 100% rename from docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-compose-bash-262.mdx rename to docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-compose-bash-306.mdx diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-compose-yaml-152.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-compose-yaml-152.mdx new file mode 100644 index 000000000..205393577 --- /dev/null +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-compose-yaml-152.mdx @@ -0,0 +1,10 @@ +```yaml + services: + validator: + environment: + JAVA_TOOL_OPTIONS: >- + -Dhttps.proxyHost=your.proxy.host + -Dhttps.proxyPort=your_proxy_port + -Dhttp.nonProxyHosts=localhost|127.0.0.1|*.internal|10.* + +``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-compose-yaml-347.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-compose-yaml-347.mdx new file mode 100644 index 000000000..68e9379fc --- /dev/null +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-compose-yaml-347.mdx @@ -0,0 +1,13 @@ +```yaml + services: + validator: + environment: + - | + ADDITIONAL_CONFIG_AUTO_ACCEPT_TRANSFERS= + canton.validator-apps.validator_backend.auto-accept-transfers { + "" { + from-parties = ["", ""] + } + } + +``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-delegations-bash-201.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-delegations-bash-201.mdx new file mode 100644 index 000000000..9ce39f43a --- /dev/null +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-delegations-bash-201.mdx @@ -0,0 +1,11 @@ +```bash + export LEDGER_API_URL="https://validator.example.com:5003" + export TOKEN="your-auth-token" + export BENEFICIARY_PARTY="beneficiary::1220abcd..." + export DELEGATE_PARTY="validator_operator::1220efgh..." + export DSO_PARTY="DSO::1220ijkl..." + export EXPIRES_AT="2025-12-31T23:59:59Z" + # This could be created by + # export EXPIRES_AT="$(date -u -d '+1 year' '+%Y-%m-%dT%H:%M:%SZ')" + export AMULET_MERGE_LIMIT=10 +``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-delegations-bash-215.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-delegations-bash-215.mdx new file mode 100644 index 000000000..d35814336 --- /dev/null +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-delegations-bash-215.mdx @@ -0,0 +1,22 @@ +```bash + curl -X POST -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \ + --data-raw '{ + "commands": [ + { + "CreateCommand": { + "templateId": "#splice-wallet:Splice.Wallet.MintingDelegation:MintingDelegationProposal", + "createArguments": { + "delegation": { + "beneficiary": "'"$BENEFICIARY_PARTY"'", + "delegate": "'"$DELEGATE_PARTY"'", + "dso": "'"$DSO_PARTY"'", + "expiresAt": "'"$EXPIRES_AT"'", + "amuletMergeLimit": '"$AMULET_MERGE_LIMIT"' + } + } + } + } + ] + }' \ + "$LEDGER_API_URL/v2/commands" +``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-delegations-bash-251.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-delegations-bash-251.mdx new file mode 100644 index 000000000..153d237fd --- /dev/null +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-delegations-bash-251.mdx @@ -0,0 +1,21 @@ +```bash + curl -X POST -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \ + --data-raw '{ + "filter": { + "filtersByParty": { + "'"$BENEFICIARY_PARTY"'": { + "filters": [ + { + "inclusive": { + "templateFilters": [ + {"templateId": "#splice-wallet:Splice.Wallet.MintingDelegation:MintingDelegationProposal"} + ] + } + } + ] + } + } + } + }' \ + "$LEDGER_API_URL/v2/state/active-contracts" +``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-delegations-bash-276.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-delegations-bash-276.mdx new file mode 100644 index 000000000..75cc4a68d --- /dev/null +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-delegations-bash-276.mdx @@ -0,0 +1,21 @@ +```bash + curl -X POST -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \ + --data-raw '{ + "filter": { + "filtersByParty": { + "'"$BENEFICIARY_PARTY"'": { + "filters": [ + { + "inclusive": { + "templateFilters": [ + {"templateId": "#splice-wallet:Splice.Wallet.MintingDelegation:MintingDelegation"} + ] + } + } + ] + } + } + } + }' \ + "$LEDGER_API_URL/v2/state/active-contracts" +``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-delegations-bash-309.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-delegations-bash-309.mdx new file mode 100644 index 000000000..9715a808b --- /dev/null +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-delegations-bash-309.mdx @@ -0,0 +1,18 @@ +```bash + export PROPOSAL_CONTRACT_ID="00abcd1234..." + + curl -X POST -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \ + --data-raw '{ + "commands": [ + { + "ExerciseCommand": { + "templateId": "#splice-wallet:Splice.Wallet.MintingDelegation:MintingDelegationProposal", + "contractId": "'"$PROPOSAL_CONTRACT_ID"'", + "choice": "MintingDelegationProposal_Withdraw", + "choiceArgument": {} + } + } + ] + }' \ + "$LEDGER_API_URL/v2/commands" +``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-bash-137.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-bash-137.mdx index e9a6b2889..6a669bc1a 100644 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-bash-137.mdx +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-bash-137.mdx @@ -1,6 +1,6 @@ ```bash - kubectl create secret generic participant-bootstrap-dump \ - --from-file=content=${PARTICIPANT_BOOTSTRAP_DUMP_FILE} \ - -n validator +.. code-block:: bash + + kubectl create secret generic participant-bootstrap-dump \ ``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-bash-159.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-bash-159.mdx deleted file mode 100644 index 685764d6a..000000000 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-bash-159.mdx +++ /dev/null @@ -1,4 +0,0 @@ -```bash - ./start.sh -s "" -o "" -p -m "" -i "" -P "" -w - -``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-bash-456.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-bash-456.mdx deleted file mode 100644 index 7a8a130be..000000000 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-bash-456.mdx +++ /dev/null @@ -1,5 +0,0 @@ -```bash - curl -sSLf "https://wallet.validator.YOUR_HOSTNAME/api/validator/v0/admin/domain/data-snapshot?timestamp=&force=true" -H "authorization: Bearer " -X GET -H "Content-Type: application/json" > dump_response.json - cat dump_response.json | jq '.data_snapshot' > dump.json - -``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-bash-473.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-bash-473.mdx deleted file mode 100644 index 3989c7a5b..000000000 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-bash-473.mdx +++ /dev/null @@ -1,4 +0,0 @@ -```bash - kubectl cp dump.json validator/:/domain-upgrade-dump/domain_migration_dump.json - -``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-bash-490.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-bash-490.mdx deleted file mode 100644 index 2351437ef..000000000 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-bash-490.mdx +++ /dev/null @@ -1,5 +0,0 @@ -```bash - curl -sSLf "https://wallet.localhost/api/validator/v0/admin/domain/data-snapshot?timestamp=&force=true" -H "authorization: Bearer " -X GET -H "Content-Type: application/json" > dump_response.json - cat dump_response.json | jq '.data_snapshot' > dump.json - -``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-bash-509.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-bash-509.mdx deleted file mode 100644 index 734f40388..000000000 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-bash-509.mdx +++ /dev/null @@ -1,4 +0,0 @@ -```bash - docker run --rm -v "domain-upgrade-dump:/volume" -v "$(pwd):/backup" alpine sh -c "cp /backup/dump.json /volume/domain_migration_dump.json" - -``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-none-230.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-none-230.mdx deleted file mode 100644 index 27afb4d5e..000000000 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-none-230.mdx +++ /dev/null @@ -1,5 +0,0 @@ -``` - val syncId = participant.synchronizers.list_connected().head.synchronizerId - participant.topology.party_to_participant_mappings.list(syncId, filterParticipant = ) - -``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-none-238.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-none-238.mdx deleted file mode 100644 index 9cf885685..000000000 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-none-238.mdx +++ /dev/null @@ -1,5 +0,0 @@ -``` - val participantId = participant.id // ID of the new participant - participant.topology.party_to_participant_mappings.propose(, Seq((participantId, )), store = syncId) - -``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-none-240.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-none-240.mdx new file mode 100644 index 000000000..f5a4bbb35 --- /dev/null +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-none-240.mdx @@ -0,0 +1,4 @@ +``` +val syncId = participant.synchronizers.list_connected().head.synchronizerId +participant.topology.party_to_participant_mappings.list(syncId, filterParticipant = ) +``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-none-248.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-none-248.mdx new file mode 100644 index 000000000..a061a99a2 --- /dev/null +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-none-248.mdx @@ -0,0 +1,4 @@ +``` +val participantId = participant.id // ID of the new participant +participant.topology.party_to_participant_mappings.propose(, Seq((participantId, )), store = syncId) +``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-none-250.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-none-250.mdx deleted file mode 100644 index f324269e8..000000000 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-none-250.mdx +++ /dev/null @@ -1,4 +0,0 @@ -``` - participant.synchronizers.disconnect_all() - -``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-none-260.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-none-260.mdx new file mode 100644 index 000000000..e8513d896 --- /dev/null +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-none-260.mdx @@ -0,0 +1,3 @@ +``` +participant.synchronizers.disconnect_all() +``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-none-264.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-none-264.mdx index ef9abedfb..e690948ed 100644 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-none-264.mdx +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-none-264.mdx @@ -1,4 +1,4 @@ ``` - participant.repair.import_acs("acs_snapshot") + Run from a regular shell (same working directory like the one you started your Canton console from): ``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-none-299.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-none-299.mdx new file mode 100644 index 000000000..aa0c302ad --- /dev/null +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-none-299.mdx @@ -0,0 +1,4 @@ +``` +Missing authorizers: ReferencedAuthorizations(extraKeys = ...) +Rejected transaction ... OwnerToKeyMapping(...) ... due to Not authorized +``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-none-309.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-none-309.mdx index 90ebc961d..d84372230 100644 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-none-309.mdx +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-none-309.mdx @@ -1,33 +1,33 @@ ``` - // replace YOUR_PARTY_ID by the ID of your external party - val partyId = PartyId.tryFromProtoPrimitive("YOUR_PARTY_ID") - val participantId = participant.id - val synchronizerId = participant.synchronizers.id_of("global") - - // generate topology transaction - val partyToParticipant = PartyToParticipant.tryCreate( - partyId = partyId, - threshold = PositiveInt.one, - participants = Seq( - HostingParticipant( - participantId, - ParticipantPermission.Confirmation, - ) - ), - ) - - import com.digitalasset.canton.admin.api.client.commands.TopologyAdminCommands.Write.GenerateTransactions - val topologyTransaction = participant.topology.transactions.generate( - Seq( - GenerateTransactions.Proposal( - partyToParticipant, - TopologyStoreId.Synchronizer(synchronizerId), - ) - ) - ).head - - // Print out the hash that needs to be signed. Note that you need to sign - // the actual bytes the hex string represents not the hex string - topologyTransaction.hash.hash.toHexString + those from the rejected ``OwnerToKeyMapping`` in your participant logs, and replace the + old participant ID with your actual old participant ID: + .. code:: + + val keys = Seq("", "").map(prefix => + participant.keys.public.list().filter(_.publicKey.id.toProtoPrimitive.startsWith(prefix)).head.publicKey) + + val oldParticipantId = ParticipantId.fromProtoPrimitive("", "participant").toOption.get + val otk = OwnerToKeyMapping(member = oldParticipantId, keys = NonEmpty.from(keys).get) + participant.topology.owner_to_key_mappings.propose(otk, force = ForceFlag.AlienMember) + +3. Start the validator app using your original identities dump configuration. + +.. _validator_recover_external_party: + +Recover the Coin balance of an external party ++++++++++++++++++++++++++++++++++++++++++++++ + +For a party relying on external signing, a similar procedure can be +used to recover its coin balance in case the validator originally +hosting it becomes unusable for whatever reason. + +.. warning:: The target validator that you use to host the party after + recovery **must** be a **completely new validator**. An existing validator + may brick completely due to some limitations around party + migrations and there is no way to recover from that at + this point. Recovering a validator from an identities backup does not classify + as a completely new validator here. You must setup it with a completely new identity + and a completely clean database. + This limitation is expected to be lifted in ``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-none-314.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-none-314.mdx new file mode 100644 index 000000000..b6db37f3f --- /dev/null +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-none-314.mdx @@ -0,0 +1,8 @@ +``` +val keys = Seq("", "").map(prefix => + participant.keys.public.list().filter(_.publicKey.id.toProtoPrimitive.startsWith(prefix)).head.publicKey) + +val oldParticipantId = ParticipantId.fromProtoPrimitive("", "participant").toOption.get +val otk = OwnerToKeyMapping(member = oldParticipantId, keys = NonEmpty.from(keys).get) +participant.topology.owner_to_key_mappings.propose(otk, force = ForceFlag.AlienMember) +``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-none-351.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-none-351.mdx index 6f3a9bf5f..4afc08701 100644 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-none-351.mdx +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-none-351.mdx @@ -1,20 +1,20 @@ ``` - // Replace HASH_SIGNATURE_HEXSTRING with the signed topology transaction hash - val signature = Signature.fromExternalSigning(SignatureFormat.Raw, HexString.parseToByteString("HASH_SIGNATURE_HEXSTRING").get, partyId.namespace.fingerprint, SigningAlgorithmSpec.Ed25519) - val topologyTxSignedByParty = SignedTopologyTransaction.create( - topologyTransaction, - NonEmpty(Set, SingleTransactionSignature(topologyTransaction.hash, signature): TopologyTransactionSignature), - isProposal = false, - ProtocolVersion.v34, - ) - val topologyTxSignedByBoth = participant.topology.transactions.sign( - topologyTxSignedByParty, - TopologyStoreId.Synchronizer(synchronizerId), - signedBy = Seq(participantId.namespace.fingerprint) - ) - participant.topology.transactions.load( - topologyTxSignedByBoth, - TopologyStoreId.Synchronizer(synchronizerId), - ) +it on multiple nodes, you will need to adjust this. +.. code:: + + // replace YOUR_PARTY_ID by the ID of your external party + val partyId = PartyId.tryFromProtoPrimitive("YOUR_PARTY_ID") + val participantId = participant.id + val synchronizerId = participant.synchronizers.id_of("global") + + // generate topology transaction + val partyToParticipant = PartyToParticipant.tryCreate( + partyId = partyId, + threshold = PositiveInt.one, + participants = Seq( + HostingParticipant( + participantId, + ParticipantPermission.Confirmation, + ) ``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-none-373.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-none-373.mdx index 92476ec97..9d549ca0d 100644 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-none-373.mdx +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-none-373.mdx @@ -1,20 +1,20 @@ ``` - // The detailed output will slightly vary. Make sure that you see the new participant ID though. - participant.topology.party_to_participant_mappings.list(synchronizerId, filterParty = partyId.filterString) - res36: Seq[topology.ListPartyToParticipantResult] = Vector( - ListPartyToParticipantResult( - context = BaseResult( - storeId = Synchronizer(id = global-domain::122025296c61...), - validFrom = 2025-05-14T10:19:33.534074Z, - validUntil = None, - sequenced = 2025-05-14T10:19:33.534074Z, - operation = Replace, - transactionHash = , - serial = PositiveNumeric(value = 1), - signedBy = Vector(1220b529c1d9...) - ), - item = PartyToParticipant(YOUR_PARTY_ID, PositiveNumeric(1), Vector(HostingParticipant(YOUR_PARTICIPANT_ID..., Submission))) - ) - ) + val topologyTransaction = participant.topology.transactions.generate( + Seq( + GenerateTransactions.Proposal( + partyToParticipant, + TopologyStoreId.Synchronizer(synchronizerId), + ) + ) + ).head + + // Print out the hash that needs to be signed. Note that you need to sign + // the actual bytes the hex string represents not the hex string + topologyTransaction.hash.hash.toHexString + +We'll need the topology transaction and the definitions defined here later again. Either keep your Canton console open or save them. + +The topology transaction hash needs to be signed externally following the +`documentation for external signing `_. ``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-none-405.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-none-405.mdx index 43b6e1c0e..0ab01ad71 100644 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-none-405.mdx +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-none-405.mdx @@ -1,6 +1,6 @@ ``` - participant.synchronizers.disconnect_all() - participant.repair.import_acs("acs_snapshot") - participant.synchronizers.reconnect_all() - + val topologyTxSignedByBoth = participant.topology.transactions.sign( + topologyTxSignedByParty, + TopologyStoreId.Synchronizer(synchronizerId), + signedBy = Seq(participantId.namespace.fingerprint) ``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-none-485.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-none-485.mdx new file mode 100644 index 000000000..0fa00888b --- /dev/null +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-none-485.mdx @@ -0,0 +1,9 @@ +``` +val existingPhysicalSynchronizerId = participant.synchronizers.list_connected().find(_.synchronizerAlias == "global").head.physicalSynchronizerId +participant.synchronizers.perform_manual_lsu( + existingPhysicalSynchronizerId, + newPhysicalSynchronizerId, + upgradeTime = None, + sequencerSuccessors, +) +``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-parsed-literal-268.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-parsed-literal-268.mdx new file mode 100644 index 000000000..14e917255 --- /dev/null +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-parsed-literal-268.mdx @@ -0,0 +1,3 @@ +```bash +curl -sSL --fail-with-body '|gsf_scan_url|/api/scan/v0/acs/YOUR_PARTY_ID' -H 'Content-Type: application/json' | jq -r .acs_snapshot | base64 -d > acs_snapshot +``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-parsed-literal-443.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-parsed-literal-443.mdx new file mode 100644 index 000000000..fe2f10e3f --- /dev/null +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-parsed-literal-443.mdx @@ -0,0 +1,4 @@ +```bash +// Make sure to adjust YOUR_VALID_FROM to the time you got from the previous query and YOUR_PARY_ID +curl -sSL --fail-with-body '|gsf_scan_url|/api/scan/v0/acs/YOUR_PARTY_ID?record_time=YOUR_VALID_FROM' -H 'Content-Type: application/json' | jq -r .acs_snapshot | base64 -d > acs_snapshot +``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-yaml-182.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-yaml-182.mdx deleted file mode 100644 index 12c73bba7..000000000 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-yaml-182.mdx +++ /dev/null @@ -1,6 +0,0 @@ -```yaml - additionalEnvVars: - - name: ADDITIONAL_CONFIG_EXIT_ON_FATAL_FAILURES - value: canton.parameters.exit-on-fatal-failures = false - -``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-yaml-185.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-yaml-185.mdx new file mode 100644 index 000000000..52b0a9fc4 --- /dev/null +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-yaml-185.mdx @@ -0,0 +1,5 @@ +```yaml +additionalEnvVars: + - name: ADDITIONAL_CONFIG_EXIT_ON_FATAL_FAILURES + value: canton.parameters.exit-on-fatal-failures = false +``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-helm-bash-103.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-helm-bash-103.mdx index 44051e142..60300992e 100644 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-helm-bash-103.mdx +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-helm-bash-103.mdx @@ -1,6 +1,6 @@ ```bash - kubectl create secret generic postgres-secrets \ - --from-literal=postgresPassword=${POSTGRES_PASSWORD} \ - -n validator +You can set ``http.nonProxyHosts`` to bypass the proxy for specific target +hosts. Matching hosts will be contacted directly rather than through the +configured proxy. This is useful for services that are reachable on the local ``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-helm-bash-116.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-helm-bash-116.mdx index 62e80fd46..5d38bec4d 100644 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-helm-bash-116.mdx +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-helm-bash-116.mdx @@ -1,6 +1,6 @@ ```bash - kubectl create secret generic splice-app-validator-onboarding-validator \ - "--from-literal=secret=${ONBOARDING_SECRET}" \ - -n validator + resolution is performed, so ``localhost`` and ``127.0.0.1`` are treated as + different names unless you list both. +- An empty value (e.g. ``-Dhttp.nonProxyHosts=``) means "no bypass patterns". ``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-helm-bash-310.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-helm-bash-310.mdx index b84e5a97b..c2c2ed83f 100644 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-helm-bash-310.mdx +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-helm-bash-310.mdx @@ -1,10 +1,10 @@ ```bash - kubectl create --namespace validator secret generic splice-app-validator-ledger-api-auth \ - "--from-literal=ledger-api-user=${VALIDATOR_CLIENT_ID}@clients" \ - "--from-literal=url=${OIDC_AUTHORITY_URL}/.well-known/openid-configuration" \ - "--from-literal=client-id=${VALIDATOR_CLIENT_ID}" \ - "--from-literal=client-secret=${VALIDATOR_CLIENT_SECRET}" \ - "--from-literal=audience=${OIDC_AUTHORITY_LEDGER_API_AUDIENCE}" \ - "--from-literal=scope=${OIDC_AUTHORITY_LEDGER_API_SCOPE}" + e. Save your application settings. +6. Create an Auth0 Application for the CNS web UI. + Repeat all steps described in step 5, with following modifications: + + - In step b, use ``CNS web UI`` as the name of your application. + - In steps c and d, use the URL for your validator's *CNS* UI. + If you're using the ingress configuration of this runbook, that would be ``https://cns.validator.YOUR_HOSTNAME``. ``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-helm-bash-322.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-helm-bash-322.mdx index d17603266..f03956704 100644 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-helm-bash-322.mdx +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-helm-bash-322.mdx @@ -1,10 +1,10 @@ ```bash - kubectl create --namespace validator secret generic splice-app-wallet-ui-auth \ - "--from-literal=url=${OIDC_AUTHORITY_URL}" \ - "--from-literal=client-id=${WALLET_UI_CLIENT_ID}" +It can be found in the Auth0 interface under User Management -> Users -> your user's name -> user_id (a field right under the user's name at the top). - kubectl create --namespace validator secret generic splice-app-cns-ui-auth \ - "--from-literal=url=${OIDC_AUTHORITY_URL}" \ - "--from-literal=client-id=${CNS_UI_CLIENT_ID}" +We will use the environment variables listed in the table below to refer to aspects of your Auth0 configuration: +================================== =========================================================================== +Name Value +---------------------------------- --------------------------------------------------------------------------- +OIDC_AUTHORITY_URL ``https://AUTH0_TENANT_NAME.us.auth0.com`` ``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-helm-bash-451.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-helm-bash-451.mdx index 4a01fbee8..b17ca7185 100644 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-helm-bash-451.mdx +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-helm-bash-451.mdx @@ -1,11 +1,11 @@ ```bash - $ kubectl get pods -n validator - NAMESPACE NAME READY STATUS RESTARTS AGE - validator ans-web-ui-5bf489db78-bdn2j 1/1 Running 0 24m - validator participant-8988dfb54-m9655 1/1 Running 0 26m - validator postgres-0 1/1 Running 0 37m - validator validator-app-f8c74d5dd-zf9j4 1/1 Running 0 24m - validator wallet-web-ui-69d85cdb99-fnj7q 1/1 Running 0 24m +- Replace ``YOUR_VALIDATOR_PARTY_HINT`` with the desired name for your + validator operator party. It must be of the format + ``--``. +- Replace ``YOUR_VALIDATOR_NODE_NAME`` with the name you want your validator node to be represented as on the network. Usually you can use the same value as for your ``validatorPartyHint``. +Finally, please download the UI config values file from +https://github.com/global-synchronizer-foundation/configs/blob/main/configs/ui-config-values.yaml +and add the values from it to your ``standalone-validator-values.yaml``. ``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-helm-bash-514.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-helm-bash-514.mdx index 916bc2b40..3eb15fc8d 100644 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-helm-bash-514.mdx +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-helm-bash-514.mdx @@ -1,7 +1,7 @@ ```bash - helm repo add istio https://istio-release.storage.googleapis.com/charts - helm repo update - helm install istio-base istio/base -n istio-system --set defaults.global.istioNamespace=cluster-ingress --wait - helm install istiod istio/istiod -n cluster-ingress --set global.istioNamespace="cluster-ingress" --set meshConfig.accessLogFile="/dev/stdout" --wait +* ``https://wallet.validator.`` should be routed to service ``wallet-web-ui`` in the ``validator`` namespace +* ``https://wallet.validator./api/validator`` should be routed to ``/api/validator`` at port 5003 of service ``validator-app`` in the ``validator`` namespace +* ``https://cns.validator.`` should be routed to service ``ans-web-ui`` in the ``validator`` namespace +* ``https://cns.validator./api/validator`` should be routed to ``/api/validator`` at port 5003 of service ``validator-app`` in the ``validator`` namespace ``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-helm-bash-526.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-helm-bash-526.mdx index c0901575b..3d3cde3c5 100644 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-helm-bash-526.mdx +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-helm-bash-526.mdx @@ -1,5 +1,5 @@ ```bash - kubectl create ns cluster-ingress - - +Internet ingress configuration is often specific to the network configuration and scenario of the +cluster being configured. To illustrate the basic requirements of a Validator node ingress, we have +provided a Helm chart that configures ingress according to the routes above using Istio, as detailed in the sections below. ``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-helm-bash-567.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-helm-bash-567.mdx index d962210a0..54b21a3d7 100644 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-helm-bash-567.mdx +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-helm-bash-567.mdx @@ -1,5 +1,5 @@ ```bash - helm install istio-ingress istio/gateway -n cluster-ingress -f istio-gateway-values.yaml - - + kind: Certificate + metadata: + name: cn-certificate ``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-helm-bash-611.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-helm-bash-611.mdx index 3ea9717bf..9cd7e629c 100644 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-helm-bash-611.mdx +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-helm-bash-611.mdx @@ -1,5 +1,5 @@ ```bash - kubectl apply -f gateway.yaml -n cluster-ingress - - + namespace: cluster-ingress + spec: + selector: ``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-helm-bash-65.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-helm-bash-65.mdx index b05f5efc8..6abfcd761 100644 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-helm-bash-65.mdx +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-helm-bash-65.mdx @@ -1,4 +1,3 @@ ```bash kubectl create ns validator - ``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-helm-parsed-literal-472.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-helm-parsed-literal-472.mdx new file mode 100644 index 000000000..bc6d47ca5 --- /dev/null +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-helm-parsed-literal-472.mdx @@ -0,0 +1,5 @@ +```bash +helm install postgres |helm_repo_prefix|/splice-postgres -n validator --version ${CHART_VERSION} -f splice-node/examples/sv-helm/postgres-values-validator-participant.yaml --wait +helm install participant |helm_repo_prefix|/splice-participant -n validator --version ${CHART_VERSION} -f splice-node/examples/sv-helm/participant-values.yaml -f splice-node/examples/sv-helm/standalone-participant-values.yaml --wait +helm install validator |helm_repo_prefix|/splice-validator -n validator --version ${CHART_VERSION} -f splice-node/examples/sv-helm/validator-values.yaml -f splice-node/examples/sv-helm/standalone-validator-values.yaml --wait +``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-helm-parsed-literal-657.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-helm-parsed-literal-657.mdx new file mode 100644 index 000000000..b0dbc53c5 --- /dev/null +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-helm-parsed-literal-657.mdx @@ -0,0 +1,3 @@ +```bash +helm install cluster-ingress-validator |helm_repo_prefix|/splice-cluster-ingress-runbook -n validator --version ${CHART_VERSION} -f splice-node/examples/sv-helm/validator-cluster-ingress-values.yaml +``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-helm-yaml-127.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-helm-yaml-127.mdx new file mode 100644 index 000000000..158786809 --- /dev/null +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-helm-yaml-127.mdx @@ -0,0 +1,6 @@ +```yaml +additionalJvmOptions: | + -Dhttps.proxyHost=your.proxy.host + -Dhttps.proxyPort=your_proxy_port + -Dhttp.nonProxyHosts=localhost|127.0.0.1|*.internal|10.* +``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-helm-yaml-535.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-helm-yaml-535.mdx index d15c6499f..dd8681e38 100644 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-helm-yaml-535.mdx +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-helm-yaml-535.mdx @@ -1,15 +1,15 @@ ```yaml - apiVersion: cert-manager.io/v1 - kind: Certificate - metadata: - name: cn-certificate - namespace: cluster-ingress - spec: - dnsNames: - - '*.validator.YOUR_HOSTNAME' - issuerRef: - name: letsencrypt-production - secretName: cn-net-tls +* *cert-manager* must be available in the cluster (See `cert-manager documentation `_) +* *istio* should be installed in the cluster (See `istio documentation `_) +*Note that their deployments are often platform-dependent and good documentations on how to set them up can be found online.* + +**Example of Istio installation:** + +.. code-block:: bash + + helm repo add istio https://istio-release.storage.googleapis.com/charts + helm repo update + helm install istio-base istio/base -n istio-system --set defaults.global.istioNamespace=cluster-ingress --wait ``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-helm-yaml-553.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-helm-yaml-553.mdx index 06961ab0c..4bba621fd 100644 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-helm-yaml-553.mdx +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-helm-yaml-553.mdx @@ -1,12 +1,12 @@ ```yaml - service: - loadBalancerIP: "YOUR_CLUSTER_IP" - loadBalancerSourceRanges: - - "35.194.81.56/32" - - "35.198.147.95/32" - - "35.189.40.124/32" - - "34.132.91.75/32" +Create a `cluster-ingress` namespace: +.. code-block:: bash + kubectl create ns cluster-ingress + +Ensure that there is a cert-manager certificate available in a secret +named ``cn-net-tls``. An example of a suitable certificate +definition: ``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-helm-yaml-576.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-helm-yaml-576.mdx index 5ff9d9ed3..72bcdba7b 100644 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-helm-yaml-576.mdx +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-helm-yaml-576.mdx @@ -1,33 +1,33 @@ ```yaml - apiVersion: networking.istio.io/v1alpha3 - kind: Gateway - metadata: - name: cn-http-gateway - namespace: cluster-ingress - spec: - selector: - app: istio-ingress - istio: ingress - servers: - - port: - number: 443 - name: https - protocol: HTTPS - tls: - mode: SIMPLE - credentialName: cn-net-tls # name of the secret created above - hosts: - - "*.YOUR_HOSTNAME" - - "YOUR_HOSTNAME" - - port: - number: 80 - name: http - protocol: HTTP - tls: - httpsRedirect: true - hosts: - - "*.YOUR_HOSTNAME" - - "YOUR_HOSTNAME" + secretName: cn-net-tls +Create a file named ``istio-gateway-values.yaml`` with the following content +(Tip: on GCP you can get the cluster IP from ``gcloud compute addresses list``): + +.. code-block:: yaml + + service: + loadBalancerIP: "YOUR_CLUSTER_IP" + loadBalancerSourceRanges: + - "35.194.81.56/32" + - "35.198.147.95/32" + - "35.189.40.124/32" + - "34.132.91.75/32" + + + +And install it to your cluster: + +.. code-block:: bash + + helm install istio-ingress istio/gateway -n cluster-ingress -f istio-gateway-values.yaml + + +Create an Istio Gateway resource in the `cluster-ingress` namespace. Save the following to a file named `gateway.yaml`, +and replace ``YOUR_HOSTNAME`` with the actual hostname you want to use for your validator node +(and has a DNS record pointing to the cluster IP you configured above): + +.. code-block:: yaml + ``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-helm-yaml-771.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-helm-yaml-771.mdx index c57c1ee7d..3c5123779 100644 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-helm-yaml-771.mdx +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-helm-yaml-771.mdx @@ -1,12 +1,12 @@ ```yaml - # if you want to disable the default postgres init container: - persistence: - enablePgInitContainer: false +Refer to the Canton documentation for more details on participant pruning: - # if you want additional init containers: - extraInitContainers: - - name: my-extra-container - image: busybox - command: [ "sh", "-c", "echo 'example extra container'" ] +* https://docs.daml.com/ops/pruning.html +* https://docs.daml.com/canton/usermanual/pruning.html + +.. literalinclude:: ../../../apps/app/src/pack/examples/sv-helm/validator-values.yaml + :language: yaml + :start-after: PARTICIPANT_PRUNING_SCHEDULE_START + :end-before: PARTICIPANT_PRUNING_SCHEDULE_END ``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-helm-yaml-797.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-helm-yaml-797.mdx index 8e08b26d7..0daad6996 100644 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-helm-yaml-797.mdx +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-helm-yaml-797.mdx @@ -1,11 +1,11 @@ ```yaml - extraInitContainers: - - name: chown-domain-upgrade-dump - image: busybox:1.37.0 - command: ["sh", "-c", "chown -R 1001:1001 /domain-upgrade-dump"] - volumeMounts: - - name: domain-upgrade-dump-volume - mountPath: /domain-upgrade-dump + command: [ "sh", "-c", "echo 'example extra container'" ] +.. _helm-validator-volume-ownership: +Working around volume ownership issues +-------------------------------------- + +The containers in the ``splice-validator`` chart run as non-root users (specifically, user:group 1001:1001) for security reasons. +The pod mounts volumes for use by the containers, and these volumes need to be owned by the user that the containers run as. ``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-helm-yaml-82.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-helm-yaml-82.mdx index 2e49a96b7..cf29f0e0c 100644 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-helm-yaml-82.mdx +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-helm-yaml-82.mdx @@ -1,6 +1,5 @@ ```yaml - additionalJvmOptions: | - -Dhttps.proxyHost=your.proxy.host - -Dhttps.proxyPort=your_proxy_port - +additionalJvmOptions: | + -Dhttps.proxyHost=your.proxy.host + -Dhttps.proxyPort=your_proxy_port ``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-onboarding-bash-107.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-onboarding-bash-107.mdx index edf034416..3bd45c2c8 100644 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-onboarding-bash-107.mdx +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-onboarding-bash-107.mdx @@ -9,5 +9,4 @@ https://scan.sv-2.test.global.canton.network.cumberland.io: 0.3.6 https://scan.sv-1.test.global.canton.network.c7.digital: 0.3.6 https://scan.sv-1.test.global.canton.network.digitalasset.com: 0.3.6 - ``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-onboarding-bash-136.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-onboarding-bash-136.mdx index c3564e443..6e6db2a66 100644 --- a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-onboarding-bash-136.mdx +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-onboarding-bash-136.mdx @@ -29,5 +29,4 @@ sequencer-1.sv-1.test.global.canton.network.digitalasset.com: { "status": "SERVING" } - ``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-onboarding-parsed-literal-126.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-onboarding-parsed-literal-126.mdx new file mode 100644 index 000000000..948cd4b29 --- /dev/null +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-onboarding-parsed-literal-126.mdx @@ -0,0 +1,7 @@ +```bash +(set -o pipefail +for url in $(curl -fsS -m 5 --connect-timeout 5 |gsf_scan_url|/api/scan/v0/dso-sequencers | jq -r '.domainSequencers[].sequencers[].url | sub("https://"; "")'); do + echo -n "$url: " + grpcurl --max-time 10 "$url":443 grpc.health.v1.Health/Check +done) +``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-onboarding-parsed-literal-86.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-onboarding-parsed-literal-86.mdx new file mode 100644 index 000000000..c2e283ced --- /dev/null +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-onboarding-parsed-literal-86.mdx @@ -0,0 +1,3 @@ +```bash +curl -sSL http://checkip.amazonaws.com +``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-onboarding-parsed-literal-95.mdx b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-onboarding-parsed-literal-95.mdx new file mode 100644 index 000000000..05499db47 --- /dev/null +++ b/docs-main/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-onboarding-parsed-literal-95.mdx @@ -0,0 +1,8 @@ +```bash +(set -o pipefail +CURL='curl -fsS -m 5 --connect-timeout 5' +for url in $($CURL |gsf_scan_url|/api/scan/v0/scans | jq -r '.scans[].scans[].publicUrl'); do + echo -n "$url: " + $CURL "$url"/api/scan/version | jq -r '.version' +done) +``` \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-full-docs-src-common-backup-suggestion.mdx b/docs-main/snippets/external/splice/main/splice-rst-full-docs-src-common-backup-suggestion.mdx new file mode 100644 index 000000000..38ecd8c4a --- /dev/null +++ b/docs-main/snippets/external/splice/main/splice-rst-full-docs-src-common-backup-suggestion.mdx @@ -0,0 +1,19 @@ + + +**If you lose your keys, you lose access to your coins**. While regular backups are not necessary to run your node, + +they are **strongly** recommended for recovery purposes. + +You should regularly back up all databases in your deployment and ensure you always have an up-to-date identities backup. + +Super Validators retain the information necessary to allow you to recover your Canton Coin from an identities backup. + +On the other hand, Super Validators **do not** retain transaction details from applications they are not involved in. + +This means that if you have other applications installed, the Super Validators cannot help you recover data from those apps; + +you can only rely on your own backups. + +(More information in [Backups section for Validators](/global-synchronizer/production-operations/validator-backups) or [Backups section for SVs](/global-synchronizer/production-operations/sv-backup)) + + \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-full-docs-src-common-reloader-recommendation.mdx b/docs-main/snippets/external/splice/main/splice-rst-full-docs-src-common-reloader-recommendation.mdx new file mode 100644 index 000000000..e69de29bb diff --git a/docs-main/snippets/external/splice/main/splice-rst-full-docs-src-common-sv-extra-dars-notice.mdx b/docs-main/snippets/external/splice/main/splice-rst-full-docs-src-common-sv-extra-dars-notice.mdx new file mode 100644 index 000000000..84fd911cf --- /dev/null +++ b/docs-main/snippets/external/splice/main/splice-rst-full-docs-src-common-sv-extra-dars-notice.mdx @@ -0,0 +1,13 @@ + + +As an SV operator, you are most welcome to review, install, and use third-party Daml apps provided you + +**install third-party Daml apps on a validator node separate from your SV node**. + +Installing additional Daml apps on an SV node is not supported and may compromise its secure + +operations. In particular, please refrain from manually uploading additional `.dar` files + +to your SV node or manually connecting it to third-party synchronizers. + + \ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-full-docs-src-common-traffic-topups.mdx b/docs-main/snippets/external/splice/main/splice-rst-full-docs-src-common-traffic-topups.mdx new file mode 100644 index 000000000..c01ccc96a --- /dev/null +++ b/docs-main/snippets/external/splice/main/splice-rst-full-docs-src-common-traffic-topups.mdx @@ -0,0 +1,15 @@ +

On each successful top-up, the validator app purchases a `top-up amount` of roughly `targetThroughput * minTopupInterval` bytes of traffic (specific amount can vary due to rounding-up). The `minTopupInterval` allows validator operators to control the upper-bound frequency at which automated top-ups happen. If the top-up amount is below the synchronizer-wide `minTopupAmount` (see [traffic parameters](/global-synchronizer/deployment/synchronizer-traffic#traffic-parameters)), `minTopupInterval` is automatically stretched so that at least `minTopupAmount` bytes of traffic are purchased while respecting the configured `targetThroughput`.

+ +

The next top-up gets triggered when all of the following conditions are met:

+ +
    + +
  • The available [extra traffic balance](/global-synchronizer/deployment/synchronizer-traffic#traffic-accounting-what-counts-as-traffic) drops below the configured top-up amount (i.e., below `targetThroughput * minTopupInterval`).
  • + +
  • At least `minTopupInterval` has elapsed since the last top-up.
  • + +
  • The validator has sufficient CC in its wallet to buy the top-up amount worth on traffic (except on DevNet, where the validator app will automatically tap enough coin to purchase traffic).
  • + +
+ +

Validators receive a small amount of free traffic from the Super Validators, which suffices for submitting the top-up transaction. However, if many other transactions are submitted, you may run into a situation where you have exhausted also the free traffic, thus the validator cannot submit the top-up transaction. The free traffic grant accumulates gradually and continuously. When no transactions are submitted, it takes about twenty minutes for free traffic to accumulate to the maximum possible. If you've consumed your traffic balance by submitting too many transactions without purchasing traffic, pause your Validator node (validator app and participant) for twenty minutes to allow your free traffic balance to accumulate.

\ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-full-docs-src-common-wallet-sweeps.mdx b/docs-main/snippets/external/splice/main/splice-rst-full-docs-src-common-wallet-sweeps.mdx new file mode 100644 index 000000000..b331f2efb --- /dev/null +++ b/docs-main/snippets/external/splice/main/splice-rst-full-docs-src-common-wallet-sweeps.mdx @@ -0,0 +1,5 @@ +

You can optionally configure the validator to automatically create transfer offers to other parties on the network whenever the balance of certain parties that it hosts exceeds a certain threshold.

+ +

Whenever the balance of `` exceeds `maxBalanceUSD`, the validator will automatically create a transfer offer to ``, for an amount that leaves `minBalanceUSD` in the sender's wallet. Note that you will need to know the party IDs of both the sender and receiver, which can be copied from the wallet UIs of the respective users (in the top right corner). This therefore needs to be applied to the Helm chart in a second step after the initial deployment, once the party IDs are known.

+ +

Whenever the validator receives a transfer offer from `` to ``, it will automatically accept it. Similarly to sweeps, party IDs must be known in order to apply this configuration.

\ No newline at end of file diff --git a/docs-main/snippets/external/splice/main/splice-rst-partial-docs-src-validator-operator-required-network-parameters-9.mdx b/docs-main/snippets/external/splice/main/splice-rst-partial-docs-src-validator-operator-required-network-parameters-9.mdx new file mode 100644 index 000000000..0b4910323 --- /dev/null +++ b/docs-main/snippets/external/splice/main/splice-rst-partial-docs-src-validator-operator-required-network-parameters-9.mdx @@ -0,0 +1,38 @@ +

To initialize your validator node, you need the following parameters that define the network you're onboarding to and the secret required for doing so.

+ +
    + +
  • **MIGRATION_ID** — The current migration id of the network (dev/test/mainnet) you are trying to connect to. This value is frozen and must not be changed from the last value. You can find this on https://sync.global/sv-network/.
  • + +
  • **SPONSOR_SV_URL** — The URL of the SV app of your SV sponsor. This should be of the form |generic_sv_url|, e.g., if the Global Synchronizer Foundation is your sponsor use |gsf_sv_url|.
  • + +
+ +

**ONBOARDING_SECRET**
+The onboarding secret provided by your sponsor. If you don't already have one, ask your sponsor. Note that onboarding secrets are one-time use and expire after 48 hours. If you don't join before it expires, you need to request a new secret from your SV sponsor.

+ +
+ + + +On DevNet, you can obtain an onboarding secret automatically by calling the following endpoint on any SV (replace `SPONSOR_SV_URL` with the SV app URL defined above): + + + +```bash +curl -X POST SPONSOR_SV_URL/api/sv/v0/devnet/onboard/validator/prepare +``` + + + +Make sure to use the **SV app URL** (starting with `sv.`), not the Scan URL (starting with `scan.`). + + + + + +Note that this self-served secret is only valid for 1 hour. + + + +
\ No newline at end of file diff --git a/scripts/helpers/generateOutputDocs.js b/scripts/helpers/generateOutputDocs.js index 742e543b8..8690e5ee2 100644 --- a/scripts/helpers/generateOutputDocs.js +++ b/scripts/helpers/generateOutputDocs.js @@ -8,9 +8,10 @@ const fs = require('fs') const path = require('path') +const { convertRstIncludeToMdx } = require('./rstIncludeToMdx') const REPO_ROOT = path.join(__dirname, '..', '..') -const EXPORT_CONFIG_PATH = path.join(REPO_ROOT, 'docs/config/exportConfig.json') +const EXPORT_CONFIG_PATH = path.join(__dirname, 'exportConfig.json') const OUTPUT_FOLDER_PATH = path.join(REPO_ROOT, 'docs-output') function readFileContent(filePath) { @@ -52,13 +53,25 @@ function extractByStringMarker(fileContent, startMarker, endMarker) { throw new Error(`Start marker not found: "${startMarker}"`) } - const contentStart = startIndex + startMarker.length + // Match Sphinx literalinclude :start-after: / :end-before: — exclude marker lines. + let contentStart = fileContent.indexOf('\n', startIndex) + if (contentStart === -1) { + contentStart = startIndex + startMarker.length + } else { + contentStart += 1 + } + const endIndex = fileContent.indexOf(endMarker, contentStart) if (endIndex === -1) { throw new Error(`End marker not found: "${endMarker}"`) } - return fileContent.substring(contentStart, endIndex).trim() + let contentEnd = fileContent.lastIndexOf('\n', endIndex) + if (contentEnd < contentStart) { + contentEnd = endIndex + } + + return fileContent.substring(contentStart, contentEnd).trim() } function extractByRegexWrap(fileContent, startRegex, endRegex) { @@ -159,25 +172,133 @@ function normalizeIndent(content) { } } - if (minIndent === null || minIndent === 0) { - return lines - .map((line) => - line.trim() === '' ? '' : ` ${line.replace(/^\s*/, '')}` - ) - .join('\n') - } - + // Strip the common leading whitespace from every non-blank line and then + // re-indent the whole block by two spaces. Using `line.slice(strip)` + // (instead of stripping ALL leading whitespace) preserves the relative + // indentation between lines — including the case where minIndent is 0, + // which would otherwise flatten any source that contains a top-level + // line at column 0 (e.g. HOCON config files where a `}` closes at the + // start of the line). + const strip = minIndent ?? 0 return lines .map((line) => { if (line.trim() === '') return '' - return ` ${line.slice(minIndent)}` + return ` ${line.slice(strip)}` }) .join('\n') } -function formatSnippetContent(content, options) { +/** Strip common leading indent only; first line starts at column 0 (HOCON/config in RST). */ +function baselineIndent(content) { + const lines = content.split('\n') + let minIndent = null + for (const line of lines) { + if (line.trim() === '') continue + const indent = (line.match(/^(\s*)/) || ['', ''])[1].length + if (minIndent === null || indent < minIndent) minIndent = indent + } + const strip = minIndent ?? 0 + return lines + .map((line) => (line.trim() === '' ? '' : line.slice(strip))) + .join('\n') +} + +function applyIndentOption(content, normalizeIndentOption) { + if (normalizeIndentOption === false) return content + if (normalizeIndentOption === 'baseline') return baselineIndent(content) + return normalizeIndent(content) +} + +function trimBlankEdges(content) { + return content.replace(/^\s*\n+/, '').replace(/\n+\s*$/, '') +} + +function convertRstBlocksToMarkdown(content, fallbackLanguage = '') { + const input = trimBlankEdges(content) + const lines = input.split('\n') + const out = [] + let i = 0 + + while (i < lines.length) { + const m = lines[i].match(/^\s*\.\.\s+code-block::\s*(\S*)\s*$/) + if (!m) { + i++ + continue + } + + let language = (m[1] || '').trim() + if (!language || language.toLowerCase() === 'none') { + language = fallbackLanguage || '' + } + + i++ + while (i < lines.length && lines[i].trim() === '') i++ + + const block = [] + while (i < lines.length) { + const line = lines[i] + if (line.trim() === '') { + block.push('') + i++ + continue + } + + if (/^( {4}|\t)/.test(line)) { + block.push(line.replace(/^( {4}|\t)/, '')) + i++ + continue + } + break + } + + while (block.length > 0 && block[block.length - 1] === '') { + block.pop() + } + + if (language) { + out.push(`\`\`\`${language}`) + } else { + out.push('```') + } + out.push(block.join('\n')) + out.push('```') + out.push('') + } + + if (out.length === 0) { + // Safety fallback: strip any leftover RST directives and keep only content. + const cleaned = input + .split('\n') + .filter((line) => !/^\s*\.\.\s+code-block::/.test(line)) + .join('\n') + const trimmed = trimBlankEdges(cleaned) + const language = fallbackLanguage || '' + if (language) { + return `\`\`\`${language}\n${trimmed}\n\`\`\`` + } + return `\`\`\`\n${trimmed}\n\`\`\`` + } + + while (out.length > 0 && out[out.length - 1] === '') out.pop() + return out.join('\n') +} + +function formatSnippetContent(content, options, globalOptions = {}) { + let body = content + if (options && options.unescapeRstQuotes) { + body = body.replace(/\\'/g, "'") + } + if (options && options.transform === 'rstinclude') { + return convertRstIncludeToMdx(body, { + refTargets: { + ...(globalOptions.rstIncludeRefTargets || {}), + ...(options.refTargets || {}), + }, + }) + } if (options && options.transform === 'rstjson') { - return content + const language = options && options.language ? options.language : '' + return convertRstBlocksToMarkdown(body, language) } const displayStyle = (options && options.displayStyle) || 'wrapCode' const rawLanguage = options && options.language ? options.language : '' @@ -187,9 +308,9 @@ function formatSnippetContent(content, options) { switch (displayStyle) { case 'wrapCode': if (language) { - return `\`\`\`${language}\n${content}\n\`\`\`` + return `\`\`\`${language}\n${body}\n\`\`\`` } else { - return `\`\`\`\n${content}\n\`\`\`` + return `\`\`\`\n${body}\n\`\`\`` } default: @@ -207,9 +328,11 @@ function getSourceFilePath(snippet) { } } -function processSnippet(snippet) { +function processSnippet(snippet, verbose, globalOptions = {}) { try { - console.log(`Processing snippet: ${snippet.snippetName}`) + if (verbose) { + console.log(`Processing snippet: ${snippet.snippetName}`) + } if (!snippet.snippetName) { throw new Error('Snippet missing required field: snippetName') @@ -229,14 +352,22 @@ function processSnippet(snippet) { fileContent, snippet.location ) - const normalizedContent = - snippet.options && snippet.options.transform === 'rstjson' - ? extractedContent - : normalizeIndent(extractedContent) + const skipTransform = + snippet.options && + (snippet.options.transform === 'rstjson' || + snippet.options.transform === 'rstinclude') + const indentOpt = snippet.options?.normalizeIndent + const normalizedContent = skipTransform + ? extractedContent + : applyIndentOption( + extractedContent, + indentOpt === undefined ? true : indentOpt + ) const formattedContent = formatSnippetContent( normalizedContent, - snippet.options || {} + snippet.options || {}, + globalOptions ) const outputFileName = `${snippet.snippetName}.mdx` @@ -247,7 +378,9 @@ function processSnippet(snippet) { fs.writeFileSync(outputPath, formattedContent, 'utf8') - console.log(`✓ Successfully extracted snippet to: ${outputPath}`) + if (verbose) { + console.log(`✓ Successfully extracted snippet to: ${outputPath}`) + } } catch (error) { console.error( `✗ Error processing snippet "${snippet.snippetName}": ${error.message}` @@ -262,6 +395,7 @@ function processSnippet(snippet) { */ function main() { try { + const verbose = process.argv.includes('--verbose') const configContent = readFileContent(EXPORT_CONFIG_PATH) const config = JSON.parse(configContent) @@ -274,9 +408,13 @@ function main() { let successCount = 0 let errorCount = 0 + const globalOptions = { + rstIncludeRefTargets: config.rstIncludeRefTargets || {}, + } + for (const snippet of config.snippets) { try { - processSnippet(snippet) + processSnippet(snippet, verbose, globalOptions) successCount++ } catch (error) { errorCount++