Skip to content

Commit a0694ca

Browse files
committed
chore(advanced-wallets): rename enclave to secure express
Ticket: WP-5298
1 parent 63acfb2 commit a0694ca

77 files changed

Lines changed: 643 additions & 619 deletions

File tree

Some content is hidden

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

.commitlintrc.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
"header-max-length": [2, "always", 72],
66
"references-empty": [1, "never"],
77
"subject-case": [0],
8-
"scope-enum": [2, "always", ["mbe", "ebe", "docker"]],
8+
"scope-enum": [2, "always", ["mbe", "sbe", "docker"]],
99
"scope-empty": [0, "never"]
1010
},
1111
"parserPreset": {

.nyc_output/93993f2a-8bb5-49a3-8717-3b7bfced2feb.json

Lines changed: 1 addition & 0 deletions
Large diffs are not rendered by default.
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"parent":null,"pid":34919,"argv":["/Users/pranavjain/.nvm/versions/node/v22.1.0/bin/node","/Users/pranavjain/bitgo/advanced-wallets/node_modules/.bin/mocha","--require","ts-node/register","src/**/__tests__/**/*.test.ts"],"execArgv":[],"cwd":"/Users/pranavjain/bitgo/advanced-wallets","time":1753124197507,"ppid":34901,"coverageFilename":"/Users/pranavjain/bitgo/advanced-wallets/.nyc_output/93993f2a-8bb5-49a3-8717-3b7bfced2feb.json","externalId":"","uuid":"93993f2a-8bb5-49a3-8717-3b7bfced2feb","files":["/Users/pranavjain/bitgo/advanced-wallets/src/masterExpressApp.ts","/Users/pranavjain/bitgo/advanced-wallets/src/shared/types/index.ts","/Users/pranavjain/bitgo/advanced-wallets/src/initConfig.ts","/Users/pranavjain/bitgo/advanced-wallets/src/logger.ts","/Users/pranavjain/bitgo/advanced-wallets/src/shared/appUtils.ts","/Users/pranavjain/bitgo/advanced-wallets/src/routes/master.ts","/Users/pranavjain/bitgo/advanced-wallets/src/api/master/routers/healthCheck.ts","/Users/pranavjain/bitgo/advanced-wallets/src/shared/middleware.ts","/Users/pranavjain/bitgo/advanced-wallets/src/shared/responseHandler.ts","/Users/pranavjain/bitgo/advanced-wallets/src/errors.ts","/Users/pranavjain/bitgo/advanced-wallets/src/shared/errors.ts","/Users/pranavjain/bitgo/advanced-wallets/src/types/health.ts","/Users/pranavjain/bitgo/advanced-wallets/src/api/master/routers/securedExpressHealth.ts","/Users/pranavjain/bitgo/advanced-wallets/src/api/master/clients/securedExpressClient.ts","/Users/pranavjain/bitgo/advanced-wallets/src/securedBitgoExpress/routers/index.ts","/Users/pranavjain/bitgo/advanced-wallets/src/securedBitgoExpress/routers/securedExpressApiSpec.ts","/Users/pranavjain/bitgo/advanced-wallets/src/api/secured/handlers/postIndependentKey.ts","/Users/pranavjain/bitgo/advanced-wallets/src/kms/kmsClient.ts","/Users/pranavjain/bitgo/advanced-wallets/src/kms/types/postKey.ts","/Users/pranavjain/bitgo/advanced-wallets/src/kms/types/getKey.ts","/Users/pranavjain/bitgo/advanced-wallets/src/kms/types/dataKey.ts","/Users/pranavjain/bitgo/advanced-wallets/src/kms/types/generateDataKey.ts","/Users/pranavjain/bitgo/advanced-wallets/src/api/secured/handlers/recoveryMultisigTransaction.ts","/Users/pranavjain/bitgo/advanced-wallets/src/shared/coinUtils.ts","/Users/pranavjain/bitgo/advanced-wallets/src/shared/recoveryUtils.ts","/Users/pranavjain/bitgo/advanced-wallets/src/api/secured/utils.ts","/Users/pranavjain/bitgo/advanced-wallets/src/api/secured/handlers/signMultisigTransaction.ts","/Users/pranavjain/bitgo/advanced-wallets/src/api/secured/handlers/signMpcTransaction.ts","/Users/pranavjain/bitgo/advanced-wallets/src/api/secured/mpcInitialize.ts","/Users/pranavjain/bitgo/advanced-wallets/src/api/secured/mpcFinalize.ts","/Users/pranavjain/bitgo/advanced-wallets/src/api/secured/handlers/ecdsaMPCv2Initialize.ts","/Users/pranavjain/bitgo/advanced-wallets/src/api/secured/handlers/ecdsaMPCv2Round.ts","/Users/pranavjain/bitgo/advanced-wallets/src/api/secured/handlers/ecdsaMPCv2Finalize.ts","/Users/pranavjain/bitgo/advanced-wallets/src/api/secured/handlers/signEddsaRecoveryTransaction.ts","/Users/pranavjain/bitgo/advanced-wallets/src/securedBitgoExpress/routers/healthCheck.ts","/Users/pranavjain/bitgo/advanced-wallets/src/shared/transactionUtils.ts","/Users/pranavjain/bitgo/advanced-wallets/src/api/master/routers/masterApiSpec.ts","/Users/pranavjain/bitgo/advanced-wallets/src/api/master/handlers/generateWallet.ts","/Users/pranavjain/bitgo/advanced-wallets/src/api/master/handlers/ecdsaMPCv2.ts","/Users/pranavjain/bitgo/advanced-wallets/src/api/master/handlers/eddsa.ts","/Users/pranavjain/bitgo/advanced-wallets/src/api/master/handlers/handleSendMany.ts","/Users/pranavjain/bitgo/advanced-wallets/src/api/master/middleware/middleware.ts","/Users/pranavjain/bitgo/advanced-wallets/src/api/master/handlers/recoveryWallet.ts","/Users/pranavjain/bitgo/advanced-wallets/src/api/master/handlers/recoverEddsaWallets.ts","/Users/pranavjain/bitgo/advanced-wallets/src/api/master/handlers/handleConsolidate.ts","/Users/pranavjain/bitgo/advanced-wallets/src/api/master/handlerUtils.ts","/Users/pranavjain/bitgo/advanced-wallets/src/api/master/handlers/transactionRequests.ts","/Users/pranavjain/bitgo/advanced-wallets/src/api/master/handlers/handleAccelerate.ts","/Users/pranavjain/bitgo/advanced-wallets/src/api/master/handlers/handleConsolidateUnspents.ts","/Users/pranavjain/bitgo/advanced-wallets/src/api/master/handlers/handleSignAndSendTxRequest.ts","/Users/pranavjain/bitgo/advanced-wallets/src/api/master/handlers/recoveryConsolidationsWallet.ts","/Users/pranavjain/bitgo/advanced-wallets/src/securedExpressApp.ts","/Users/pranavjain/bitgo/advanced-wallets/src/routes/secured.ts"]}

