Skip to content

Commit cd98ff9

Browse files
committed
Merge branch 'realitySpiral/coinbaseTrading' of https://github.com/monilpat/eliza into realitySpiral/coinbaseTrading
2 parents 90bf758 + 1f864a1 commit cd98ff9

File tree

850 files changed

+71456
-38903
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

850 files changed

+71456
-38903
lines changed

.env.example

+152
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,152 @@
1+
# Discord Configuration
2+
DISCORD_APPLICATION_ID=
3+
DISCORD_API_TOKEN= # Bot token
4+
DISCORD_VOICE_CHANNEL_ID= # The ID of the voice channel the bot should join (optional)
5+
6+
# AI Model API Keys
7+
OPENAI_API_KEY= # OpenAI API key, starting with sk-
8+
9+
ETERNALAI_URL=
10+
ETERNALAI_API_KEY=
11+
12+
REDPILL_API_KEY= # REDPILL API Key
13+
GROK_API_KEY= # GROK API Key
14+
GROQ_API_KEY= # Starts with gsk_
15+
OPENROUTER_API_KEY=
16+
GOOGLE_GENERATIVE_AI_API_KEY= # Gemini API key
17+
18+
# Speech Synthesis
19+
ELEVENLABS_XI_API_KEY= # API key from elevenlabs
20+
21+
# ElevenLabs Settings
22+
ELEVENLABS_MODEL_ID=eleven_multilingual_v2
23+
ELEVENLABS_VOICE_ID=21m00Tcm4TlvDq8ikWAM
24+
ELEVENLABS_VOICE_STABILITY=0.5
25+
ELEVENLABS_VOICE_SIMILARITY_BOOST=0.9
26+
ELEVENLABS_VOICE_STYLE=0.66
27+
ELEVENLABS_VOICE_USE_SPEAKER_BOOST=false
28+
ELEVENLABS_OPTIMIZE_STREAMING_LATENCY=4
29+
ELEVENLABS_OUTPUT_FORMAT=pcm_16000
30+
31+
# Twitter/X Configuration
32+
TWITTER_DRY_RUN=false
33+
TWITTER_USERNAME= # Account username
34+
TWITTER_PASSWORD= # Account password
35+
TWITTER_EMAIL= # Account email
36+
TWITTER_2FA_SECRET=
37+
TWITTER_COOKIES= # Account cookies
38+
X_SERVER_URL=
39+
XAI_API_KEY=
40+
XAI_MODEL=
41+
42+
# Post Interval Settings (in minutes)
43+
POST_INTERVAL_MIN= # Default: 90
44+
POST_INTERVAL_MAX= # Default: 180
45+
POST_IMMEDIATELY=
46+
47+
# Feature Flags
48+
IMAGE_GEN= # Set to TRUE to enable image generation
49+
USE_OPENAI_EMBEDDING= # Set to TRUE for OpenAI, leave blank for local
50+
51+
# OpenRouter Models
52+
OPENROUTER_MODEL= # Default: uses hermes 70b/405b
53+
SMALL_OPENROUTER_MODEL=
54+
MEDIUM_OPENROUTER_MODEL=
55+
LARGE_OPENROUTER_MODEL=
56+
57+
# Ollama Configuration
58+
OLLAMA_SERVER_URL= # Default: localhost:11434
59+
OLLAMA_MODEL=
60+
OLLAMA_EMBEDDING_MODEL= # Default: mxbai-embed-large
61+
SMALL_OLLAMA_MODEL= # Default: llama3.2
62+
MEDIUM_OLLAMA_MODEL= # Default: hermes3
63+
LARGE_OLLAMA_MODEL= # Default: hermes3:70b
64+
65+
# API Keys
66+
ANTHROPIC_API_KEY= # For Claude
67+
HEURIST_API_KEY= # Get from https://heurist.ai/dev-access
68+
69+
# Heurist Models
70+
SMALL_HEURIST_LANGUAGE_MODEL=
71+
MEDIUM_HEURIST_LANGUAGE_MODEL=
72+
LARGE_HEURIST_LANGUAGE_MODEL=
73+
HEURIST_IMAGE_MODEL=
74+
75+
# EVM
76+
EVM_PRIVATE_KEY=EXAMPLE_WALLET_PRIVATE_KEY
77+
EVM_PUBLIC_KEY=EXAMPLE_WALLET_PUBLIC_KEY
78+
79+
# Solana
80+
SOLANA_PRIVATE_KEY=EXAMPLE_WALLET_PRIVATE_KEY
81+
SOLANA_PUBLIC_KEY=EXAMPLE_WALLET_PUBLIC_KEY
82+
83+
# Fallback Wallet Configuration (deprecated)
84+
WALLET_PRIVATE_KEY=EXAMPLE_WALLET_PRIVATE_KEY
85+
WALLET_PUBLIC_KEY=EXAMPLE_WALLET_PUBLIC_KEY
86+
87+
BIRDEYE_API_KEY=
88+
89+
# Solana Configuration
90+
SOL_ADDRESS=So11111111111111111111111111111111111111112
91+
SLIPPAGE=1
92+
BASE_MINT=So11111111111111111111111111111111111111112
93+
RPC_URL=https://api.mainnet-beta.solana.com
94+
HELIUS_API_KEY=
95+
96+
# Telegram Configuration
97+
TELEGRAM_BOT_TOKEN=
98+
99+
# Together Configuration
100+
TOGETHER_API_KEY=
101+
102+
# Server Configuration
103+
SERVER_PORT=3000
104+
105+
# Starknet Configuration
106+
STARKNET_ADDRESS=
107+
STARKNET_PRIVATE_KEY=
108+
STARKNET_RPC_URL=
109+
110+
# Intiface Configuration
111+
INTIFACE_WEBSOCKET_URL=ws://localhost:12345
112+
113+
114+
# Farcaster
115+
FARCASTER_HUB_URL=
116+
FARCASTER_FID=
117+
FARCASTER_PRIVATE_KEY=
118+
119+
# Coinbase
120+
COINBASE_COMMERCE_KEY= # from coinbase developer portal
121+
COINBASE_API_KEY= # from coinbase developer portal
122+
COINBASE_PRIVATE_KEY= # from coinbase developer portal
123+
# if not configured it will be generated and written to runtime.character.settings.secrets.COINBASE_GENERATED_WALLET_ID and runtime.character.settings.secrets.COINBASE_GENERATED_WALLET_HEX_SEED
124+
COINBASE_GENERATED_WALLET_ID= # not your address but the wallet id from generating a wallet through the plugin
125+
COINBASE_GENERATED_WALLET_HEX_SEED= # not your address but the wallet hex seed from generating a wallet through the plugin and calling export
126+
127+
# Conflux Configuration
128+
CONFLUX_CORE_PRIVATE_KEY=
129+
CONFLUX_CORE_SPACE_RPC_URL=
130+
CONFLUX_ESPACE_PRIVATE_KEY=
131+
CONFLUX_ESPACE_RPC_URL=
132+
CONFLUX_MEME_CONTRACT_ADDRESS=
133+
134+
#ZeroG
135+
ZEROG_INDEXER_RPC=
136+
ZEROG_EVM_RPC=
137+
ZEROG_PRIVATE_KEY=
138+
ZEROG_FLOW_ADDRESS=
139+
140+
141+
# Coinbase
142+
COINBASE_COMMERCE_KEY=
143+
COINBASE_API_KEY=
144+
COINBASE_PRIVATE_KEY=
145+
146+
COINBASE_GENERATED_WALLET_ID=
147+
COINBASE_GENERATED_WALLET_HEX_SEED=
148+
149+
150+
# TEE Configuration
151+
DSTACK_SIMULATOR_ENDPOINT=
152+
WALLET_SECRET_SALT=secret_salt

