v0.1.0-pre.028
This commit is contained in:
@@ -3,12 +3,6 @@
|
||||
|
||||
# CHANGELOG
|
||||
|
||||
## [0.1.0-pre.027] - 2026-07-25
|
||||
|
||||
- Migration complète de `kb-wallet` depuis `kb_wallet` bot2.
|
||||
- Conservation des six tests de validation des alias, signatures, persistance, non-écrasement, corruption et permissions Unix.
|
||||
- Conservation du format JSON Solana standard, de la protection contre les symlinks et de l’effacement des buffers secrets.
|
||||
|
||||
## 0.1.0-pre.024
|
||||
|
||||
- Première tranche fonctionnelle de `kb-onchain-transport`.
|
||||
|
||||
10
ROADMAP.md
10
ROADMAP.md
@@ -270,9 +270,9 @@
|
||||
- [ ] Migrer ensuite les contrats communs et le transport HTTP standard de l’ancienne `kb_rpc`.
|
||||
|
||||
|
||||
### 0.1.0-pre.027 — Migration de `kb-wallet`
|
||||
|
||||
- [x] Porter les contrats de wallet temporaire et persistant depuis bot2.
|
||||
- [x] Conserver les six tests bot2 sans réduction fonctionnelle.
|
||||
- [x] Préserver les permissions privées, le rejet des symlinks et l’effacement des buffers secrets.
|
||||
- [x] Maintenir la séparation entre signature locale et politique d’exécution.
|
||||
### 0.1.0-pre.028 — configuration de tracing wallet
|
||||
|
||||
- [x] Routes canoniques `kb-wallet`.
|
||||
- [x] Configuration d’exemple sans clé fournisseur en clair.
|
||||
- [ ] Migration fonctionnelle de `kb-pipeline` à poursuivre à partir de `pre.029`.
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
{
|
||||
"name": "local_devnet",
|
||||
"app": {
|
||||
"name": "khadhroony-bot2",
|
||||
"name": "khadhroony-bot3",
|
||||
"environment": "development",
|
||||
"auto_reconnect_default": false
|
||||
},
|
||||
@@ -45,7 +45,7 @@
|
||||
"kb-lib.materializer.transaction",
|
||||
"kb-store",
|
||||
"kb-onchain-transport",
|
||||
"kb_wallet",
|
||||
"kb-wallet",
|
||||
"kb_pipeline",
|
||||
"kb_app_demo",
|
||||
"kb_executor_metadata_metaplex_token_metadata",
|
||||
@@ -1048,12 +1048,12 @@
|
||||
"enabled": true,
|
||||
"sink": "file",
|
||||
"level": "debug",
|
||||
"path": "logs/devnet/kb_wallet/debug.log",
|
||||
"path": "logs/devnet/kb-wallet/debug.log",
|
||||
"rotation": "daily",
|
||||
"format": "human",
|
||||
"ansi": false,
|
||||
"targets": [
|
||||
"kb_wallet"
|
||||
"kb-wallet"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -1061,12 +1061,12 @@
|
||||
"enabled": true,
|
||||
"sink": "file",
|
||||
"level": "info",
|
||||
"path": "logs/devnet/kb_wallet/info.log",
|
||||
"path": "logs/devnet/kb-wallet/info.log",
|
||||
"rotation": "daily",
|
||||
"format": "human",
|
||||
"ansi": false,
|
||||
"targets": [
|
||||
"kb_wallet"
|
||||
"kb-wallet"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -1074,12 +1074,12 @@
|
||||
"enabled": true,
|
||||
"sink": "file",
|
||||
"level": "error",
|
||||
"path": "logs/devnet/kb_wallet/error.jsonl",
|
||||
"path": "logs/devnet/kb-wallet/error.jsonl",
|
||||
"rotation": "daily",
|
||||
"format": "json",
|
||||
"ansi": false,
|
||||
"targets": [
|
||||
"kb_wallet"
|
||||
"kb-wallet"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -1645,7 +1645,7 @@
|
||||
{
|
||||
"name": "mainnet_research",
|
||||
"app": {
|
||||
"name": "khadhroony-bot2",
|
||||
"name": "khadhroony-bot3",
|
||||
"environment": "research",
|
||||
"auto_reconnect_default": false
|
||||
},
|
||||
@@ -1693,7 +1693,7 @@
|
||||
"kb_pipeline",
|
||||
"kb-onchain-transport",
|
||||
"kb-store",
|
||||
"kb_wallet"
|
||||
"kb-wallet"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -2689,12 +2689,12 @@
|
||||
"enabled": true,
|
||||
"sink": "file",
|
||||
"level": "debug",
|
||||
"path": "logs/mainnet_research/kb_wallet/debug.log",
|
||||
"path": "logs/mainnet_research/kb-wallet/debug.log",
|
||||
"rotation": "daily",
|
||||
"format": "human",
|
||||
"ansi": false,
|
||||
"targets": [
|
||||
"kb_wallet"
|
||||
"kb-wallet"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -2702,12 +2702,12 @@
|
||||
"enabled": true,
|
||||
"sink": "file",
|
||||
"level": "info",
|
||||
"path": "logs/mainnet_research/kb_wallet/info.log",
|
||||
"path": "logs/mainnet_research/kb-wallet/info.log",
|
||||
"rotation": "daily",
|
||||
"format": "human",
|
||||
"ansi": false,
|
||||
"targets": [
|
||||
"kb_wallet"
|
||||
"kb-wallet"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -2715,12 +2715,12 @@
|
||||
"enabled": true,
|
||||
"sink": "file",
|
||||
"level": "error",
|
||||
"path": "logs/mainnet_research/kb_wallet/error.jsonl",
|
||||
"path": "logs/mainnet_research/kb-wallet/error.jsonl",
|
||||
"rotation": "daily",
|
||||
"format": "json",
|
||||
"ansi": false,
|
||||
"targets": [
|
||||
"kb_wallet"
|
||||
"kb-wallet"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -3210,7 +3210,7 @@
|
||||
"enabled": true,
|
||||
"provider": "helius",
|
||||
"cluster": "mainnet-beta",
|
||||
"url": "https://mainnet.helius-rpc.com/?api-key=95e73621-b539-4a79-af39-3b0877a13857",
|
||||
"url": "https://mainnet.helius-rpc.com/?api-key=${HELIUS_API_KEY}",
|
||||
"connect_timeout_ms": 4000,
|
||||
"request_timeout_ms": 10000,
|
||||
"max_idle_connections_per_host": 8,
|
||||
@@ -3370,7 +3370,7 @@
|
||||
"enabled": true,
|
||||
"provider": "helius",
|
||||
"cluster": "mainnet-beta",
|
||||
"url": "wss://mainnet.helius-rpc.com/?api-key=95e73621-b539-4a79-af39-3b0877a13857",
|
||||
"url": "wss://mainnet.helius-rpc.com/?api-key=${HELIUS_API_KEY}",
|
||||
"connect_timeout_ms": 5000,
|
||||
"request_timeout_ms": 10000,
|
||||
"unsubscribe_timeout_ms": 1500,
|
||||
@@ -3486,7 +3486,7 @@
|
||||
{
|
||||
"name": "mainnet",
|
||||
"app": {
|
||||
"name": "khadhroony-bot2",
|
||||
"name": "khadhroony-bot3",
|
||||
"environment": "mainnet",
|
||||
"auto_reconnect_default": false
|
||||
},
|
||||
@@ -3534,7 +3534,7 @@
|
||||
"kb_pipeline",
|
||||
"kb-onchain-transport",
|
||||
"kb-store",
|
||||
"kb_wallet"
|
||||
"kb-wallet"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -4530,12 +4530,12 @@
|
||||
"enabled": true,
|
||||
"sink": "file",
|
||||
"level": "debug",
|
||||
"path": "logs/mainnet/kb_wallet/debug.log",
|
||||
"path": "logs/mainnet/kb-wallet/debug.log",
|
||||
"rotation": "daily",
|
||||
"format": "human",
|
||||
"ansi": false,
|
||||
"targets": [
|
||||
"kb_wallet"
|
||||
"kb-wallet"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -4543,12 +4543,12 @@
|
||||
"enabled": true,
|
||||
"sink": "file",
|
||||
"level": "info",
|
||||
"path": "logs/mainnet/kb_wallet/info.log",
|
||||
"path": "logs/mainnet/kb-wallet/info.log",
|
||||
"rotation": "daily",
|
||||
"format": "human",
|
||||
"ansi": false,
|
||||
"targets": [
|
||||
"kb_wallet"
|
||||
"kb-wallet"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -4556,12 +4556,12 @@
|
||||
"enabled": true,
|
||||
"sink": "file",
|
||||
"level": "error",
|
||||
"path": "logs/mainnet/kb_wallet/error.jsonl",
|
||||
"path": "logs/mainnet/kb-wallet/error.jsonl",
|
||||
"rotation": "daily",
|
||||
"format": "json",
|
||||
"ansi": false,
|
||||
"targets": [
|
||||
"kb_wallet"
|
||||
"kb-wallet"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -5051,7 +5051,7 @@
|
||||
"enabled": true,
|
||||
"provider": "helius",
|
||||
"cluster": "mainnet-beta",
|
||||
"url": "https://mainnet.helius-rpc.com/?api-key=95e73621-b539-4a79-af39-3b0877a13857",
|
||||
"url": "https://mainnet.helius-rpc.com/?api-key=${HELIUS_API_KEY}",
|
||||
"connect_timeout_ms": 4000,
|
||||
"request_timeout_ms": 10000,
|
||||
"max_idle_connections_per_host": 8,
|
||||
@@ -5211,7 +5211,7 @@
|
||||
"enabled": true,
|
||||
"provider": "helius",
|
||||
"cluster": "mainnet-beta",
|
||||
"url": "wss://mainnet.helius-rpc.com/?api-key=95e73621-b539-4a79-af39-3b0877a13857",
|
||||
"url": "wss://mainnet.helius-rpc.com/?api-key=${HELIUS_API_KEY}",
|
||||
"connect_timeout_ms": 5000,
|
||||
"request_timeout_ms": 10000,
|
||||
"unsubscribe_timeout_ms": 1500,
|
||||
|
||||
@@ -56,7 +56,7 @@ La validation se fait en deux étapes :
|
||||
|
||||
## Secrets et placeholders
|
||||
|
||||
Le fichier versionné doit rester sans secret. Les placeholders restent directement dans les URLs. Les keypairs générés par `kb_wallet` vivent hors du fichier de configuration et sous un répertoire ignoré par Git.
|
||||
Le fichier versionné doit rester sans secret. Les placeholders restent directement dans les URLs. Les keypairs générés par `kb-wallet` vivent hors du fichier de configuration et sous un répertoire ignoré par Git.
|
||||
|
||||
## Exports TS-rs
|
||||
|
||||
|
||||
@@ -1345,6 +1345,22 @@ mod tests {
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn example_config_uses_canonical_wallet_tracing_routes_without_embedded_secrets() {
|
||||
let config_result = super::parse_config_json(EXAMPLE_CONFIG);
|
||||
let config = match config_result {
|
||||
std::result::Result::Ok(value) => value,
|
||||
std::result::Result::Err(error) => panic!("example config must parse: {error}"),
|
||||
};
|
||||
assert!(!EXAMPLE_CONFIG.contains("api-key=95e73621"));
|
||||
assert!(!EXAMPLE_CONFIG.contains("\"kb_wallet\""));
|
||||
for profile in config.profiles {
|
||||
assert!(profile.logging.targets.iter().any(|target| {
|
||||
return target.enabled && target.targets == std::vec!["kb-wallet".to_string()];
|
||||
}));
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn example_config_parses_and_resolves_active_profile() {
|
||||
let config_result = super::parse_config_json(EXAMPLE_CONFIG);
|
||||
|
||||
Reference in New Issue
Block a user