.nyc_output/processinfo/index.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"processes":{"93993f2a-8bb5-49a3-8717-3b7bfced2feb":{"parent":null,"children":[]}},"files":{"/Users/pranavjain/bitgo/advanced-wallets/src/masterExpressApp.ts":["93993f2a-8bb5-49a3-8717-3b7bfced2feb"],"/Users/pranavjain/bitgo/advanced-wallets/src/shared/types/index.ts":["93993f2a-8bb5-49a3-8717-3b7bfced2feb"],"/Users/pranavjain/bitgo/advanced-wallets/src/initConfig.ts":["93993f2a-8bb5-49a3-8717-3b7bfced2feb"],"/Users/pranavjain/bitgo/advanced-wallets/src/logger.ts":["93993f2a-8bb5-49a3-8717-3b7bfced2feb"],"/Users/pranavjain/bitgo/advanced-wallets/src/shared/appUtils.ts":["93993f2a-8bb5-49a3-8717-3b7bfced2feb"],"/Users/pranavjain/bitgo/advanced-wallets/src/routes/master.ts":["93993f2a-8bb5-49a3-8717-3b7bfced2feb"],"/Users/pranavjain/bitgo/advanced-wallets/src/api/master/routers/healthCheck.ts":["93993f2a-8bb5-49a3-8717-3b7bfced2feb"],"/Users/pranavjain/bitgo/advanced-wallets/src/shared/middleware.ts":["93993f2a-8bb5-49a3-8717-3b7bfced2feb"],"/Users/pranavjain/bitgo/advanced-wallets/src/shared/responseHandler.ts":["93993f2a-8bb5-49a3-8717-3b7bfced2feb"],"/Users/pranavjain/bitgo/advanced-wallets/src/errors.ts":["93993f2a-8bb5-49a3-8717-3b7bfced2feb"],"/Users/pranavjain/bitgo/advanced-wallets/src/shared/errors.ts":["93993f2a-8bb5-49a3-8717-3b7bfced2feb"],"/Users/pranavjain/bitgo/advanced-wallets/src/types/health.ts":["93993f2a-8bb5-49a3-8717-3b7bfced2feb"],"/Users/pranavjain/bitgo/advanced-wallets/src/api/master/routers/securedExpressHealth.ts":["93993f2a-8bb5-49a3-8717-3b7bfced2feb"],"/Users/pranavjain/bitgo/advanced-wallets/src/api/master/clients/securedExpressClient.ts":["93993f2a-8bb5-49a3-8717-3b7bfced2feb"],"/Users/pranavjain/bitgo/advanced-wallets/src/securedBitgoExpress/routers/index.ts":["93993f2a-8bb5-49a3-8717-3b7bfced2feb"],"/Users/pranavjain/bitgo/advanced-wallets/src/securedBitgoExpress/routers/securedExpressApiSpec.ts":["93993f2a-8bb5-49a3-8717-3b7bfced2feb"],"/Users/pranavjain/bitgo/advanced-wallets/src/api/secured/handlers/postIndependentKey.ts":["93993f2a-8bb5-49a3-8717-3b7bfced2feb"],"/Users/pranavjain/bitgo/advanced-wallets/src/kms/kmsClient.ts":["93993f2a-8bb5-49a3-8717-3b7bfced2feb"],"/Users/pranavjain/bitgo/advanced-wallets/src/kms/types/postKey.ts":["93993f2a-8bb5-49a3-8717-3b7bfced2feb"],"/Users/pranavjain/bitgo/advanced-wallets/src/kms/types/getKey.ts":["93993f2a-8bb5-49a3-8717-3b7bfced2feb"],"/Users/pranavjain/bitgo/advanced-wallets/src/kms/types/dataKey.ts":["93993f2a-8bb5-49a3-8717-3b7bfced2feb"],"/Users/pranavjain/bitgo/advanced-wallets/src/kms/types/generateDataKey.ts":["93993f2a-8bb5-49a3-8717-3b7bfced2feb"],"/Users/pranavjain/bitgo/advanced-wallets/src/api/secured/handlers/recoveryMultisigTransaction.ts":["93993f2a-8bb5-49a3-8717-3b7bfced2feb"],"/Users/pranavjain/bitgo/advanced-wallets/src/shared/coinUtils.ts":["93993f2a-8bb5-49a3-8717-3b7bfced2feb"],"/Users/pranavjain/bitgo/advanced-wallets/src/shared/recoveryUtils.ts":["93993f2a-8bb5-49a3-8717-3b7bfced2feb"],"/Users/pranavjain/bitgo/advanced-wallets/src/api/secured/utils.ts":["93993f2a-8bb5-49a3-8717-3b7bfced2feb"],"/Users/pranavjain/bitgo/advanced-wallets/src/api/secured/handlers/signMultisigTransaction.ts":["93993f2a-8bb5-49a3-8717-3b7bfced2feb"],"/Users/pranavjain/bitgo/advanced-wallets/src/api/secured/handlers/signMpcTransaction.ts":["93993f2a-8bb5-49a3-8717-3b7bfced2feb"],"/Users/pranavjain/bitgo/advanced-wallets/src/api/secured/mpcInitialize.ts":["93993f2a-8bb5-49a3-8717-3b7bfced2feb"],"/Users/pranavjain/bitgo/advanced-wallets/src/api/secured/mpcFinalize.ts":["93993f2a-8bb5-49a3-8717-3b7bfced2feb"],"/Users/pranavjain/bitgo/advanced-wallets/src/api/secured/handlers/ecdsaMPCv2Initialize.ts":["93993f2a-8bb5-49a3-8717-3b7bfced2feb"],"/Users/pranavjain/bitgo/advanced-wallets/src/api/secured/handlers/ecdsaMPCv2Round.ts":["93993f2a-8bb5-49a3-8717-3b7bfced2feb"],"/Users/pranavjain/bitgo/advanced-wallets/src/api/secured/handlers/ecdsaMPCv2Finalize.ts":["93993f2a-8bb5-49a3-8717-3b7bfced2feb"],"/Users/pranavjain/bitgo/advanced-wallets/src/api/secured/handlers/signEddsaRecoveryTransaction.ts":["93993f2a-8bb5-49a3-8717-3b7bfced2feb"],"/Users/pranavjain/bitgo/advanced-wallets/src/securedBitgoExpress/routers/healthCheck.ts":["93993f2a-8bb5-49a3-8717-3b7bfced2feb"],"/Users/pranavjain/bitgo/advanced-wallets/src/shared/transactionUtils.ts":["93993f2a-8bb5-49a3-8717-3b7bfced2feb"],"/Users/pranavjain/bitgo/advanced-wallets/src/api/master/routers/masterApiSpec.ts":["93993f2a-8bb5-49a3-8717-3b7bfced2feb"],"/Users/pranavjain/bitgo/advanced-wallets/src/api/master/handlers/generateWallet.ts":["93993f2a-8bb5-49a3-8717-3b7bfced2feb"],"/Users/pranavjain/bitgo/advanced-wallets/src/api/master/handlers/ecdsaMPCv2.ts":["93993f2a-8bb5-49a3-8717-3b7bfced2feb"],"/Users/pranavjain/bitgo/advanced-wallets/src/api/master/handlers/eddsa.ts":["93993f2a-8bb5-49a3-8717-3b7bfced2feb"],"/Users/pranavjain/bitgo/advanced-wallets/src/api/master/handlers/handleSendMany.ts":["93993f2a-8bb5-49a3-8717-3b7bfced2feb"],"/Users/pranavjain/bitgo/advanced-wallets/src/api/master/middleware/middleware.ts":["93993f2a-8bb5-49a3-8717-3b7bfced2feb"],"/Users/pranavjain/bitgo/advanced-wallets/src/api/master/handlers/recoveryWallet.ts":["93993f2a-8bb5-49a3-8717-3b7bfced2feb"],"/Users/pranavjain/bitgo/advanced-wallets/src/api/master/handlers/recoverEddsaWallets.ts":["93993f2a-8bb5-49a3-8717-3b7bfced2feb"],"/Users/pranavjain/bitgo/advanced-wallets/src/api/master/handlers/handleConsolidate.ts":["93993f2a-8bb5-49a3-8717-3b7bfced2feb"],"/Users/pranavjain/bitgo/advanced-wallets/src/api/master/handlerUtils.ts":["93993f2a-8bb5-49a3-8717-3b7bfced2feb"],"/Users/pranavjain/bitgo/advanced-wallets/src/api/master/handlers/transactionRequests.ts":["93993f2a-8bb5-49a3-8717-3b7bfced2feb"],"/Users/pranavjain/bitgo/advanced-wallets/src/api/master/handlers/handleAccelerate.ts":["93993f2a-8bb5-49a3-8717-3b7bfced2feb"],"/Users/pranavjain/bitgo/advanced-wallets/src/api/master/handlers/handleConsolidateUnspents.ts":["93993f2a-8bb5-49a3-8717-3b7bfced2feb"],"/Users/pranavjain/bitgo/advanced-wallets/src/api/master/handlers/handleSignAndSendTxRequest.ts":["93993f2a-8bb5-49a3-8717-3b7bfced2feb"],"/Users/pranavjain/bitgo/advanced-wallets/src/api/master/handlers/recoveryConsolidationsWallet.ts":["93993f2a-8bb5-49a3-8717-3b7bfced2feb"],"/Users/pranavjain/bitgo/advanced-wallets/src/securedExpressApp.ts":["93993f2a-8bb5-49a3-8717-3b7bfced2feb"],"/Users/pranavjain/bitgo/advanced-wallets/src/routes/secured.ts":["93993f2a-8bb5-49a3-8717-3b7bfced2feb"]},"externalIds":{}}

