Skip to content

Wallet schema v2 #2146

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

Draft
wants to merge 5 commits into
base: wallet-refactor-migrate-vault
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
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
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@ docker-compose.*.yml
*.sql
!/prisma/migrations/*/*.sql
!/docker/db/seed.sql
!/docker/db/wallet-seed.sql

# nostr wallet connect
scripts/nwc-keys.json
Expand Down
1 change: 1 addition & 0 deletions docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ services:
env_file: *env_file
volumes:
- ./docker/db/seed.sql:/docker-entrypoint-initdb.d/seed.sql
- ./docker/db/wallet-seed.sql:/docker-entrypoint-initdb.d/wallet-seed.sql
- db:/var/lib/postgresql/data
labels:
CONNECT: "localhost:5431"
Expand Down
102 changes: 102 additions & 0 deletions docker/db/wallet-seed.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
/*
* This seed file inserts test wallets into the database to test wallet migrations.
* Only the wallets for which we could hardcode the configuration when this file was created will work to send or receive zaps.
* For example, NWC won't work for send or receive because it generates a random public key and secret every time the container is started for the first time.
*/

-- device sync passphrase: media fit youth secret combine live cupboard response enable loyal kitchen angle
COPY public."users" ("id", "name", "vaultKeyHash") FROM stdin;
21001 test_wallet_migration_01 0feb0e0ed8684eaf37a995c4decac6d360125d40ff3fffe26239bb7ffd810853
\.

-- triggers will update the wallet JSON column in the Wallet table when we insert rows into the other wallet tables
COPY public."Wallet" ("id", "userId", "type", "enabled") FROM stdin;
1 21001 LIGHTNING_ADDRESS true
2 21001 NWC true
3 21001 WEBLN true
4 21001 LNBITS true
5 21001 CLN true
6 21001 BLINK true
7 21001 PHOENIXD true
8 21001 LND true
9 21001 LNC true
10 21001 LIGHTNING_ADDRESS true
11 21001 LIGHTNING_ADDRESS true
12 21001 LIGHTNING_ADDRESS true
13 21001 LIGHTNING_ADDRESS true
14 21001 LIGHTNING_ADDRESS true
15 21001 LIGHTNING_ADDRESS true
16 21001 LIGHTNING_ADDRESS true
17 21001 LIGHTNING_ADDRESS true
18 21001 LIGHTNING_ADDRESS true
19 21001 LIGHTNING_ADDRESS true
20 21001 LIGHTNING_ADDRESS true
21 21001 LIGHTNING_ADDRESS true
22 21001 LIGHTNING_ADDRESS true
23 21001 LIGHTNING_ADDRESS true
24 21001 LIGHTNING_ADDRESS true
25 21001 LIGHTNING_ADDRESS true
26 21001 LIGHTNING_ADDRESS true
27 21001 LIGHTNING_ADDRESS true
28 21001 NWC true
29 21001 NWC true
\.

COPY public."WalletLightningAddress" ("id", "walletId", "address") FROM stdin;
1 1 [email protected]
2 10 [email protected]
3 11 [email protected]
4 12 [email protected]
5 13 [email protected]
6 14 [email protected]
7 15 [email protected]
8 16 [email protected]
9 17 [email protected]
10 18 [email protected]
11 19 [email protected]
12 20 [email protected]
13 21 [email protected]
14 22 [email protected]
15 23 [email protected]
16 24 [email protected]
17 25 [email protected]
19 26 [email protected]
20 27 [email protected]
\.

COPY public."WalletNWC" ("id", "walletId", "nwcUrlRecv") FROM stdin;
1 2 nostr+walletconnect://8682ce552a852b5e21c8fe1235823a6f175641538f4c5431ec559a75dfb7f73a?relay=wss://relay.getalby.com/v1&secret=99669866becdbfacef4e9c3f0d00f085ee1174bc973135f158bab769f37152b9&[email protected]
2 28 nostr+walletconnect://8682ce552a852b5e21c8fe1235823a6f175641538f4c5431ec559a75dfb7f73a?relay=wss://relay-nwc.rizful.com&secret=99669866becdbfacef4e9c3f0d00f085ee1174bc973135f158bab769f37152b9
\.

COPY public."WalletLNbits" ("id", "walletId", "url", "invoiceKey") FROM stdin;
1 4 http://localhost:5001 5deed7cd634e4306bb5e696f4a03cdac
\.

