Skip to content
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

Compare v2 WIP to production #767

Draft
wants to merge 293 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
293 commits
Select commit Hold shift + click to select a range
bf2034e
fix background color
sofiaromorales Nov 21, 2022
8aedcfe
closes #728
sofiaromorales Nov 21, 2022
52af627
create project
sofiaromorales Nov 21, 2022
ae241d0
closes #733
sofiaromorales Nov 22, 2022
51fcc1a
create project button
sofiaromorales Nov 22, 2022
4281e35
style create project page
sofiaromorales Nov 22, 2022
12abb91
fix
sofiaromorales Nov 22, 2022
e70aa41
project overview
sofiaromorales Nov 22, 2022
ff7ce07
contributors list
sofiaromorales Nov 22, 2022
b4eaa62
project github summary
sofiaromorales Nov 22, 2022
6da14ce
closes
sofiaromorales Nov 23, 2022
8a23996
add payment button
sofiaromorales Nov 23, 2022
473e6cb
add payment form UI
sofiaromorales Nov 23, 2022
7ab2d5e
CAllow creation of payments without client Id
rishkwal Nov 23, 2022
af5ffdb
repetitive code removed
rishkwal Nov 23, 2022
9b5738c
contributor_id and currency added to Payments
rishkwal Nov 23, 2022
a9332b2
Payment Input and Type updated
rishkwal Nov 23, 2022
5f3336f
Allow BTC invoice generation without Client
rishkwal Nov 23, 2022
6c92d1a
changes for nullable client in payment
sofiaromorales Nov 23, 2022
005792b
Tweak build command for v2
otech47 Nov 23, 2022
ecd9320
Remove lockfile
otech47 Nov 23, 2022
b76d256
Fix env var
otech47 Nov 23, 2022
d42bf82
Requested changes and typo fixed
rishkwal Nov 23, 2022
34a3a91
Merge pull request #731 from setlife-network/sr/issue-728/implement-e…
otech47 Nov 23, 2022
0b1a55a
Merge pull request #735 from setlife-network/sr/issue-733/implement-c…
otech47 Nov 23, 2022
76685a9
Merge pull request #739 from setlife-network/rk/allow-payments-withou…
otech47 Nov 23, 2022
48eb34d
create payment mutation
sofiaromorales Nov 23, 2022
1075f35
project overview
sofiaromorales Nov 22, 2022
c982b21
contributors list
sofiaromorales Nov 22, 2022
d383f96
project github summary
sofiaromorales Nov 22, 2022
04fbfe0
closes
sofiaromorales Nov 23, 2022
f7caa6b
add payment button
sofiaromorales Nov 23, 2022
30f275b
add payment form UI
sofiaromorales Nov 23, 2022
c0d13f3
changes for nullable client in payment
sofiaromorales Nov 23, 2022
def0094
create payment mutation
sofiaromorales Nov 23, 2022
874f4f7
Merge pull request #738 from setlife-network/sr/issue-737/implement-p…
otech47 Nov 23, 2022
81d5155
Fix bug
otech47 Nov 23, 2022
2d768e8
`/` route redirects to dashboard
rishkwal Nov 23, 2022
f899d39
create payment
sofiaromorales Nov 23, 2022
a65a491
Push to project detail after creating a project
rishkwal Nov 23, 2022
adaf49c
Redirect to Figma Prototype for Wallet Setup and Project Funding
rishkwal Nov 23, 2022
74089f1
edit payment + invoice
sofiaromorales Nov 23, 2022
c6f5944
Merge pull request #742 from setlife-network/sr/issue-737/implement-p…
sofiaromorales Nov 23, 2022
9c553c5
fix
sofiaromorales Nov 23, 2022
d79805b
Merge pull request #743 from setlife-network/sr/issue-737/implement-p…
sofiaromorales Nov 23, 2022
4d87584
project creation in two steps
sofiaromorales Nov 23, 2022
2eea8f1
add handle in dashboard
sofiaromorales Nov 23, 2022
b36252e
Merge pull request #744 from setlife-network/sr/project-creation
sofiaromorales Nov 23, 2022
3067a7a
add arrow back to dashboard from project
sofiaromorales Nov 23, 2022
e70ebc0
Merge pull request #745 from setlife-network/sr/project-creation
sofiaromorales Nov 23, 2022
92b816c
fix github url
sofiaromorales Nov 23, 2022
881a47a
Merge pull request #746 from setlife-network/sr/project-creation
sofiaromorales Nov 23, 2022
b288f08
Show Projects in the Dashboard UI
rishkwal Nov 23, 2022
df400d2
`Learn More` Prototype added for Allocation
rishkwal Nov 23, 2022
ebbd78e
fix styles
sofiaromorales Nov 24, 2022
da3915e
fix
sofiaromorales Nov 24, 2022
70d8ca7
Prep deploy
otech47 Nov 24, 2022
cfc0efa
`/` Routing fixed and minor changes
rishkwal Nov 24, 2022
96aae75
Login Page text updated
rishkwal Nov 24, 2022
07f71c8
Login Page text style changes
rishkwal Nov 24, 2022
2a64966
payments list
sofiaromorales Nov 24, 2022
994ada7
Fix bug
otech47 Nov 23, 2022
d9df954
`/` route redirects to dashboard
rishkwal Nov 23, 2022
12ac3f6
Push to project detail after creating a project
rishkwal Nov 23, 2022
9153ef4
Redirect to Figma Prototype for Wallet Setup and Project Funding
rishkwal Nov 23, 2022
2cfec69
edit payment + invoice
sofiaromorales Nov 23, 2022
cb0fab3
fix
sofiaromorales Nov 23, 2022
7dec1c5
project creation in two steps
sofiaromorales Nov 23, 2022
e5ba5aa
add handle in dashboard
sofiaromorales Nov 23, 2022
9a8cdbe
add arrow back to dashboard from project
sofiaromorales Nov 23, 2022
36b18b0
fix github url
sofiaromorales Nov 23, 2022
8d43f40
Show Projects in the Dashboard UI
rishkwal Nov 23, 2022
bbbab27
`Learn More` Prototype added for Allocation
rishkwal Nov 23, 2022
90a8405
fix styles
sofiaromorales Nov 24, 2022
0824932
fix
sofiaromorales Nov 24, 2022
cbee345
Prep deploy
otech47 Nov 24, 2022
719a6ba
`/` Routing fixed and minor changes
rishkwal Nov 24, 2022
735612a
Login Page text updated
rishkwal Nov 24, 2022
e4b6a13
Login Page text style changes
rishkwal Nov 24, 2022
453d5f6
Merge pull request #741 from setlife-network/v2-demo
sofiaromorales Apr 12, 2023
f1540a5
Merge branch 'develop' into sr/payments-list
sofiaromorales Apr 12, 2023
4ebfc9a
Merge pull request #747 from setlife-network/sr/payments-list
sofiaromorales Apr 12, 2023
90d41ce
Wallet setup UI
Ovifer13 Apr 12, 2023
db95a4d
Fix routes
Ovifer13 Apr 12, 2023
d70e002
Fix typo
Ovifer13 Apr 12, 2023
80372d8
Fix re-render error
Ovifer13 Apr 14, 2023
8f60fce
Add currency to create payment mutation
Ovifer13 Apr 14, 2023
7a5aa08
Add validation to assign datePaid to null
Ovifer13 Apr 14, 2023
c390851
Add utc to moment
Ovifer13 Apr 17, 2023
5dd0bd4
Merge pull request #775 from setlife-network/or/issue-773/contributor…
sofiaromorales Apr 18, 2023
11554da
Merge pull request #779 from setlife-network/or/issue-777/payment-wit…
sofiaromorales Apr 18, 2023
b34f1f5
Merge branch 'develop' into or/issue-776/bug-changing-payment-dates
sofiaromorales Apr 18, 2023
a540dbb
Merge pull request #780 from setlife-network/or/issue-776/bug-changin…
sofiaromorales Apr 18, 2023
d459ac9
Merge pull request #778 from setlife-network/or/issue-771/error-addin…
sofiaromorales Apr 18, 2023
935c07b
Fix not null error
Ovifer13 Apr 18, 2023
498837d
unknown property eslint error off
sofiaromorales Apr 18, 2023
dcb34a3
Merge pull request #784 from setlife-network/sr/update-eslint-rule
sofiaromorales Apr 18, 2023
caf28b0
closes #783
sofiaromorales Apr 18, 2023
026cf44
Merge pull request #785 from setlife-network/sr/issue-774/create-proj…
sofiaromorales Apr 20, 2023
f7f44e2
Merge branch 'develop' into or/issue-769/null-errors-project-page
sofiaromorales Apr 20, 2023
efbe07a
closes #786
sofiaromorales Apr 21, 2023
1b69816
Delete package-lock.json
sofiaromorales Apr 21, 2023
1547295
Fix client id and currency errors
Ovifer13 Apr 24, 2023
679c8f3
Add not null validation
Ovifer13 Apr 26, 2023
985bccb
Rollback changes
Ovifer13 Apr 26, 2023
00e3ebc
Merge pull request #788 from setlife-network/sr/issue-786/run-both-UIs
sofiaromorales Apr 27, 2023
9106260
Merge branch 'develop' into or/issue-787/project-without-client-id
sofiaromorales Apr 28, 2023
5ec4488
closes #787
sofiaromorales Apr 28, 2023
967760a
Merge pull request #789 from setlife-network/or/issue-787/project-wit…
sofiaromorales Apr 28, 2023
fde49a1
Add migration
Ovifer13 May 2, 2023
f5f4092
Fix errors when adding allocation
Ovifer13 May 2, 2023
fc7801e
closes #791
sofiaromorales May 3, 2023
c6ffb94
add project budget
sofiaromorales May 3, 2023
723799b
buidl-v1 basepath
sofiaromorales May 3, 2023
7bf92db
modified build script
sofiaromorales May 3, 2023
f540d55
Merge pull request #796 from setlife-network/sr/issue-790/deploy-both-UI
sofiaromorales May 3, 2023
2047b76
add whitelist url
sofiaromorales May 3, 2023
f398087
Merge pull request #795 from setlife-network/sr/issue-791/payment-amo…
sofiaromorales May 5, 2023
011ec18
Merge branch 'develop' into or/issue-754/choose-wallet-setup-ui
sofiaromorales May 5, 2023
3bd8343
Merge pull request #793 from setlife-network/or/issue-792/error-addin…
Ovifer13 May 5, 2023
b9b2c24
disabled prop
Ovifer13 May 8, 2023
2be104a
Remove Section component
sofiaromorales May 9, 2023
9e19860
Merge branch 'or/issue-754/choose-wallet-setup-ui' of https://github.…
sofiaromorales May 9, 2023
bddeed7
revert font size change
sofiaromorales May 9, 2023
181b604
Merge pull request #768 from setlife-network/or/issue-754/choose-wall…
sofiaromorales May 9, 2023
680169f
closes #761
sofiaromorales May 9, 2023
1200804
Overlay and Step components
Ovifer13 May 9, 2023
8c1f6f6
header
sofiaromorales May 9, 2023
3a4761b
Merge pull request #797 from setlife-network/sr/issue-761/dropdown-se…
sofiaromorales May 9, 2023
47dc73d
simple wallet setup UI
sofiaromorales May 9, 2023
50dd027
WIP
sofiaromorales May 9, 2023
5d120cf
update wallet onchain address
sofiaromorales May 11, 2023
89af1b5
Merge branch 'develop' into or/issue-756/build-overlay-component
sofiaromorales May 11, 2023
d9c7470
Create AdvancedWalletSetup component
Ovifer13 May 12, 2023
f831de3
Fix overlay component to receive content
Ovifer13 May 12, 2023
ef47f96
Merge pull request #801 from setlife-network/sr/issue-799/create-wall…
sofiaromorales May 12, 2023
9db896e
closes #756
sofiaromorales May 14, 2023
bd44a5e
Merge pull request #798 from setlife-network/or/issue-756/build-overl…
sofiaromorales May 14, 2023
d84baa2
Merge branch 'develop' into sr/issue-757/simple-wallet-setup
sofiaromorales May 14, 2023
e1f0c91
Update wallet address
sofiaromorales May 15, 2023
f2fbb7f
history cancel redirect
sofiaromorales May 15, 2023
33ccd9a
persist wallet address
sofiaromorales May 15, 2023
19a1bbd
Merge branch 'develop' into or/issue-760/build-advanced-wallet-setup
Ovifer13 May 15, 2023
7eedb77
fix hr color
sofiaromorales May 16, 2023
6f4b6e2
wallet onboarding screens 1 and 2
sofiaromorales May 16, 2023
c4d99e3
third onboarding screen
sofiaromorales May 18, 2023
9f44ab6
Advanced wallet setup component
Ovifer13 May 18, 2023
e44ae9b
closes #758
sofiaromorales May 18, 2023
c6f93b6
Merge pull request #800 from setlife-network/sr/issue-757/simple-wall…
sofiaromorales May 18, 2023
4ba0ded
UI fixes
sofiaromorales May 18, 2023
511760b
closes #805
sofiaromorales May 18, 2023
1fa1827
Merge branch 'develop' into or/issue-760/build-advanced-wallet-setup
Ovifer13 May 18, 2023
0d31269
Requested fixes
Ovifer13 May 18, 2023
06a1077
Delete log
Ovifer13 May 18, 2023
6e8cdf4
Merge pull request #807 from setlife-network/sr/issue-805/validate-bt…
sofiaromorales May 22, 2023
e70d745
Merge pull request #802 from setlife-network/sr/issue-758/simple-wall…
sofiaromorales May 22, 2023
77c1067
show green icon for completed state
sofiaromorales May 22, 2023
e9175bc
fix selector margin
sofiaromorales May 22, 2023
adf0d32
Merge branch 'develop' into or/issue-760/build-advanced-wallet-setup
sofiaromorales May 22, 2023
dbb3d6f
Merge branch 'develop' into sr/issue-803/set-up-completed-state-for-w…
sofiaromorales May 22, 2023
033e266
closes #803
sofiaromorales May 22, 2023
ee82f7f
closes #766
sofiaromorales May 22, 2023
45eb655
Merge pull request #809 from setlife-network/sr/issue-766/change-wall…
sofiaromorales May 22, 2023
b3c6ff2
Merge pull request #808 from setlife-network/sr/issue-803/set-up-comp…
sofiaromorales May 23, 2023
8b90eb1
Node authentication
Ovifer13 May 23, 2023
0e19e2f
Merge branch 'or/issue-760/build-advanced-wallet-setup' into or/issue…
Ovifer13 May 23, 2023
6aafaef
Merge branch 'develop' into or/issue-760/build-advanced-wallet-setup
Ovifer13 May 23, 2023
882d214
Add regex validations
Ovifer13 May 24, 2023
9655119
Merge branch 'or/issue-760/build-advanced-wallet-setup' into or/issue…
Ovifer13 May 24, 2023
f55759b
active contributors caroussel UI fix
sofiaromorales May 24, 2023
edbe4d0
budget currency fix
sofiaromorales May 24, 2023
4894972
Merge pull request #806 from setlife-network/or/issue-760/build-advan…
sofiaromorales May 24, 2023
59e37d0
Add string length
Ovifer13 May 24, 2023
442b774
Fix error handling
Ovifer13 May 24, 2023
3f8cbc4
Advanced wallet setup onboarding
Ovifer13 May 24, 2023
e68c71d
Change step title
Ovifer13 May 24, 2023
b872305
Fix app crash if user doesn't has a wallet
Ovifer13 May 24, 2023
9d86b8f
WIP
sofiaromorales May 26, 2023
312477f
Merge pull request #814 from setlife-network/or/issue-804/authenticat…
sofiaromorales May 26, 2023
2552bbc
Merge branch 'develop' into or/issue-815/app-crash-without-wallet
Ovifer13 May 26, 2023
4556932
Merge branch 'develop' into or/issue-762/advanced-wallet-setup-onboar…
Ovifer13 May 26, 2023
9ce1f2c
closes #810
sofiaromorales May 30, 2023
4d8d1bc
Merge pull request #817 from setlife-network/or/issue-815/app-crash-w…
sofiaromorales May 30, 2023
879cb06
Merge pull request #816 from setlife-network/or/issue-762/advanced-wa…
sofiaromorales May 30, 2023
894be12
Send bonuses button UI
sofiaromorales May 30, 2023
2e48582
bonus type switch UI
sofiaromorales May 30, 2023
45f32c7
bonus type switch UI
sofiaromorales May 31, 2023
6d2d8e5
Exchange to SATS mutation
Ovifer13 Jun 1, 2023
4d6cdd9
contributors selector
sofiaromorales Jun 1, 2023
625d521
Merge pull request #820 from setlife-network/sr/issue-810/polish-proj…
sofiaromorales Jun 1, 2023
0951d6c
Merge pull request #824 from setlife-network/or/issue-821/usd-sats-mu…
sofiaromorales Jun 6, 2023
0689560
send bonus amount page
sofiaromorales Jun 6, 2023
a684367
Merge branch 'develop' into sr/issue-811/send-bonus-split-equally
sofiaromorales Jun 6, 2023
70fbd0d
amount setup
sofiaromorales Jun 6, 2023
91c6934
Send bonus confirmation screen
sofiaromorales Jun 8, 2023
fe77fe1
Create lnd api handler
Ovifer13 Jun 8, 2023
c965152
Create sendPaymentMutation
Ovifer13 Jun 8, 2023
df1c67f
Merge branch 'develop' into or/issue-812/implement-send-payment
Ovifer13 Jun 8, 2023
35167f5
bonus sent completed
sofiaromorales Jun 9, 2023
8a8fa40
closes #811
sofiaromorales Jun 9, 2023
412d908
Validate if lnd or onchain
Ovifer13 Jun 9, 2023
de33873
Removing id and name from endpoint
Ovifer13 Jun 12, 2023
a7fef35
Merge pull request #823 from setlife-network/sr/issue-811/send-bonus-…
sofiaromorales Jun 12, 2023
bead09b
customize bonuses
sofiaromorales Jun 14, 2023
737ce2b
send bonuses
sofiaromorales Jun 14, 2023
e8f0448
closes #813
sofiaromorales Jun 14, 2023
860ac25
Only advanced users can send bonuses
Ovifer13 Jun 15, 2023
10435e2
Merge pull request #830 from setlife-network/or/issue-828/send-bonus-…
sofiaromorales Jun 19, 2023
da7ba33
Merge branch 'develop' into sr/issue-813/send-bonus-customize
sofiaromorales Jun 20, 2023
e808c98
closes #813
sofiaromorales Jun 21, 2023
c201b44
fix
sofiaromorales Jun 21, 2023
7177386
Send bonuses fix
sofiaromorales Jun 21, 2023
224ece7
Merge pull request #827 from setlife-network/sr/issue-813/send-bonus-…
sofiaromorales Jun 21, 2023
874635d
closes #832
sofiaromorales Jun 21, 2023
e7e8a97
closes #833
sofiaromorales Jun 21, 2023
4255146
Add testnet
Ovifer13 Jun 21, 2023
a8f6691
Add env WALLET_ID variable
Ovifer13 Jun 21, 2023
a66378d
Add WALLET_ID to BTCPAYSERVER credentials
Ovifer13 Jun 21, 2023
ebf9ce5
Refactor payment through btc / lnd process
Ovifer13 Jun 21, 2023
0ee2a8e
Add succeed payments to database
Ovifer13 Jun 22, 2023
00211c4
Fix button and fields
Ovifer13 Jun 23, 2023
fd8901d
Allow only otech user to see send bonuses
Ovifer13 Jun 23, 2023
15d4327
Add unix to moment time
Ovifer13 Jun 23, 2023
7ed1afc
Add status to error
Ovifer13 Jun 23, 2023
149af93
cleanup
sofiaromorales Jun 23, 2023
82b2dc3
Merge branch 'develop' into or/issue-812/implement-send-payment
Ovifer13 Jun 23, 2023
9cee216
Change BTCPay root from constant to env
Ovifer13 Jun 23, 2023
76ee884
Remove log
Ovifer13 Jun 23, 2023
d53e269
Merge pull request #826 from setlife-network/or/issue-812/implement-s…
Ovifer13 Jun 23, 2023
4dac905
Add ContributorId
Ovifer13 Jun 26, 2023
e4167de
Call endpoint to send bonuses
Ovifer13 Jun 26, 2023
01e8e03
docs: explain LNBank wallet implementation
otech47 Jun 28, 2023
7e2a108
Requested fixes
Ovifer13 Jun 28, 2023
74f46f5
Fix map methods and reducing code
Ovifer13 Jun 28, 2023
cb741bf
Add contributorId to errors for error handling
Ovifer13 Jun 28, 2023
3107ab6
Fix typo
Ovifer13 Jun 28, 2023
b8f33b5
Merge branch 'develop' into or/issue-834/allow-send-bonus-to-otech
Ovifer13 Jun 28, 2023
ba3675f
Only authorized users can pay bonuses
Ovifer13 Jun 28, 2023
0985a29
Fix currency information errors
Ovifer13 Jun 28, 2023
9047508
Add date_paid
Ovifer13 Jul 4, 2023
c9a29ea
Merge pull request #835 from setlife-network/or/issue-834/allow-send-…
otech47 Jul 5, 2023
fe56a72
Merge branch 'develop' into or/issue-829/call-api-send-bonus
otech47 Jul 5, 2023
3bc6980
Merge pull request #836 from setlife-network/or/issue-829/call-api-se…
otech47 Jul 5, 2023
7cb364e
Merge pull request #840 from setlife-network/or/issue-837/remove-curr…
otech47 Jul 5, 2023
a492141
Merge branch 'develop' into or/issue-839/fix-payments-table-timestamps
otech47 Jul 5, 2023
8b85757
Merge pull request #841 from setlife-network/or/issue-839/fix-payment…
otech47 Jul 5, 2023
56a79ce
style: fix indent from bad merge
otech47 Jul 5, 2023
e5f19f8
Fix authorized user env variable
Ovifer13 Jul 5, 2023
22b2085
fix: equaliy check
otech47 Jul 5, 2023
f5e5426
Merge pull request #843 from setlife-network/or/issue-842/send-bonuse…
otech47 Jul 5, 2023
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
5 changes: 5 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,18 @@ STRIPE_API_KEY=
STRIPE_SECRET=
TOGGL_API_KEY=
BTCPAYSERVER_API_KEY=
BTCPAYSERVER_API_ROOT=
BTCPAYSERVER_STORE_ID=
BTCPAYSERVER_WALLET_ID=
BTCPAYSERVER_SECRET=
OAUTH_REDIRECT_NEW_USERS=
OAUTH_REDIRECT_EXISTING_USERS=