CLAUDE.md

Lines changed: 29 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -5,46 +5,52 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
55
## Commands
66

77
### Development
8+
89
- `yarn start` - Start the application in development mode using nodemon for auto-reloading
910
- `yarn build` - Build the TypeScript code (creates /dist folder)
1011
- `yarn lint` - Run ESLint to check for code issues
1112
- `yarn lint:fix` - Run ESLint and automatically fix issues when possible
1213

1314
### Testing
15+
1416
- `yarn test` - Run all tests
1517
- `yarn test:watch` - Run tests in watch mode
1618
- `yarn test:coverage` - Run tests with coverage report
1719
- `yarn generate-test-ssl` - Generate self-signed SSL certificates for testing
1820

1921
### Container
22+
2023
- `yarn container:build` - Build the container image using Podman (optionally use --build-arg PORT=3080)
2124

2225
## Architecture Overview
2326

24-
Enclaved BitGo Express is a secure cryptocurrency signing server with two operational modes:
27+
Secured BitGo Express is a secure cryptocurrency signing server with two operational modes:
28+
29+
### 1. Secured Express Mode (`APP_MODE=secured`)
2530

26-
### 1. Enclaved Express Mode (`APP_MODE=enclaved`)
2731
- Lightweight server focused solely on secure signing operations
2832
- Runs on port 3080 by default
2933
- Integrates with KMS for key management
3034
- Handles cryptographic operations securely
3135
- Exposes minimal endpoints focused on key generation and signing
3236