.github/pull_request_template.md

+7-1
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ If a docs change is needed: I have updated the documentation accordingly.
4747
## Detailed testing steps
4848

4949
<!--
50-
None, automtated tests are fine.
50+
None, automated tests are fine.
5151
-->
5252

5353
<!--
@@ -77,3 +77,9 @@ None, automtated tests are fine.
7777
<!--
7878
## Deployment instructions
7979
-->
80+
81+
<!-- If you are on Discord, please join https://discord.gg/ai16z and state your Discord username here for contribute role and join us in #development-feed -->
82+
<!--
83+
## Discord username
84+
85+
-->

.github/workflows/ci.yaml

+6-3
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,16 @@ jobs:
2525
- name: Run Prettier
2626
run: pnpm run prettier --check .
2727

28+
- name: Run Linter
29+
run: pnpm run lint
30+
2831
- name: Create test env file
2932
run: |
30-
echo "TEST_DATABASE_CLIENT=sqlite" > core/.env.test
31-
echo "NODE_ENV=test" >> core/.env.test
33+
echo "TEST_DATABASE_CLIENT=sqlite" > packages/core/.env.test
34+
echo "NODE_ENV=test" >> packages/core/.env.test
3235
3336
- name: Run tests
34-
run: cd core && pnpm test
37+
run: cd packages/core && pnpm test
3538

