Skip to content

Vmimo/clean for ocp merge #35

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
Merged
Show file tree
Hide file tree
Changes from 178 commits
Commits
Show all changes
179 commits
Select commit Hold shift + click to select a range
82b3842
Revert "Merge branch 'dev' into dev"
AdamMomen Nov 27, 2024
876212b
Revert "Merge branch 'dev' into dev"
AdamMomen Nov 27, 2024
1020b80
Restore sampleData.js file
AdamMomen Nov 27, 2024
8431a1e
Merge pull request #102 from Fairmint/adam/revert-latest-commit
AdamMomen Nov 27, 2024
6637439
adding access control, stakeholder, issuer, stock class and stock
victormimo Nov 27, 2024
7b0f704
adding rest of facets
victormimo Nov 27, 2024
59370b1
finishing tests
victormimo Nov 27, 2024
8a267ad
Set `forge` as the default formater
AdamMomen Nov 28, 2024
4ed9e6e
add precommit for `forge fmt`
AdamMomen Nov 28, 2024
16f44a7
Format
AdamMomen Nov 28, 2024
5255405
add format rules
AdamMomen Nov 28, 2024
5ff6c9c
Reformat
AdamMomen Nov 28, 2024
6200e93
Merge pull request #104 from Fairmint/adam/format-and-test
AdamMomen Nov 28, 2024
c52c17a
Add Facet Syncing and Upgrading script
AdamMomen Nov 28, 2024
adda2b2
Fix linting errors
AdamMomen Nov 28, 2024
9682030
Merge remote-tracking branch 'origin/dev' into adam/loupe
AdamMomen Nov 28, 2024
940253a
format
AdamMomen Nov 28, 2024
a3232f0
Rename UpgradeFacet to ManageFacets
AdamMomen Nov 28, 2024
f932a8d
Remove old test
AdamMomen Nov 28, 2024
8eb7493
Add migration, validation and fixing scripts
AdamMomen Dec 4, 2024
55c4ab1
updating stock and convertible
victormimo Dec 4, 2024
2d5e312
adding equity compensation and cleaning up controllers
victormimo Dec 4, 2024
e4a4009
adding base price
victormimo Dec 4, 2024
90b353d
adding warrants
victormimo Dec 4, 2024
f35310b
Fix linting errors
AdamMomen Dec 5, 2024
6b2d71b
Add transferOwnership function feature
AdamMomen Dec 5, 2024
4e274ed
Format solidity files
AdamMomen Dec 5, 2024
6d67a5c
Formatting and access control
AdamMomen Dec 5, 2024
78c5fee
Fix Adjustment test
AdamMomen Dec 5, 2024
83c4a27
Format
AdamMomen Dec 5, 2024
6924279
Update ABIs
AdamMomen Dec 5, 2024
1ca5acd
Transfer admin to wallet once cap table is created
AdamMomen Dec 5, 2024
46f1ddf
Update ABIs
AdamMomen Dec 5, 2024
94b355c
tests are passing
victormimo Dec 5, 2024
9a2abb7
Merge pull request #107 from Fairmint/vmimo/onchain-ocf-completeness
victormimo Dec 5, 2024
8cb697a
Merge branch 'adam/loupe' into dev
victormimo Dec 5, 2024
9bd4a6e
Merge branch 'dev' into vmimo/access-control
AdamMomen Dec 5, 2024
b0bbd5b
Update ABIs
AdamMomen Dec 5, 2024
abe2a73
add scripts
AdamMomen Dec 5, 2024
b9235c1
test is failing
victormimo Dec 5, 2024
27d2104
adding the new fields
victormimo Dec 5, 2024
393945b
Pass breaking test and merge branch dev
AdamMomen Dec 5, 2024
04a2a92
Merge remote-tracking branch 'remotes/origin/dev' into vmimo/access-c…
AdamMomen Dec 5, 2024
cec7f67
Merge pull request #103 from Fairmint/vmimo/access-control
AdamMomen Dec 5, 2024
f669809
Add Build & test steps to ci/cd
AdamMomen Dec 6, 2024
6ecb72f
Create a new base Diamond contract
AdamMomen Dec 6, 2024
00674bc
Pack `issueStock` arguments into `IssueStockParams`
AdamMomen Dec 6, 2024
496200f
Pack `issueConvertible` arguments into `IssueConvertibleParams`
AdamMomen Dec 6, 2024
a703e99
Pack `issueEquityCompensation` arguments into `IssueEquityCompensatio…
AdamMomen Dec 6, 2024
a8931d7
Pack `issueWarrant` arguments into `IssueWarrantParams`
AdamMomen Dec 6, 2024
e551156
Pass ManageFacet tests
AdamMomen Dec 6, 2024
60ba060
Reduce number of local variables in `DeployFactory` script
AdamMomen Dec 6, 2024
e07a0de
Fix failing test
AdamMomen Dec 6, 2024
09273d4
Print test summary upon completion `forge test`
AdamMomen Dec 6, 2024
8ba9be5
Remove `via-ir` flag in setup script
AdamMomen Dec 6, 2024
458068c
Add production profile & document `foundry.toml` file
AdamMomen Dec 6, 2024
8e44575
Fork `DiamondCutFacet` & `LibDiamond` without Permission Managment
AdamMomen Dec 6, 2024
a3026bd
finishing implementation, need to test
victormimo Dec 7, 2024
063757f
Implement Zero Time Deployment flow using Blue/Green Deployment strategy
AdamMomen Dec 8, 2024
c231d06
Revert "Fork `DiamondCutFacet` & `LibDiamond` without Permission Mana…
AdamMomen Dec 8, 2024
f8a6a56
Refactor logic `DeployFactory` script into a library
AdamMomen Dec 9, 2024
e3fcb83
Refactor logic `ManageFacets` script into a library
AdamMomen Dec 9, 2024
2069a76
Refactor logic `SyncDiamonds` script into a library
AdamMomen Dec 9, 2024
994064e
add transfer ownership function inside CaptableDiamond implementation
AdamMomen Dec 9, 2024
eaa3cb3
Inherit from `Ownable` contract and transfor Diamond owner to contrac…
AdamMomen Dec 9, 2024
f77d4e6
Use libs & pass tests
AdamMomen Dec 9, 2024
1dd5496
adding onlyOwner modifier
victormimo Dec 9, 2024
1ef35ea
deleting adam's sol workspace
victormimo Dec 9, 2024
3e918a1
comment for explanation
victormimo Dec 9, 2024
b5eb0ad
Update `get_port` script
AdamMomen Dec 9, 2024
9638328
Disable exposing port for test image
AdamMomen Dec 9, 2024
d9f1a0e
updating app to match multichain
victormimo Dec 9, 2024
ef4acab
get contract instance with multi-chain
victormimo Dec 9, 2024
85a7d72
Merge pull request #108 from Fairmint/adam/setup-cicd
victormimo Dec 9, 2024
7727830
formatting
victormimo Dec 9, 2024
d5487f4
Merge branch 'dev' of https://github.com/Fairmint/open-captable-proto…
victormimo Dec 9, 2024
bcb832c
Merge branch 'dev' into vmimo/simplified-multi-chain
victormimo Dec 9, 2024
66a2221
Use `chain_id` instead of `chainId`
AdamMomen Dec 9, 2024
79a6869
Optimize `DeployFactory` Library code
AdamMomen Dec 9, 2024
22fb9ff
Remove Extra imports in `CaptableFactory`
AdamMomen Dec 9, 2024
1e1a243
Use snake_case for `chain_id`
AdamMomen Dec 9, 2024
70fe4d4
Enable workflow for `dev` branch when it's a the base
AdamMomen Dec 9, 2024
359b414
Clean up
AdamMomen Dec 9, 2024
18cf471
Merge pull request #110 from Fairmint/vmimo/simplified-multi-chain
AdamMomen Dec 9, 2024
28c6c09
adding interfaces, splitting factory into two contracts
victormimo Dec 9, 2024
d4b0870
Reuse `DiamondCutFacet` after deployment
AdamMomen Dec 10, 2024
196d797
Merge pull request #112 from Fairmint/adam/reduee-factory-size
AdamMomen Dec 10, 2024
8203d80
Marge `CaptableInitializer` into `CaptableFactory`
AdamMomen Dec 10, 2024
6ffa4b9
Merge remote-tracking branch 'remotes/origin/dev' into vmimo/interfaces
AdamMomen Dec 10, 2024
5015c55
Ues Interfaces and pass all tests
AdamMomen Dec 10, 2024
4c2432b
Add '@interfaces' in setup script
AdamMomen Dec 10, 2024
8110294
Merge pull request #111 from Fairmint/vmimo/interfaces
AdamMomen Dec 10, 2024
85b7cbe
chore: clean up
AdamMomen Dec 10, 2024
7a8886e
Accept Transfer for deployer upon factory creation
AdamMomen Dec 10, 2024
ba6982a
get wallet by chain id
AdamMomen Dec 10, 2024
5b4637f
update .gitignore
AdamMomen Dec 10, 2024
71eac78
Merge branch 'adam/fix-deploy-factory-script' into adam/migration
AdamMomen Dec 10, 2024
548a88e
Update facet abi
AdamMomen Dec 10, 2024
321eb3b
Update migration script to use legal name for file management instead…
AdamMomen Dec 10, 2024
817909b
Chore: clean up
AdamMomen Dec 10, 2024
1bf8de3
Add stock class shares authorized tank in Event Machine
AdamMomen Dec 10, 2024
f8e6096
chore: clean up
AdamMomen Dec 10, 2024
e3c2c23
Merge remote-tracking branch 'remotes/origin/dev' into adam/migration
AdamMomen Dec 10, 2024
d856cee
equity comp exercise is operator only
victormimo Dec 11, 2024
4aeadb6
only admin can initialize issuer
victormimo Dec 11, 2024
ae23c92
Merge pull request #114 from Fairmint/vmimo/tighten-access
AdamMomen Dec 12, 2024
aa415a0
Emit input params for Convertible and Stock Issuance
AdamMomen Dec 13, 2024
14c6dc8
Refactor stock-related structures to utilize ABI inputs from facets, …
AdamMomen Dec 13, 2024
dcf0d00
Emit `issuer_id`, `stock_plan_id` and `stock_class_id` for adjustment TX
AdamMomen Dec 13, 2024
0ffce2b
Convert chain_id into a number
AdamMomen Dec 13, 2024
16bf7b8
chore: clean up
AdamMomen Dec 13, 2024
869404a
Update migrate and valication script to run through all issuers
AdamMomen Dec 13, 2024
5f203ef
Add functionality to clean up websockets listeners
AdamMomen Dec 13, 2024
bc53f78
Clean up
AdamMomen Dec 13, 2024
7829425
Fix middleware error
AdamMomen Dec 13, 2024
7a5c99d
Handle PlanPool, StockClass and Issuer adjustment
AdamMomen Dec 13, 2024
c767312
Fix linting error
AdamMomen Dec 13, 2024
aa87db7
Merge remote-tracking branch 'remotes/origin/dev' into adam/migration
AdamMomen Dec 13, 2024
cfa654e
Improve deployment script
AdamMomen Dec 13, 2024
7ce45cc
Update controllers to return receipt
AdamMomen Dec 13, 2024
1415fb4
Add gas calculation for migration script
AdamMomen Dec 13, 2024
c968e4b
Add deployment scripts
AdamMomen Dec 13, 2024
0885efd
chore: clean up
AdamMomen Dec 13, 2024
9bbbfa3
Allow validate script to be run from CLI
AdamMomen Dec 13, 2024
1a21ada
adding remaninig fields to warrants
victormimo Dec 14, 2024
24b623f
adding id, fixing a scaled numbers for warrant
victormimo Dec 14, 2024
d2f0f20
adding ids to the contract
victormimo Dec 14, 2024
5269f2a
reflecting convertible issuance
victormimo Dec 16, 2024
8f525ea
updating equity comp exercise
victormimo Dec 20, 2024
0cfff39
adding id for equity comp exercise
victormimo Dec 20, 2024
87585dd
changing to query by ID
victormimo Dec 20, 2024
1449f37
adding first half of controller
victormimo Dec 20, 2024
d9a75c1
adding ids to adjustments
victormimo Dec 20, 2024
57ef549
linting
victormimo Dec 20, 2024
2eec8af
add temp file to .gitignore
AdamMomen Dec 23, 2024
fa8b4e9
Merge remote-tracking branch 'origin/adam/migration' into vmimo/addin…
AdamMomen Dec 23, 2024
6e2e506
Pass solidity tests
AdamMomen Dec 23, 2024
5aad154
Remove `hash` field from `HistoricalTransactions` Object
AdamMomen Dec 23, 2024
c1d2f1e
Format controller and pass `id`
AdamMomen Dec 23, 2024
1584b62
Add missing field `id` in issuanceController `issueStock` function
AdamMomen Dec 23, 2024
8ca8f13
Merge pull request #115 from Fairmint/vmimo/adding-ids
AdamMomen Dec 23, 2024
5345b9c
Add script to detect and sync facets based on bytescode
AdamMomen Dec 24, 2024
4146fee
Update MockFacet
AdamMomen Dec 24, 2024
47eefd7
Refactor `DeployFactory` script reduce bytescode
AdamMomen Dec 24, 2024
39ebf87
Pass Solidity tests
AdamMomen Dec 24, 2024
d058132
Remove `contractMiddleware` from main and issuer routes
AdamMomen Dec 25, 2024
b8290d0
Add selector mismatach detection
AdamMomen Dec 28, 2024
fe3d745
WIP Sync script
AdamMomen Dec 28, 2024
2f9d19b
Merge branch 'adam/sync-facets' into adam/migration
AdamMomen Dec 28, 2024
3b31449
Add `hash` to HistoricalTransactions
AdamMomen Dec 28, 2024
2168611
Update factory deployment script to verify
AdamMomen Dec 28, 2024
a3fccdf
add script to verify contracts
AdamMomen Dec 28, 2024
3be0f62
Merge remote-tracking branch 'remotes/origin/dev' into adam/migration
AdamMomen Dec 28, 2024
1749c92
Merge pull request #117 from Fairmint/adam/migration
AdamMomen Dec 28, 2024
4411f46
stock transfer function with tests
victormimo Jan 2, 2025
b555c41
Auto generate topics addresses dynamically from ABI based on on event…
AdamMomen Jan 14, 2025
f77f641
Clean up .gitignore
AdamMomen Jan 14, 2025
92d3036
Uncomment Stock Class Shares authorized shares checkup
AdamMomen Jan 14, 2025
be268e6
Improve Consolidation Error Handling and made `consolidation_security…
AdamMomen Jan 14, 2025
eb06899
Remove Redundant `StakeholderMismatch` error and check since `_getSta…
AdamMomen Jan 14, 2025
b28d462
Add tests for stock consolidation scenarios in StockTransfer contract
AdamMomen Jan 14, 2025
44435ce
Move `STOCK_CONSOLIDATION` field enum to last
AdamMomen Jan 14, 2025
9f46e14
finishing rest of consolidation
victormimo Feb 4, 2025
3be9397
removig historical transaction
victormimo Feb 4, 2025
efc1a84
upgrades
victormimo Feb 4, 2025
7ecd104
Test transfer end 2 end through route call
AdamMomen Feb 4, 2025
137e266
Rename test names that contains `testFail` to `test_Revert`
AdamMomen Feb 4, 2025
26dbda2
Fix Testing Errors
AdamMomen Feb 4, 2025
4f242b7
Merge pull request #118 from Fairmint/vmimo/execute-transfer
AdamMomen Feb 4, 2025
e5f31a4
Refactor transactions routes to support base and Fairmint-specific tr…
AdamMomen Feb 4, 2025
c164e23
Merge branch 'dev' of ssh://github.com/Fairmint/open-captable-protoco…
AdamMomen Feb 4, 2025
5a7113d
splitting stakeholders
victormimo Feb 6, 2025
ba90794
fixing import
victormimo Feb 6, 2025
58be747
Merge pull request #120 from Fairmint/adam/split-fairmint-routes
victormimo Feb 6, 2025
c459693
Delete .solhintrc
victormimo Feb 10, 2025
4b7f741
removing fairmint references
victormimo Feb 10, 2025
4a04560
cleaning fairmint
victormimo Feb 10, 2025
17f63b8
clearing fairmint routes
victormimo Feb 10, 2025
ff51e26
Merge remote-tracking branch 'ocp/dev' into vmimo/clean-for-ocp-merge
victormimo Feb 10, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion .dockerignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,4 @@
node_modules
npm-debug.log
npm-debug.log
!chain/out
!chain/out/**/*.json
2 changes: 1 addition & 1 deletion .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -29,4 +29,4 @@ CONVERTIBLES_FACET=
EQUITY_COMPENSATION_FACET=
STOCK_PLAN_FACET=
WARRANT_FACET=
STAKEHOLDER_NFT_FACET=
STAKEHOLDER_NFT_FACET=
76 changes: 0 additions & 76 deletions .github/workflows/deploy-dev.yaml

This file was deleted.

71 changes: 0 additions & 71 deletions .github/workflows/deploy-prod.yaml

This file was deleted.

137 changes: 137 additions & 0 deletions .github/workflows/deploy.dev.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,137 @@
name: Deployment (Dev)

on:
push:
branches:
- dev
- adam/setup-cicd

jobs:
build:
name: Build, Test, and Deploy
environment: dev
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
with:
submodules: true
fetch-depth: 0

# Setup and cache dependencies
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: "18"
cache: "yarn"

- name: Install Node Dependencies
run: yarn install --frozen-lockfile

- name: Install Foundry
uses: foundry-rs/foundry-toolchain@v1
with:
version: nightly

- name: Run Forge Install Script
run: chmod +x setup.sh && ./setup.sh

# Run all tests and checks
- name: Run Forge Tests
run: cd chain && forge test --summary

- name: Run ESLint
run: yarn lint:check

- name: Check Formatting
run: yarn format:check

# Build and Deploy
- name: Deploy
shell: bash
env:
SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
HOST: ${{ secrets.LIGHTSAIL_INSTANCE_PUBLIC_IP_DEV }}
PRIVATE_KEY: ${{ secrets.PRIVATE_KEY }}
ETHERSCAN_L2_API_KEY: ${{ secrets.ETHERSCAN_L2_API_KEY }}
SENTRY_DSN: ${{ secrets.SENTRY_DSN }}
DATABASE_URL: ${{ secrets.DATABASE_URL }}
RPC_URL: ${{ secrets.RPC_URL }}
CHAIN_ID: ${{ secrets.CHAIN_ID }}

run: |
# Generate timestamp for deployment
DEPLOY_TIME=$(date +%s)
echo "DEPLOY_TIME: $DEPLOY_TIME"

# Save SSH key and set permissions
echo "$SSH_PRIVATE_KEY" > deploy_key
chmod 600 deploy_key

# Create a temp directory for deployment
DEPLOY_DIR="/tmp/deploy-${DEPLOY_TIME}"
mkdir -p $DEPLOY_DIR

# Copy necessary files to temp directory
echo "Preparing deployment files..."
cp -r . $DEPLOY_DIR/

# Sync files to server
echo "Syncing files to server..."
rsync -az --delete \
--exclude='node_modules' \
--exclude='.git' \
--exclude='deploy_key' \
--include='chain/out' \
--include='chain/out/**' \
-e "ssh -i deploy_key -o StrictHostKeyChecking=no" \
$DEPLOY_DIR/ \
ubuntu@"$HOST":/home/ubuntu/app-${DEPLOY_TIME}

# Execute deployment on server
ssh -i deploy_key -o StrictHostKeyChecking=no ubuntu@"$HOST" "
sudo su && \
cd /home/ubuntu/app-${DEPLOY_TIME} && \
echo 'Building image on host...' && \
# Source the functions
source ./scripts/docker_container_utils.sh && \
docker build -t ocp-dev:${DEPLOY_TIME} -f Dockerfile.dev . && \

# Initial cleanup
echo 'Cleaning up old resources...' && \
docker ps -q --filter 'publish=8081' | xargs -r docker rm -f && \
docker ps -q --filter 'publish=8082' | xargs -r docker rm -f && \
docker container prune -f && \
docker image prune -f && \

# Start new container
echo 'Starting new container...' && \
CONTAINER_NAME=ocp-dev-${DEPLOY_TIME} && \

# Run container
docker run --name \$CONTAINER_NAME -d \
--health-cmd='curl -f http://localhost:8080/health || exit 1' \
--health-interval='2s' \
--health-retries='3' \
--health-timeout='5s' \
--restart always \
-e DOCKER_ENV='true' \
-e NODE_ENV='development' \
-e SENTRY_DSN='${SENTRY_DSN}' \
-e DATABASE_URL='${DATABASE_URL}' \
-e RPC_URL='${RPC_URL}' \
-e CHAIN_ID='${CHAIN_ID}' \
-e PORT=8080 \
-e PRIVATE_KEY='${PRIVATE_KEY}' \
-e ETHERSCAN_L2_API_KEY='${ETHERSCAN_L2_API_KEY}' \
-v '/home/ubuntu/global-bundle.pem:/global-bundle.pem' \
ocp-dev:${DEPLOY_TIME} && \

# Wait for container to be healthy
wait_for_health "\$CONTAINER_NAME" && \
if [ \$? -eq 0 ]; then
handle_container_switch "\$CONTAINER_NAME" "${DEPLOY_TIME}" "dev"
else
handle_failed_deployment "\$CONTAINER_NAME" "${DEPLOY_TIME}" "dev"
fi
"
Loading