Skip to content

Commit e45add8

Browse files
authored
Merge pull request #90 from String-xyz/develop
v1.0.3-alpha
2 parents e49194e + 9c38a84 commit e45add8

File tree

6 files changed

+36
-13
lines changed

6 files changed

+36
-13
lines changed

.env.example

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ AWS_SECRET_ACCESS_KEY=
1212
AWS_KMS_KEY_ID=
1313
CHECKOUT_PUBLIC_KEY=
1414
CHECKOUT_SECRET_KEY=
15+
CHECKOUT_ENV=sandbox
1516
EVM_PRIVATE_KEY=
1617
DB_NAME=string_db
1718
DB_USERNAME=string_db

api/handler/common.go

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ func SetJWTCookie(c echo.Context, jwt service.JWT) error {
5656
cookie.Value = jwt.Token
5757
// cookie.HttpOnly = true // due the short expiration time it is not needed to be http only
5858
cookie.Expires = jwt.ExpAt // we want the cookie to expire at the same time as the token
59-
cookie.SameSite = http.SameSiteNoneMode
59+
cookie.SameSite = getCookieSameSiteMode()
6060
cookie.Path = "/" // Send cookie in every sub path request
6161
cookie.Secure = !IsLocalEnv() // in production allow https only
6262
c.SetCookie(cookie)
@@ -70,7 +70,7 @@ func SetRefreshTokenCookie(c echo.Context, refresh service.RefreshTokenResponse)
7070
cookie.Value = refresh.Token
7171
cookie.HttpOnly = true
7272
cookie.Expires = refresh.ExpAt // we want the cookie to expire at the same time as the token
73-
cookie.SameSite = http.SameSiteNoneMode
73+
cookie.SameSite = getCookieSameSiteMode()
7474
cookie.Path = "/login/" // Send cookie only in /login path request
7575
cookie.Secure = !IsLocalEnv() // in production allow https only
7676
c.SetCookie(cookie)
@@ -98,7 +98,7 @@ func DeleteAuthCookies(c echo.Context) error {
9898
cookie.Name = "StringJWT"
9999
cookie.Value = ""
100100
cookie.Expires = time.Now()
101-
cookie.SameSite = http.SameSiteLaxMode
101+
cookie.SameSite = getCookieSameSiteMode()
102102
cookie.Path = "/" // Send cookie in every sub path request
103103
cookie.Secure = !IsLocalEnv()
104104
c.SetCookie(cookie)
@@ -107,7 +107,7 @@ func DeleteAuthCookies(c echo.Context) error {
107107
cookie.Name = "refresh_token"
108108
cookie.Value = ""
109109
cookie.Expires = time.Now()
110-
cookie.SameSite = http.SameSiteNoneMode
110+
cookie.SameSite = getCookieSameSiteMode()
111111
cookie.Path = "/login/" // Send cookie only in refresh path request
112112
cookie.Secure = !IsLocalEnv()
113113
c.SetCookie(cookie)
@@ -124,6 +124,14 @@ func validAddress(addr string) bool {
124124
return re.MatchString(addr)
125125
}
126126

127+
func getCookieSameSiteMode() http.SameSite {
128+
sameSiteMode := http.SameSiteNoneMode // allow cors
129+
if IsLocalEnv() {
130+
sameSiteMode = http.SameSiteLaxMode // because SameSiteNoneMode is not allowed in localhost we use lax mode
131+
}
132+
return sameSiteMode
133+
}
134+
127135
func SanitizeChecksums(addrs ...*string) {
128136
for _, addr := range addrs {
129137
if !validAddress(*addr) {

infra/dev/variables.tf

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -176,6 +176,10 @@ locals {
176176
name = "UNIT21_ORG_NAME"
177177
value = "string"
178178
},
179+
{
180+
name = "CHECKOUT_ENV"
181+
value = local.env
182+
},
179183
{
180184
name = "DD_LOGS_ENABLED"
181185
value = "true"

infra/prod/variables.tf

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -169,6 +169,10 @@ locals {
169169
{
170170
name = "UNIT21_ENV"
171171
value = "api.prod2"
172+
},
173+
{
174+
name = "CHECKOUT_ENV"
175+
value = local.env
172176
},
173177
{
174178
name = "UNIT21_ORG_NAME"

pkg/service/checkout.go

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,14 @@ import (
1616
func getConfig() (*checkout.Config, error) {
1717
var sk = os.Getenv("CHECKOUT_SECRET_KEY")
1818
var pk = os.Getenv("CHECKOUT_PUBLIC_KEY")
19+
var env = os.Getenv("CHECKOUT_ENV")
20+
checkoutEnv := checkout.Sandbox
1921

20-
var config, err = checkout.SdkConfig(&sk, &pk, checkout.Sandbox)
22+
if env == "prod" {
23+
checkoutEnv = checkout.Production
24+
}
25+
26+
var config, err = checkout.SdkConfig(&sk, &pk, checkoutEnv)
2127
if err != nil {
2228
return nil, common.StringError(err)
2329
}

scripts/data_seeding.go

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -43,15 +43,15 @@ func DataSeeding() {
4343
fmt.Printf("%+v", err)
4444
return
4545
}
46-
networkMumbai, err := repos.Network.Create(model.Network{Name: "Mumbai Testnet", NetworkID: 80001, ChainID: 80001, GasOracle: "poly", RPCUrl: "https://matic-mumbai.chainstacklabs.com", ExplorerUrl: "https://mumbai.polygonscan.com/"})
46+
networkMumbai, err := repos.Network.Create(model.Network{Name: "Mumbai Testnet", NetworkID: 80001, ChainID: 80001, GasOracle: "poly", RPCUrl: "https://matic-mumbai.chainstacklabs.com", ExplorerUrl: "https://mumbai.polygonscan.com"})
4747
if err != nil {
4848
panic(err)
4949
}
5050
networkGoerli, err := repos.Network.Create(model.Network{Name: "Goerli Testnet", NetworkID: 5, ChainID: 5, GasOracle: "eth", RPCUrl: "https://goerli.infura.io/v3/9aa3d95b3bc440fa88ea12eaa4456161", ExplorerUrl: "https://goerli.etherscan.io"})
5151
if err != nil {
5252
panic(err)
5353
}
54-
networkEthereum, err := repos.Network.Create(model.Network{Name: "Ethereum Mainnet", NetworkID: 1, ChainID: 1, GasOracle: "eth", RPCUrl: "https://rpc.ankr.com/eth", ExplorerUrl: "https://etherscan.io/"})
54+
networkEthereum, err := repos.Network.Create(model.Network{Name: "Ethereum Mainnet", NetworkID: 1, ChainID: 1, GasOracle: "eth", RPCUrl: "https://rpc.ankr.com/eth", ExplorerUrl: "https://etherscan.io"})
5555
if err != nil {
5656
panic(err)
5757
}
@@ -63,11 +63,11 @@ func DataSeeding() {
6363
if err != nil {
6464
panic(err)
6565
}
66-
networkNitroGoerli, err := repos.Network.Create(model.Network{Name: "Nitro Goerli Rollup Testnet", NetworkID: 421613, ChainID: 421613, GasOracle: "arb", RPCUrl: "https://goerli-rollup.arbitrum.io/rpc", ExplorerUrl: "https://goerli.arbiscan.io/"})
66+
networkNitroGoerli, err := repos.Network.Create(model.Network{Name: "Nitro Goerli Rollup Testnet", NetworkID: 421613, ChainID: 421613, GasOracle: "arb", RPCUrl: "https://goerli-rollup.arbitrum.io/rpc", ExplorerUrl: "https://goerli.arbiscan.io"})
6767
if err != nil {
6868
panic(err)
6969
}
70-
networkArbitrumNova, err := repos.Network.Create(model.Network{Name: "Arbitrum Nova Mainnet", NetworkID: 42170, ChainID: 42170, GasOracle: "arb", RPCUrl: "https://nova.arbitrum.io/rpc", ExplorerUrl: "https://nova-explorer.arbitrum.io/"})
70+
networkArbitrumNova, err := repos.Network.Create(model.Network{Name: "Arbitrum Nova Mainnet", NetworkID: 42170, ChainID: 42170, GasOracle: "arb", RPCUrl: "https://nova.arbitrum.io/rpc", ExplorerUrl: "https://nova-explorer.arbitrum.io"})
7171
if err != nil {
7272
panic(err)
7373
}
@@ -230,15 +230,15 @@ func MockSeeding() {
230230
fmt.Printf("%+v", err)
231231
return
232232
}
233-
networkMumbai, err := repos.Network.Create(model.Network{Name: "Mumbai Testnet", NetworkID: 80001, ChainID: 80001, GasOracle: "poly", RPCUrl: "https://matic-mumbai.chainstacklabs.com", ExplorerUrl: "https://mumbai.polygonscan.com/"})
233+
networkMumbai, err := repos.Network.Create(model.Network{Name: "Mumbai Testnet", NetworkID: 80001, ChainID: 80001, GasOracle: "poly", RPCUrl: "https://matic-mumbai.chainstacklabs.com", ExplorerUrl: "https://mumbai.polygonscan.com"})
234234
if err != nil {
235235
panic(err)
236236
}
237237
networkGoerli, err := repos.Network.Create(model.Network{Name: "Goerli Testnet", NetworkID: 5, ChainID: 5, GasOracle: "eth", RPCUrl: "https://goerli.infura.io/v3/9aa3d95b3bc440fa88ea12eaa4456161", ExplorerUrl: "https://goerli.etherscan.io"})
238238
if err != nil {
239239
panic(err)
240240
}
241-
networkEthereum, err := repos.Network.Create(model.Network{Name: "Ethereum Mainnet", NetworkID: 1, ChainID: 1, GasOracle: "eth", RPCUrl: "https://rpc.ankr.com/eth", ExplorerUrl: "https://etherscan.io/"})
241+
networkEthereum, err := repos.Network.Create(model.Network{Name: "Ethereum Mainnet", NetworkID: 1, ChainID: 1, GasOracle: "eth", RPCUrl: "https://rpc.ankr.com/eth", ExplorerUrl: "https://etherscan.io"})
242242
if err != nil {
243243
panic(err)
244244
}
@@ -250,11 +250,11 @@ func MockSeeding() {
250250
if err != nil {
251251
panic(err)
252252
}
253-
networkNitroGoerli, err := repos.Network.Create(model.Network{Name: "Nitro Goerli Rollup Testnet", NetworkID: 421613, ChainID: 421613, GasOracle: "arb", RPCUrl: "https://goerli-rollup.arbitrum.io/rpc", ExplorerUrl: "https://goerli.arbiscan.io/"})
253+
networkNitroGoerli, err := repos.Network.Create(model.Network{Name: "Nitro Goerli Rollup Testnet", NetworkID: 421613, ChainID: 421613, GasOracle: "arb", RPCUrl: "https://goerli-rollup.arbitrum.io/rpc", ExplorerUrl: "https://goerli.arbiscan.io"})
254254
if err != nil {
255255
panic(err)
256256
}
257-
networkArbitrumNova, err := repos.Network.Create(model.Network{Name: "Arbitrum Nova Mainnet", NetworkID: 42170, ChainID: 42170, GasOracle: "arb", RPCUrl: "https://nova.arbitrum.io/rpc", ExplorerUrl: "https://nova-explorer.arbitrum.io/"})
257+
networkArbitrumNova, err := repos.Network.Create(model.Network{Name: "Arbitrum Nova Mainnet", NetworkID: 42170, ChainID: 42170, GasOracle: "arb", RPCUrl: "https://nova.arbitrum.io/rpc", ExplorerUrl: "https://nova-explorer.arbitrum.io"})
258258
if err != nil {
259259
panic(err)
260260
}

0 commit comments

Comments
 (0)