COPY public."WalletCLN" ("id", "walletId", "socket", "rune", "cert") FROM stdin;
1 5 cln:3010 Fz6ox9zLwTRfHSaKbxdr5SK4KyxAjL_UEniED6UEGRw9MCZtZXRob2Q9aW52b2ljZQ== LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tDQpNSUlCY2pDQ0FSaWdBd0lCQWdJSkFOclN2UFovWTNLRU1Bb0dDQ3FHU000OUJBTUNNQll4RkRBU0JnTlZCQU1NDQpDMk5zYmlCU2IyOTBJRU5CTUNBWERUYzFNREV3TVRBd01EQXdNRm9ZRHpRd09UWXdNVEF4TURBd01EQXdXakFXDQpNUlF3RWdZRFZRUUREQXRqYkc0Z1VtOXZkQ0JEUVRCWk1CTUdCeXFHU000OUFnRUdDQ3FHU000OUF3RUhBMElBDQpCQmptYUh1dWxjZ3dTR09ubExBSFlRbFBTUXdHWEROSld5ZnpWclY5aFRGYUJSZFFrMVl1Y3VqVFE5QXFybkVJDQpyRmR6MS9PeisyWFhENmdBMnhPbmIrNmpUVEJMTUJrR0ExVWRFUVFTTUJDQ0EyTnNib0lKYkc5allXeG9iM04wDQpNQjBHQTFVZERnUVdCQlNFY21OLzlyelMyaFI2RzdFSWdzWCs1MU4wQ2pBUEJnTlZIUk1CQWY4RUJUQURBUUgvDQpNQW9HQ0NxR1NNNDlCQU1DQTBnQU1FVUNJSENlUHZOU3Z5aUJZYXdxS2dRcXV3OUoyV1Z5SnhuMk1JWUlxejlTDQpRTDE4QWlFQWg4QlZEejhwWDdOc2xsOHNiMGJPMFJaNDljdnFRb2NDZ1ZhYnFKdVN1aWs9DQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tDQo=
\.

COPY public."WalletBlink" ("id", "walletId", "apiKeyRecv", "currencyRecv") FROM stdin;
1 6 blink_stacker_news_test_IpGjMEmlLZrb3dx1RS5pcVm7Z6uKthb2UMg5bfGxcIV4Yae BTC
\.

COPY public."WalletPhoenixd" ("id", "walletId", "url", "secondaryPassword") FROM stdin;
1 7 https://phoenixd.ekzy.is abb6dc487e788fcfa2bdaf587aa3f96a5ee4a3e8d7d8068131182c5919d974cd
\.

COPY public."WalletLND" ("id", "walletId", "socket", "macaroon", "cert") FROM stdin;
1 8 lnd:10009 MDIwMTAzNmM2ZTY0MDIyZjAzMGExMDQxNDkxMjAzZDVmZGJiYzVhYjUyOWY0MjE1OGU3YmM2MTIwMTMwMWExNzBhMDg2OTZlNzY2ZjY5NjM2NTczMTIwNDcyNjU2MTY0MTIwNTc3NzI2OTc0NjUwMDAwMDYyMGVmN2ViMjFiNzBjZGQwZmE4Y2Y5YzMxMjAzYjg4ZGY5ODFkZjc5ZjlkYzg4ZDdjODg3NDVkYTBjOGUwMzA5ZWYK LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNoRENDQWlxZ0F3SUJBZ0lRYmlxVHgxcCtSVzJzMmNjdzFCcXZtakFLQmdncWhrak9QUVFEQWpBNE1SOHcKSFFZRFZRUUtFeFpzYm1RZ1lYVjBiMmRsYm1WeVlYUmxaQ0JqWlhKME1SVXdFd1lEVlFRREV3dzVNREEzWkRSbApaV1E1WldVd0hoY05NalV3TlRBMU1qQXpOREkzV2hjTk1qWXdOak13TWpBek5ESTNXakE0TVI4d0hRWURWUVFLCkV4WnNibVFnWVhWMGIyZGxibVZ5WVhSbFpDQmpaWEowTVJVd0V3WURWUVFERXd3NU1EQTNaRFJsWldRNVpXVXcKV1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVJpcXVRK1NVL0xyOWJsTGNibFcwanRiWTBFNit1QQpPeGloN3h0UGNVSVNLSkllWWJ6THhRVDRFUFlDZzBlVGZyN1k1QmNsTXF2ZjNxakhXUXFHcE9Ecm80SUJGRENDCkFSQXdEZ1lEVlIwUEFRSC9CQVFEQWdLa01CTUdBMVVkSlFRTU1Bb0dDQ3NHQVFVRkJ3TUJNQThHQTFVZEV3RUIKL3dRRk1BTUJBZjh3SFFZRFZSME9CQllFRkpMSW9wN2hiVERtYklmUHh3TlJHRWZ2dHBGbk1JRzRCZ05WSFJFRQpnYkF3Z2EyQ0REa3dNRGRrTkdWbFpEbGxaWUlKYkc5allXeG9iM04wZ2dOc2JtU0NGR2h2YzNRdVpHOWphMlZ5CkxtbHVkR1Z5Ym1Gc2dqNTVZbTF1YVhob2EyVmphMkppYjJwcWEyTTJZbU5yZVRWcFoydHdOR1p5WmpNMGRUUTEKZEhrM2JYWjBiR3BwZUdwcWMzVnRkR0pwWkM1dmJtbHZib0lFZFc1cGVJSUtkVzVwZUhCaFkydGxkSUlIWW5WbQpZMjl1Ym9jRWZ3QUFBWWNRQUFBQUFBQUFBQUFBQUFBQUFBQUFBWWNFckJJQUJUQUtCZ2dxaGtqT1BRUURBZ05JCkFEQkZBaUJ2RHFlK25RWDBrYzZpbVhzcUtxZVdIVGJrRUJ5cnBtaGdacWQrRDlvUFpBSWhBSVBDZ1dtYlkwakoKcVIvV3p6RklTakY3RW9GU1FpSjZnUGNGZ0FPWmhOK2gKLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=
\.

