Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
108 commits
Select commit Hold shift + click to select a range
040c040
Update/ethscan v2 (#71)
smk762 Jun 6, 2025
f63bebb
fix(trezor,activation): add PrivateKeyPolicy to AuthOptions (#75)
takenagain Jun 6, 2025
2768355
chore(android): downgrade Java compatibility from 21 to 17 (#79)
CharlVS Jun 10, 2025
aa8148b
feat: add configurable seed node system with remote fetching (#85)
CharlVS Jun 14, 2025
4038b86
chore: refresh KDF checksums
CharlVS Jun 15, 2025
7d438bd
fix(kdf): enable p2p in noAuth mode (#86)
takenagain Jun 15, 2025
55176e1
fix: revert ETH coins config migration transformer
CharlVS Jun 15, 2025
8990c9c
fix KDF not found warnings in _tryRenameFile of FetchDefiApiStep (#76)
DeckerSU Jun 18, 2025
a36357e
feat(ui): add AssetLogo widget (#78)
takenagain Jun 18, 2025
fdeb713
removes BCH from _filteredCoins (#83)
smk762 Jun 18, 2025
d05c13b
chore: update KDF to release preview version
CharlVS Jun 23, 2025
58acbc2
bug: fix missing pubkey equality operators
CharlVS Jun 23, 2025
1a4ec66
fix: remove obsolete coins transformer
CharlVS Jun 23, 2025
3e9f73c
chore: re-generate melos configs
CharlVS Jun 23, 2025
b863ccb
fix(auth): allow custom seeds for legacy wallets (#95)
CharlVS Jun 24, 2025
2a50691
feat(sdk): add trezor support via RPC and SDK wrappers (#77)
takenagain Jun 24, 2025
24d09fd
fix(activation): eth PrivateKeyPolicy enum breaking changes (#96)
takenagain Jun 25, 2025
e5d022b
fix(pubkey-strategy): use new PrivateKeyPolicy constructors for check…
takenagain Jun 26, 2025
7dfe68b
chore: roll KDF (#100)
CharlVS Jun 27, 2025
41fb498
chore(deps): bump komodo-defi-framework to a25aea614 (#102)
takenagain Jun 30, 2025
a2face7
chore(kdf): update build config to latest staging (#103)
CharlVS Jun 30, 2025
3701f49
fix: kdf hashes
CharlVS Jun 30, 2025
fafc707
feat(asset): add message signing support flag (#105)
CharlVS Jun 30, 2025
f6f5820
add: Wallet deletion example and fix global error parsing flaw (#99)
CharlVS Jun 30, 2025
5f7da9e
ci: skip melos init
CharlVS Jun 30, 2025
8a1daea
feat(ui): adjust error display layout for narrow screens (#114)
takenagain Jul 2, 2025
a02c4a2
fix(trezor): improve trezor error handling (#110)
takenagain Jul 2, 2025
c8f27a7
fix: SIA support
CharlVS Jul 2, 2025
81ba643
fix: stop KDF when disposed
CharlVS Jul 2, 2025
9d63c56
add(auth): auth stream method with initial value
CharlVS Jul 2, 2025
c5c30d4
fix: resolve bug with dispose logic
CharlVS Jul 2, 2025
3dc37d0
add(ui): enhance TrendPercentageText
CharlVS Jul 3, 2025
cda8498
feat(ui): add helper constructors for AssetLogo from legacy ticker an…
takenagain Jul 3, 2025
d6d83c6
fix(local_auth): ensure kdf running before wallet deletion (#118)
CharlVS Jul 4, 2025
d7b6ede
feat(pubkey): add streamed new address API with Trezor confirmations …
takenagain Jul 5, 2025
ce68c7a
feat(seed): update seed node format (#87)
CharlVS Jul 5, 2025
9cf9e37
chore: roll KDF version to commit fbab8ec for branch main (#124)
github-actions[bot] Jul 7, 2025
aa51985
feat: protect SDK after disposal (#116)
CharlVS Jul 7, 2025
a44acf3
fix(ui): make Divided button min width
CharlVS Jul 14, 2025
a521a80
fix(withdraw): revert temporary IBC channel type changes (#136)
takenagain Jul 16, 2025
9351c22
feat(ui): allow customizing SourceAddressField header (#135)
takenagain Jul 16, 2025
abd3de0
fix(activation): track activation status to avoid duplicate activatio…
takenagain Jul 17, 2025
6534d47
feat(wallet_build_transformer): add flexible CDN support (#144)
CharlVS Jul 19, 2025
bb57e87
fix(build): update config format
CharlVS Jul 19, 2025
eac2b8f
feat(rpc): support max_connected on activation (#149)
CharlVS Jul 21, 2025
b8ff967
Revert "feat(rpc): support max_connected on activation (#149)" (#150)
CharlVS Jul 21, 2025
7eefbd8
adds `max_connected: 1` to utxo activation (#148)
smk762 Jul 21, 2025
74d8eff
Revert "fix(activation): track activation status to avoid duplicate a…
takenagain Jul 24, 2025
e1a63e2
feat(activation): disable tx history when using external strategy (#151)
CharlVS Jul 25, 2025
c2d985a
feat(fees): integrate fee management (#152)
CharlVS Jul 25, 2025
b18af0b
feat(ui): add hero support for coin icons (#159)
CharlVS Jul 27, 2025
4a3d9c8
feat(pubkeys): add unbanning support
CharlVS Jul 28, 2025
9621aa2
Update packages/komodo_defi_rpc_methods/lib/src/rpc_methods/wallet/un…
CharlVS Jul 28, 2025
7d7e888
fix(types): export missing RPC types
CharlVS Jul 28, 2025
dc093db
feat(pubkeys): add unbanning support (#161)
CharlVS Jul 28, 2025
acda1d9
fix(ui): resolve stale asset balance widget
CharlVS Jul 28, 2025
1526a23
Merge branch 'codex/implement-pubkey-unbanning-feature' into dev
CharlVS Jul 28, 2025
a6a9a6e
Squashed 'packages/dragon_logs/' content from commit 399ef1d1
CharlVS Jul 30, 2025
a41f81f
Merge commit 'a6a9a6ef4a308f95be1fafbb018449f198d8b4db' as 'packages/…
CharlVS Jul 30, 2025
834b83f
Merge pull request #165 from KomodoPlatform/migrate/dragon_logs_flutter
CharlVS Jul 30, 2025
60e5f2e
feat: offline private key export (#160)
CharlVS Jul 30, 2025
68429b2
fix(market-data-price): try fetch current price from komodo price rep…
takenagain Aug 1, 2025
62b919f
feat: add Flutter Web WASM support with OPFS interop extensions (#176)
CharlVS Aug 5, 2025
d5b5c38
feat(pubkey-manager): add pubkey watch function similar to balance wa…
takenagain Aug 12, 2025
6494a1b
feat(rpc): implement missing RPCs (#179) (#188)
CharlVS Aug 12, 2025
6e487e3
fix(wasm-ops): fix example app login by improving JS call error handl…
takenagain Aug 13, 2025
b753c93
feat(market-data): add support for multiple market data providers (#145)
takenagain Aug 13, 2025
260c8fc
feat: migrate dragon_charts_flutter to monorepo packages (#164)
CharlVS Aug 13, 2025
a2c278e
feat(auth): poll trezor connection status and sign out when disconnec…
takenagain Aug 13, 2025
965f2af
feat(rpc): trading-related RPCs/types (#191)
CharlVS Aug 18, 2025
060d75e
chore: regenerate freezed files and update dependencies (#197)
CharlVS Aug 18, 2025
577332a
Add HD wallet support for message signing with derivation path (#198)
CharlVS Aug 20, 2025
0af7bdb
fix: unify+upgrade Dart/Flutter versions
CharlVS Aug 20, 2025
868878c
Document project and packages for pub.dev release (#201)
CharlVS Aug 21, 2025
79874e3
chore: pin internal deps, bump patches, publish (#204)
CharlVS Aug 22, 2025
ca288fd
fix(cex-market-data): coingecko ohlc parsing (#203)
takenagain Aug 22, 2025
3090619
feat(coin-updates): integrate komodo_coin_updates into komodo_coins (…
takenagain Aug 25, 2025
8ebfebb
chore(release): publish packages
CharlVS Aug 25, 2025
b458488
fix: add missing dependency
CharlVS Aug 25, 2025
bd12b6d
chore(release): publish packages
CharlVS Aug 25, 2025
5d82d89
fix: add missing deps
CharlVS Aug 25, 2025
d2604da
chore(release): publish packages
CharlVS Aug 25, 2025
cf454fa
chore: commit pending changes
CharlVS Aug 25, 2025
d3f5d8e
chore: bump types package
CharlVS Aug 25, 2025
4928511
refactor(komodo_wallet_cli): replace print() with stdout/stderr and i…
CharlVS Aug 25, 2025
7b6aaaf
style(komodo_wallet_cli): format ArgParser construction for readability
CharlVS Aug 25, 2025
e44e225
docs(komodo_defi_types): update CHANGELOG for 0.3.2 with pub submissi…
CharlVS Aug 25, 2025
d0fb98d
chore(release): publish packages
CharlVS Aug 25, 2025
27acd7f
fix(komodo_defi_framework): rename transformer marker and update refe…
CharlVS Aug 27, 2025
f22ca69
chore(kdf): update API to latest dev (80766b0) and refresh checksums
CharlVS Aug 27, 2025
170aab4
feat(types): parent display name suffix via subclass (#213)
CharlVS Sep 1, 2025
3f503d2
feat(cex-market-data): add CoinPaprika API provider as a fallback opt…
takenagain Sep 2, 2025
508d63f
fix(auth): store bip39 compatibility regardless of wallet type (#216)
takenagain Sep 8, 2025
fa95fe8
chore(kdf): roll KDF to latest release (v2.5.1-beta) (#218)
CharlVS Sep 10, 2025
b0a6f1e
fix(custom-token-import): refresh asset list on import and use lowerc…
takenagain Sep 11, 2025
d0ebd75
Fix etherscan urls (#217)
smk762 Sep 18, 2025
34dcd69
fix(binance): use the per-coin supported quote currency list instead …
takenagain Sep 18, 2025
4b4ebf6
perf(logs): reduce market metrics log verbosity and duplication (#223)
takenagain Sep 19, 2025
1cd61c9
feat(coin-config): add custom token support to coin config manager (#…
takenagain Sep 19, 2025
ab65b10
Add log stream and callback to constructor (#222)
CharlVS Sep 22, 2025
b76012e
fix(zhltc): zhltc activation fixes (#227)
takenagain Oct 2, 2025
2403ba6
fix(sdk): close balance and pubkeysubscriptions on auth state changes…
takenagain Oct 4, 2025
f8c83ba
feat(message-signing): Add AddressPath type and refactor to use Asset…
CharlVS Oct 5, 2025
679fd92
chore: update API branch to hotfix-remove-memorydb-size-metric (#234)
CharlVS Oct 7, 2025
5e6a106
KDF: Nebula branch-based mirror + href resolution; macOS universal su…
CharlVS Oct 9, 2025
448eecc
chore(framework): update macOS build matching_pattern in build_config…
CharlVS Oct 10, 2025
11d5688
change developement team to real one (WDS9WYN969->8HPBYKKKQP) (#239)
DeckerSU Oct 15, 2025
04e1587
chore(framework): roll KDF staging to 4c4df13; update checksums (#241)
CharlVS Oct 16, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 0 additions & 4 deletions .fvm/fvm_config.json

This file was deleted.

50 changes: 50 additions & 0 deletions .github/scripts/firebase/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
# Firebase GitHub Secrets Scripts

This directory contains scripts for managing Firebase service account secrets used by GitHub Actions workflows.

## Scripts

### setup-github-secrets.sh

Automates the creation and configuration of Firebase service accounts and GitHub repository secrets.

**What it does:**
- Creates service accounts in Google Cloud projects (if they don't exist)
- Grants required IAM permissions for Firebase deployments
- Generates service account keys
- Creates/updates GitHub repository secrets
- Cleans up sensitive key files

**Usage:**
```bash
./.github/scripts/firebase/setup-github-secrets.sh
```

### verify-github-secrets.sh

Verifies that Firebase service accounts and GitHub secrets are properly configured.

**What it checks:**
- Prerequisites (gcloud, gh, jq installations)
- Authentication status (Google Cloud and GitHub)
- Firebase project accessibility
- Service account existence and permissions
- GitHub secret configuration

**Usage:**
```bash
./.github/scripts/firebase/verify-github-secrets.sh
```

## Required Permissions

To run these scripts, you need:
- Admin access to Firebase projects (`komodo-defi-sdk` and `komodo-playground`)
- Write access to GitHub repository secrets
- Google Cloud CLI (`gcloud`) authenticated
- GitHub CLI (`gh`) authenticated

## Related Documentation

For detailed setup instructions and troubleshooting, see:
[Firebase Deployment Setup Guide](../../../docs/firebase/firebase-deployment-setup.md)
260 changes: 260 additions & 0 deletions .github/scripts/firebase/setup-github-secrets.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,260 @@
#!/bin/bash

# Setup Firebase GitHub Secrets Script
# This script automates the creation and configuration of Firebase service accounts
# and GitHub secrets for the Komodo DeFi SDK Flutter project

set -e # Exit on error

# Color codes for output
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color

# Configuration
GITHUB_REPO="KomodoPlatform/komodo-defi-sdk-flutter"
SDK_PROJECT_ID="komodo-defi-sdk"
PLAYGROUND_PROJECT_ID="komodo-playground"
SDK_SERVICE_ACCOUNT_NAME="github-actions-deploy"
PLAYGROUND_SERVICE_ACCOUNT_NAME="github-actions-deploy"

# Function to print colored output
print_status() {
echo -e "${BLUE}[INFO]${NC} $1"
}

print_success() {
echo -e "${GREEN}[SUCCESS]${NC} $1"
}

print_error() {
echo -e "${RED}[ERROR]${NC} $1"
}

print_warning() {
echo -e "${YELLOW}[WARNING]${NC} $1"
}

# Function to check if a command exists
check_command() {
if ! command -v $1 &> /dev/null; then
print_error "$1 is not installed. Please install it first."
return 1
fi
return 0
}

# Function to check if user is authenticated with gcloud
check_gcloud_auth() {
if ! gcloud auth list --filter=status:ACTIVE --format="value(account)" | grep -q .; then
print_error "Not authenticated with gcloud. Please run: gcloud auth login"
return 1
fi
return 0
}

# Function to check if user is authenticated with gh
check_gh_auth() {
if ! gh auth status &> /dev/null; then
print_error "Not authenticated with GitHub CLI. Please run: gh auth login"
return 1
fi
return 0
}

# Function to create service account if it doesn't exist
create_service_account_if_needed() {
local project_id=$1
local service_account_name=$2
local service_account_email="${service_account_name}@${project_id}.iam.gserviceaccount.com"

print_status "Checking if service account ${service_account_email} exists..."

if gcloud iam service-accounts describe "${service_account_email}" --project="${project_id}" &> /dev/null; then
print_status "Service account already exists"
else
print_status "Creating service account..."
gcloud iam service-accounts create "${service_account_name}" \
--display-name="GitHub Actions Deploy" \
--description="Service account for GitHub Actions Firebase deployments" \
--project="${project_id}"
print_success "Service account created"
fi
}

# Function to grant necessary permissions to service account
grant_permissions() {
local project_id=$1
local service_account_email=$2

print_status "Granting permissions to ${service_account_email}..."

# Array of roles to grant
local roles=(
"roles/firebase.hosting.admin"
"roles/firebase.rules.admin"
"roles/iam.serviceAccountTokenCreator"
)

for role in "${roles[@]}"; do
print_status "Granting ${role}..."
gcloud projects add-iam-policy-binding "${project_id}" \
--member="serviceAccount:${service_account_email}" \
--role="${role}" \
--quiet &> /dev/null || true
done

print_success "Permissions granted"
}

# Function to generate service account key
generate_service_account_key() {
local project_id=$1
local service_account_name=$2
local key_file=$3
local service_account_email="${service_account_name}@${project_id}.iam.gserviceaccount.com"

print_status "Generating service account key for ${service_account_email}..."

gcloud iam service-accounts keys create "${key_file}" \
--iam-account="${service_account_email}" \
--project="${project_id}"

print_success "Service account key generated: ${key_file}"
}

# Function to create or update GitHub secret
create_github_secret() {
local secret_name=$1
local key_file=$2

print_status "Creating/updating GitHub secret: ${secret_name}..."

# Check if running in GitHub Actions or local
if [ -n "$GITHUB_REPOSITORY" ]; then
# Running in GitHub Actions
gh secret set "${secret_name}" < "${key_file}" --repo "${GITHUB_REPOSITORY}"
else
# Running locally
gh secret set "${secret_name}" < "${key_file}" --repo "${GITHUB_REPO}"
fi

print_success "GitHub secret ${secret_name} created/updated"
}

# Main execution
main() {
print_status "Starting Firebase GitHub secrets setup..."

# Step 1: Check prerequisites
print_status "Checking prerequisites..."

if ! check_command "gcloud"; then
print_error "Please install Google Cloud SDK: https://cloud.google.com/sdk/docs/install"
exit 1
fi

if ! check_command "gh"; then
print_error "Please install GitHub CLI: https://cli.github.com/manual/installation"
exit 1
fi

if ! check_gcloud_auth; then
exit 1
fi

if ! check_gh_auth; then
exit 1
fi

print_success "All prerequisites met"

# Step 2: Set up komodo-defi-sdk project
print_status "Setting up komodo-defi-sdk project..."

# Set the project
gcloud config set project "${SDK_PROJECT_ID}" --quiet

# Create service account if needed
create_service_account_if_needed "${SDK_PROJECT_ID}" "${SDK_SERVICE_ACCOUNT_NAME}"

# Grant permissions
grant_permissions "${SDK_PROJECT_ID}" "${SDK_SERVICE_ACCOUNT_NAME}@${SDK_PROJECT_ID}.iam.gserviceaccount.com"

# Generate key
SDK_KEY_FILE="komodo-defi-sdk-key.json"
generate_service_account_key "${SDK_PROJECT_ID}" "${SDK_SERVICE_ACCOUNT_NAME}" "${SDK_KEY_FILE}"

# Create GitHub secret
create_github_secret "FIREBASE_SERVICE_ACCOUNT_KOMODO_DEFI_SDK" "${SDK_KEY_FILE}"

# Step 3: Set up komodo-playground project
print_status "Setting up komodo-playground project..."

# Set the project
gcloud config set project "${PLAYGROUND_PROJECT_ID}" --quiet

# Create service account if needed
create_service_account_if_needed "${PLAYGROUND_PROJECT_ID}" "${PLAYGROUND_SERVICE_ACCOUNT_NAME}"

# Grant permissions
grant_permissions "${PLAYGROUND_PROJECT_ID}" "${PLAYGROUND_SERVICE_ACCOUNT_NAME}@${PLAYGROUND_PROJECT_ID}.iam.gserviceaccount.com"

# Generate key
PLAYGROUND_KEY_FILE="komodo-playground-key.json"
generate_service_account_key "${PLAYGROUND_PROJECT_ID}" "${PLAYGROUND_SERVICE_ACCOUNT_NAME}" "${PLAYGROUND_KEY_FILE}"

# Create GitHub secret
create_github_secret "FIREBASE_SERVICE_ACCOUNT_KOMODO_PLAYGROUND" "${PLAYGROUND_KEY_FILE}"

# Step 4: Clean up sensitive files
print_status "Cleaning up sensitive files..."

if [ -f "${SDK_KEY_FILE}" ]; then
rm -f "${SDK_KEY_FILE}"
print_success "Removed ${SDK_KEY_FILE}"
fi

if [ -f "${PLAYGROUND_KEY_FILE}" ]; then
rm -f "${PLAYGROUND_KEY_FILE}"
print_success "Removed ${PLAYGROUND_KEY_FILE}"
fi

# Step 5: Verify setup
print_status "Verifying setup..."

# Check if secrets exist
if gh secret list --repo "${GITHUB_REPO}" | grep -q "FIREBASE_SERVICE_ACCOUNT_KOMODO_DEFI_SDK"; then
print_success "FIREBASE_SERVICE_ACCOUNT_KOMODO_DEFI_SDK secret exists"
else
print_error "FIREBASE_SERVICE_ACCOUNT_KOMODO_DEFI_SDK secret not found"
fi

if gh secret list --repo "${GITHUB_REPO}" | grep -q "FIREBASE_SERVICE_ACCOUNT_KOMODO_PLAYGROUND"; then
print_success "FIREBASE_SERVICE_ACCOUNT_KOMODO_PLAYGROUND secret exists"
else
print_error "FIREBASE_SERVICE_ACCOUNT_KOMODO_PLAYGROUND secret not found"
fi

print_success "Firebase GitHub secrets setup completed!"
print_status "You can now test the deployment by creating a pull request or pushing to the dev branch."
}

# Display banner
echo "================================================"
echo "Firebase GitHub Secrets Setup Script"
echo "================================================"
echo

# Confirm before proceeding
read -p "This script will set up Firebase service accounts and GitHub secrets. Continue? (y/N) " -n 1 -r
echo
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
print_warning "Setup cancelled"
exit 0
fi

# Run main function
main
Loading
Loading