# Frontend environment variables (/src)
# require `REACT_APP_` prefix
REACT_APP_API_URL=localhost:6001
REACT_APP_SITE_URL=localhost:6002
REACT_APP_TEMP_AUTHORIZED_SUPERUSER_ID=

# Required only for running tests
TESTCAFE_ROLE_GITHUB_EMAIL=
Expand Down
1 change: 1 addition & 0 deletions .eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,7 @@ module.exports = {
'react/no-danger': ['off'],
'react/no-did-update-set-state': ['off'],
'react/no-unescaped-entities': ['off'],
"react/no-unknown-property": ['off'],
'react/no-did-mount-set-state': ['off'],
'react/prop-types': 'off',
'react/prefer-stateless-function': 'off',
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,7 @@ dist

# production
/build
/build-v1

# misc
.DS_Store
Expand Down
2 changes: 1 addition & 1 deletion api/config/constants.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
require('dotenv').config()

module.exports = {
TEMP_AUTHORIZED_SUPERUSER_ID: process.env.REACT_APP_TEMP_AUTHORIZED_SUPERUSER_ID,
GITHUB_OAUTH_URL: 'https://github.com/login/oauth/access_token',
INVOICELY_CSV_PATH: `${process.env.INVOICELY_CSV_PATH}`,
SITE_ROOT: process.env.NODE_ENV == 'production'
Expand Down Expand Up @@ -35,5 +36,4 @@ module.exports = {
'MXN',
'EUR'
],
BTCPAYSERVER_API_ROOT: 'https://btcpayserver.setlife.tech/api/v1'
}
4 changes: 3 additions & 1 deletion api/config/credentials.js
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,9 @@ module.exports = {
},
BTCPAYSERVER: {
API_KEY: process.env.BTCPAYSERVER_API_KEY,
API_ROOT: process.env.BTCPAYSERVER_API_ROOT,
STORE_ID: process.env.BTCPAYSERVER_STORE_ID,
SECRET: process.env.BTCPAYSERVER_SECRET
SECRET: process.env.BTCPAYSERVER_SECRET,
WALLET_ID: process.env.BTCPAYSERVER_WALLET_ID
}
};
79 changes: 73 additions & 6 deletions api/handlers/btcPayServer.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,13 @@ const axios = require('axios')
const {
BTCPAYSERVER
} = require('../config/credentials')
const { BTCPAYSERVER_API_ROOT } = require('../config/constants')
const crypto = require('crypto')

