Skip to content

Commit 4aa3bd2

Browse files
authored
Merge pull request #174 from shawakash/go2
feat: add user authentication from jwt using jose in mote
2 parents f407474 + e89381b commit 4aa3bd2

18 files changed

+440
-64
lines changed

.github/workflows/docker-image.yml

+18
Original file line numberDiff line numberDiff line change
@@ -135,3 +135,21 @@ jobs:
135135

136136
- name: Push @paybox/ws Docker image
137137
run: docker push shawakash/paybox-ws:${{ github.sha }}
138+
139+
mote_image:
140+
runs-on: ubuntu-latest
141+
steps:
142+
- name: Checkout repository
143+
uses: actions/checkout@v2
144+
145+
- name: Login to DockerHub
146+
uses: docker/login-action@v1
147+
with:
148+
username: ${{ secrets.DOCKERHUB_USERNAME }}
149+
password: ${{ secrets.DOCKERHUB_TOKEN }}
150+
151+
- name: Build @paybox/mote Docker image
152+
run: docker build -t shawakash/paybox-mote:${{ github.sha }} -f ./docker/mote/Dockerfile .
153+
154+
- name: Push @paybox/mote Docker image
155+
run: docker push shawakash/paybox-mote:${{ github.sha }}
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,31 @@
11
table:
22
name: account
33
schema: public
4+
object_relationships:
5+
- name: bitcoin
6+
using:
7+
foreign_key_constraint_on:
8+
column: accountId
9+
table:
10+
name: bitcoin
11+
schema: public
12+
- name: client
13+
using:
14+
foreign_key_constraint_on: clientId
15+
- name: eth
16+
using:
17+
foreign_key_constraint_on:
18+
column: accountId
19+
table:
20+
name: eth
21+
schema: public
22+
- name: sol
23+
using:
24+
foreign_key_constraint_on:
25+
column: accountId
26+
table:
27+
name: sol
28+
schema: public
29+
- name: wallet
30+
using:
31+
foreign_key_constraint_on: walletId
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
11
table:
22
name: address
33
schema: public
4+
object_relationships:
5+
- name: client
6+
using:
7+
foreign_key_constraint_on: client_id
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
11
table:
22
name: bitcoin
33
schema: public
4+
object_relationships:
5+
- name: account
6+
using:
7+
foreign_key_constraint_on: accountId
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,33 @@
11
table:
22
name: client
33
schema: public
4+
object_relationships:
5+
- name: address
6+
using:
7+
foreign_key_constraint_on:
8+
column: client_id
9+
table:
10+
name: address
11+
schema: public
12+
array_relationships:
13+
- name: accounts
14+
using:
15+
foreign_key_constraint_on:
16+
column: clientId
17+
table:
18+
name: account
19+
schema: public
20+
- name: transactions
21+
using:
22+
foreign_key_constraint_on:
23+
column: clientId
24+
table:
25+
name: transactions
26+
schema: public
27+
- name: wallets
28+
using:
29+
foreign_key_constraint_on:
30+
column: clientId
31+
table:
32+
name: wallet
33+
schema: public
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
11
table:
22
name: eth
33
schema: public
4+
object_relationships:
5+
- name: account
6+
using:
7+
foreign_key_constraint_on: accountId
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
11
table:
22
name: sol
33
schema: public
4+
object_relationships:
5+
- name: account
6+
using:
7+
foreign_key_constraint_on: accountId
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
11
table:
22
name: transactions
33
schema: public
4+
object_relationships:
5+
- name: client
6+
using:
7+
foreign_key_constraint_on: clientId
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,15 @@
11
table:
22
name: wallet
33
schema: public
4+
object_relationships:
5+
- name: client
6+
using:
7+
foreign_key_constraint_on: clientId
8+
array_relationships:
9+
- name: accounts
10+
using:
11+
foreign_key_constraint_on:
12+
column: walletId
13+
table:
14+
name: account
15+
schema: public

