mirror of
https://github.com/sonr-io/sonr.git
synced 2026-08-03 01:41:44 +00:00
@@ -0,0 +1,16 @@
|
||||
[tool.commitizen]
|
||||
name = "cz_customize"
|
||||
tag_format = "pkg-pkl/v$version"
|
||||
ignored_tag_formats = ["*/v${version}", "v${version}"]
|
||||
version_scheme = "semver"
|
||||
version_provider = "npm"
|
||||
update_changelog_on_bump = true
|
||||
major_version_zero = true
|
||||
pre_bump_hooks = ["bash ../../scripts/hook-bump-pre.sh"]
|
||||
post_bump_hooks = ["pnpm --filter '@sonr.io/pkl' publish --no-git-checks"]
|
||||
|
||||
[tool.commitizen.customize]
|
||||
bump_pattern = "^(feat|fix|refactor|perf|BREAKING CHANGE)"
|
||||
bump_map = { "BREAKING CHANGE" = "MAJOR", "feat" = "MINOR", "fix" = "PATCH", "refactor" = "PATCH", "perf" = "PATCH" }
|
||||
default_bump = "PATCH"
|
||||
changelog_pattern = "^(feat|fix|refactor|docs|build)\\(pkg-pkl\\)(!)?:"
|
||||
Executable
+83
@@ -0,0 +1,83 @@
|
||||
# Makefile for pkljar - Pkl configuration management
|
||||
.PHONY: all release dist docker json-schema-to-pkl upload-module upload-release clean clean-out clean-dist clean-npx-cache
|
||||
|
||||
# Default target - run release and dist
|
||||
all: release dist npm-publish clean-npx-cache
|
||||
|
||||
# Package Pkl files and upload to R2
|
||||
release: clean-out
|
||||
@pkl project package packages/*/
|
||||
@gum log --level debug "Publishing to Cloudflare R2"
|
||||
@$(MAKE) upload-release
|
||||
@rm -rf .out
|
||||
|
||||
# Distribute Pkl files and upload to R2
|
||||
dist: clean-dist
|
||||
@fd -e pkl . -t f -x sh -c 'mkdir -p dist/$$(dirname {}) && cp {} dist/$$(dirname {})/'
|
||||
@mv dist/packages/* dist/
|
||||
@rm -rf dist/basePklProject.pkl
|
||||
@rm -rf dist/packages
|
||||
@gum log --level debug "Publishing to Cloudflare R2"
|
||||
@$(MAKE) upload-module
|
||||
@rm -rf dist
|
||||
|
||||
# Interactive JSON Schema to Pkl conversion
|
||||
json-schema-to-pkl:
|
||||
@SCHEMA=$$(gum file --file --header "Select a JSON schema file to convert to PKL") && \
|
||||
PACKAGE=package://pkg.pkl-lang.org/pkl-pantry/org.json_schema.contrib@1.1.4#/generate.pkl && \
|
||||
gum log --level debug "Converting $$SCHEMA to PKL" && \
|
||||
pkl eval $$PACKAGE -m . -p source=$$SCHEMA && \
|
||||
(gum confirm "Delete source file?" && rm $$SCHEMA || gum log --level debug "Skipping delete")
|
||||
|
||||
# Upload module to R2 (internal)
|
||||
upload-module:
|
||||
@rclone copy dist/ r2:pklmod/
|
||||
|
||||
# Upload release to R2 (internal)
|
||||
upload-release:
|
||||
@rclone copy .out/ r2:pkljar/
|
||||
|
||||
# Clean targets
|
||||
clean-out:
|
||||
@rm -rf .out
|
||||
|
||||
clean-dist:
|
||||
@rm -rf dist
|
||||
|
||||
clean-npx-cache:
|
||||
@gum log --level debug "Clearing npx cache"
|
||||
@npx clear-npx-cache -y 2>/dev/null || true
|
||||
@gum log --level debug "NPX cache cleared"
|
||||
|
||||
clean: clean-out clean-dist
|
||||
@rm -rf build/
|
||||
|
||||
# Test npx functionality
|
||||
npx-test:
|
||||
@gum log --level debug "Testing pkljar CLI via npm run"
|
||||
@npm start
|
||||
|
||||
# Publish to npm with version patch bump
|
||||
npm-publish:
|
||||
@gum log --level debug "Bumping version patch"
|
||||
@npm version patch --no-git-tag-version
|
||||
@gum log --level debug "Publishing pkljar to npm"
|
||||
@npm publish
|
||||
|
||||
# Help target
|
||||
help:
|
||||
@echo "Usage: make <target>"
|
||||
@echo ""
|
||||
@echo "Available targets:"
|
||||
@echo " all : Package and distribute Pkl files (default)"
|
||||
@echo " release : Package Pkl files and upload to R2"
|
||||
@echo " dist : Distribute Pkl files and upload to R2"
|
||||
@echo " docker : Build multi-platform Docker image"
|
||||
@echo " json-schema-to-pkl : Convert JSON schema to Pkl interactively"
|
||||
@echo " npx-test : Test pkljar CLI via npm run"
|
||||
@echo " npm-publish : Publish pkljar package to npm (with version bump)"
|
||||
@echo " clean : Remove all build artifacts"
|
||||
@echo " clean-npx-cache : Clear npx cache for testing fresh installs"
|
||||
@echo " help : Show this help message"
|
||||
|
||||
.PHONY: help npx-test npm-publish
|
||||
@@ -0,0 +1,294 @@
|
||||
# pkljar
|
||||
|
||||
> Interactive CLI for generating type-safe Sonr Network configurations using Apple's Pkl language
|
||||
|
||||
[](https://www.npmjs.com/package/@sonr.io/pkljar)
|
||||
[](https://opensource.org/licenses/ISC)
|
||||
|
||||
## Overview
|
||||
|
||||
`pkljar` is a comprehensive configuration management system for the Sonr Network that provides an interactive CLI to generate, validate, and distribute type-safe configuration files. Built on Apple's Pkl configuration language, it ensures compile-time validation and type safety for all service configurations.
|
||||
|
||||
## Features
|
||||
|
||||
- 🎯 **Interactive CLI** - User-friendly prompts for selecting and configuring Pkl packages
|
||||
- 📦 **Pre-built Packages** - Ready-to-use configuration packages for Sonr services
|
||||
- 🔒 **Type Safety** - Compile-time validation using Pkl's strong typing system
|
||||
- 🌐 **Remote Package Resolution** - Automatic fetching from `mod.pkl.sh` repository
|
||||
- 🎨 **Multiple Output Formats** - Support for YAML, JSON, TOML, XML, and more
|
||||
- 🐳 **Docker Support** - Multi-platform Docker images for containerized deployments
|
||||
|
||||
## Installation
|
||||
|
||||
### Using npm
|
||||
|
||||
```bash
|
||||
npm install -g @sonr.io/pkljar
|
||||
```
|
||||
|
||||
### Using npx (no installation required)
|
||||
|
||||
```bash
|
||||
npx @sonr.io/pkljar
|
||||
```
|
||||
|
||||
### Using Docker
|
||||
|
||||
```bash
|
||||
docker run onsonr/pkljar eval_beam
|
||||
```
|
||||
|
||||
## Quick Start
|
||||
|
||||
1. Run the CLI:
|
||||
```bash
|
||||
pkljar
|
||||
```
|
||||
|
||||
2. Select a package from the interactive menu:
|
||||
- `sonr.beam` - Matrix/Element communication bridge
|
||||
- `sonr.core` - Core Sonr Network configuration
|
||||
- `sonr.hway` - Highway node configuration
|
||||
- `sonr.testnet` - Testnet deployment configuration
|
||||
|
||||
3. Choose a module to evaluate (e.g., Config, Docker, Starship)
|
||||
|
||||
4. Specify output directory and format
|
||||
|
||||
5. Configuration files are generated in your specified directory
|
||||
|
||||
## Available Packages
|
||||
|
||||
### sonr.beam
|
||||
Matrix bridge configuration for Sonr Network communication.
|
||||
|
||||
**Modules:**
|
||||
- `Config.pkl` - Main configuration
|
||||
- `Element.pkl` - Element client configuration
|
||||
- `Hookshot.pkl` - GitHub/GitLab bridge configuration
|
||||
- `Synapse.pkl` - Matrix server configuration
|
||||
|
||||
### sonr.core
|
||||
Core Sonr Network blockchain configuration.
|
||||
|
||||
**Modules:**
|
||||
- `Config.pkl` - Core network configuration
|
||||
- `Keys.pkl` - Key management configuration
|
||||
- `UCAN.pkl` - UCAN authorization configuration
|
||||
- `Wallet.pkl` - Wallet service configuration
|
||||
|
||||
### sonr.hway
|
||||
Highway node configuration for network routing.
|
||||
|
||||
**Modules:**
|
||||
- `Config.pkl` - Highway node configuration
|
||||
|
||||
### sonr.testnet
|
||||
Testnet deployment configurations.
|
||||
|
||||
**Modules:**
|
||||
- `Docker.pkl` - Docker Compose configuration
|
||||
- `Starship.pkl` - Kubernetes deployment via Starship
|
||||
|
||||
## CLI Usage
|
||||
|
||||
### Interactive Mode (Default)
|
||||
|
||||
```bash
|
||||
pkljar
|
||||
```
|
||||
|
||||
Launches an interactive prompt that guides you through:
|
||||
1. Package selection
|
||||
2. Module selection
|
||||
3. Output directory configuration
|
||||
4. Format selection (YAML, JSON, TOML, etc.)
|
||||
|
||||
### Output Formats
|
||||
|
||||
The CLI supports multiple output formats:
|
||||
- `auto` - Use module's default format
|
||||
- `yaml` - YAML format
|
||||
- `json` - JSON format
|
||||
- `jsonnet` - Jsonnet format
|
||||
- `pcf` - Pkl Configuration Format
|
||||
- `plist` - Property List format
|
||||
- `properties` - Java Properties format
|
||||
- `textproto` - Text Protocol Buffer format
|
||||
- `xml` - XML format
|
||||
|
||||
## Development
|
||||
|
||||
### Project Structure
|
||||
|
||||
```
|
||||
pkljar/
|
||||
├── src/
|
||||
│ └── index.js # CLI entry point
|
||||
├── packages/ # Pkl package definitions
|
||||
│ ├── sonr.beam/ # Matrix bridge packages
|
||||
│ ├── sonr.core/ # Core network packages
|
||||
│ ├── sonr.hway/ # Highway node packages
|
||||
│ └── sonr.testnet/ # Testnet packages
|
||||
├── docker/ # Docker configurations
|
||||
└── Makefile # Build automation
|
||||
```
|
||||
|
||||
### Building from Source
|
||||
|
||||
```bash
|
||||
# Clone the repository
|
||||
git clone https://github.com/sonr-io/pkljar.git
|
||||
cd pkljar
|
||||
|
||||
# Install dependencies
|
||||
npm install
|
||||
|
||||
# Run locally
|
||||
npm start
|
||||
|
||||
# Build packages
|
||||
make release
|
||||
|
||||
# Build Docker image
|
||||
make docker
|
||||
```
|
||||
|
||||
### Creating Custom Packages
|
||||
|
||||
1. Create a new directory in `packages/` following the naming convention:
|
||||
```bash
|
||||
mkdir packages/myorg.myservice
|
||||
```
|
||||
|
||||
2. Create a `PklProject` file:
|
||||
```pkl
|
||||
amends "../../basePklProject.pkl"
|
||||
|
||||
dependencies {
|
||||
["base.web"] = import("../base.web/PklProject")
|
||||
}
|
||||
```
|
||||
|
||||
3. Define your configuration modules
|
||||
|
||||
4. Build and publish:
|
||||
```bash
|
||||
make release
|
||||
```
|
||||
|
||||
## Docker Usage
|
||||
|
||||
### Pre-built Commands
|
||||
|
||||
```bash
|
||||
# Generate Beam configuration
|
||||
docker run onsonr/pkljar eval_beam
|
||||
|
||||
# Generate Synapse configuration
|
||||
docker run onsonr/pkljar eval_beam_synapse
|
||||
|
||||
# Generate Hookshot configuration
|
||||
docker run onsonr/pkljar eval_beam_hookshot
|
||||
```
|
||||
|
||||
### Custom Evaluation
|
||||
|
||||
```bash
|
||||
docker run -v $(pwd)/output:/output onsonr/pkljar \
|
||||
pkl eval -m /output https://mod.pkl.sh/sonr.core/Config.pkl
|
||||
```
|
||||
|
||||
## API Reference
|
||||
|
||||
### Package Resolution
|
||||
|
||||
All packages are resolved from the `mod.pkl.sh` repository:
|
||||
```
|
||||
https://mod.pkl.sh/{package}/{module}
|
||||
```
|
||||
|
||||
Example:
|
||||
```
|
||||
https://mod.pkl.sh/sonr.core/Config.pkl
|
||||
```
|
||||
|
||||
### Module Structure
|
||||
|
||||
Each Pkl module follows this structure:
|
||||
```pkl
|
||||
@ModuleInfo { minPklVersion = "0.27.0" }
|
||||
module package.name.ModuleName
|
||||
|
||||
// Type definitions
|
||||
class ConfigClass {
|
||||
property: Type
|
||||
}
|
||||
|
||||
// Configuration instance
|
||||
config: ConfigClass = new ConfigClass {
|
||||
property = value
|
||||
}
|
||||
|
||||
// Output configuration
|
||||
output {
|
||||
renderer = new YamlRenderer {}
|
||||
}
|
||||
```
|
||||
|
||||
## Advanced Configuration
|
||||
|
||||
### Environment-Specific Overrides
|
||||
|
||||
Use Pkl's conditional logic for environment-specific configurations:
|
||||
|
||||
```pkl
|
||||
config = new ServiceConfig {
|
||||
host = if (env == "production")
|
||||
"prod.example.com"
|
||||
else
|
||||
"localhost"
|
||||
}
|
||||
```
|
||||
|
||||
### Multi-File Output
|
||||
|
||||
Generate multiple configuration files from a single module:
|
||||
|
||||
```pkl
|
||||
output {
|
||||
files {
|
||||
["config/app.toml"] = appConfig.output
|
||||
["config/client.toml"] = clientConfig.output
|
||||
["docker-compose.yml"] = dockerConfig.output
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Contributing
|
||||
|
||||
We welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details.
|
||||
|
||||
### Development Workflow
|
||||
|
||||
1. Fork the repository
|
||||
2. Create a feature branch
|
||||
3. Make your changes
|
||||
4. Run tests: `pkl test packages/*/`
|
||||
5. Submit a pull request
|
||||
|
||||
## Support
|
||||
|
||||
- **Issues**: [GitHub Issues](https://github.com/sonr-io/pkljar/issues)
|
||||
- **Documentation**: [Pkl Language Documentation](https://pkl-lang.org)
|
||||
- **Community**: [Sonr Discord](https://discord.gg/sonr)
|
||||
|
||||
## License
|
||||
|
||||
ISC License - see [LICENSE](LICENSE) file for details.
|
||||
|
||||
## Acknowledgments
|
||||
|
||||
- Built with [Pkl](https://pkl-lang.org) by Apple
|
||||
- CLI powered by [@clack/prompts](https://github.com/natemoo-re/clack)
|
||||
- Pkl runtime by [@pkl-community/pkl](https://github.com/pkl-community/pkl-npm)
|
||||
Executable
+171
@@ -0,0 +1,171 @@
|
||||
#!/usr/bin/env node
|
||||
|
||||
import { setTimeout } from 'node:timers/promises';
|
||||
import { exec } from 'node:child_process';
|
||||
import { promisify } from 'node:util';
|
||||
import * as p from '@clack/prompts';
|
||||
import color from 'picocolors';
|
||||
import { getExePath } from '@pkl-community/pkl';
|
||||
|
||||
const execAsync = promisify(exec);
|
||||
const pklPath = getExePath();
|
||||
|
||||
// Static list of available packages on mod.pkl.sh
|
||||
const AVAILABLE_PACKAGES = [
|
||||
'sonr.beam',
|
||||
'sonr.core',
|
||||
'sonr.hway',
|
||||
'sonr.testnet'
|
||||
];
|
||||
|
||||
// Module options for each package type
|
||||
const MODULE_OPTIONS = {
|
||||
default: [
|
||||
{ value: 'Config.pkl', label: 'Config', hint: 'Main configuration module' },
|
||||
{ value: 'PklProject', label: 'Project', hint: 'Project definition' },
|
||||
],
|
||||
'sonr.beam': [
|
||||
{ value: 'Config.pkl', label: 'Config', hint: 'Main configuration' },
|
||||
{ value: 'Element.pkl', label: 'Element', hint: 'Element configuration' },
|
||||
{ value: 'Hookshot.pkl', label: 'Hookshot', hint: 'Hookshot configuration' },
|
||||
{ value: 'Synapse.pkl', label: 'Synapse', hint: 'Synapse configuration' },
|
||||
{ value: 'PklProject', label: 'Project', hint: 'Project definition' },
|
||||
],
|
||||
'sonr.core': [
|
||||
{ value: 'Config.pkl', label: 'Config', hint: 'Core configuration' },
|
||||
{ value: 'Keys.pkl', label: 'Keys', hint: 'Key management' },
|
||||
{ value: 'UCAN.pkl', label: 'UCAN', hint: 'UCAN configuration' },
|
||||
{ value: 'Wallet.pkl', label: 'Wallet', hint: 'Wallet configuration' },
|
||||
{ value: 'PklProject', label: 'Project', hint: 'Project definition' },
|
||||
],
|
||||
'sonr.testnet': [
|
||||
{ value: 'Starship.pkl', label: 'Starship', hint: 'Starship K8s configuration' },
|
||||
{ value: 'Docker.pkl', label: 'Docker', hint: 'Docker Compose configuration' },
|
||||
],
|
||||
};
|
||||
|
||||
async function getAvailablePackages() {
|
||||
// Always return static list of packages available on mod.pkl.sh
|
||||
return AVAILABLE_PACKAGES;
|
||||
}
|
||||
|
||||
async function main() {
|
||||
console.clear();
|
||||
|
||||
await setTimeout(500);
|
||||
|
||||
p.intro(`${color.bgCyan(color.black(' Sonr PKL '))} - Configuration CLI`);
|
||||
|
||||
try {
|
||||
// Get available packages
|
||||
const availablePackages = await getAvailablePackages();
|
||||
|
||||
if (availablePackages.length === 0) {
|
||||
p.cancel('No packages found.');
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
const config = await p.group(
|
||||
{
|
||||
package: () =>
|
||||
p.select({
|
||||
message: 'Select a Pkl package to evaluate',
|
||||
options: availablePackages.map(pkg => ({
|
||||
value: pkg,
|
||||
label: pkg,
|
||||
hint: `https://mod.pkl.sh/${pkg}/`
|
||||
})),
|
||||
maxItems: 10
|
||||
}),
|
||||
module: ({ results }) => {
|
||||
const moduleOpts = MODULE_OPTIONS[results.package] || MODULE_OPTIONS.default;
|
||||
return p.select({
|
||||
message: 'Select module to evaluate',
|
||||
options: moduleOpts,
|
||||
maxItems: 8
|
||||
});
|
||||
},
|
||||
outputPath: () =>
|
||||
p.text({
|
||||
message: 'Output directory path',
|
||||
placeholder: './data',
|
||||
initialValue: './data',
|
||||
validate: value => {
|
||||
if (!value) return 'Output path is required';
|
||||
return;
|
||||
}
|
||||
}),
|
||||
format: () =>
|
||||
p.select({
|
||||
message: 'Output format',
|
||||
options: [
|
||||
{ value: 'auto', label: 'Auto (from module)', hint: 'Use module\'s default format' },
|
||||
{ value: 'yaml', label: 'YAML' },
|
||||
{ value: 'json', label: 'JSON' },
|
||||
{ value: 'jsonnet', label: 'Jsonnet' },
|
||||
{ value: 'pcf', label: 'PCF (Pkl Configuration Format)' },
|
||||
{ value: 'plist', label: 'Property List' },
|
||||
{ value: 'properties', label: 'Java Properties' },
|
||||
{ value: 'textproto', label: 'Text Proto' },
|
||||
{ value: 'xml', label: 'XML' },
|
||||
],
|
||||
initialValue: 'auto',
|
||||
maxItems: 8
|
||||
}),
|
||||
},
|
||||
{
|
||||
onCancel: () => {
|
||||
p.cancel('Operation cancelled.');
|
||||
process.exit(0);
|
||||
},
|
||||
}
|
||||
);
|
||||
|
||||
const s = p.spinner();
|
||||
|
||||
// Always use remote packages from mod.pkl.sh
|
||||
const moduleUrl = `https://mod.pkl.sh/${config.package}/${config.module}`;
|
||||
|
||||
let pklCommand = `"${pklPath}" eval -m ${config.outputPath}`;
|
||||
|
||||
if (config.format !== 'auto') {
|
||||
pklCommand += ` -f ${config.format}`;
|
||||
}
|
||||
|
||||
pklCommand += ` ${moduleUrl}`;
|
||||
|
||||
s.start(`Evaluating ${config.package}/${config.module}...`);
|
||||
|
||||
try {
|
||||
const { stdout, stderr } = await execAsync(pklCommand);
|
||||
|
||||
s.stop(`Successfully evaluated ${config.package}`);
|
||||
|
||||
if (stdout) {
|
||||
p.note(stdout.trim(), 'Output');
|
||||
}
|
||||
|
||||
if (stderr) {
|
||||
p.log.warning(stderr.trim());
|
||||
}
|
||||
|
||||
p.outro(`Configuration generated in ${color.cyan(config.outputPath)}`);
|
||||
|
||||
} catch (error) {
|
||||
s.stop('Evaluation failed');
|
||||
p.log.error(`Failed to evaluate module: ${error.message}`);
|
||||
|
||||
if (error.stderr) {
|
||||
p.log.error(error.stderr);
|
||||
}
|
||||
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
} catch (error) {
|
||||
p.log.error(`An error occurred: ${error.message}`);
|
||||
process.exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
main().catch(console.error);
|
||||
@@ -0,0 +1,39 @@
|
||||
{
|
||||
"name": "@sonr.io/pkl",
|
||||
"version": "0.1.0",
|
||||
"description": "A Pkl project for configuring the Sonr Network. This package resolves Pkl packages and includes the required cli.",
|
||||
"homepage": "https://github.com/sonr-io/pkljar#readme",
|
||||
"bugs": {
|
||||
"url": "https://github.com/sonr-io/pkljar/issues"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/sonr-io/pkljar.git"
|
||||
},
|
||||
"publishConfig": {
|
||||
"access": "public"
|
||||
},
|
||||
"license": "ISC",
|
||||
"author": "Sonr DAO",
|
||||
"type": "module",
|
||||
"bin": {
|
||||
"pkljar": "./cli/index.js"
|
||||
},
|
||||
"scripts": {
|
||||
"cli:start": "node src/index.js",
|
||||
"test": "echo 'No tests defined for @sonr.io/pkl'",
|
||||
"release": "cz --no-raise 6,21 bump --yes --increment PATCH"
|
||||
},
|
||||
"dependencies": {
|
||||
"@clack/prompts": "^0.11.0",
|
||||
"@pkl-community/pkl": "^0.28.2",
|
||||
"picocolors": "^1.1.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"bun-types": "^1.2.20",
|
||||
"csstype": "^3.1.3",
|
||||
"sisteransi": "^1.0.5",
|
||||
"typescript": "^5.9.2",
|
||||
"undici-types": "^7.10.0"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,56 @@
|
||||
module base.webapi.Manifest
|
||||
|
||||
name: String
|
||||
short_name: String
|
||||
description: String?
|
||||
display: ("fullscreen"|"standalone"|"minimal-ui"|"browser")?
|
||||
display_override: Listing<String>?
|
||||
theme_color: String?
|
||||
background_color: String?
|
||||
orientation: ("any"|"natural"|"landscape"|"portrait")?
|
||||
start_url: String
|
||||
scope: String?
|
||||
service_worker: ServiceWorker?
|
||||
icons: Listing<ShortcutIcon>?
|
||||
related_applications: Listing<RelatedApplication>?
|
||||
prefer_related_applications: Boolean?
|
||||
shortcuts: Listing<Shortcut>?
|
||||
file_handlers: Listing<FileHandler>?
|
||||
protocol_handlers: Listing<ProtocolHandler>?
|
||||
|
||||
class ServiceWorker {
|
||||
scope: String
|
||||
src: String
|
||||
use_cache: Boolean
|
||||
}
|
||||
|
||||
class ShortcutIcon {
|
||||
src: String
|
||||
sizes: String
|
||||
type: String?
|
||||
purpose: String?
|
||||
}
|
||||
|
||||
class RelatedApplication {
|
||||
platform: String
|
||||
url: String?
|
||||
id: String?
|
||||
}
|
||||
|
||||
class Shortcut {
|
||||
name: String
|
||||
short_name: String?
|
||||
description: String?
|
||||
url: String
|
||||
icons: Listing<ShortcutIcon>?
|
||||
}
|
||||
|
||||
class FileHandler {
|
||||
action: String
|
||||
accept: Mapping<String, Listing<String>>
|
||||
}
|
||||
|
||||
class ProtocolHandler {
|
||||
scheme: String
|
||||
url: String
|
||||
}
|
||||
@@ -0,0 +1,62 @@
|
||||
module base.did.OpenIDPayload
|
||||
|
||||
verified_claims: VerifiedClaims
|
||||
|
||||
class VerifiedClaims {
|
||||
verification: Verification
|
||||
claims: Claims
|
||||
}
|
||||
|
||||
class Verification {
|
||||
trust_framework: String
|
||||
time: String
|
||||
verification_process: String
|
||||
evidence: Listing<Evidence>
|
||||
}
|
||||
|
||||
class Evidence {
|
||||
type: String
|
||||
check_details: Listing<CheckDetail>
|
||||
time: String
|
||||
document_details: DocumentDetails
|
||||
}
|
||||
|
||||
class CheckDetail {
|
||||
check_method: String
|
||||
}
|
||||
|
||||
class DocumentDetails {
|
||||
type: String
|
||||
issuer: Issuer
|
||||
document_number: String?
|
||||
date_of_issuance: String
|
||||
date_of_expiry: String?
|
||||
}
|
||||
|
||||
class Issuer {
|
||||
name: String
|
||||
country: String
|
||||
region: String?
|
||||
street_address: String?
|
||||
}
|
||||
|
||||
class Claims {
|
||||
given_name: String
|
||||
family_name: String
|
||||
birthdate: String
|
||||
place_of_birth: PlaceOfBirth
|
||||
nationalities: Listing<String>
|
||||
address: Address
|
||||
}
|
||||
|
||||
class PlaceOfBirth {
|
||||
country: String
|
||||
locality: String
|
||||
}
|
||||
|
||||
class Address {
|
||||
locality: String
|
||||
postal_code: String
|
||||
country: String
|
||||
street_address: String
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
amends "../basePklProject.pkl"
|
||||
|
||||
package {
|
||||
version = "0.0.1"
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"resolvedDependencies": {}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
module base.did.VerifiableCredential
|
||||
|
||||
`@context`: Listing<String>
|
||||
id: String
|
||||
type: Listing<String>
|
||||
issuer: String
|
||||
issuanceDate: String
|
||||
credentialSubject: CredentialSubject
|
||||
credentialSchema: CredentialSchema
|
||||
|
||||
class CredentialSubject {
|
||||
id: String
|
||||
emailAddress: String
|
||||
}
|
||||
|
||||
class CredentialSchema {
|
||||
id: String
|
||||
type: String
|
||||
}
|
||||
@@ -0,0 +1,55 @@
|
||||
// PklProject template for Sonr.io packages
|
||||
module basePklProject
|
||||
|
||||
amends "pkl:Project"
|
||||
|
||||
import "pkl:reflect"
|
||||
|
||||
// Automatically determine package name from directory structure
|
||||
local myModule = reflect.Module(module)
|
||||
|
||||
local packageName: String =
|
||||
findRootModule(myModule)
|
||||
.relativePathTo(module)
|
||||
.last
|
||||
|
||||
local function findRootModule(mod: reflect.Module): Module =
|
||||
let (supermodule = mod.supermodule)
|
||||
if (supermodule == null || !supermodule.isAmend) mod.reflectee
|
||||
else findRootModule(supermodule)
|
||||
|
||||
// Find all test files
|
||||
const local allTests = import*("**/tests/**.pkl").keys.filter((it) -> !it.contains("tests/fixtures/"))
|
||||
|
||||
// Package configuration
|
||||
package {
|
||||
name = packageName
|
||||
baseUri = "package://pkl.sh/\(name)"
|
||||
packageZipUrl = "https://github.com/sonr-io/pkljar/releases/download/v\(version)/\(name)-\(version).zip"
|
||||
license = "Apache-2.0"
|
||||
|
||||
authors {
|
||||
"Sonr.io <dev@sonr.io>"
|
||||
}
|
||||
|
||||
exclude {
|
||||
"examples/**"
|
||||
"tests/**"
|
||||
"**/.DS_Store"
|
||||
"**/.idea/**"
|
||||
}
|
||||
|
||||
description = myModule.docComment
|
||||
issueTracker = "https://github.com/sonr-io/pkljar/issues"
|
||||
sourceCode = "https://github.com/sonr-io/pkljar/tree/v\(version)/packages/\(name)"
|
||||
sourceCodeUrlScheme = "https://github.com/sonr-io/pkljar/blob/v\(version)/packages/\(name)%{path}#L%{line}-%{endLine}"
|
||||
}
|
||||
|
||||
|
||||
// Default dependencies (can be extended in specific PklProject files)
|
||||
dependencies {
|
||||
// Common dependencies can be added here
|
||||
// ["example-dep"] {
|
||||
// uri = "package://pkl.sh/example-dep@1.0.0"
|
||||
// }
|
||||
}
|
||||
@@ -0,0 +1,81 @@
|
||||
open module cosmos.chain.App
|
||||
|
||||
`minimum-gas-prices`: String
|
||||
`query-gas-limit`: String
|
||||
`pruning-keep-recent`: String
|
||||
`pruning-interval`: String
|
||||
`halt-height`: Number
|
||||
`halt-time`: Number
|
||||
`min-retain-blocks`: Number
|
||||
`inter-block-cache`: Boolean
|
||||
`index-events`: Listing<Any>
|
||||
`iavl-cache-size`: Number
|
||||
`iavl-disable-fastnode`: Boolean
|
||||
`app-db-backend`: String
|
||||
`grpc-web`: GrpcWeb
|
||||
`state-sync`: StateSync
|
||||
|
||||
pruning: String
|
||||
telemetry: Telemetry
|
||||
api: Api
|
||||
grpc: Grpc
|
||||
streaming: Streaming
|
||||
mempool: Mempool
|
||||
|
||||
class Telemetry {
|
||||
`service-name`: String
|
||||
enabled: Boolean
|
||||
`enable-hostname`: Boolean
|
||||
`enable-hostname-label`: Boolean
|
||||
`enable-service-label`: Boolean
|
||||
`prometheus-retention-time`: Number
|
||||
`global-labels`: Listing<Any>
|
||||
`metrics-sink`: String
|
||||
`statsd-addr`: String
|
||||
`datadog-hostname`: String
|
||||
}
|
||||
|
||||
class Api {
|
||||
enable: Boolean
|
||||
swagger: Boolean
|
||||
address: String
|
||||
`max-open-connections`: Number
|
||||
`rpc-read-timeout`: Number
|
||||
`rpc-write-timeout`: Number
|
||||
`rpc-max-body-bytes`: Number
|
||||
`enabled-unsafe-cors`: Boolean
|
||||
}
|
||||
|
||||
class Grpc {
|
||||
enable: Boolean
|
||||
address: String
|
||||
`max-recv-msg-size`: String
|
||||
`max-send-msg-size`: String
|
||||
}
|
||||
|
||||
class GrpcWeb {
|
||||
enable: Boolean
|
||||
}
|
||||
|
||||
class StateSync {
|
||||
`snapshot-interval`: Number
|
||||
`snapshot-keep-recent`: Number
|
||||
}
|
||||
|
||||
class Streaming {
|
||||
abci: Abci
|
||||
}
|
||||
|
||||
class Abci {
|
||||
keys: Listing<Any>
|
||||
plugin: String
|
||||
`stop-node-on-err`: Boolean
|
||||
}
|
||||
|
||||
class Mempool {
|
||||
`max-txs`: Number
|
||||
}
|
||||
|
||||
output {
|
||||
renderer = new toml.Renderer {}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
open module cosmos.chain.Client
|
||||
|
||||
`chain-id`: String
|
||||
|
||||
`keyring-backend`: String
|
||||
|
||||
output: String
|
||||
|
||||
node: String
|
||||
|
||||
`broadcast-mode`: String
|
||||
|
||||
|
||||
output {
|
||||
renderer = new toml.Renderer {}
|
||||
}
|
||||
@@ -0,0 +1,141 @@
|
||||
open module cosmos.chain.Config
|
||||
|
||||
version: String
|
||||
proxy_app: String
|
||||
moniker: String
|
||||
db_backend: String
|
||||
db_dir: String
|
||||
log_level: String
|
||||
log_format: String
|
||||
genesis_file: String
|
||||
priv_validator_key_file: String
|
||||
priv_validator_state_file: String
|
||||
priv_validator_laddr: String
|
||||
node_key_file: String
|
||||
abci: String
|
||||
filter_peers: Boolean
|
||||
|
||||
rpc: Rpc
|
||||
p2p: P2p
|
||||
mempool: Mempool
|
||||
statesync: Statesync
|
||||
blocksync: Blocksync
|
||||
consensus: Consensus
|
||||
storage: Storage
|
||||
tx_index: TxIndex
|
||||
instrumentation: Instrumentation
|
||||
|
||||
class Rpc {
|
||||
laddr: String
|
||||
cors_allowed_origins: Listing<Any>
|
||||
cors_allowed_methods: Listing<String>
|
||||
cors_allowed_headers: Listing<String>
|
||||
grpc_laddr: String
|
||||
grpc_max_open_connections: Number
|
||||
unsafe: Boolean
|
||||
max_open_connections: Number
|
||||
max_subscription_clients: Number
|
||||
max_subscriptions_per_client: Number
|
||||
experimental_subscription_buffer_size: Number
|
||||
experimental_websocket_write_buffer_size: Number
|
||||
experimental_close_on_slow_client: Boolean
|
||||
timeout_broadcast_tx_commit: String
|
||||
max_request_batch_size: Number
|
||||
max_body_bytes: Number
|
||||
max_header_bytes: Number
|
||||
tls_cert_file: String
|
||||
tls_key_file: String
|
||||
pprof_laddr: String
|
||||
}
|
||||
|
||||
class P2p {
|
||||
laddr: String
|
||||
external_address: String
|
||||
seeds: String
|
||||
persistent_peers: String
|
||||
addr_book_file: String
|
||||
addr_book_strict: Boolean
|
||||
max_num_inbound_peers: Number
|
||||
max_num_outbound_peers: Number
|
||||
unconditional_peer_ids: String
|
||||
persistent_peers_max_dial_period: String
|
||||
flush_throttle_timeout: String
|
||||
max_packet_msg_payload_size: Number
|
||||
send_rate: Number
|
||||
recv_rate: Number
|
||||
pex: Boolean
|
||||
seed_mode: Boolean
|
||||
private_peer_ids: String
|
||||
allow_duplicate_ip: Boolean
|
||||
handshake_timeout: String
|
||||
dial_timeout: String
|
||||
}
|
||||
|
||||
class Mempool {
|
||||
type: String
|
||||
recheck: Boolean
|
||||
recheck_timeout: String
|
||||
broadcast: Boolean
|
||||
wal_dir: String
|
||||
size: Number
|
||||
max_txs_bytes: Number
|
||||
cache_size: Number
|
||||
`keep-invalid-txs-in-cache`: Boolean
|
||||
max_tx_bytes: Number
|
||||
max_batch_bytes: Number
|
||||
experimental_max_gossip_connections_to_persistent_peers: Number
|
||||
experimental_max_gossip_connections_to_non_persistent_peers: Number
|
||||
}
|
||||
|
||||
class Statesync {
|
||||
enable: Boolean
|
||||
rpc_servers: String
|
||||
trust_height: Number
|
||||
trust_hash: String
|
||||
trust_period: String
|
||||
discovery_time: String
|
||||
temp_dir: String
|
||||
chunk_request_timeout: String
|
||||
chunk_fetchers: String
|
||||
}
|
||||
|
||||
class Blocksync {
|
||||
version: String
|
||||
}
|
||||
|
||||
class Consensus {
|
||||
wal_file: String
|
||||
timeout_propose: String
|
||||
timeout_propose_delta: String
|
||||
timeout_prevote: String
|
||||
timeout_prevote_delta: String
|
||||
timeout_precommit: String
|
||||
timeout_precommit_delta: String
|
||||
timeout_commit: String
|
||||
double_sign_check_height: Number
|
||||
skip_timeout_commit: Boolean
|
||||
create_empty_blocks: Boolean
|
||||
create_empty_blocks_interval: String
|
||||
peer_gossip_sleep_duration: String
|
||||
peer_query_maj23_sleep_duration: String
|
||||
}
|
||||
|
||||
class Storage {
|
||||
discard_abci_responses: Boolean
|
||||
}
|
||||
|
||||
class TxIndex {
|
||||
indexer: String
|
||||
`psql-conn`: String
|
||||
}
|
||||
|
||||
class Instrumentation {
|
||||
prometheus: Boolean
|
||||
prometheus_listen_addr: String
|
||||
max_open_connections: Number
|
||||
namespace: String
|
||||
}
|
||||
|
||||
output {
|
||||
renderer = new toml.Renderer {}
|
||||
}
|
||||
@@ -0,0 +1,518 @@
|
||||
open module cosmos.chain.Genesis
|
||||
|
||||
app_name: String
|
||||
app_version: String
|
||||
genesis_time: String
|
||||
chain_id: String
|
||||
initial_height: Number
|
||||
app_hash: Any
|
||||
app_state: AppState
|
||||
consensus: Consensus
|
||||
|
||||
class AppState {
|
||||
`07-tendermint`: Any
|
||||
auth: Auth
|
||||
authz: Authz
|
||||
bank: Bank
|
||||
capability: Capability
|
||||
circuit: Circuit
|
||||
consensus: Any
|
||||
crisis: Crisis
|
||||
did: Svc
|
||||
distribution: Distribution
|
||||
dwn: Dwn
|
||||
evidence: Evidence
|
||||
feegrant: Feegrant
|
||||
feeibc: Feeibc
|
||||
genutil: Genutil
|
||||
globalfee: Globalfee
|
||||
gov: Gov
|
||||
group: Group
|
||||
ibc: Ibc
|
||||
interchainaccounts: Interchainaccounts
|
||||
mint: Mint
|
||||
nft: Nft
|
||||
packetfowardmiddleware: Packetfowardmiddleware
|
||||
params: Any
|
||||
poa: Poa
|
||||
slashing: Slashing
|
||||
staking: Staking
|
||||
svc: Svc
|
||||
tokenfactory: Tokenfactory
|
||||
transfer: Transfer
|
||||
upgrade: Vesting
|
||||
vesting: Vesting
|
||||
}
|
||||
|
||||
class Auth {
|
||||
params: Params
|
||||
accounts: Listing<Account>
|
||||
}
|
||||
|
||||
class Params {
|
||||
max_memo_characters: String
|
||||
tx_sig_limit: String
|
||||
tx_size_cost_per_byte: String
|
||||
sig_verify_cost_ed25519: String
|
||||
sig_verify_cost_secp256k1: String
|
||||
}
|
||||
|
||||
class Account {
|
||||
`@type`: String
|
||||
address: String
|
||||
pub_key: Any
|
||||
account_number: String
|
||||
sequence: String
|
||||
}
|
||||
|
||||
class Authz {
|
||||
authorization: Listing<Any>
|
||||
}
|
||||
|
||||
class Bank {
|
||||
params: BankParams
|
||||
balances: Listing<Balance>
|
||||
supply: Listing<ExpeditedMinDeposit>
|
||||
denom_metadata: Listing<Any>
|
||||
send_enabled: Listing<Any>
|
||||
}
|
||||
|
||||
class BankParams {
|
||||
send_enabled: Listing<Any>
|
||||
default_send_enabled: Boolean
|
||||
}
|
||||
|
||||
class Balance {
|
||||
address: String
|
||||
coins: Listing<ExpeditedMinDeposit>
|
||||
}
|
||||
|
||||
class ExpeditedMinDeposit {
|
||||
denom: String
|
||||
amount: String
|
||||
}
|
||||
|
||||
class Capability {
|
||||
index: String
|
||||
owners: Listing<Any>
|
||||
}
|
||||
|
||||
class Circuit {
|
||||
account_permissions: Listing<Any>
|
||||
disabled_type_urls: Listing<Any>
|
||||
}
|
||||
|
||||
class Crisis {
|
||||
constant_fee: ExpeditedMinDeposit
|
||||
}
|
||||
|
||||
class Svc {
|
||||
params: SvcParams
|
||||
}
|
||||
|
||||
class SvcParams {
|
||||
attenuations: Listing<Any>
|
||||
}
|
||||
|
||||
class Distribution {
|
||||
params: DistributionParams
|
||||
fee_pool: FeePool
|
||||
delegator_withdraw_infos: Listing<Any>
|
||||
previous_proposer: String
|
||||
outstanding_rewards: Listing<Any>
|
||||
validator_accumulated_commissions: Listing<Any>
|
||||
validator_historical_rewards: Listing<Any>
|
||||
validator_current_rewards: Listing<Any>
|
||||
delegator_starting_infos: Listing<Any>
|
||||
validator_slash_events: Listing<Any>
|
||||
}
|
||||
|
||||
class DistributionParams {
|
||||
community_tax: String
|
||||
base_proposer_reward: String
|
||||
bonus_proposer_reward: String
|
||||
withdraw_addr_enabled: Boolean
|
||||
}
|
||||
|
||||
class FeePool {
|
||||
community_pool: Listing<Any>
|
||||
}
|
||||
|
||||
class Dwn {
|
||||
params: DwnParams
|
||||
}
|
||||
|
||||
class DwnParams {
|
||||
attenuations: Listing<Any>
|
||||
allowed_operators: Listing<String>
|
||||
}
|
||||
|
||||
class Evidence {
|
||||
evidence: Listing<Any>
|
||||
}
|
||||
|
||||
class Feegrant {
|
||||
allowances: Listing<Any>
|
||||
}
|
||||
|
||||
class Feeibc {
|
||||
identified_fees: Listing<Any>
|
||||
fee_enabled_channels: Listing<Any>
|
||||
registered_payees: Listing<Any>
|
||||
registered_counterparty_payees: Listing<Any>
|
||||
forward_relayers: Listing<Any>
|
||||
}
|
||||
|
||||
class Genutil {
|
||||
gen_txs: Listing<GenTx>
|
||||
}
|
||||
|
||||
class GenTx {
|
||||
body: Body
|
||||
auth_info: AuthInfo
|
||||
signatures: Listing<String>
|
||||
}
|
||||
|
||||
class Body {
|
||||
messages: Listing<Message>
|
||||
memo: String
|
||||
timeout_height: String
|
||||
extension_options: Listing<Any>
|
||||
non_critical_extension_options: Listing<Any>
|
||||
}
|
||||
|
||||
class Message {
|
||||
`@type`: String
|
||||
description: Description
|
||||
commission: Commission
|
||||
min_self_delegation: String
|
||||
delegator_address: String
|
||||
validator_address: String
|
||||
pubkey: PublicKey
|
||||
value: ExpeditedMinDeposit
|
||||
}
|
||||
|
||||
class Description {
|
||||
moniker: String
|
||||
identity: String
|
||||
website: String
|
||||
security_contact: String
|
||||
details: String
|
||||
}
|
||||
|
||||
class Commission {
|
||||
rate: String
|
||||
max_rate: String
|
||||
max_change_rate: String
|
||||
}
|
||||
|
||||
class PublicKey {
|
||||
`@type`: String
|
||||
key: String
|
||||
}
|
||||
|
||||
class AuthInfo {
|
||||
signer_infos: Listing<SignerInfo>
|
||||
fee: Fee
|
||||
tip: Any
|
||||
}
|
||||
|
||||
class SignerInfo {
|
||||
public_key: PublicKey
|
||||
mode_info: ModeInfo
|
||||
sequence: String
|
||||
}
|
||||
|
||||
class ModeInfo {
|
||||
single: Single
|
||||
}
|
||||
|
||||
class Single {
|
||||
mode: String
|
||||
}
|
||||
|
||||
class Fee {
|
||||
amount: Listing<Any>
|
||||
gas_limit: String
|
||||
payer: String
|
||||
granter: String
|
||||
}
|
||||
|
||||
class Globalfee {
|
||||
params: GlobalfeeParams
|
||||
}
|
||||
|
||||
class GlobalfeeParams {
|
||||
minimum_gas_prices: Listing<MinimumGasPrice>
|
||||
}
|
||||
|
||||
class MinimumGasPrice {
|
||||
amount: String
|
||||
denom: String
|
||||
}
|
||||
|
||||
class Gov {
|
||||
starting_proposal_id: String
|
||||
deposits: Listing<Any>
|
||||
votes: Listing<Any>
|
||||
proposals: Listing<Any>
|
||||
deposit_params: Any
|
||||
voting_params: Any
|
||||
tally_params: Any
|
||||
params: GovParams
|
||||
constitution: String
|
||||
}
|
||||
|
||||
class GovParams {
|
||||
min_deposit: Listing<ExpeditedMinDeposit>
|
||||
max_deposit_period: String
|
||||
voting_period: String
|
||||
quorum: String
|
||||
threshold: String
|
||||
veto_threshold: String
|
||||
min_initial_deposit_ratio: String
|
||||
proposal_cancel_ratio: String
|
||||
proposal_cancel_dest: String
|
||||
expedited_voting_period: String
|
||||
expedited_threshold: String
|
||||
expedited_min_deposit: Listing<ExpeditedMinDeposit>
|
||||
burn_vote_quorum: Boolean
|
||||
burn_proposal_deposit_prevote: Boolean
|
||||
burn_vote_veto: Boolean
|
||||
min_deposit_ratio: String
|
||||
}
|
||||
|
||||
class Group {
|
||||
group_seq: String
|
||||
groups: Listing<Any>
|
||||
group_members: Listing<Any>
|
||||
group_policy_seq: String
|
||||
group_policies: Listing<Any>
|
||||
proposal_seq: String
|
||||
proposals: Listing<Any>
|
||||
votes: Listing<Any>
|
||||
}
|
||||
|
||||
class Ibc {
|
||||
client_genesis: ClientGenesis
|
||||
connection_genesis: ConnectionGenesis
|
||||
channel_genesis: ChannelGenesis
|
||||
}
|
||||
|
||||
class ClientGenesis {
|
||||
clients: Listing<Any>
|
||||
clients_consensus: Listing<Any>
|
||||
clients_metadata: Listing<Any>
|
||||
params: ClientGenesisParams
|
||||
create_localhost: Boolean
|
||||
next_client_sequence: String
|
||||
}
|
||||
|
||||
class ClientGenesisParams {
|
||||
allowed_clients: Listing<String>
|
||||
}
|
||||
|
||||
class ConnectionGenesis {
|
||||
connections: Listing<Any>
|
||||
client_connection_paths: Listing<Any>
|
||||
next_connection_sequence: String
|
||||
params: ConnectionGenesisParams
|
||||
}
|
||||
|
||||
class ConnectionGenesisParams {
|
||||
max_expected_time_per_block: String
|
||||
}
|
||||
|
||||
class ChannelGenesis {
|
||||
channels: Listing<Any>
|
||||
acknowledgements: Listing<Any>
|
||||
commitments: Listing<Any>
|
||||
receipts: Listing<Any>
|
||||
send_sequences: Listing<Any>
|
||||
recv_sequences: Listing<Any>
|
||||
ack_sequences: Listing<Any>
|
||||
next_channel_sequence: String
|
||||
params: ChannelGenesisParams
|
||||
}
|
||||
|
||||
class ChannelGenesisParams {
|
||||
upgrade_timeout: UpgradeTimeout
|
||||
}
|
||||
|
||||
class UpgradeTimeout {
|
||||
height: Height
|
||||
timestamp: String
|
||||
}
|
||||
|
||||
class Height {
|
||||
revision_number: String
|
||||
revision_height: String
|
||||
}
|
||||
|
||||
class Interchainaccounts {
|
||||
controller_genesis_state: ControllerGenesisState
|
||||
host_genesis_state: HostGenesisState
|
||||
}
|
||||
|
||||
class ControllerGenesisState {
|
||||
active_channels: Listing<Any>
|
||||
interchain_accounts: Listing<Any>
|
||||
ports: Listing<Any>
|
||||
params: ControllerGenesisStateParams
|
||||
}
|
||||
|
||||
class ControllerGenesisStateParams {
|
||||
controller_enabled: Boolean
|
||||
}
|
||||
|
||||
class HostGenesisState {
|
||||
active_channels: Listing<Any>
|
||||
interchain_accounts: Listing<Any>
|
||||
port: String
|
||||
params: HostGenesisStateParams
|
||||
}
|
||||
|
||||
class HostGenesisStateParams {
|
||||
host_enabled: Boolean
|
||||
allow_messages: Listing<String>
|
||||
}
|
||||
|
||||
class Mint {
|
||||
minter: Minter
|
||||
params: MintParams
|
||||
}
|
||||
|
||||
class Minter {
|
||||
inflation: String
|
||||
annual_provisions: String
|
||||
}
|
||||
|
||||
class MintParams {
|
||||
mint_denom: String
|
||||
inflation_rate_change: String
|
||||
inflation_max: String
|
||||
inflation_min: String
|
||||
goal_bonded: String
|
||||
blocks_per_year: String
|
||||
}
|
||||
|
||||
class Nft {
|
||||
classes: Listing<Any>
|
||||
entries: Listing<Any>
|
||||
}
|
||||
|
||||
class Packetfowardmiddleware {
|
||||
params: PacketfowardmiddlewareParams
|
||||
in_flight_packets: Vesting
|
||||
}
|
||||
|
||||
class PacketfowardmiddlewareParams {
|
||||
fee_percentage: String
|
||||
}
|
||||
|
||||
class Vesting {
|
||||
}
|
||||
|
||||
class Poa {
|
||||
params: PoaParams
|
||||
}
|
||||
|
||||
class PoaParams {
|
||||
admins: Listing<String>
|
||||
allow_validator_self_exit: Boolean
|
||||
}
|
||||
|
||||
class Slashing {
|
||||
params: SlashingParams
|
||||
signing_infos: Listing<Any>
|
||||
missed_blocks: Listing<Any>
|
||||
}
|
||||
|
||||
class SlashingParams {
|
||||
signed_blocks_window: String
|
||||
min_signed_per_window: String
|
||||
downtime_jail_duration: String
|
||||
slash_fraction_double_sign: String
|
||||
slash_fraction_downtime: String
|
||||
}
|
||||
|
||||
class Staking {
|
||||
params: StakingParams
|
||||
last_total_power: String
|
||||
last_validator_powers: Listing<Any>
|
||||
validators: Listing<Any>
|
||||
delegations: Listing<Any>
|
||||
unbonding_delegations: Listing<Any>
|
||||
redelegations: Listing<Any>
|
||||
exported: Boolean
|
||||
}
|
||||
|
||||
class StakingParams {
|
||||
unbonding_time: String
|
||||
max_validators: Number
|
||||
max_entries: Number
|
||||
historical_entries: Number
|
||||
bond_denom: String
|
||||
min_commission_rate: String
|
||||
}
|
||||
|
||||
class Tokenfactory {
|
||||
params: TokenfactoryParams
|
||||
factory_denoms: Listing<Any>
|
||||
}
|
||||
|
||||
class TokenfactoryParams {
|
||||
denom_creation_fee: Listing<Any>
|
||||
denom_creation_gas_consume: Number
|
||||
}
|
||||
|
||||
class Transfer {
|
||||
port_id: String
|
||||
denom_traces: Listing<Any>
|
||||
params: TransferParams
|
||||
total_escrowed: Listing<Any>
|
||||
}
|
||||
|
||||
class TransferParams {
|
||||
send_enabled: Boolean
|
||||
receive_enabled: Boolean
|
||||
}
|
||||
|
||||
class Consensus {
|
||||
params: ConsensusParams
|
||||
}
|
||||
|
||||
class ConsensusParams {
|
||||
block: Block
|
||||
evidence: ParamsEvidence
|
||||
validator: Validator
|
||||
version: Version
|
||||
abci: Abci
|
||||
}
|
||||
|
||||
class Block {
|
||||
max_bytes: String
|
||||
max_gas: String
|
||||
}
|
||||
|
||||
class ParamsEvidence {
|
||||
max_age_num_blocks: String
|
||||
max_age_duration: String
|
||||
max_bytes: String
|
||||
}
|
||||
|
||||
class Validator {
|
||||
pub_key_types: Listing<String>
|
||||
}
|
||||
|
||||
class Version {
|
||||
app: String
|
||||
}
|
||||
|
||||
class Abci {
|
||||
vote_extensions_enable_height: String
|
||||
}
|
||||
|
||||
output {
|
||||
renderer = new json.Renderer {}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
amends "../basePklProject.pkl"
|
||||
|
||||
|
||||
dependencies {
|
||||
["toml"] { uri = "package://pkg.pkl-lang.org/pkl-pantry/pkl.toml@1.0.2" }
|
||||
}
|
||||
|
||||
package {
|
||||
version = "0.0.1"
|
||||
description = "Cosmos chain configuration for Sonr.io"
|
||||
}
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"resolvedDependencies": {
|
||||
"package://pkg.pkl-lang.org/pkl-pantry/pkl.toml@1": {
|
||||
"type": "remote",
|
||||
"uri": "projectpackage://pkg.pkl-lang.org/pkl-pantry/pkl.toml@1.0.2",
|
||||
"checksums": {
|
||||
"sha256": "45fea4cf14e7d776e131b338efe2a7016f86c87b0c0f532409f728033bd82f71"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
/// Generated schema for Root
|
||||
///
|
||||
/// This module was generated from JSON Schema from
|
||||
/// <file:///Users/prad/Developer/github.com/sonr-io/pkljar/ibc.json>.
|
||||
///
|
||||
/// WARN: The root schema describes open-ended properties, but this is not possible to describe at the
|
||||
/// module level.
|
||||
module cosmos.params.Asset
|
||||
|
||||
class Coin {
|
||||
type: String
|
||||
denom: String
|
||||
name: String
|
||||
symbol: String
|
||||
description: String
|
||||
decimals: Number
|
||||
image: String
|
||||
coinGeckoId: String
|
||||
ibc_info: IbcInfo?
|
||||
bridge_info: BridgeInfo?
|
||||
}
|
||||
|
||||
class BridgeInfo {
|
||||
path: String
|
||||
enable: Boolean
|
||||
counterparty: BridgeCounterparty
|
||||
}
|
||||
|
||||
class BridgeCounterparty {
|
||||
chain: String
|
||||
contract: String
|
||||
}
|
||||
|
||||
class IbcInfo {
|
||||
path: String
|
||||
client: IbcClient
|
||||
counterparty: IbcCounterparty
|
||||
}
|
||||
|
||||
class IbcClient {
|
||||
channel: String
|
||||
port: String
|
||||
}
|
||||
|
||||
class IbcCounterparty {
|
||||
channel: String
|
||||
port: String
|
||||
chain: String
|
||||
denom: String
|
||||
}
|
||||
|
||||
@@ -0,0 +1,74 @@
|
||||
open module cosmos.chain.Params
|
||||
|
||||
class Chain {
|
||||
chain_id_cosmos: String
|
||||
chain_name: String
|
||||
chain_image: String
|
||||
staking_asset_denom: String
|
||||
staking_asset_symbol: String
|
||||
staking_asset_image: String
|
||||
bech_account_prefix: String
|
||||
bech_validator_prefix: String
|
||||
origin_genesis_time: String
|
||||
api_name: String
|
||||
is_support_mintscan: Boolean
|
||||
account_type: Listing<AccountType>
|
||||
cosmos_fee_info: CosmosFeeInfo
|
||||
grpc_endpoint: Listing<LcdEndpoint>
|
||||
lcd_endpoint: Listing<LcdEndpoint>
|
||||
explorer: Explorer
|
||||
about: About
|
||||
forum: Forum
|
||||
description: Description
|
||||
}
|
||||
|
||||
class AccountType {
|
||||
hd_path: String?
|
||||
pubkey_style: String?
|
||||
pubkey_type: String?
|
||||
is_default: Boolean?
|
||||
}
|
||||
|
||||
class CosmosFeeInfo {
|
||||
base: String?
|
||||
rate: Listing<String>
|
||||
is_simulable: Boolean?
|
||||
simulated_gas_multiply: Number?
|
||||
init_gas_limit: Number?
|
||||
fee_threshold: String?
|
||||
}
|
||||
|
||||
class LcdEndpoint {
|
||||
provider: String?
|
||||
url: String?
|
||||
}
|
||||
|
||||
class Explorer {
|
||||
name: String?
|
||||
url: String?
|
||||
account: String?
|
||||
tx: String?
|
||||
proposal: String?
|
||||
}
|
||||
|
||||
class About {
|
||||
website: String?
|
||||
docs: String?
|
||||
github: String?
|
||||
blog: String?
|
||||
twitter: String?
|
||||
discord: String?
|
||||
telegram: String?
|
||||
youtube: String?
|
||||
coingecko: String?
|
||||
}
|
||||
|
||||
class Forum {
|
||||
main: String?
|
||||
}
|
||||
|
||||
class Description {
|
||||
ko: String?
|
||||
en: String?
|
||||
ja: String?
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
amends "../basePklProject.pkl"
|
||||
|
||||
package {
|
||||
version = "0.0.1"
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"resolvedDependencies": {}
|
||||
}
|
||||
@@ -0,0 +1,275 @@
|
||||
open module ipfs.node.Config
|
||||
|
||||
API: API
|
||||
|
||||
Addresses: Addresses
|
||||
|
||||
AutoNAT: Dynamic
|
||||
|
||||
Bootstrap: Listing
|
||||
|
||||
DNS: DNS
|
||||
|
||||
Datastore: Datastore
|
||||
|
||||
Discovery: Discovery
|
||||
|
||||
Experimental: Experimental
|
||||
|
||||
Gateway: Gateway
|
||||
|
||||
Identity: Identity
|
||||
|
||||
Internal: Dynamic
|
||||
|
||||
Ipns: Ipns
|
||||
|
||||
Migration: Migration
|
||||
|
||||
Mounts: Mounts
|
||||
|
||||
Peering: Peering
|
||||
|
||||
Pinning: Pinning
|
||||
|
||||
Plugins: Plugins
|
||||
|
||||
Provider: Provider
|
||||
|
||||
Pubsub: Pubsub
|
||||
|
||||
Reprovider: Reprovider
|
||||
|
||||
Routing: Routing
|
||||
|
||||
Swarm: Swarm
|
||||
|
||||
class API {
|
||||
HTTPHeaders: HTTPHeaders
|
||||
}
|
||||
|
||||
class HTTPHeaders {
|
||||
`Access-Control-Allow-Origin`: Listing
|
||||
}
|
||||
|
||||
class Addresses {
|
||||
API: String
|
||||
|
||||
Announce: Listing<Any>
|
||||
|
||||
AppendAnnounce: Listing<Any>
|
||||
|
||||
Gateway: String
|
||||
|
||||
NoAnnounce: Listing<Any>
|
||||
|
||||
Swarm: Listing
|
||||
}
|
||||
|
||||
class DNS {
|
||||
Resolvers: Dynamic
|
||||
}
|
||||
|
||||
class Datastore {
|
||||
BloomFilterSize: Int
|
||||
|
||||
GCPeriod: String
|
||||
|
||||
HashOnRead: Boolean
|
||||
|
||||
Spec: Spec
|
||||
|
||||
StorageGCWatermark: Int
|
||||
|
||||
StorageMax: String
|
||||
}
|
||||
|
||||
class Spec {
|
||||
mounts: Listing
|
||||
|
||||
type: String
|
||||
}
|
||||
|
||||
class MountsItem0 {
|
||||
child: Child
|
||||
|
||||
mountpoint: String
|
||||
|
||||
prefix: String
|
||||
|
||||
type: String
|
||||
}
|
||||
|
||||
class Child {
|
||||
path: String
|
||||
|
||||
shardFunc: String
|
||||
|
||||
sync: Boolean
|
||||
|
||||
type: String
|
||||
}
|
||||
|
||||
class MountsItem1 {
|
||||
child: MountsItem1Child
|
||||
|
||||
mountpoint: String
|
||||
|
||||
prefix: String
|
||||
|
||||
type: String
|
||||
}
|
||||
|
||||
class MountsItem1Child {
|
||||
compression: String
|
||||
|
||||
path: String
|
||||
|
||||
type: String
|
||||
}
|
||||
|
||||
class Discovery {
|
||||
MDNS: MDNS
|
||||
}
|
||||
|
||||
class MDNS {
|
||||
Enabled: Boolean
|
||||
}
|
||||
|
||||
class Experimental {
|
||||
AcceleratedDHTClient: Boolean
|
||||
|
||||
FilestoreEnabled: Boolean
|
||||
|
||||
GraphsyncEnabled: Boolean
|
||||
|
||||
Libp2pStreamMounting: Boolean
|
||||
|
||||
P2pHttpProxy: Boolean
|
||||
|
||||
StrategicProviding: Boolean
|
||||
|
||||
UrlstoreEnabled: Boolean
|
||||
}
|
||||
|
||||
class Gateway {
|
||||
APICommands: Listing<Any>
|
||||
|
||||
HTTPHeaders: GatewayHTTPHeaders
|
||||
|
||||
NoDNSLink: Boolean
|
||||
|
||||
NoFetch: Boolean
|
||||
|
||||
PathPrefixes: Listing<Any>
|
||||
|
||||
PublicGateways: Any
|
||||
|
||||
RootRedirect: String
|
||||
|
||||
Writable: Boolean
|
||||
}
|
||||
|
||||
class GatewayHTTPHeaders {
|
||||
`Access-Control-Allow-Headers`: Listing
|
||||
|
||||
`Access-Control-Allow-Methods`: Listing
|
||||
|
||||
`Access-Control-Allow-Origin`: Listing
|
||||
}
|
||||
|
||||
class Identity {
|
||||
PeerID: String
|
||||
|
||||
PrivKey: String
|
||||
}
|
||||
|
||||
class Ipns {
|
||||
RecordLifetime: String
|
||||
|
||||
RepublishPeriod: String
|
||||
|
||||
ResolveCacheSize: Int
|
||||
}
|
||||
|
||||
class Migration {
|
||||
DownloadSources: Listing<Any>
|
||||
|
||||
Keep: String
|
||||
}
|
||||
|
||||
class Mounts {
|
||||
FuseAllowOther: Boolean
|
||||
|
||||
IPFS: String
|
||||
|
||||
IPNS: String
|
||||
}
|
||||
|
||||
class Peering {
|
||||
Peers: Listing
|
||||
}
|
||||
|
||||
class PeersItem11 {
|
||||
Addrs: Listing
|
||||
|
||||
ID: String
|
||||
}
|
||||
|
||||
class Pinning {
|
||||
RemoteServices: Dynamic
|
||||
}
|
||||
|
||||
class Plugins {
|
||||
Plugins: Any
|
||||
}
|
||||
|
||||
class Provider {
|
||||
Strategy: String
|
||||
}
|
||||
|
||||
class Pubsub {
|
||||
DisableSigning: Boolean
|
||||
|
||||
Router: String
|
||||
}
|
||||
|
||||
class Reprovider {
|
||||
Interval: String
|
||||
|
||||
Strategy: String
|
||||
}
|
||||
|
||||
class Routing {
|
||||
Methods: Any
|
||||
|
||||
Routers: Any
|
||||
|
||||
Type: String
|
||||
}
|
||||
|
||||
class Swarm {
|
||||
AddrFilters: Any
|
||||
|
||||
ConnMgr: Dynamic
|
||||
|
||||
DisableBandwidthMetrics: Boolean
|
||||
|
||||
DisableNatPortMap: Boolean
|
||||
|
||||
RelayClient: Dynamic
|
||||
|
||||
RelayService: Dynamic
|
||||
|
||||
ResourceMgr: Dynamic
|
||||
|
||||
Transports: Transports
|
||||
}
|
||||
|
||||
class Transports {
|
||||
Multiplexers: Dynamic
|
||||
|
||||
Network: Dynamic
|
||||
|
||||
Security: Dynamic
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
amends "../basePklProject.pkl"
|
||||
|
||||
package {
|
||||
version = "0.0.1"
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"resolvedDependencies": {}
|
||||
}
|
||||
@@ -0,0 +1,186 @@
|
||||
open module matrix.element.Config
|
||||
|
||||
default_server_config: DefaultServerConfig
|
||||
|
||||
disable_custom_urls: Boolean
|
||||
|
||||
disable_guests: Boolean
|
||||
|
||||
disable_login_language_selector: Boolean
|
||||
|
||||
disable_3pid_login: Boolean
|
||||
|
||||
brand: String
|
||||
|
||||
integrations_ui_url: String
|
||||
|
||||
integrations_rest_url: String
|
||||
|
||||
integrations_widgets_urls: Listing<String>
|
||||
|
||||
branding: Branding
|
||||
|
||||
posthog: Posthog
|
||||
|
||||
default_country_code: String
|
||||
|
||||
show_labs_settings: Boolean
|
||||
|
||||
features: Features
|
||||
|
||||
default_federate: Boolean
|
||||
|
||||
default_theme: String
|
||||
|
||||
room_directory: RoomDirectory
|
||||
|
||||
enable_presence_by_hs_url: EnablePresenceByHsUrl
|
||||
|
||||
setting_defaults: SettingDefaults
|
||||
|
||||
jitsi: Jitsi
|
||||
|
||||
element_call: ElementCall
|
||||
|
||||
map_style_url: String
|
||||
|
||||
settings_defaults: SettingsDefaults
|
||||
|
||||
class DefaultServerConfig {
|
||||
`m.homeserver`: MHomeserver
|
||||
|
||||
`m.identity_server`: MIdentityServer
|
||||
|
||||
`org.matrix.msc3575.proxy`: OrgMatrixMsc3575Proxy
|
||||
}
|
||||
|
||||
class MHomeserver {
|
||||
base_url: String
|
||||
|
||||
server_name: String
|
||||
}
|
||||
|
||||
class MIdentityServer {
|
||||
base_url: String
|
||||
}
|
||||
|
||||
class OrgMatrixMsc3575Proxy {
|
||||
url: String
|
||||
}
|
||||
|
||||
class Branding {
|
||||
welcome_background_url: String
|
||||
|
||||
auth_header_logo_url: String
|
||||
}
|
||||
|
||||
class Posthog {
|
||||
api_host: String
|
||||
|
||||
project_api_key: String
|
||||
}
|
||||
|
||||
class Features {
|
||||
feature_wysiwyg_composer: Boolean
|
||||
|
||||
feature_pinning: Boolean
|
||||
|
||||
feature_oidc_native_flow: Boolean
|
||||
|
||||
feature_sliding_sync: Boolean
|
||||
|
||||
feature_custom_themes: Boolean
|
||||
}
|
||||
|
||||
class RoomDirectory {
|
||||
servers: Listing<String>
|
||||
}
|
||||
|
||||
class EnablePresenceByHsUrl {
|
||||
`https://bm.chat`: Boolean
|
||||
|
||||
`https://matrix-client.matrix.org`: Boolean
|
||||
}
|
||||
|
||||
class SettingDefaults {
|
||||
breadcrumbs: Boolean
|
||||
}
|
||||
|
||||
class Jitsi {
|
||||
preferred_domain: String
|
||||
}
|
||||
|
||||
class ElementCall {
|
||||
url: String
|
||||
|
||||
participant_limit: Number
|
||||
|
||||
brand: String
|
||||
}
|
||||
|
||||
class SettingsDefaults {
|
||||
custom_themes: Listing<CustomTheme>
|
||||
}
|
||||
|
||||
class CustomTheme {
|
||||
name: String
|
||||
|
||||
is_dark: Boolean
|
||||
|
||||
colors: Colors
|
||||
}
|
||||
|
||||
class Colors {
|
||||
`accent-color`: String
|
||||
|
||||
`primary-color`: String
|
||||
|
||||
`warning-color`: String
|
||||
|
||||
alert: String?
|
||||
|
||||
`sidebar-color`: String
|
||||
|
||||
`roomlist-background-color`: String
|
||||
|
||||
`roomlist-text-color`: String
|
||||
|
||||
`roomlist-text-secondary-color`: String
|
||||
|
||||
`roomlist-highlights-color`: String
|
||||
|
||||
`roomlist-separator-color`: String
|
||||
|
||||
`timeline-background-color`: String
|
||||
|
||||
`timeline-text-color`: String
|
||||
|
||||
`secondary-content`: String?
|
||||
|
||||
`tertiary-content`: String?
|
||||
|
||||
`timeline-text-secondary-color`: String
|
||||
|
||||
`timeline-highlights-color`: String
|
||||
|
||||
`reaction-row-button-selected-bg-color`: String?
|
||||
|
||||
`menu-selected-color`: String?
|
||||
|
||||
`focus-bg-color`: String?
|
||||
|
||||
`room-highlight-color`: String?
|
||||
|
||||
`togglesw-off-color`: String?
|
||||
|
||||
`other-user-pill-bg-color`: String?
|
||||
|
||||
`username-colors`: Listing<String>?
|
||||
|
||||
`avatar-background-colors`: Listing<String>?
|
||||
}
|
||||
|
||||
|
||||
output {
|
||||
renderer = new JsonRenderer {}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
amends "../basePklProject.pkl"
|
||||
|
||||
|
||||
package {
|
||||
version = "0.0.1"
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"resolvedDependencies": {}
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
open module matrix.service.AppService
|
||||
|
||||
id: String
|
||||
|
||||
as_token: String
|
||||
|
||||
hs_token: String
|
||||
|
||||
namespaces: Namespaces
|
||||
|
||||
sender_localpart: String
|
||||
|
||||
url: String
|
||||
|
||||
rate_limited: Boolean
|
||||
|
||||
`de.sorunome.msc2409.push_ephemeral`: Boolean
|
||||
|
||||
push_ephemeral: Boolean
|
||||
|
||||
`org.matrix.msc3202`: Boolean
|
||||
|
||||
class Namespaces {
|
||||
rooms: Listing<Any>
|
||||
|
||||
users: Listing<Alias>
|
||||
|
||||
aliases: Listing<Alias>
|
||||
}
|
||||
|
||||
class Alias {
|
||||
regex: String
|
||||
|
||||
exclusive: Boolean
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
amends "../basePklProject.pkl"
|
||||
|
||||
package {
|
||||
version = "0.0.2"
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"resolvedDependencies": {}
|
||||
}
|
||||
@@ -0,0 +1,53 @@
|
||||
open module matrix.synapse.Synapse
|
||||
|
||||
server_name: String
|
||||
pid_file: String
|
||||
public_baseurl: String
|
||||
extra_well_known_client_content: ExtraWellKnownClientContent
|
||||
app_service_config_files: Listing<String>
|
||||
listeners: Listing<Listener>
|
||||
database: Database
|
||||
log_config: String
|
||||
enable_registration: Boolean
|
||||
enable_registration_without_verification: Boolean
|
||||
media_store_path: String
|
||||
report_stats: Boolean
|
||||
signing_key_path: String
|
||||
trusted_key_servers: Listing<TrustedKeyServer>
|
||||
|
||||
class ExtraWellKnownClientContent {
|
||||
`org.matrix.msc3575.proxy`: OrgMatrixMsc3575Proxy
|
||||
}
|
||||
|
||||
class OrgMatrixMsc3575Proxy {
|
||||
url: String
|
||||
}
|
||||
|
||||
class Listener {
|
||||
port: Number
|
||||
tls: Boolean
|
||||
type: String
|
||||
x_forwarded: Boolean
|
||||
resources: Listing<Resource>
|
||||
}
|
||||
|
||||
class Resource {
|
||||
names: Listing<String>
|
||||
compress: Boolean
|
||||
}
|
||||
|
||||
class Database {
|
||||
name: String
|
||||
args: Args
|
||||
}
|
||||
|
||||
class Args {
|
||||
user: String
|
||||
password: String
|
||||
dbname: String
|
||||
host: String
|
||||
}
|
||||
|
||||
class TrustedKeyServer {
|
||||
server_name: String
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
module sonr.beam
|
||||
|
||||
import "chain/app.pkl" as app
|
||||
import "chain/client.pkl" as client
|
||||
import "chain/config.pkl" as config
|
||||
|
||||
output {
|
||||
files {
|
||||
["config/app.toml"] = app.output
|
||||
["config/client.toml"] = client.output
|
||||
["config/config.toml"] = config.output
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
amends "../basePklProject.pkl"
|
||||
|
||||
package {
|
||||
version = "0.0.1"
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"resolvedDependencies": {}
|
||||
}
|
||||
@@ -0,0 +1,70 @@
|
||||
extends "https://mod.pkl.sh/cosmos.chain/App.pkl"
|
||||
|
||||
`minimum-gas-prices` = "0usnr"
|
||||
`query-gas-limit` = "0"
|
||||
`pruning-keep-recent` = "0"
|
||||
`pruning-interval` = "0"
|
||||
`halt-height` = 0
|
||||
`halt-time` = 0
|
||||
`min-retain-blocks` = 0
|
||||
`inter-block-cache` = true
|
||||
`index-events` {
|
||||
}
|
||||
`iavl-cache-size` = 781250
|
||||
`iavl-disable-fastnode` = true
|
||||
`app-db-backend` = "goleveldb"
|
||||
|
||||
`grpc-web` {
|
||||
enable = true
|
||||
}
|
||||
|
||||
`state-sync` {
|
||||
`snapshot-interval` = 0
|
||||
`snapshot-keep-recent` = 2
|
||||
}
|
||||
|
||||
pruning = "default"
|
||||
telemetry {
|
||||
`service-name` = "sonr-node"
|
||||
enabled = false
|
||||
`enable-hostname` = false
|
||||
`enable-hostname-label` = true
|
||||
`enable-service-label` = true
|
||||
`prometheus-retention-time` = 0
|
||||
`global-labels` {
|
||||
}
|
||||
`metrics-sink` = ""
|
||||
`statsd-addr` = ""
|
||||
`datadog-hostname` = ""
|
||||
}
|
||||
|
||||
api {
|
||||
enable = true
|
||||
swagger = true
|
||||
address = "tcp://0.0.0.0:1317"
|
||||
`max-open-connections` = 1000
|
||||
`rpc-read-timeout` = 10
|
||||
`rpc-write-timeout` = 0
|
||||
`rpc-max-body-bytes` = 1000000
|
||||
`enabled-unsafe-cors` = false
|
||||
}
|
||||
|
||||
grpc {
|
||||
enable = true
|
||||
address = "0.0.0.0:9090"
|
||||
`max-recv-msg-size` = "10485760"
|
||||
`max-send-msg-size` = "2147483647"
|
||||
}
|
||||
|
||||
streaming {
|
||||
abci {
|
||||
keys {
|
||||
}
|
||||
plugin = ""
|
||||
`stop-node-on-err` = true
|
||||
}
|
||||
}
|
||||
|
||||
mempool {
|
||||
`max-txs` = 5000
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
extends "https://mod.pkl.sh/cosmos.chain/Client.pkl"
|
||||
|
||||
`chain-id` = "sonr-testnet-1"
|
||||
`keyring-backend` = "test"
|
||||
output = "text"
|
||||
node = "tcp://localhost:26657"
|
||||
`broadcast-mode` = "sync"
|
||||
@@ -0,0 +1,139 @@
|
||||
extends "https://mod.pkl.sh/cosmos.chain/Config.pkl"
|
||||
|
||||
version = "v0.38.12"
|
||||
proxy_app = "tcp://127.0.0.1:26658"
|
||||
moniker = "florence"
|
||||
db_backend = "goleveldb"
|
||||
db_dir = "data"
|
||||
log_level = "info"
|
||||
log_format = "plain"
|
||||
genesis_file = "config/genesis.json"
|
||||
priv_validator_key_file = "config/priv_validator_key.json"
|
||||
priv_validator_state_file = "data/priv_validator_state.json"
|
||||
priv_validator_laddr = ""
|
||||
node_key_file = "config/node_key.json"
|
||||
abci = "socket"
|
||||
filter_peers = false
|
||||
|
||||
rpc {
|
||||
laddr = "tcp://0.0.0.0:26657"
|
||||
cors_allowed_origins {}
|
||||
cors_allowed_methods {
|
||||
"GET"
|
||||
"POST"
|
||||
"HEAD"
|
||||
}
|
||||
cors_allowed_headers {
|
||||
"Accept"
|
||||
"Accept-Encoding"
|
||||
"Authorization"
|
||||
"Origin"
|
||||
"Content-Type"
|
||||
"X-Requested-With"
|
||||
"X-Server-Time"
|
||||
}
|
||||
grpc_laddr = ""
|
||||
grpc_max_open_connections = 900
|
||||
unsafe = false
|
||||
max_open_connections = 900
|
||||
max_subscription_clients = 100
|
||||
max_subscriptions_per_client = 5
|
||||
experimental_subscription_buffer_size = 200
|
||||
experimental_websocket_write_buffer_size = 200
|
||||
experimental_close_on_slow_client = false
|
||||
timeout_broadcast_tx_commit = "10s"
|
||||
max_request_batch_size = 10
|
||||
max_body_bytes = 1000000
|
||||
max_header_bytes = 1048576
|
||||
tls_cert_file = ""
|
||||
tls_key_file = ""
|
||||
pprof_laddr = "localhost:6060"
|
||||
}
|
||||
|
||||
p2p {
|
||||
laddr = "tcp://0.0.0.0:26656"
|
||||
external_address = ""
|
||||
seeds = ""
|
||||
persistent_peers = ""
|
||||
addr_book_file = "config/addrbook.json"
|
||||
addr_book_strict = true
|
||||
max_num_inbound_peers = 40
|
||||
max_num_outbound_peers = 10
|
||||
unconditional_peer_ids = ""
|
||||
persistent_peers_max_dial_period = "0s"
|
||||
flush_throttle_timeout = "100ms"
|
||||
max_packet_msg_payload_size = 1024
|
||||
send_rate = 5120000
|
||||
recv_rate = 5120000
|
||||
pex = true
|
||||
seed_mode = false
|
||||
private_peer_ids = ""
|
||||
allow_duplicate_ip = false
|
||||
handshake_timeout = "20s"
|
||||
dial_timeout = "3s"
|
||||
}
|
||||
|
||||
mempool {
|
||||
type = "flood"
|
||||
recheck = true
|
||||
recheck_timeout = "1s"
|
||||
broadcast = true
|
||||
wal_dir = ""
|
||||
size = 5000
|
||||
max_txs_bytes = 1073741824
|
||||
cache_size = 10000
|
||||
`keep-invalid-txs-in-cache` = false
|
||||
max_tx_bytes = 1048576
|
||||
max_batch_bytes = 0
|
||||
experimental_max_gossip_connections_to_persistent_peers = 0
|
||||
experimental_max_gossip_connections_to_non_persistent_peers = 0
|
||||
}
|
||||
|
||||
statesync {
|
||||
enable = false
|
||||
rpc_servers = ""
|
||||
trust_height = 0
|
||||
trust_hash = ""
|
||||
trust_period = "168h0m0s"
|
||||
discovery_time = "15s"
|
||||
temp_dir = ""
|
||||
chunk_request_timeout = "10s"
|
||||
chunk_fetchers = "4"
|
||||
}
|
||||
|
||||
blocksync {
|
||||
version = "v0"
|
||||
}
|
||||
|
||||
consensus {
|
||||
wal_file = "data/cs.wal/wal"
|
||||
timeout_propose = "3s"
|
||||
timeout_propose_delta = "500ms"
|
||||
timeout_prevote = "1s"
|
||||
timeout_prevote_delta = "500ms"
|
||||
timeout_precommit = "1s"
|
||||
timeout_precommit_delta = "500ms"
|
||||
timeout_commit = "5s"
|
||||
double_sign_check_height = 0
|
||||
skip_timeout_commit = false
|
||||
create_empty_blocks = true
|
||||
create_empty_blocks_interval = "0s"
|
||||
peer_gossip_sleep_duration = "100ms"
|
||||
peer_query_maj23_sleep_duration = "2s"
|
||||
}
|
||||
|
||||
storage {
|
||||
discard_abci_responses = false
|
||||
}
|
||||
|
||||
tx_index {
|
||||
indexer = "kv"
|
||||
`psql-conn` = ""
|
||||
}
|
||||
|
||||
instrumentation {
|
||||
prometheus = false
|
||||
prometheus_listen_addr = ":26660"
|
||||
max_open_connections = 3
|
||||
namespace = "cometbft"
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
extends "https://mod.pkl.sh/cosmos.chain/Genesis.pkl"
|
||||
|
||||
Reference in New Issue
Block a user