3337
### 2. Master Express Mode (`APP_MODE=master-express`)
38+
3439
- Full BitGo API functionality with integrated signing capabilities
3540
- Runs on port 3081 by default
36-
- Acts as an API gateway and communicates with Enclaved Express for signing operations
41+
- Acts as an API gateway and communicates with Secured Express for signing operations
3742
- Provides a broader set of BitGo wallet operations and transaction handling
3843

3944
### Security Architecture
45+
4046
- Both modes support mutual TLS (mTLS) authentication
4147
- Certificates can be loaded from files or environment variables
4248
- Client certificate validation for secure communications
4349
- Option to validate client certificate fingerprints
4450

4551
### Code Structure
46-
- `src/app.ts` - Main entry point that determines mode and starts the appropriate app
47-
- `src/enclavedApp.ts` - Enclaved Express mode implementation
52+
53+
- `src/securedApp.ts` - Secured Express mode implementation
4854
- `src/masterExpressApp.ts` - Master Express mode implementation
4955
- `src/initConfig.ts` - Configuration loading and validation
5056
- `src/routes/` - Express routes for both modes
@@ -53,47 +59,56 @@ Enclaved BitGo Express is a secure cryptocurrency signing server with two operat
5359
- `src/shared/` - Shared utilities and types
5460