backend/mote/.env.example

+5-1
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,8 @@ SEPOLIA_URL=
22
INFURA_PROJECT_ID=
33
SEPOLIA_URL_HTTP=https://sepolia.infura.io/v3/
44
REDIS_SECRET=
5-
REDIS_URL=redis://localhost:6379
5+
REDIS_URL=redis://localhost:6379
6+
BTC_RPC_USER=""
7+
BTC_RPC_PASS=""
8+
BTC_RPC_HOST=""
9+
BTC_RPC_PORT=""

backend/mote/go.mod

+19-12
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,17 @@
11
module mote
22

3-
go 1.20
3+
go 1.21
4+
5+
toolchain go1.22.0
6+
7+
require (
8+
github.com/ethereum/go-ethereum v1.13.14
9+
github.com/gagliardetto/binary v0.7.9
10+
github.com/gagliardetto/solana-go v1.8.4
11+
github.com/go-playground/validator/v10 v10.19.0
12+
github.com/gorilla/mux v1.8.1
13+
github.com/joho/godotenv v1.5.1
14+
)
415

516
require (
617
contrib.go.opencensus.io/exporter/stackdriver v0.13.14 // indirect
@@ -13,7 +24,7 @@ require (
1324
github.com/blendle/zapdriver v1.3.1 // indirect
1425
github.com/blocto/solana-go-sdk v1.27.0 // indirect
1526
github.com/btcsuite/btcd v0.24.0 // indirect
16-
github.com/btcsuite/btcd/btcec/v2 v2.2.0 // indirect
27+
github.com/btcsuite/btcd/btcec/v2 v2.3.2 // indirect
1728
github.com/btcsuite/btcd/btcutil v1.1.5 // indirect
1829
github.com/btcsuite/btcd/chaincfg/chainhash v1.1.0 // indirect
1930
github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f // indirect
@@ -25,28 +36,24 @@ require (
2536
github.com/crate-crypto/go-kzg-4844 v0.7.0 // indirect
2637
github.com/davecgh/go-spew v1.1.1 // indirect
2738
github.com/deckarep/golang-set/v2 v2.1.0 // indirect
28-
github.com/decred/dcrd/crypto/blake256 v1.0.0 // indirect
29-
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.1 // indirect
39+
github.com/decred/dcrd/crypto/blake256 v1.0.1 // indirect
40+
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 // indirect
3041
github.com/dfuse-io/logging v0.0.0-20201110202154-26697de88c79 // indirect
3142
github.com/ethereum/c-kzg-4844 v0.4.0 // indirect
32-
github.com/ethereum/go-ethereum v1.13.14 // indirect
3343
github.com/fatih/color v1.16.0 // indirect
3444
github.com/fsnotify/fsnotify v1.6.0 // indirect
3545
github.com/gabriel-vasile/mimetype v1.4.3 // indirect
36-
github.com/gagliardetto/binary v0.7.9 // indirect
37-
github.com/gagliardetto/solana-go v1.8.4 // indirect
3846
github.com/gagliardetto/treeout v0.1.4 // indirect
47+
github.com/go-jose/go-jose/v4 v4.0.0 // indirect
3948
github.com/go-ole/go-ole v1.3.0 // indirect
4049
github.com/go-playground/locales v0.14.1 // indirect
4150
github.com/go-playground/universal-translator v0.18.1 // indirect
42-
github.com/go-playground/validator/v10 v10.19.0 // indirect
4351
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
4452
github.com/google/uuid v1.3.0 // indirect
45-
github.com/gorilla/mux v1.8.1 // indirect
4653
github.com/gorilla/rpc v1.2.0 // indirect
54+
github.com/gorilla/securecookie v1.1.2 // indirect
4755
github.com/gorilla/websocket v1.5.0 // indirect
4856
github.com/holiman/uint256 v1.2.4 // indirect
49-
github.com/joho/godotenv v1.5.1 // indirect
5057
github.com/json-iterator/go v1.1.12 // indirect
5158
github.com/klauspost/compress v1.17.7 // indirect
5259
github.com/leodido/go-urn v1.4.0 // indirect
@@ -74,13 +81,13 @@ require (
7481
go.uber.org/multierr v1.11.0 // indirect
7582
go.uber.org/ratelimit v0.3.0 // indirect
7683
go.uber.org/zap v1.27.0 // indirect
77-
golang.org/x/crypto v0.20.0 // indirect
84+
golang.org/x/crypto v0.21.0 // indirect
7885
golang.org/x/exp v0.0.0-20231110203233-9a3e6036ecaa // indirect
7986
golang.org/x/mod v0.14.0 // indirect
8087
golang.org/x/net v0.21.0 // indirect
8188
golang.org/x/sync v0.5.0 // indirect
8289
golang.org/x/sys v0.18.0 // indirect
83-
golang.org/x/term v0.17.0 // indirect
90+
golang.org/x/term v0.18.0 // indirect
8491
golang.org/x/text v0.14.0 // indirect
8592
golang.org/x/time v0.5.0 // indirect
8693
golang.org/x/tools v0.15.0 // indirect

backend/mote/go.sum

+14
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,8 @@ github.com/btcsuite/btcd/btcec/v2 v2.1.3 h1:xM/n3yIhHAhHy04z4i43C8p4ehixJZMsnrVJ
7676
github.com/btcsuite/btcd/btcec/v2 v2.1.3/go.mod h1:ctjw4H1kknNJmRN4iP1R7bTQ+v3GJkZBd6mui8ZsAZE=
7777
github.com/btcsuite/btcd/btcec/v2 v2.2.0 h1:fzn1qaOt32TuLjFlkzYSsBC35Q3KUjT1SwPxiMSCF5k=
7878
github.com/btcsuite/btcd/btcec/v2 v2.2.0/go.mod h1:U7MHm051Al6XmscBQ0BoNydpOTsFAn707034b5nY8zU=
79+
github.com/btcsuite/btcd/btcec/v2 v2.3.2 h1:5n0X6hX0Zk+6omWcihdYvdAlGf2DfasC0GMf7DClJ3U=
80+
github.com/btcsuite/btcd/btcec/v2 v2.3.2/go.mod h1:zYzJ8etWJQIv1Ogk7OzpWjowwOdXY1W/17j2MW85J04=
7981
github.com/btcsuite/btcd/btcutil v1.0.0/go.mod h1:Uoxwv0pqYWhD//tfTiipkxNfdhG9UrLwaeswfjfdF0A=
8082
github.com/btcsuite/btcd/btcutil v1.1.0/go.mod h1:5OapHB7A2hBBWLm48mmw4MOHNJCcUBTwmWH/0Jn8VHE=
8183
github.com/btcsuite/btcd/btcutil v1.1.5 h1:+wER79R5670vs/ZusMTF1yTcRYE5GUsFbdjdisflzM8=
@@ -126,8 +128,12 @@ github.com/deckarep/golang-set/v2 v2.1.0 h1:g47V4Or+DUdzbs8FxCCmgb6VYd+ptPAngjM6
126128
github.com/deckarep/golang-set/v2 v2.1.0/go.mod h1:VAky9rY/yGXJOLEDv3OMci+7wtDpOF4IN+y82NBOac4=
127129
github.com/decred/dcrd/crypto/blake256 v1.0.0 h1:/8DMNYp9SGi5f0w7uCm6d6M4OU2rGFK09Y2A4Xv7EE0=
128130
github.com/decred/dcrd/crypto/blake256 v1.0.0/go.mod h1:sQl2p6Y26YV+ZOcSTP6thNdn47hh8kt6rqSlvmrXFAc=
131+
github.com/decred/dcrd/crypto/blake256 v1.0.1 h1:7PltbUIQB7u/FfZ39+DGa/ShuMyJ5ilcvdfma9wOH6Y=
132+
github.com/decred/dcrd/crypto/blake256 v1.0.1/go.mod h1:2OfgNZ5wDpcsFmHmCK5gZTPcCXqlm2ArzUIkw9czNJo=
129133
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.1 h1:YLtO71vCjJRCBcrPMtQ9nqBsqpA1m5sE92cU+pd5Mcc=
130134
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.1/go.mod h1:hyedUtir6IdtD/7lIxGeCxkaw7y45JueMRL4DIyJDKs=
135+
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 h1:8UrgZ3GkP4i/CLijOJx79Yu+etlyjdBU4sfcs2WYQMs=
136+
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0/go.mod h1:v57UDF4pDQJcEfFUCRop3lJL149eHGSe9Jvczhzjo/0=
131137
github.com/decred/dcrd/lru v1.0.0/go.mod h1:mxKOwFd7lFjN2GZYsiz/ecgqR6kkYAl+0pz0tEMk218=
132138
github.com/dfuse-io/logging v0.0.0-20201110202154-26697de88c79 h1:+HRtcJejUYA/2rnyTMbOaZ4g7f4aVuFduTV/03dbpLY=
133139
github.com/dfuse-io/logging v0.0.0-20201110202154-26697de88c79/go.mod h1:V+ED4kT/t/lKtH99JQmKIb0v9WL3VaYkJ36CfHlVECI=
@@ -165,6 +171,8 @@ github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeME
165171
github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU=
166172
github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
167173
github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
174+
github.com/go-jose/go-jose/v4 v4.0.0 h1:gHOVQyfrqsagdy/Yj9PTz5HMYzr3UpYh1CcFpktmRoY=
175+
github.com/go-jose/go-jose/v4 v4.0.0/go.mod h1:WVf9LFMHh/QVrmqrOfqun0C45tMe3RoiKJMPvgWwLfY=
168176
github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
169177
github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE=
170178
github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk=
@@ -236,6 +244,8 @@ github.com/gorilla/mux v1.8.1 h1:TuBL49tXwgrFYWhqrNgrUNEY92u81SPhu7sTdzQEiWY=
236244
github.com/gorilla/mux v1.8.1/go.mod h1:AKf9I4AEqPTmMytcMc0KkNouC66V3BtZ4qD5fmWSiMQ=
237245
github.com/gorilla/rpc v1.2.0 h1:WvvdC2lNeT1SP32zrIce5l0ECBfbAlmrmSBsuc57wfk=
238246
github.com/gorilla/rpc v1.2.0/go.mod h1:V4h9r+4sF5HnzqbwIez0fKSpANP0zlYd3qR7p36jkTQ=
247+
github.com/gorilla/securecookie v1.1.2 h1:YCIWL56dvtr73r6715mJs5ZvhtnY73hBvEF8kXD8ePA=
248+
github.com/gorilla/securecookie v1.1.2/go.mod h1:NfCASbcHqRSY+3a8tlWJwsQap2VX5pwzwo4h3eOamfo=
239249
github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
240250
github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc=
241251
github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
@@ -497,6 +507,8 @@ golang.org/x/crypto v0.19.0 h1:ENy+Az/9Y1vSrlrvBSyna3PITt4tiZLf7sgCjZBX7Wo=
497507
golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU=
498508
golang.org/x/crypto v0.20.0 h1:jmAMJJZXr5KiCw05dfYK9QnqaqKLYXijU23lsEdcQqg=
499509
golang.org/x/crypto v0.20.0/go.mod h1:Xwo95rrVNIoSMx9wa1JroENMToLWn3RNVrTBpLHgZPQ=
510+
golang.org/x/crypto v0.21.0 h1:X31++rzVUdKhX5sWmSOFZxx8UW/ldWx55cbf08iNAMA=
511+
golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs=
500512
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
501513
golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
502514
golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
@@ -632,6 +644,8 @@ golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9sn
632644
golang.org/x/term v0.0.0-20201210144234-2321bbc49cbf/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
633645
golang.org/x/term v0.17.0 h1:mkTF7LCd6WGJNL3K1Ad7kwxNfYAW6a8a8QqtMblp/4U=
634646
golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk=
647+
golang.org/x/term v0.18.0 h1:FcHjZXDMxI8mM3nwhX9HlKop4C0YQvCVCdwYl2wOtE8=
648+
golang.org/x/term v0.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58=
635649
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
636650
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
637651
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=

backend/mote/src/config/config.go

+52-25
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,73 @@
11
package config
22

33
import (
4-
"github.com/joho/godotenv"
54
"log"
65
"os"
6+
7+
"github.com/go-jose/go-jose/v4"
8+
"github.com/joho/godotenv"
79
)
810

911
var (
10-
SEPOLIA_URL = ""
11-
INFURA_PROJECT_ID = ""
12-
SEPOLIA_URL_HTTP = "https://sepolia.infura.io/v3/"
13-
REDIS_SECRET = ""
14-
REDIS_URL = "redis://localhost:6379"
15-
INFURA_SEPOLIA_URL = ""
12+
SEPOLIA_URL = ""
13+
INFURA_PROJECT_ID = ""
14+
SEPOLIA_URL_HTTP = "https://sepolia.infura.io/v3/"
15+
REDIS_SECRET = ""
16+
REDIS_URL = "redis://localhost:6379"
17+
INFURA_SEPOLIA_URL = ""
18+
BTC_RPC_USER = "user"
19+
BTC_RPC_PASS = "pass"
20+
BTC_RPC_HOST = "localhost:8332"
21+
BTC_RPC_PORT = "8332"
22+
BTC_POST_MODE = true
23+
JWT_ALG = jose.RS256
24+
AUTH_JWT_PUBLIC_KEY = "-----BEGIN PUBLIC KEY-----MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqx+7XJxJR+0Lp8hLFKYr5Gc+0RPIdaZJ18GH8b//oMn7PCVe0gLQDkxjvhKo2ySMgWSOSGaNJkZXLhN4jlot/xaulN3dSbrgQPxvx3ALd3nXJaTLOb7xBODd196r+Ylg1QPICdrBQVi6qAXacq/UBK8K7BWQ0TG2/R9aB5mNSGtY3Ogj9xp2MP5LTi7f2Alj6IwSFRN+9SCmH3NiQzNUPBWJB02Lgx1oxwtfevkQ3BpwIqzkOTTE1G7PXgKbYRBUlUNqwvMIjk89tRf/qHgMbRPGYYNu7XoRt8AOVgNFUcL51Gb9vM75XstWoAh6BwYQsceEXUU7dgIJem9zItFRdwIDAQAB-----END PUBLIC KEY-----"
25+
AUTH_JWT_PRIVATE_KEY = "-----BEGIN PRIVATE KEY-----MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCrH7tcnElH7QunyEsUpivkZz7RE8h1pknXwYfxv/+gyfs8JV7SAtAOTGO+EqjbJIyBZI5IZo0mRlcuE3iOWi3/Fq6U3d1JuuBA/G/HcAt3edclpMs5vvEE4N3X3qv5iWDVA8gJ2sFBWLqoBdpyr9QErwrsFZDRMbb9H1oHmY1Ia1jc6CP3GnYw/ktOLt/YCWPojBIVE371IKYfc2JDM1Q8FYkHTYuDHWjHC196+RDcGnAirOQ5NMTUbs9eApthEFSVQ2rC8wiOTz21F/+oeAxtE8Zhg27tehG3wA5WA0VRwvnUZv28zvley1agCHoHBhCxx4RdRTt2Agl6b3Mi0VF3AgMBAAECggEAMom1kN1LOyXDynJ50ghdcCAZyi+YhT5uEn1Cg+AbQ8ZDH3k97rIL9h0TXAAwxD+gC1rCNpmq2AHwH1h6wzfY27w8JRT9FJhPQIINFQ5/JHLkWma36j78+V7bxbQqgBDVezOZsWdcqcrlnVfVMwfAiv2TMTQRR+bxzwGiWho8QoWNq1UcA8GGOE3vzWGrZJbgVwG43xUVDJtMem9w4QwlHLwekP3Q46Lqx1AOtesN39h/HduJtWtYGcw/t2TkIW9UibmBqZy7rkZW+4hCXhGBI6YhAUYnuyP6ZT+r1+J2aPlJeo2yIyjc6YVxoFwUR7QWtINzuBtG9v/YXfmtYCnEIQKBgQDd3E/nX4Vc7xolvoQZzN+0XWnyLqPgtAL63RLFfb8/lhnHHzca2k2eI0+P6I9etDa9c+i4l7/RM5LUkwxd8RGH6S4m8FiUkdKyaiwK1PAGRiUbWaij9WjKVjp7QhEtisQvtyMa9quwpv3C02zbD31/PqgeTmXOH0Aweh162qyeBwKBgQDFdMQ13JCkQe3GNO06EEPE+NjFkLqBVP2leDXmUVZRnHUN4OMpjCb9H0+/4rOAusCRmS9kALoeo6U9ykC5mqUViVzeTqnHXctD4llvEzSngDU/4+cbUQG3obj8JG9lupe/p3r6gRvB13nWiwVzj2wgK2SY0HGG1gaRaIS3K2nVEQKBgQCNhlJ6V9as9+GIHkYKZ0R0u/ovgU0MtAgKmye0T4jGOSvsd58hRAyrSf8g38tFMFSS+fOEfVjhTLLnY35KFtOGDVthf4QiEfuD0HKT3k3W0rws/D61iID2QZdAtV5b3N9VSM/eDWhsYboSo+gWvYTivMdlvcD3gbvisKNJkWD31QKBgCdgIqSPCHUJBK6K7WevyKPl7+xt8RNLbI1rzGvSeoEpzxnmZ8ZoQXomnVOplJwuIaqnPpEVqAfmIFSTGZcppJQH4XIfg7HTHW67G5SP4ucoJPZJr1N+MvZ4lJgLd/90V0CL2HVN+8gK/SvwazThO/GqVZQ3tPvrgEHM8vJIAQHRAoGAEjFMNmitScLogo9Cq5oX88/KpDOfCi+IG19g0HdaepgzreDzallcKf/XnXX9d7wuTuoSRNsq7RfCmLAUlzC+Waw0dpwLkZjgeVvFdrADGOFDKEovesZ0NBQ+Ln0SXJVRaynRxgnrjYINE+1I3uE8XZie4NMh5pybTXBpyx/cIz0=-----END PRIVATE KEY-----"
1626
)
1727

1828
const (
1929
CLIENT_URL = "http://localhost:3000"
20-
PORT = 8085
30+
PORT = 8085
2131
)
2232

23-
2433
func init() {
2534
err := godotenv.Load()
2635
if err != nil {
2736
log.Fatal("Error loading .env file")
2837
}
2938

30-
if ENV_SEPOLIA_URL := os.Getenv("SEPOLIA_URL"); ENV_SEPOLIA_URL != "" {
31-
SEPOLIA_URL = ENV_SEPOLIA_URL
32-
}
33-
if ENV_INFURA_PROJECT_ID := os.Getenv("INFURA_PROJECT_ID"); ENV_INFURA_PROJECT_ID != "" {
34-
INFURA_PROJECT_ID = ENV_INFURA_PROJECT_ID
35-
}
36-
if ENV_SEPOLIA_URL_HTTP := os.Getenv("SEPOLIA_URL_HTTP"); ENV_SEPOLIA_URL_HTTP != "" {
37-
SEPOLIA_URL_HTTP = ENV_SEPOLIA_URL_HTTP
38-
INFURA_SEPOLIA_URL = SEPOLIA_URL_HTTP + INFURA_PROJECT_ID
39-
}
40-
if ENV_REDIS_SECRET := os.Getenv("REDIS_SECRET"); ENV_REDIS_SECRET != "" {
41-
REDIS_SECRET = ENV_REDIS_SECRET
42-
}
43-
if ENV_REDIS_URL := os.Getenv("REDIS_URL"); ENV_REDIS_URL != "" {
44-
REDIS_URL = ENV_REDIS_URL
45-
}
39+
if ENV_SEPOLIA_URL := os.Getenv("SEPOLIA_URL"); ENV_SEPOLIA_URL != "" {
40+
SEPOLIA_URL = ENV_SEPOLIA_URL
41+
}
42+
if ENV_INFURA_PROJECT_ID := os.Getenv("INFURA_PROJECT_ID"); ENV_INFURA_PROJECT_ID != "" {
43+
INFURA_PROJECT_ID = ENV_INFURA_PROJECT_ID
44+
}
45+
if ENV_SEPOLIA_URL_HTTP := os.Getenv("SEPOLIA_URL_HTTP"); ENV_SEPOLIA_URL_HTTP != "" {
46+
SEPOLIA_URL_HTTP = ENV_SEPOLIA_URL_HTTP
47+
INFURA_SEPOLIA_URL = SEPOLIA_URL_HTTP + INFURA_PROJECT_ID
48+
}
49+
if ENV_REDIS_SECRET := os.Getenv("REDIS_SECRET"); ENV_REDIS_SECRET != "" {
50+
REDIS_SECRET = ENV_REDIS_SECRET
51+
}
52+
if ENV_REDIS_URL := os.Getenv("REDIS_URL"); ENV_REDIS_URL != "" {
53+
REDIS_URL = ENV_REDIS_URL
54+
}
55+
if ENV_BTC_RPC_USER := os.Getenv("BTC_RPC_USER"); ENV_BTC_RPC_USER != "" {
56+
BTC_RPC_USER = ENV_BTC_RPC_USER
57+
}
58+
if ENV_BTC_RPC_PASS := os.Getenv("BTC_RPC_PASS"); ENV_BTC_RPC_PASS != "" {
59+
BTC_RPC_PASS = ENV_BTC_RPC_PASS
60+
}
61+
if ENV_BTC_RPC_HOST := os.Getenv("BTC_RPC_HOST"); ENV_BTC_RPC_HOST != "" {
62+
BTC_RPC_HOST = ENV_BTC_RPC_HOST
63+
}
64+
if ENV_BTC_RPC_PORT := os.Getenv("BTC_RPC_PORT"); ENV_BTC_RPC_PORT != "" {
65+
BTC_RPC_PORT = ENV_BTC_RPC_PORT
66+
}
67+
if ENV_AUTH_JWT_PUBLIC_KEY := os.Getenv("AUTH_JWT_PUBLIC_KEY"); ENV_AUTH_JWT_PUBLIC_KEY != "" {
68+
AUTH_JWT_PUBLIC_KEY = ENV_AUTH_JWT_PUBLIC_KEY
69+
}
70+
if ENV_AUTH_JWT_PRIVATE_KEY := os.Getenv("AUTH_JWT_PRIVATE_KEY"); ENV_AUTH_JWT_PRIVATE_KEY != "" {
71+
AUTH_JWT_PRIVATE_KEY = ENV_AUTH_JWT_PRIVATE_KEY
72+
}
4673
}

backend/mote/src/main.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ func main() {
6767

6868
// Routers
6969
txnRouter := app.PathPrefix("/txn").Subrouter()
70-
70+
// txnRouter.Use(middle.ExtractClientId)
7171
txnRouter.HandleFunc("/send", routes.SignHandler).Methods("POST")
7272
txnRouter.HandleFunc("/", routes.GetTransactionHandler).Methods("GET")
7373

0 commit comments

Comments
 (0)