COPY public."VaultEntry" ("id", "key", "iv", "value", "userId", "walletId") FROM stdin;
1 nwcUrl 926622f7139d4b4506827549 b592906ea9c3ced5df077ca1ea0c787c2ea9173e39d062466b50723d8c0a568510ed42549215c6f6e15632601248f148fa18b87d7e0fe9ad667d10a12beb79e36d3cfcaa58ca65c78e8f41ee715c2b19ac8c638353cdc9098a784104eb9b1592b233d4327556de47d218f97991392105ff0868beada2667b308d544bf9e7199f056ecb8cd9c2f87a7f8f1eda7db7e80c880de12df4ce2dc5dcc16ec836d9a9f428f2c4e36f01bdbbd85084ecac308eefa1dbdfe89c2a321a3fafa1c35265a788a352c329f9e01d0988e47f05b8575fbcfb5814 21001 2
2 adminKey 1b911294853df2e94e4d9823 438ff80df2e58e3f7988ba828fab1e7def3934b908a58de9f5f16bb36e1ecc65e1cab43c0ec658f65bdccb0a241bb5614697 21001 4
3 apiKey b1f3500130b16bf4997fc370 3276869cf3d8c6d844e771688f8cd1a771279867165e4b1030b7ad90d537d5cfa0a6a82c2aaefe350db2a445b3b0c3b23a068edede3e78fe5957c1cfc6b5f1fd811786793c65aad90fe8ce 21001 6
4 currency 8174fe225f0d53957a4daced b912faacc32725b9ec01128911eb3922822fb21bdc 21001 6
5 primaryPassword 5e709c93ca34a135dad293d7 7509592ff463f886b7f7a621928a8ac0ca56b904d5835bf77ca5914a248fb70ad231f04aed893c0ef1dd7edd2d928d482d0eaeba7ae2381f3fd70ba25cb265de6091a11231a9cd3047f22ff2f838db046e67 21001 7
6 pairingPhrase 0196718758dea2bff7c89741 bd6ff716ec5b20dc74f6507b87ed0923c8b27e33204ae44cee47d8c7f78dd5976cc446f2c9dd918f2916611a71e20e87fb9245cacfdb35bbc527a42c0df765e2f9589e56b5b253c0d39f8e954b 21001 9
7 localKey 227bc46af405a40cb6697344 f4589aaca476b4905980b9dd834880926aff9e9c9217afa9b33152a74255698c9284015309ae19e10481843069a052dbe1a592e14db6aa13fce4e17fd9f5f2964720ba4686a4a45a1c72681248809e8de612 21001 9
8 remoteKey e63b62d8af6a1227129e8c7b ce97d971cdcd58b34ec2e998c6ce6df72b8c21a9cd07e69db96c9491b3d9a051cf557d721552c5cc565a4d7f1bf1ad70b20048b90e1b244e77f0b635b5dbd798e0538f85d7008b29918a7e589dc1c2bde465c50c 21001 9
9 serverHost a537d212e719810f6cbbc696 449c550ca2c24e761802087e5bc5637d0b4b231d9b771fbefbee6ed7c0a728862adc677cc283a373ec25f01003009f0c9cd18f884d08 21001 9
\.
Loading