mirror of
https://github.com/sonr-io/sonr.git
synced 2026-08-03 01:41:44 +00:00
feature/1114 implement account interface (#1167)
- **refactor: move session-related code to middleware package** - **refactor: update PKL build process and adjust related configurations** - **feat: integrate base.cosmos.v1 Genesis module** - **refactor: pass session context to modal rendering functions** - **refactor: move nebula package to app directory and update templ version** - **refactor: Move home section video view to dedicated directory** - **refactor: remove unused views file** - **refactor: move styles and UI components to global scope** - **refactor: Rename images.go to cdn.go** - **feat: Add Empty State Illustrations** - **refactor: Consolidate Vault Index Logic** - **fix: References to App.wasm and remove Vault Directory embedded CDN files** - **refactor: Move CDN types to Models** - **fix: Correct line numbers in templ error messages for arch_templ.go** - **refactor: use common types for peer roles** - **refactor: move common types and ORM to a shared package** - **fix: Config import dwn** - **refactor: move nebula directory to app** - **feat: Rebuild nebula** - **fix: correct file paths in panels templates** - **feat: Remove duplicate types** - **refactor: Move dwn to pkg/core** - **refactor: Binary Structure** - **feat: Introduce Crypto Pkg** - **fix: Broken Process Start** - **feat: Update pkg/* structure** - **feat: Refactor PKL Structure** - **build: update pkl build process** - **chore: Remove Empty Files** - **refactor: remove unused macaroon package** - **feat: Add WebAwesome Components** - **refactor: consolidate build and generation tasks into a single taskfile, remove redundant makefile targets** - **refactor: refactor server and move components to pkg/core/dwn** - **build: update go modules** - **refactor: move gateway logic into dedicated hway command** - **feat: Add KSS (Krawczyk-Song-Song) MPC cryptography module** - **feat: Implement MPC-based JWT signing and UCAN token generation** - **feat: add support for MPC-based JWT signing** - **feat: Implement MPC-based UCAN capabilities for smart accounts** - **feat: add address field to keyshareSource** - **feat: Add comprehensive MPC test suite for keyshares, UCAN tokens, and token attenuations** - **refactor: improve MPC keyshare management and signing process** - **feat: enhance MPC capability hierarchy documentation** - **refactor: rename GenerateKeyshares function to NewKeyshareSource for clarity** - **refactor: remove unused Ethereum address computation** - **feat: Add HasHandle and IsAuthenticated methods to HTTPContext** - **refactor: Add context.Context support to session HTTPContext** - **refactor: Resolve context interface conflicts in HTTPContext** - **feat: Add session ID context key and helper functions** - **feat: Update WebApp Page Rendering** - **refactor: Simplify context management by using single HTTPContext key** - **refactor: Simplify HTTPContext creation and context management in session middleware** - **refactor: refactor session middleware to use a single data structure** - **refactor: Simplify HTTPContext implementation and session data handling** - **refactor: Improve session context handling and prevent nil pointer errors** - **refactor: Improve session context handling with nil safety and type support** - **refactor: improve session data injection** - **feat: add full-screen modal component and update registration flow** - **chore: add .air.toml to .gitignore** - **feat: add Air to devbox and update dependencies**
This commit is contained in:
@@ -0,0 +1,4 @@
|
||||
# pkl
|
||||
|
||||
This is a project to generate a language-agnostic, type-safe, and idiomatic
|
||||
Go code from a [Pkl](https://pkl-lang.org) file.
|
||||
@@ -0,0 +1,36 @@
|
||||
@go.Package { name = "github.com/onsonr/sonr/pkg/common/types" }
|
||||
|
||||
module common.types.Ctx
|
||||
|
||||
import "package://pkg.pkl-lang.org/pkl-go/pkl.golang@0.5.0#/go.pkl"
|
||||
import "./DWN.pkl"
|
||||
|
||||
class JsonField extends go.Field {
|
||||
structTags {
|
||||
["json"] = "%{name},omitempty"
|
||||
}
|
||||
}
|
||||
|
||||
class Session {
|
||||
@JsonField
|
||||
id: String
|
||||
@JsonField
|
||||
challenge: String
|
||||
@JsonField
|
||||
browserName: String
|
||||
@JsonField
|
||||
browserVersion: String
|
||||
@JsonField
|
||||
userArchitecture: String
|
||||
@JsonField
|
||||
platform: String
|
||||
@JsonField
|
||||
platformVersion: String
|
||||
@JsonField
|
||||
deviceModel: String
|
||||
@JsonField
|
||||
isMobile: Boolean
|
||||
@JsonField
|
||||
vaultAddress: String
|
||||
}
|
||||
|
||||
@@ -0,0 +1,82 @@
|
||||
@go.Package { name = "github.com/onsonr/sonr/pkg/core/dwn" }
|
||||
|
||||
module common.types.DWN
|
||||
|
||||
import "package://pkg.pkl-lang.org/pkl-go/pkl.golang@0.5.0#/go.pkl"
|
||||
|
||||
typealias JSON = String
|
||||
|
||||
class JsonField extends go.Field {
|
||||
structTags {
|
||||
["json"] = "%{name},omitempty"
|
||||
}
|
||||
}
|
||||
|
||||
class Config {
|
||||
@JsonField
|
||||
ipfsGatewayUrl: String
|
||||
|
||||
@JsonField
|
||||
motrKeyshare: String
|
||||
|
||||
@JsonField
|
||||
motrAddress: String
|
||||
|
||||
@JsonField
|
||||
sonrApiUrl: String
|
||||
|
||||
@JsonField
|
||||
sonrRpcUrl: String
|
||||
|
||||
@JsonField
|
||||
sonrChainId: String
|
||||
|
||||
@JsonField
|
||||
vaultSchema: Schema
|
||||
}
|
||||
|
||||
class Environment {
|
||||
@JsonField
|
||||
isDevelopment: Boolean
|
||||
|
||||
@JsonField
|
||||
cacheVersion: String
|
||||
|
||||
@JsonField
|
||||
httpserverPath: String
|
||||
|
||||
@JsonField
|
||||
wasmExecPath: String
|
||||
|
||||
@JsonField
|
||||
wasmPath: String
|
||||
}
|
||||
|
||||
class Schema {
|
||||
version: Int
|
||||
|
||||
@JsonField
|
||||
account: String
|
||||
|
||||
@JsonField
|
||||
asset: String
|
||||
|
||||
@JsonField
|
||||
chain: String
|
||||
|
||||
@JsonField
|
||||
credential: String
|
||||
|
||||
@JsonField
|
||||
jwk: String
|
||||
|
||||
@JsonField
|
||||
grant: String
|
||||
|
||||
@JsonField
|
||||
keyshare: String
|
||||
|
||||
@JsonField
|
||||
profile: String
|
||||
}
|
||||
|
||||
@@ -0,0 +1,275 @@
|
||||
@go.Package { name = "github.com/onsonr/sonr/pkg/common/models" }
|
||||
|
||||
module common.types.ORM
|
||||
|
||||
import "package://pkg.pkl-lang.org/pkl-go/pkl.golang@0.5.0#/go.pkl"
|
||||
|
||||
|
||||
// Enums
|
||||
typealias AssetType = "native"|"wrapped"|"staking"|"pool"|"ibc"|"cw20"
|
||||
|
||||
typealias DIDMethod = "ipfs"|"sonr"|"bitcoin"|"ethereum"|"ibc"|"webauthn"|"dwn"|"service"
|
||||
|
||||
typealias KeyAlgorithm = "es256"|"es384"|"es512"|"eddsa"|"es256k"|"ecdsa"
|
||||
|
||||
typealias KeyCurve = "p256"|"p384"|"p521"|"x25519"|"x448"|"ed25519"|"ed448"|"secp256k1"|"bls12381"|"keccak256"
|
||||
|
||||
typealias KeyEncoding = "raw"|"hex"|"multibase"
|
||||
|
||||
typealias KeyRole = "authentication"|"assertion"|"delegation"|"invocation"
|
||||
|
||||
typealias KeyType = "octet"|"elliptic"|"rsa"|"symmetric"|"hmac"|"mpc"|"zk"|"webauthn"|"bip32"
|
||||
|
||||
typealias KeyShareRole = "user"|"validator"
|
||||
|
||||
typealias PermissionGrant = "none"|"read"|"write"|"verify"|"broadcast"|"admin"
|
||||
|
||||
typealias PermissionScope = "profile"|"metadata"|"permissions"|"wallets"|"transactions"|"user"|"validator"
|
||||
|
||||
typealias Base58 = String
|
||||
typealias Base64 = String
|
||||
|
||||
typealias Bech32 = String
|
||||
typealias Keccak = String
|
||||
|
||||
typealias ChainCode = UInt
|
||||
typealias Scope = String
|
||||
|
||||
typealias Hex = String
|
||||
|
||||
class PrimaryKey extends go.Field {
|
||||
structTags {
|
||||
["json"] = "%{name},omitempty"
|
||||
["query"] = "%{name}"
|
||||
}
|
||||
}
|
||||
|
||||
class JsonField extends go.Field {
|
||||
structTags {
|
||||
["json"] = "%{name},omitempty"
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
class Account {
|
||||
@PrimaryKey
|
||||
id: String
|
||||
|
||||
@JsonField
|
||||
name: String
|
||||
|
||||
@JsonField
|
||||
address: Bech32|Keccak|String
|
||||
|
||||
@JsonField
|
||||
publicKey: Base58
|
||||
|
||||
@JsonField
|
||||
chainCode: ChainCode
|
||||
|
||||
@JsonField
|
||||
index: Int
|
||||
|
||||
@JsonField
|
||||
controller: Bech32
|
||||
|
||||
@JsonField
|
||||
createdAt: String?
|
||||
}
|
||||
|
||||
class Asset {
|
||||
@PrimaryKey
|
||||
id: String
|
||||
|
||||
@JsonField
|
||||
name: String
|
||||
|
||||
@JsonField
|
||||
symbol: String
|
||||
|
||||
@JsonField
|
||||
decimals: Int
|
||||
|
||||
@JsonField
|
||||
chainCode: ChainCode
|
||||
|
||||
@JsonField
|
||||
createdAt: String?
|
||||
}
|
||||
|
||||
class Chain {
|
||||
@PrimaryKey
|
||||
id: String
|
||||
|
||||
@JsonField
|
||||
name: String
|
||||
|
||||
@JsonField
|
||||
networkId: String
|
||||
|
||||
@JsonField
|
||||
chainCode: ChainCode
|
||||
|
||||
@JsonField
|
||||
createdAt: String?
|
||||
}
|
||||
|
||||
class Credential {
|
||||
@PrimaryKey
|
||||
id: String
|
||||
|
||||
@JsonField
|
||||
subject: String
|
||||
|
||||
@JsonField
|
||||
controller: Bech32
|
||||
|
||||
@JsonField
|
||||
attestationType: String
|
||||
|
||||
@JsonField
|
||||
origin: String
|
||||
|
||||
@JsonField
|
||||
label: String?
|
||||
|
||||
@JsonField
|
||||
deviceId: String?
|
||||
|
||||
@JsonField
|
||||
credentialId: Base64
|
||||
|
||||
@JsonField
|
||||
publicKey: Base64
|
||||
|
||||
@JsonField
|
||||
transport: List<String>
|
||||
|
||||
@JsonField
|
||||
signCount: UInt
|
||||
|
||||
@JsonField
|
||||
userPresent: Boolean
|
||||
|
||||
@JsonField
|
||||
userVerified: Boolean
|
||||
|
||||
@JsonField
|
||||
backupEligible: Boolean
|
||||
|
||||
@JsonField
|
||||
backupState: Boolean
|
||||
|
||||
@JsonField
|
||||
cloneWarning: Boolean
|
||||
|
||||
@JsonField
|
||||
createdAt: String?
|
||||
|
||||
@JsonField
|
||||
updatedAt: String?
|
||||
}
|
||||
|
||||
class DID {
|
||||
@PrimaryKey
|
||||
id: String
|
||||
role: KeyRole
|
||||
algorithm: KeyAlgorithm
|
||||
encoding: KeyEncoding
|
||||
curve: KeyCurve
|
||||
key_type: KeyType
|
||||
raw: Base64
|
||||
jwk: JWK
|
||||
}
|
||||
|
||||
class JWK {
|
||||
@JsonField
|
||||
kty: String
|
||||
|
||||
@JsonField
|
||||
crv: String
|
||||
|
||||
@JsonField
|
||||
x: String
|
||||
|
||||
@JsonField
|
||||
y: String
|
||||
|
||||
@JsonField
|
||||
n: String
|
||||
|
||||
@JsonField
|
||||
e: String
|
||||
}
|
||||
|
||||
class Grant {
|
||||
@PrimaryKey
|
||||
id: UInt
|
||||
|
||||
@JsonField
|
||||
subject: String
|
||||
|
||||
@JsonField
|
||||
controller: Bech32
|
||||
|
||||
@JsonField
|
||||
origin: String
|
||||
|
||||
@JsonField
|
||||
token: String
|
||||
|
||||
@JsonField
|
||||
scopes: List<String>
|
||||
|
||||
@JsonField
|
||||
createdAt: String?
|
||||
|
||||
@JsonField
|
||||
updatedAt: String?
|
||||
}
|
||||
|
||||
class Keyshare {
|
||||
@PrimaryKey
|
||||
id: String
|
||||
|
||||
@JsonField
|
||||
data: Base64
|
||||
|
||||
@JsonField
|
||||
role: Int
|
||||
|
||||
@JsonField
|
||||
createdAt: String?
|
||||
|
||||
@JsonField
|
||||
lastRefreshed: String?
|
||||
}
|
||||
|
||||
class Profile {
|
||||
@PrimaryKey
|
||||
id: String
|
||||
|
||||
@JsonField
|
||||
subject: String
|
||||
|
||||
@JsonField
|
||||
controller: Bech32
|
||||
|
||||
@JsonField
|
||||
originUri: String?
|
||||
|
||||
@JsonField
|
||||
publicMetadata: String?
|
||||
|
||||
@JsonField
|
||||
privateMetadata: String?
|
||||
|
||||
@JsonField
|
||||
createdAt: String?
|
||||
|
||||
@JsonField
|
||||
updatedAt: String?
|
||||
}
|
||||
|
||||
db_name: String = "vault"
|
||||
db_version: Int = 1
|
||||
@@ -0,0 +1,22 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
// Copyright © 2024 Apple Inc. and the Pkl project authors. All rights reserved.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// https://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
//===----------------------------------------------------------------------===//
|
||||
/// Common types for operations across the sonr ecosystem
|
||||
amends "../basePklProject.pkl"
|
||||
|
||||
package {
|
||||
name = "base.types"
|
||||
version = "0.0.1"
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"resolvedDependencies": {}
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
// Copyright © 2024 Apple Inc. and the Pkl project authors. All rights reserved.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// https://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
//===----------------------------------------------------------------------===//
|
||||
module basePklProject
|
||||
|
||||
amends "pkl:Project"
|
||||
|
||||
import "pkl:reflect"
|
||||
|
||||
local myModule = reflect.Module(module)
|
||||
|
||||
local packageName: String =
|
||||
findRootModule(reflect.Module(module))
|
||||
.relativePathTo(module)
|
||||
.last
|
||||
|
||||
local function findRootModule(mod: reflect.Module): Module =
|
||||
let (supermodule = mod.supermodule)
|
||||
if (supermodule == null || !supermodule.isAmend) mod.reflectee
|
||||
else findRootModule(supermodule)
|
||||
|
||||
package {
|
||||
baseUri = "package://pkl.sh/\(name)@\(version)"
|
||||
packageZipUrl = "https://github.com/onsonr/sonr/releases/download/\(name)@\(version).zip"
|
||||
license = "Apache-2.0"
|
||||
authors {
|
||||
"Prad N <prad@sonr.email>"
|
||||
}
|
||||
description = myModule.docComment
|
||||
issueTracker = "https://github.com/onsonr/sonr/issues"
|
||||
sourceCode = "https://github.com/onsonr/sonr/tree/third_party/pkl/packages/\(name)"
|
||||
}
|
||||
@@ -0,0 +1,89 @@
|
||||
module config.sonr.App
|
||||
|
||||
import "package://pkg.pkl-lang.org/pkl-pantry/pkl.toml@1.0.0#/toml.pkl"
|
||||
|
||||
class Chain {
|
||||
`minimum-gas-prices`: String = "0stake"
|
||||
`query-gas-limit`: String = "0"
|
||||
pruning: String = "default"
|
||||
`pruning-keep-recent`: String = "0"
|
||||
`pruning-interval`: String = "0"
|
||||
`halt-height`: Int = 0
|
||||
`halt-time`: Int = 0
|
||||
`min-retain-blocks`: Int = 0
|
||||
`inter-block-cache`: Boolean = true
|
||||
`index-events`: Listing<String> = new {}
|
||||
`iavl-cache-size`: Int = 781250
|
||||
`iavl-disable-fastnode`: Boolean = false
|
||||
`app-db-backend`: String = ""
|
||||
telemetry: Telemetry = new {}
|
||||
api: Api = new {}
|
||||
grpc: Grpc = new {}
|
||||
`grpc-web`: GrpcWeb = new {}
|
||||
`state-sync`: StateSync = new {}
|
||||
streaming: Streaming = new {}
|
||||
mempool: Mempool = new {}
|
||||
}
|
||||
|
||||
class Telemetry {
|
||||
`service-name`: String = ""
|
||||
enabled: Boolean = true
|
||||
`enable-hostname`: Boolean = false
|
||||
`enable-hostname-label`: Boolean = false
|
||||
`enable-service-label`: Boolean = false
|
||||
`prometheus-retention-time`: Int = 60
|
||||
`global-labels`: Listing<Listing<String>> = new {
|
||||
new {
|
||||
"chain_id"
|
||||
"chain-NKlMbx"
|
||||
}
|
||||
}
|
||||
`metrics-sink`: String = ""
|
||||
`statsd-addr`: String = ""
|
||||
`datadog-hostname`: String = ""
|
||||
}
|
||||
|
||||
class Api {
|
||||
enable: Boolean = true
|
||||
swagger: Boolean = false
|
||||
address: String = "tcp://0.0.0.0:1317"
|
||||
`max-open-connections`: Int = 1000
|
||||
`rpc-read-timeout`: Int = 10
|
||||
`rpc-write-timeout`: Int = 0
|
||||
`rpc-max-body-bytes`: Int = 1000000
|
||||
`enabled-unsafe-cors`: Boolean = false
|
||||
}
|
||||
|
||||
class Grpc {
|
||||
enable: Boolean = true
|
||||
address: String = "0.0.0.0:9090"
|
||||
`max-recv-msg-size`: String = "10485760"
|
||||
`max-send-msg-size`: String = "2147483647"
|
||||
}
|
||||
|
||||
class GrpcWeb {
|
||||
enable: Boolean = true
|
||||
}
|
||||
|
||||
class StateSync {
|
||||
`snapshot-interval`: Int = 0
|
||||
`snapshot-keep-recent`: Int = 2
|
||||
}
|
||||
|
||||
class Streaming {
|
||||
abci: Abci = new {}
|
||||
}
|
||||
|
||||
class Abci {
|
||||
keys: Listing<String> = new {}
|
||||
plugin: String = ""
|
||||
`stop-node-on-err`: Boolean = true
|
||||
}
|
||||
|
||||
class Mempool {
|
||||
`max-txs`: Int = 5000
|
||||
}
|
||||
|
||||
output {
|
||||
renderer = new toml.Renderer {}
|
||||
}
|
||||
@@ -0,0 +1,154 @@
|
||||
module config.sonr.Chain
|
||||
|
||||
import "package://pkg.pkl-lang.org/pkl-pantry/pkl.toml@1.0.0#/toml.pkl"
|
||||
|
||||
class Chain {
|
||||
version: String = "0.38.5"
|
||||
proxy_app: String = "tcp://127.0.0.1:26658"
|
||||
moniker: String = "node0"
|
||||
db_backend: String = "goleveldb"
|
||||
db_dir: String = "data"
|
||||
log_level: String = "info"
|
||||
log_format: String = "plain"
|
||||
genesis_file: String = "config/genesis.json"
|
||||
priv_validator_key_file: String = "config/priv_validator_key.json"
|
||||
priv_validator_state_file: String = "data/priv_validator_state.json"
|
||||
priv_validator_laddr: String = ""
|
||||
node_key_file: String = "config/node_key.json"
|
||||
abci: String = "socket"
|
||||
filter_peers: Boolean = false
|
||||
|
||||
rpc: Rpc = new {}
|
||||
p2p: P2p = new {}
|
||||
mempool: Mempool = new {}
|
||||
statesync: StateSync = new {}
|
||||
blocksync: BlockSync = new {}
|
||||
consensus: Consensus = new {}
|
||||
storage: Storage = new {}
|
||||
tx_index: TxIndex = new {}
|
||||
instrumentation: Instrumentation = new {}
|
||||
}
|
||||
|
||||
class Rpc {
|
||||
laddr: String = "tcp://0.0.0.0:26657"
|
||||
cors_allowed_origins: Listing<String> = new {}
|
||||
cors_allowed_methods: Listing<String> = new {
|
||||
"HEAD"
|
||||
"GET"
|
||||
"POST"
|
||||
}
|
||||
cors_allowed_headers: Listing<String> = new {
|
||||
"Origin"
|
||||
"Accept"
|
||||
"Content-Type"
|
||||
"X-Requested-With"
|
||||
"X-Server-Time"
|
||||
}
|
||||
grpc_laddr: String = ""
|
||||
grpc_max_open_connections: Int = 900
|
||||
unsafe: Boolean = false
|
||||
max_open_connections: Int = 900
|
||||
max_subscription_clients: Int = 100
|
||||
max_subscriptions_per_client: Int = 5
|
||||
experimental_subscription_buffer_size: Int = 200
|
||||
experimental_websocket_write_buffer_size: Int = 200
|
||||
experimental_close_on_slow_client: Boolean = false
|
||||
timeout_broadcast_tx_commit: String = "10s"
|
||||
max_body_bytes: Int = 1000000
|
||||
max_header_bytes: Int = 1048576
|
||||
tls_cert_file: String = ""
|
||||
tls_key_file: String = ""
|
||||
pprof_laddr: String = "localhost:6060"
|
||||
}
|
||||
|
||||
class P2p {
|
||||
laddr: String = "tcp://0.0.0.0:26656"
|
||||
external_address: String = ""
|
||||
seeds: String = ""
|
||||
persistent_peers: String = "7698b304905ac4459e8bf5fe8f8373aa46a528a5@192.168.0.2:26656,b1aee1db2ac83c57ffe561624ba169bdcd80dc1a@192.168.0.4:26656,cda55214016021246cd26f8991bd842a0c1dc3fb@192.168.0.3:26656"
|
||||
addr_book_file: String = "config/addrbook.json"
|
||||
addr_book_strict: Boolean = true
|
||||
max_num_inbound_peers: Int = 40
|
||||
max_num_outbound_peers: Int = 10
|
||||
unconditional_peer_ids: String = ""
|
||||
persistent_peers_max_dial_period: String = "0s"
|
||||
flush_throttle_timeout: String = "100ms"
|
||||
max_packet_msg_payload_size: Int = 1024
|
||||
send_rate: Int = 5120000
|
||||
recv_rate: Int = 5120000
|
||||
pex: Boolean = true
|
||||
seed_mode: Boolean = false
|
||||
private_peer_ids: String = ""
|
||||
allow_duplicate_ip: Boolean = false
|
||||
handshake_timeout: String = "20s"
|
||||
dial_timeout: String = "3s"
|
||||
}
|
||||
|
||||
class Mempool {
|
||||
type: String = "flood"
|
||||
recheck: Boolean = true
|
||||
broadcast: Boolean = true
|
||||
wal_dir: String = ""
|
||||
size: Int = 5000
|
||||
max_txs_bytes: Int = 1073741824
|
||||
cache_size: Int = 10000
|
||||
`keep-invalid-txs-in-cache`: Boolean = false
|
||||
max_tx_bytes: Int = 1048576
|
||||
max_batch_bytes: Int = 0
|
||||
experimental_max_gossip_connections_to_persistent_peers: Int = 0
|
||||
experimental_max_gossip_connections_to_non_persistent_peers: Int = 0
|
||||
}
|
||||
|
||||
class StateSync {
|
||||
enable: Boolean = false
|
||||
rpc_servers: String = ""
|
||||
trust_height: Int = 0
|
||||
trust_hash: String = ""
|
||||
trust_period: String = "168h0m0s"
|
||||
discovery_time: String = "15s"
|
||||
temp_dir: String = ""
|
||||
chunk_request_timeout: String = "10s"
|
||||
chunk_fetchers: String = "4"
|
||||
}
|
||||
|
||||
class BlockSync {
|
||||
version: String = "v0"
|
||||
}
|
||||
|
||||
class Consensus {
|
||||
wal_file: String = "data/cs.wal/wal"
|
||||
timeout_propose: String = "3s"
|
||||
timeout_propose_delta: String = "500ms"
|
||||
timeout_prevote: String = "1s"
|
||||
timeout_prevote_delta: String = "500ms"
|
||||
timeout_precommit: String = "1s"
|
||||
timeout_precommit_delta: String = "500ms"
|
||||
timeout_commit: String = "5s"
|
||||
double_sign_check_height: Int = 0
|
||||
skip_timeout_commit: Boolean = false
|
||||
create_empty_blocks: Boolean = true
|
||||
create_empty_blocks_interval: String = "0s"
|
||||
peer_gossip_sleep_duration: String = "100ms"
|
||||
peer_query_maj23_sleep_duration: String = "2s"
|
||||
}
|
||||
|
||||
class Storage {
|
||||
discard_abci_responses: Boolean = false
|
||||
}
|
||||
|
||||
class TxIndex {
|
||||
indexer: String = "kv"
|
||||
`psql-conn`: String = ""
|
||||
}
|
||||
|
||||
class Instrumentation {
|
||||
prometheus: Boolean = false
|
||||
prometheus_listen_addr: String = ":26660"
|
||||
max_open_connections: Int = 3
|
||||
namespace: String = "cometbft"
|
||||
}
|
||||
|
||||
|
||||
output {
|
||||
renderer = new toml.Renderer {}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
module config.sonr.Genesis
|
||||
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
// Copyright © 2024 Apple Inc. and the Pkl project authors. All rights reserved.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// https://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
//===----------------------------------------------------------------------===//
|
||||
/// Base configuration files for initializing a sonr chain
|
||||
amends "../basePklProject.pkl"
|
||||
|
||||
package {
|
||||
name = "chain.sonr"
|
||||
version = "0.0.1"
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"resolvedDependencies": {}
|
||||
}
|
||||
@@ -0,0 +1,198 @@
|
||||
module net.svcs.Homeserver
|
||||
|
||||
version = 2
|
||||
|
||||
global = new {
|
||||
server_name = read("env:MATRIX_SERVER_NAME") ?? ""
|
||||
private_key = "matrix_key.pem"
|
||||
old_private_keys = new Listing {}
|
||||
key_validity_period = "168h0m0s"
|
||||
}
|
||||
|
||||
database = new {
|
||||
connection_string = read("env:MATRIX_PSQL_CONN") ?? ""
|
||||
max_open_conns = 90
|
||||
max_idle_conns = 5
|
||||
conn_max_lifetime = -1
|
||||
}
|
||||
|
||||
cache = new {
|
||||
max_size_estimated = "1gb"
|
||||
max_age = "1h"
|
||||
}
|
||||
|
||||
well_known_server_name = ""
|
||||
well_known_client_name = read("env:MATRIX_CLIENT_NAME") ?? ""
|
||||
well_known_sliding_sync_proxy = ""
|
||||
|
||||
trusted_third_party_id_servers = new Listing {
|
||||
"matrix.org"
|
||||
"vector.im"
|
||||
}
|
||||
|
||||
disable_federation = false
|
||||
|
||||
presence = new {
|
||||
enable_inbound = false
|
||||
enable_outbound = false
|
||||
}
|
||||
|
||||
report_stats = new {
|
||||
enabled = false
|
||||
endpoint = "https://panopticon.matrix.org/push"
|
||||
}
|
||||
|
||||
server_notices = new {
|
||||
enabled = false
|
||||
local_part = "_server"
|
||||
display_name = "Server Alerts"
|
||||
avatar_url = ""
|
||||
room_name = "Server Alerts"
|
||||
}
|
||||
|
||||
jetstream = new {
|
||||
addresses = new Listing {}
|
||||
disable_tls_validation = false
|
||||
storage_path = "./"
|
||||
topic_prefix = "Dendrite"
|
||||
}
|
||||
|
||||
metrics = new {
|
||||
enabled = false
|
||||
basic_auth = new {
|
||||
username = "metrics"
|
||||
password = "metrics"
|
||||
}
|
||||
}
|
||||
|
||||
dns_cache = new {
|
||||
enabled = false
|
||||
cache_size = 256
|
||||
cache_lifetime = "5m"
|
||||
}
|
||||
|
||||
app_service_api = new {
|
||||
disable_tls_validation = false
|
||||
legacy_auth = false
|
||||
legacy_paths = false
|
||||
config_files = new Listing {
|
||||
"/etc/dendrite/chat-service.yaml"
|
||||
}
|
||||
}
|
||||
|
||||
client_api = new {
|
||||
registration_disabled = true
|
||||
guests_disabled = true
|
||||
registration_shared_secret = read("env:MATRIX_REGISTRATION_SHARED_SECRET") ?? ""
|
||||
enable_registration_captcha = (read("env:MATRIX_ENABLE_RECATCHA") ?? "false").toBoolean()
|
||||
recaptcha_public_key = read("env:MATRIX_RECATCHA_PUBLIC_KEY") ?? ""
|
||||
recaptcha_private_key = read("env:MATRIX_RECATCHA_PRIVATE_KEY") ?? ""
|
||||
recaptcha_bypass_secret = read("env:MATRIX_RECATCHA_BYPASS_SECRET") ?? ""
|
||||
}
|
||||
|
||||
turn = new {
|
||||
turn_user_lifetime = "5m"
|
||||
turn_uris = new Listing {}
|
||||
turn_shared_secret = ""
|
||||
}
|
||||
|
||||
rate_limiting = new {
|
||||
enabled = true
|
||||
threshold = 20
|
||||
cooloff_ms = 500
|
||||
exempt_user_ids = new Listing {}
|
||||
}
|
||||
|
||||
federation_api = new {
|
||||
send_max_retries = 16
|
||||
disable_tls_validation = false
|
||||
disable_http_keepalives = false
|
||||
key_perspectives = new Listing {
|
||||
new {
|
||||
server_name = "matrix.org"
|
||||
keys = new Listing {
|
||||
new {
|
||||
key_id = "ed25519:auto"
|
||||
public_key = "Noi6WqcDj0QmPxCNQqgezwTlBKrfqehY1u2FyWP9uYw"
|
||||
}
|
||||
new {
|
||||
key_id = "ed25519:a_RXGa"
|
||||
public_key = "l8Hft5qXKn1vfHrg3p4+W8gELQVo8N13JkluMfmn2sQ"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
prefer_direct_fetch = false
|
||||
}
|
||||
|
||||
media_api = new {
|
||||
base_path = "./media_store"
|
||||
max_file_size_bytes = 10485760
|
||||
dynamic_thumbnails = false
|
||||
max_thumbnail_generators = 10
|
||||
thumbnail_sizes = new Listing {
|
||||
new {
|
||||
width = 32
|
||||
height = 32
|
||||
method = "crop"
|
||||
}
|
||||
new {
|
||||
width = 96
|
||||
height = 96
|
||||
method = "crop"
|
||||
}
|
||||
new {
|
||||
width = 640
|
||||
height = 480
|
||||
method = "scale"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
mscs = new {
|
||||
mscs = new Listing {}
|
||||
}
|
||||
|
||||
sync_api = new Listing {}
|
||||
|
||||
search = new {
|
||||
enabled = false
|
||||
index_path = "./searchindex"
|
||||
language = "en"
|
||||
}
|
||||
|
||||
user_api = new {
|
||||
bcrypt_cost = 10
|
||||
auto_join_rooms = new Listing {
|
||||
// - "#main:matrix.org"
|
||||
}
|
||||
}
|
||||
|
||||
tracing = new {
|
||||
enabled = false
|
||||
jaeger = new {
|
||||
serviceName = ""
|
||||
disabled = false
|
||||
rpc_metrics = false
|
||||
tags = new Listing {}
|
||||
sampler = null
|
||||
reporter = null
|
||||
headers = null
|
||||
baggage_restrictions = null
|
||||
throttler = null
|
||||
}
|
||||
}
|
||||
|
||||
logging = new Listing {
|
||||
new {
|
||||
type = "std"
|
||||
level = "info"
|
||||
}
|
||||
new {
|
||||
type = "file"
|
||||
level = "info"
|
||||
params = new {
|
||||
path = "./logs"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
// Copyright © 2024 Apple Inc. and the Pkl project authors. All rights reserved.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// https://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
//===----------------------------------------------------------------------===//
|
||||
/// Configuration files for integrating the Matrix service
|
||||
amends "../basePklProject.pkl"
|
||||
|
||||
package {
|
||||
name = "net.matrix"
|
||||
version = "0.0.1"
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"resolvedDependencies": {}
|
||||
}
|
||||
@@ -0,0 +1,198 @@
|
||||
module net.svcs.Synapse
|
||||
|
||||
version = 2
|
||||
|
||||
global = new {
|
||||
server_name = read("env:MATRIX_SERVER_NAME") ?? ""
|
||||
private_key = "matrix_key.pem"
|
||||
old_private_keys = new Listing {}
|
||||
key_validity_period = "168h0m0s"
|
||||
}
|
||||
|
||||
database = new {
|
||||
connection_string = read("env:MATRIX_PSQL_CONN") ?? ""
|
||||
max_open_conns = 90
|
||||
max_idle_conns = 5
|
||||
conn_max_lifetime = -1
|
||||
}
|
||||
|
||||
cache = new {
|
||||
max_size_estimated = "1gb"
|
||||
max_age = "1h"
|
||||
}
|
||||
|
||||
well_known_server_name = ""
|
||||
well_known_client_name = read("env:MATRIX_CLIENT_NAME") ?? ""
|
||||
well_known_sliding_sync_proxy = ""
|
||||
|
||||
trusted_third_party_id_servers = new Listing {
|
||||
"matrix.org"
|
||||
"vector.im"
|
||||
}
|
||||
|
||||
disable_federation = false
|
||||
|
||||
presence = new {
|
||||
enable_inbound = false
|
||||
enable_outbound = false
|
||||
}
|
||||
|
||||
report_stats = new {
|
||||
enabled = false
|
||||
endpoint = "https://panopticon.matrix.org/push"
|
||||
}
|
||||
|
||||
server_notices = new {
|
||||
enabled = false
|
||||
local_part = "_server"
|
||||
display_name = "Server Alerts"
|
||||
avatar_url = ""
|
||||
room_name = "Server Alerts"
|
||||
}
|
||||
|
||||
jetstream = new {
|
||||
addresses = new Listing {}
|
||||
disable_tls_validation = false
|
||||
storage_path = "./"
|
||||
topic_prefix = "Dendrite"
|
||||
}
|
||||
|
||||
metrics = new {
|
||||
enabled = false
|
||||
basic_auth = new {
|
||||
username = "metrics"
|
||||
password = "metrics"
|
||||
}
|
||||
}
|
||||
|
||||
dns_cache = new {
|
||||
enabled = false
|
||||
cache_size = 256
|
||||
cache_lifetime = "5m"
|
||||
}
|
||||
|
||||
app_service_api = new {
|
||||
disable_tls_validation = false
|
||||
legacy_auth = false
|
||||
legacy_paths = false
|
||||
config_files = new Listing {
|
||||
"/etc/dendrite/chat-service.yaml"
|
||||
}
|
||||
}
|
||||
|
||||
client_api = new {
|
||||
registration_disabled = true
|
||||
guests_disabled = true
|
||||
registration_shared_secret = read("env:MATRIX_REGISTRATION_SHARED_SECRET") ?? ""
|
||||
enable_registration_captcha = (read("env:MATRIX_ENABLE_RECATCHA") ?? "false").toBoolean()
|
||||
recaptcha_public_key = read("env:MATRIX_RECATCHA_PUBLIC_KEY") ?? ""
|
||||
recaptcha_private_key = read("env:MATRIX_RECATCHA_PRIVATE_KEY") ?? ""
|
||||
recaptcha_bypass_secret = read("env:MATRIX_RECATCHA_BYPASS_SECRET") ?? ""
|
||||
}
|
||||
|
||||
turn = new {
|
||||
turn_user_lifetime = "5m"
|
||||
turn_uris = new Listing {}
|
||||
turn_shared_secret = ""
|
||||
}
|
||||
|
||||
rate_limiting = new {
|
||||
enabled = true
|
||||
threshold = 20
|
||||
cooloff_ms = 500
|
||||
exempt_user_ids = new Listing {}
|
||||
}
|
||||
|
||||
federation_api = new {
|
||||
send_max_retries = 16
|
||||
disable_tls_validation = false
|
||||
disable_http_keepalives = false
|
||||
key_perspectives = new Listing {
|
||||
new {
|
||||
server_name = "matrix.org"
|
||||
keys = new Listing {
|
||||
new {
|
||||
key_id = "ed25519:auto"
|
||||
public_key = "Noi6WqcDj0QmPxCNQqgezwTlBKrfqehY1u2FyWP9uYw"
|
||||
}
|
||||
new {
|
||||
key_id = "ed25519:a_RXGa"
|
||||
public_key = "l8Hft5qXKn1vfHrg3p4+W8gELQVo8N13JkluMfmn2sQ"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
prefer_direct_fetch = false
|
||||
}
|
||||
|
||||
media_api = new {
|
||||
base_path = "./media_store"
|
||||
max_file_size_bytes = 10485760
|
||||
dynamic_thumbnails = false
|
||||
max_thumbnail_generators = 10
|
||||
thumbnail_sizes = new Listing {
|
||||
new {
|
||||
width = 32
|
||||
height = 32
|
||||
method = "crop"
|
||||
}
|
||||
new {
|
||||
width = 96
|
||||
height = 96
|
||||
method = "crop"
|
||||
}
|
||||
new {
|
||||
width = 640
|
||||
height = 480
|
||||
method = "scale"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
mscs = new {
|
||||
mscs = new Listing {}
|
||||
}
|
||||
|
||||
sync_api = new Listing {}
|
||||
|
||||
search = new {
|
||||
enabled = false
|
||||
index_path = "./searchindex"
|
||||
language = "en"
|
||||
}
|
||||
|
||||
user_api = new {
|
||||
bcrypt_cost = 10
|
||||
auto_join_rooms = new Listing {
|
||||
// - "#main:matrix.org"
|
||||
}
|
||||
}
|
||||
|
||||
tracing = new {
|
||||
enabled = false
|
||||
jaeger = new {
|
||||
serviceName = ""
|
||||
disabled = false
|
||||
rpc_metrics = false
|
||||
tags = new Listing {}
|
||||
sampler = null
|
||||
reporter = null
|
||||
headers = null
|
||||
baggage_restrictions = null
|
||||
throttler = null
|
||||
}
|
||||
}
|
||||
|
||||
logging = new Listing {
|
||||
new {
|
||||
type = "std"
|
||||
level = "info"
|
||||
}
|
||||
new {
|
||||
type = "file"
|
||||
level = "info"
|
||||
params = new {
|
||||
path = "./logs"
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user