const BTCPAYSERVER_API_KEY = BTCPAYSERVER.API_KEY;
const BTCPAYSERVER_STORE_ID = BTCPAYSERVER.STORE_ID;
const BTCPAYSERVER_SECRET = BTCPAYSERVER.SECRET;
const BTCPAYSERVER_API_KEY = BTCPAYSERVER.API_KEY
const BTCPAYSERVER_API_ROOT = BTCPAYSERVER.API_ROOT
const BTCPAYSERVER_STORE_ID = BTCPAYSERVER.STORE_ID
const BTCPAYSERVER_SECRET = BTCPAYSERVER.SECRET
const BTCPAYSERVER_WALLET_ID = BTCPAYSERVER.WALLET_ID

let config = {
headers: {
Expand Down Expand Up @@ -75,9 +76,75 @@ const webhookSignatureIsValid = (body, signature) => {
return false
}

const getNodeInfo = async () => {
const response = await axios.get(
`${BTCPAYSERVER_API_ROOT}/server/lightning/BTC/info`,
config
)

return response.data
}

const getFee = async () => {
const response = await axios.get(
`${BTCPAYSERVER_API_ROOT}/stores/${BTCPAYSERVER_STORE_ID}/payment-methods/onchain/BTC/wallet/feerate`,
config
)

return response.data
}

const createOnChainTransaction = async (walletAddress, amount) => {
const fee = await getFee()
const body = {
destinations: [
{
destination: walletAddress,
amount: amount,
}
],
feerate: fee.feeRate,
proceedWithPayjoin: true,
proceedWithBroadcast: true,
noChange: false,
rbf: true,
excludeUnconfirmed: false,
}
const response = await axios.post(
`${BTCPAYSERVER_API_ROOT}/stores/${BTCPAYSERVER_STORE_ID}/payment-methods/onchain/BTC/wallet/transactions`,
body,
config
)

return response.data
}

// This function depends on a BTCPAYSERVER_WALLET_ID which is a LNBank
// wallet set up within the BTCPS dashboard (plugin required) and is meant
// to serve as a partitioned source wallet so that you don't have to grant
// full canuseinternallightningnode permissions to this app
// any payment_request passed to this function will be paid from the funds
// in that LN Bank Wallet
const payLightningInvoice = async (payment_request) => {
const body = {
destination: payment_request
}
const response = await axios.post(
`${BTCPAYSERVER_API_ROOT}/lnbank/wallets/${BTCPAYSERVER_WALLET_ID}/send`,
body,
config
)

return response.data
}

module.exports = {
createBitcoinInvoice,
getAllInvoices,
getInvoiceById,
webhookSignatureIsValid
};
webhookSignatureIsValid,
getNodeInfo,
createOnChainTransaction,
getFee,
payLightningInvoice
};
82 changes: 82 additions & 0 deletions api/handlers/lnd.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
const axios = require('axios')

const sendPayment = async (host, port, macaroon, payment_request) => {
const options = {
httpsAgent: new (require('https').Agent)({ rejectUnauthorized: false }),
headers: {
'Grpc-Metadata-macaroon': macaroon,
}
}

const body = {
payment_request: payment_request
}

response = await axios.post(
`https://${host}:${port}/v1/channels/transactions`,
body,
options
)

return response.data
}

const addInvoice = async (host, port, macaroon, value) => {
const options = {
httpsAgent: new (require('https').Agent)({ rejectUnauthorized: false }),
headers: {
'Grpc-Metadata-macaroon': macaroon,
}
}

const body = {
value: value,
}

response = await axios.post(
`https://${host}:${port}/v1/invoices`,
body,
options
)

return response.data
}

const decodePaymentRequest = async (host, port, macaroon, payment_request) => {
const options = {
httpsAgent: new (require('https').Agent)({ rejectUnauthorized: false }),
headers: {
'Grpc-Metadata-macaroon': macaroon,
}
}

response = await axios.get(
`https://${host}:${port}/v1/payreq/${payment_request}`,
options
)

return response.data
}

const listPayments = async (host, port, macaroon) => {
const options = {
httpsAgent: new (require('https').Agent)({ rejectUnauthorized: false }),
headers: {
'Grpc-Metadata-macaroon': macaroon,
}
}

response = await axios.get(
`https://${host}:${port}/v1/payments`,
options
)

return response.data
}

module.exports = {
sendPayment,
addInvoice,
decodePaymentRequest,
listPayments
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
const moment = require('moment')

module.exports = {
up: async (queryInterface, Sequelize) => {
return queryInterface.sequelize.transaction(t => {
return Promise.all([
queryInterface.addColumn('Allocations', 'proposed_by_contributor_id', {
type: Sequelize.DataTypes.INTEGER(11),
allowNull: false,
references: {
model: 'Contributors',
key: 'id'
}
}, { transaction: t })
])
})
},

down: async (queryInterface, Sequelize) => {
return queryInterface.sequelize.transaction(t => {
return Promise.all([
queryInterface.removeColumn('Allocations', 'proposed_by_contributor_id',
{ transaction: t })
])
})
}
};
23 changes: 23 additions & 0 deletions api/migrations/20221110033428-addStatusToAllocation.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
const moment = require('moment')

module.exports = {
up: async (queryInterface, Sequelize) => {
return queryInterface.sequelize.transaction(t => {
return Promise.all([
queryInterface.addColumn('Allocations', 'status', {
type: Sequelize.DataTypes.STRING,
allowNull: false,
}, { transaction: t })
])
})
},

down: async (queryInterface, Sequelize) => {
return queryInterface.sequelize.transaction(t => {
return Promise.all([
queryInterface.removeColumn('Allocations', 'status',
{ transaction: t })
])
})
}
};
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
const moment = require('moment')

module.exports = {
up: async (queryInterface, Sequelize) => {
return queryInterface.sequelize.transaction(t => {
return Promise.all([
queryInterface.addColumn('Projects', 'expected_budget_currency', {
type: Sequelize.DataTypes.STRING,
}, { transaction: t })
])
})
},

down: async (queryInterface, Sequelize) => {
return queryInterface.sequelize.transaction(t => {
return Promise.all([
queryInterface.removeColumn('Projects', 'expected_budget_currency',
{ transaction: t })
])
})
}
};
27 changes: 27 additions & 0 deletions api/migrations/20221110045636-addProjectIdToPayment.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
const moment = require('moment')

module.exports = {
up: async (queryInterface, Sequelize) => {
return queryInterface.sequelize.transaction(t => {
return Promise.all([
queryInterface.addColumn('Payments', 'project_id', {
type: Sequelize.DataTypes.INTEGER,
allowNull: true,
references: {
model: 'Projects',
key: 'id'
}
}, { transaction: t })
])
})
},

down: async (queryInterface, Sequelize) => {
return queryInterface.sequelize.transaction(t => {
return Promise.all([
queryInterface.removeColumn('Payments', 'project_id',
{ transaction: t }),
])
})
}
};
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
module.exports = {
async up (queryInterface, Sequelize) {
return queryInterface.sequelize.transaction(t => {
return Promise.all([
queryInterface.changeColumn('Projects', 'expected_budget', {
type: Sequelize.DataTypes.INTEGER,
allowNull: true
}, { transaction: t }),
queryInterface.changeColumn('Projects', 'client_id', {
type: Sequelize.DataTypes.INTEGER,
allowNull: true
}, { transaction: t }),
queryInterface.changeColumn('Projects', 'date', {
type: Sequelize.DataTypes.INTEGER,
allowNull: true
}, { transaction: t })
])
})
},

async down (queryInterface, Sequelize) {
return Promise.all([
queryInterface.changeColumn('Projects', 'expected_budget', {
type: Sequelize.DataTypes.INTEGER,
allowNull: false
}, { transaction: t }),
queryInterface.changeColumn('Projects', 'client_id', {
type: Sequelize.DataTypes.INTEGER,
allowNull: false
}, { transaction: t }),
queryInterface.changeColumn('Projects', 'date', {
type: Sequelize.DataTypes.INTEGER,
allowNull: false
}, { transaction: t })
])
}
};
Loading