5561
### Configuration
62+
5663
Configuration is managed through environment variables with defaults defined in `src/initConfig.ts`. The application requires specific environment variables depending on the mode:
5764

5865
#### Common Variables
59-
- `APP_MODE` - Set to "enclaved" or "master-express"
66+
67+
- `APP_MODE` - Set to "secured" or "master-express"
6068
- `TLS_MODE` - Set to "mtls" or "disabled"
6169
- `BIND` - Address to bind to (default: localhost)
6270
- `TIMEOUT` - Request timeout in milliseconds (default: 305000)
6371

64-
#### Enclaved Mode Specific
65-
- `ENCLAVED_EXPRESS_PORT` - Port to listen on (default: 3080)
72+
#### Secured Mode Specific
73+
74+
- `SECURED_EXPRESS_PORT` - Port to listen on (default: 3080)
6675
- `KMS_URL` - Required KMS service URL
6776

6877
#### Master Express Mode Specific
78+
6979
- `MASTER_EXPRESS_PORT` - Port to listen on (default: 3081)
7080
- `BITGO_ENV` - BitGo environment (default: test)
71-
- `ENCLAVED_EXPRESS_URL` - Required URL for the Enclaved Express server
72-
- `ENCLAVED_EXPRESS_CERT` - Required path to Enclaved Express certificate
81+
- `SECURED_EXPRESS_URL` - Required URL for the Secured Express server
82+
- `SECURED_EXPRESS_CERT` - Required path to Secured Express certificate
7383

7484
## API Endpoints
7585

76-
### Enclaved Express (Port 3080)
86+
### Secured Express (Port 3080)
87+
7788
- `POST /ping` - Health check
7889
- `GET /version` - Version information
7990
- `POST /:coin/key/independent` - Generate independent keychain
8091

8192
### Master Express (Port 3081)
8293

8394
#### Health and Status Endpoints
95+
8496
- `POST /ping` - Health check
8597
- `GET /version` - Version information
86-
- `POST /ping/enclavedExpress` - Test connection to Enclaved Express
87-
- `GET /version/enclavedExpress` - Get Enclaved Express version information
98+
- `POST /ping/securedExpress` - Test connection to Secured Express
99+
- `GET /version/securedExpress` - Get Secured Express version information
88100

89101
#### Wallet Management
102+
90103
- `POST /api/:coin/wallet/generate` - Generate wallet (supports onchain and TSS multisig types)
91104

92105
#### Transaction Operations
106+
93107
- `POST /api/:coin/wallet/:walletId/sendMany` - Send transaction with multiple recipients
94108
- `POST /api/:coin/wallet/:walletId/accelerate` - Accelerate pending transactions (CPFP/RBF)
95109
- `POST /api/:coin/wallet/:walletId/consolidate` - Consolidate wallet addresses
96110
- `POST /api/:coin/wallet/:walletId/consolidateunspents` - Consolidate unspent transaction outputs
97111

98112
#### Recovery
99-
- `POST /api/:coin/wallet/recovery` - Recover wallet funds
113+
114+
- `POST /api/:coin/wallet/recovery` - Recover wallet funds

Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,4 +91,4 @@ USER bitgo
9191
EXPOSE ${PORT}
9292

9393
# Start the application using the binary
94-
CMD ["./bin/enclaved-bitgo-express"]
94+
CMD ["./bin/secured-bitgo-express"]

0 commit comments

Comments
 (0)