mirror of
https://github.com/alexgo-io/redstone-node.git
synced 2026-01-12 22:43:31 +08:00
feat: improved ecdsa private key parsing
This commit is contained in:
@@ -2,5 +2,5 @@ process.env.ENABLE_JSON_LOGS = false;
|
||||
process.env.ENABLE_PERFORMANCE_TRACKING = false;
|
||||
process.env.PRINT_DIAGNOSTIC_INFO = false;
|
||||
process.env.ARWEAVE_KEYS_JWK = JSON.stringify({ e: "e", kty: "kty", n: "n" });
|
||||
process.env.ETHEREUM_PRIVATE_KEY =
|
||||
process.env.ECDSA_PRIVATE_KEY =
|
||||
"0x1111111111111111111111111111111111111111111111111111111111111111";
|
||||
|
||||
@@ -27,7 +27,7 @@ ENV MANIFEST_REFRESH_INTERVAL=120000
|
||||
ENV ARWEAVE_KEYS_FILE_PATH=
|
||||
ENV ARWEAVE_KEYS_JWK=
|
||||
ENV OVERRIDE_MANIFEST_USING_FILE=./manifests/dev.json
|
||||
ENV ETHEREUM_PRIVATE_KEY=
|
||||
ENV ECDSA_PRIVATE_KEY=
|
||||
ENV TWELVE_DATA_RAPID_API_KEY=
|
||||
|
||||
# Exposing 8080 port for health checks
|
||||
|
||||
@@ -415,7 +415,7 @@ Env variables should be treated as **private**, especially all keys and JWKs. Th
|
||||
| ARWEAVE_KEYS_JWK | required if ARWEAVE_KEYS_FILE_PATH not provided | | JWK of arweave wallet (helpful with Docker) |
|
||||
| OVERRIDE_MANIFEST_USING_FILE | optional | | path to the manifest file, if not specified manifest is loaded from smart contract |
|
||||
| MANIFEST_REFRESH_INTERVAL | optional | 120000 | if manifest is loaded from smart contracts it defines how often node will check for new manifest |
|
||||
| ETHEREUM_PRIVATE_KEY | required | | Ethereum private key that will be used for price data signing |
|
||||
| ECDSA_PRIVATE_KEY | required | | Ethereum private key that will be used for price data signing |
|
||||
| TWELVE_DATA_RAPID_API_KEY | optional | | Twelve data API key which will be used to fetch prices |
|
||||
|
||||
Check out the [.env.example](../.env.example)
|
||||
@@ -484,7 +484,7 @@ ENV MANIFEST_REFRESH_INTERVAL=120000
|
||||
ENV ARWEAVE_KEYS_FILE_PATH=
|
||||
ENV ARWEAVE_KEYS_JWK=
|
||||
ENV OVERRIDE_MANIFEST_USING_FILE=
|
||||
ENV ETHEREUM_PRIVATE_KEY=
|
||||
ENV ECDSA_PRIVATE_KEY=
|
||||
ENV TWELVE_DATA_RAPID_API_KEY=
|
||||
```
|
||||
|
||||
|
||||
@@ -10,6 +10,6 @@ ENV MANIFEST_REFRESH_INTERVAL=120000
|
||||
ENV ARWEAVE_KEYS_FILE_PATH=
|
||||
ENV ARWEAVE_KEYS_JWK=
|
||||
ENV OVERRIDE_MANIFEST_USING_FILE=
|
||||
ENV ETHEREUM_PRIVATE_KEY=
|
||||
ENV ECDSA_PRIVATE_KEY=
|
||||
ENV TWELVE_DATA_RAPID_API_KEY=
|
||||
```
|
||||
|
||||
@@ -11,7 +11,7 @@ Env variables should be treated as **private**, especially all keys and JWKs. Th
|
||||
| ARWEAVE_KEYS_JWK | required if ARWEAVE_KEYS_FILE_PATH not provided | | JWK of arweave wallet (helpful with Docker) |
|
||||
| OVERRIDE_MANIFEST_USING_FILE | optional | | path to the manifest file, if not specified manifest is loaded from smart contract |
|
||||
| MANIFEST_REFRESH_INTERVAL | optional | 120000 | if manifest is loaded from smart contracts it defines how often node will check for new manifest |
|
||||
| ETHEREUM_PRIVATE_KEY | required | | Ethereum private key that will be used for price data signing |
|
||||
| ECDSA_PRIVATE_KEY | required | | Ethereum private key that will be used for price data signing |
|
||||
| TWELVE_DATA_RAPID_API_KEY | optional | | Twelve data API key which will be used to fetch prices |
|
||||
|
||||
Check out the [.env.example](../.env.example)
|
||||
|
||||
@@ -653,7 +653,7 @@ ENV MANIFEST_REFRESH_INTERVAL=120000
|
||||
ENV ARWEAVE_KEYS_FILE_PATH=
|
||||
ENV ARWEAVE_KEYS_JWK=
|
||||
ENV OVERRIDE_MANIFEST_USING_FILE=
|
||||
ENV ETHEREUM_PRIVATE_KEY=
|
||||
ENV ECDSA_PRIVATE_KEY=
|
||||
ENV TWELVE_DATA_RAPID_API_KEY=
|
||||
```
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@ import "dotenv/config";
|
||||
import { JWKInterface } from "arweave/node/lib/wallet";
|
||||
import { Manifest, NodeConfig } from "./types";
|
||||
import { readJSON } from "./utils/objects";
|
||||
import { ethers } from "ethers";
|
||||
|
||||
const DEFAULT_ENABLE_PERFORMANCE_TRACKING = "true";
|
||||
const DEFAULT_ENABLE_JSON_LOGS = "true";
|
||||
@@ -34,6 +35,13 @@ const parserFromString = {
|
||||
}
|
||||
return value === "true";
|
||||
},
|
||||
hex(value: string): string {
|
||||
const hexValue = value.startsWith("0x") ? value : `0x${value}`;
|
||||
if (!ethers.utils.isHexString(hexValue)) {
|
||||
throw new Error(`Invalid hex value: ${hexValue}`);
|
||||
}
|
||||
return hexValue;
|
||||
},
|
||||
};
|
||||
|
||||
const getOptionallyManifestData = () => {
|
||||
@@ -85,6 +93,6 @@ export const config: NodeConfig = Object.freeze({
|
||||
},
|
||||
privateKeys: {
|
||||
arweaveJwk: getArweaveWallet(),
|
||||
ethereumPrivateKey: getFromEnv("ETHEREUM_PRIVATE_KEY"),
|
||||
ethereumPrivateKey: parserFromString.hex(getFromEnv("ECDSA_PRIVATE_KEY")),
|
||||
},
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user