3639
- name: Build packages
3740
run: pnpm run build

.github/workflows/pr.yaml

+28
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
name: PR Title Check
2+
3+
on:
4+
pull_request:
5+
types: [opened, edited, synchronize]
6+
7+
jobs:
8+
check-pr-title:
9+
runs-on: ubuntu-latest
10+
11+
steps:
12+
- name: Check out the repository
13+
uses: actions/checkout@v2
14+
15+
- name: Validate PR title
16+
id: validate
17+
run: |
18+
PR_TITLE=$(jq -r .pull_request.title "$GITHUB_EVENT_PATH")
19+
echo "PR Title: $PR_TITLE"
20+
if [[ ! "$PR_TITLE" =~ ^(feat|fix|docs|style|refactor|test|chore):\ .+ ]]; then
21+
echo "PR title does not match the required pattern."
22+
exit 1
23+
fi
24+
25+
- name: Set status
26+
if: failure()
27+
run: |
28+
gh pr comment ${{ github.event.pull_request.number }} --body "❌ PR title does not match the required pattern. Please use the format: 'type: description' (e.g., 'feat|fix|docs|style|refactor|test|chore: title')."

.github/workflows/pre-release.yml

+76
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
name: Pre-Release
2+
3+
on:
4+
workflow_dispatch:
5+
inputs:
6+
release_type:
7+
description: "Type of release (prerelease, prepatch, patch, minor, preminor, major)"
8+
required: true
9+
default: "prerelease"
10+
11+
jobs:
12+
release:
13+
runs-on: ubuntu-latest
14+
steps:
15+
- uses: actions/checkout@v4
16+
with:
17+
fetch-depth: 0
18+
19+
- uses: actions/setup-node@v4
20+
with:
21+
node-version: 22
22+
23+
- uses: pnpm/action-setup@v3
24+
with:
25+
version: 8
26+
27+
- name: Configure Git
28+
run: |
29+
git config user.name "${{ github.actor }}"
30+
git config user.email "${{ github.actor }}@users.noreply.github.com"
31+
32+
- name: "Setup npm for npmjs"
33+
run: |
34+
npm config set registry https://registry.npmjs.org/
35+
echo "//registry.npmjs.org/:_authToken=${{ secrets.NPM_TOKEN }}" > ~/.npmrc
36+
37+
- name: Install Protobuf Compiler
38+
run: sudo apt-get install -y protobuf-compiler
39+
40+
- name: Install dependencies
41+
run: pnpm install
42+
43+
- name: Build packages
44+
run: pnpm run build
45+
46+
- name: Tag and Publish Packages
47+
id: tag_publish
48+
run: |
49+
RELEASE_TYPE=${{ github.event_name == 'push' && 'prerelease' || github.event.inputs.release_type }}
50+
npx lerna version $RELEASE_TYPE --conventional-commits --yes --no-private --force-publish
51+
npx lerna publish from-git --yes --dist-tag next
52+
53+
- name: Get Version Tag
54+
id: get_tag
55+
run: echo "TAG=$(git describe --tags --abbrev=0)" >> $GITHUB_OUTPUT
56+
57+
- name: Generate Release Body
58+
id: release_body
59+
run: |
60+
if [ -f CHANGELOG.md ]; then
61+
echo "body=$(cat CHANGELOG.md)" >> $GITHUB_OUTPUT
62+
else
63+
echo "body=No changelog provided for this release." >> $GITHUB_OUTPUT
64+
fi
65+
66+
- name: Create GitHub Release
67+
uses: actions/create-release@v1
68+
env:
69+
GITHUB_TOKEN: ${{ secrets.GH_TOKEN }}
70+
PNPM_HOME: /home/runner/setup-pnpm/node_modules/.bin
71+
with:
72+
tag_name: ${{ steps.get_tag.outputs.TAG }}
73+
release_name: Release
74+
body_path: CHANGELOG.md
75+
draft: false
76+
prerelease: ${{ github.event_name == 'push' }}

.github/workflows/release.yaml

+75
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
name: Release
2+
3+
on:
4+
workflow_dispatch:
5+
inputs:
6+
release_type:
7+
description: "Type of release (prerelease, prepatch, patch, minor, preminor, major)"
8+
required: true
9+
default: "patch"
10+
11+
jobs:
12+
release:
13+
runs-on: ubuntu-latest
14+
steps:
15+
- uses: actions/checkout@v4
16+
with:
17+
fetch-depth: 0
18+
19+
- uses: actions/setup-node@v4
20+
with:
21+
node-version: 22
22+
23+
- uses: pnpm/action-setup@v3
24+
with:
25+
version: 8
26+
27+
- name: Configure Git
28+
run: |
29+
git config user.name "${{ github.actor }}"
30+
git config user.email "${{ github.actor }}@users.noreply.github.com"
31+
32+
- name: "Setup npm for npmjs"
33+
run: |
34+
npm config set registry https://registry.npmjs.org/
35+
echo "//registry.npmjs.org/:_authToken=${{ secrets.NPM_TOKEN }}" > ~/.npmrc
36+
37+
- name: Install Protobuf Compiler
38+
run: sudo apt-get install -y protobuf-compiler
39+
40+
- name: Install dependencies
41+
run: pnpm install
42+
43+
- name: Build packages
44+
run: pnpm run build
45+
46+
- name: Tag and Publish Packages
47+
id: tag_publish
48+
run: |
49+
npx lerna version ${{ github.event.inputs.release_type }} --conventional-commits --yes --no-private --force-publish
50+
npx lerna publish from-git --yes --dist-tag ${{ github.event.inputs.release_type == 'preminor' && 'next' || 'latest' }}
51+
52+
- name: Get Version Tag
53+
id: get_tag
54+
run: echo "TAG=$(git describe --tags --abbrev=0)" >> $GITHUB_OUTPUT
55+
56+
- name: Generate Release Body
57+
id: release_body
58+
run: |
59+
if [ -f CHANGELOG.md ]; then
60+
echo "body=$(cat CHANGELOG.md)" >> $GITHUB_OUTPUT
61+
else
62+
echo "body=No changelog provided for this release." >> $GITHUB_OUTPUT
63+
fi
64+
65+
- name: Create GitHub Release
66+
uses: actions/create-release@v1
67+
env:
68+
GITHUB_TOKEN: ${{ secrets.GH_TOKEN }}
69+
PNPM_HOME: /home/runner/setup-pnpm/node_modules/.bin
70+
with:
71+
tag_name: ${{ steps.get_tag.outputs.TAG }}
72+
release_name: Release
73+
body_path: CHANGELOG.md
74+
draft: false
75+
prerelease: false

0 commit comments

Comments
 (0)