Skip to content

Commit

Permalink
add family_name to jwt fields
Browse files Browse the repository at this point in the history
  • Loading branch information
0xMaxyz committed Aug 24, 2024
1 parent d976a7f commit 7d9d6f9
Show file tree
Hide file tree
Showing 3 changed files with 52 additions and 24 deletions.
32 changes: 23 additions & 9 deletions src/integration_tests.rs
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
#![cfg(test)]

use crate::{
msg::{QueryClaimResponse, QueryMsg, TokenReceiveMsg},
unit_tests::EMAIL,
msg::{ExecuteMsg, KeysMsg, QueryClaimResponse, QueryMsg, TokenClaimMsg, TokenReceiveMsg},

Check warning on line 4 in src/integration_tests.rs

View workflow job for this annotation

GitHub Actions / Tests

unused import: `KeysMsg`
unit_tests::{EMAIL, NOUNCE, SESSION_JWT},
};
use cosmwasm_std::{coins, to_json_binary, Addr, Empty, Uint128};
use cw20::{Cw20Coin, Cw20Contract, Cw20ExecuteMsg};
Expand All @@ -12,7 +12,7 @@ use cw_multi_test::{App, Contract, ContractWrapper, Executor};
#[test]
fn test_receive() {
// setup owner with founds and App
let owner = Addr::unchecked("owner");
let owner = Addr::unchecked(NOUNCE);
let init_balance = coins(1000, "cw20");

let mut router = App::new(|router, _, storage| {
Expand Down Expand Up @@ -55,9 +55,9 @@ fn test_receive() {
key2: "a49391bf52b58c1d560255c2f2a04e59e22a7b65".to_string(),
n2: "v7hTj49pNGYjxKbgMx_iDyjeErhfJFepMl306IV_TW5T_CEGE4lWFfBe9w0cwpi5KD6XlC1GO1AsrtzcYF29wJ283GNBZRkbl8iTe-LQYdjQsBtf_1fLIVt6LR7H2U1RPqa3pY16Kq6i6yC2osVg6tD7ApBCGw1WKe8uU3cm28biJzuV4gv6PzcbOdErd-hb4Cv6n2SoMPYlBfT4pWee75poQh8DYoQ1KJwowz3U1MaxOBMP260hmDK-QK0q4LYabCQiBNsz4FWWcaAAFxZFbiqGY5Gdu18uOkpMbdAN5FoZ_6nMDMSTmlf0CHv7gZe_cL38kZvTaynkWwDxqsW_Xw".to_string(),
e2: "AQAB".to_string(),
key3: "4529c409f77a106fb67ee1a85d168fd2cfb7c0b7".to_string(),
n3: "1crrYmsX8OVzrN9BTDD4RlVJDqSQIEbRby9ELqTmCpW1Qtt7y-pdmLPqlYG1ND5mprkTA83S7g_dcsxuV4wxK4_Vv5a8IBn86HfAX4VfCCOzqBYgACN6hlaffzPIWL1QA8yZ4w-D0fnN3xC5ULhtmtBG23qi__4yEo_FIY6irvbHrpRNI_-vjxFokm2X3ENP2ZOwgNhDIthwJo8l1KNbZa1riAJVcF86zWILQTy756hh8eH1Kt05wsGB3DeGPNV55zYv6sB2bzxARsVYAtCRJ8c28FYWwU8dCRJ70eJEmY4aKFOBO5g4fwYJlvMm9Le7qgAUH5-7wO52BayqXmqAOQ".to_string(),
e3: "AQAB".to_string(),
key3: "".to_string(),
n3: "".to_string(),
e3: "".to_string(),
},
},
&[],
Expand Down Expand Up @@ -102,9 +102,23 @@ fn test_receive() {
email: EMAIL.to_owned(),
};

let query_resp: QueryClaimResponse =
router.wrap().query_wasm_smart(heypay_addr, &_qmsg).unwrap();
_ = &query_resp.claims;
let query_resp: QueryClaimResponse = router
.wrap()
.query_wasm_smart(heypay_addr.clone(), &_qmsg)
.unwrap();
assert!(!query_resp.claims.is_empty());

// claim the token
let claimMsg = ExecuteMsg::Claim {

Check warning on line 112 in src/integration_tests.rs

View workflow job for this annotation

GitHub Actions / Tests

variable `claimMsg` should have a snake case name
msg: TokenClaimMsg {
jwt: SESSION_JWT.to_owned(),
testing: true,
},
};
let response = router

Check warning on line 118 in src/integration_tests.rs

View workflow job for this annotation

GitHub Actions / Tests

unused variable: `response`
.execute_contract(owner.clone(), heypay_addr.clone(), &claimMsg, &[])
.unwrap();
let ccc = 2 as i32;

Check warning on line 121 in src/integration_tests.rs

View workflow job for this annotation

GitHub Actions / Tests

unused variable: `ccc`
}

//
Expand Down
7 changes: 4 additions & 3 deletions src/jwt.rs
Original file line number Diff line number Diff line change
Expand Up @@ -33,9 +33,10 @@ pub struct Payload {
email_verified: bool,
pub nonce: String,
nbf: u64,
name: String,
picture: String,
given_name: String,
name: Option<String>,
picture: Option<String>,
given_name: Option<String>,
family_name: Option<String>,
iat: u64,
exp: u64,
jti: String,
Expand Down
37 changes: 25 additions & 12 deletions src/unit_tests.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

use crate::{
contract::{self, instantiate},
msg::{self, InstantiateMsg, QueryClaimResponse, QueryMsg},
msg::{self, InstantiateMsg, KeysMsg, QueryClaimResponse, QueryMsg},
};
use cosmwasm_std::{
from_json,
Expand All @@ -11,16 +11,29 @@ use cosmwasm_std::{
};
use cw20::Cw20ReceiveMsg;

pub const SESSION_JWT:&str="eyJhbGciOiJSUzI1NiIsImtpZCI6ImFkZjVlNzEwZWRmZWJlY2JlZmE5YTYxNDk1NjU0ZDAzYzBiOGVkZjgiLCJ0eXAiOiJKV1QifQ.eyJpc3MiOiJodHRwczovL2FjY291bnRzLmdvb2dsZS5jb20iLCJhenAiOiIyMjIwMzc4MzcxNTQtcG5oNXJkcjhkOWh2Zmo5aW9vcmU2YW1iMGdxczRiajkuYXBwcy5nb29nbGV1c2VyY29udGVudC5jb20iLCJhdWQiOiIyMjIwMzc4MzcxNTQtcG5oNXJkcjhkOWh2Zmo5aW9vcmU2YW1iMGdxczRiajkuYXBwcy5nb29nbGV1c2VyY29udGVudC5jb20iLCJzdWIiOiIxMDE5ODkxODYwMDE4MjUxMDI1NTAiLCJlbWFpbCI6IjB4bWF4eXpAZ21haWwuY29tIiwiZW1haWxfdmVyaWZpZWQiOnRydWUsIm5vbmNlIjoiYWRkcmVzczEiLCJuYmYiOjE3MTE1MzU2MzIsIm5hbWUiOiJNYXgiLCJwaWN0dXJlIjoiaHR0cHM6Ly9saDMuZ29vZ2xldXNlcmNvbnRlbnQuY29tL2EvQUNnOG9jSlA4RFVmbnhKbVo0NUlDd2JCR2h4VlByMTFmdWFGdnMyRVRNRWh6dmNQUnc9czk2LWMiLCJnaXZlbl9uYW1lIjoiTWF4IiwiaWF0IjoxNzExNTM1OTMyLCJleHAiOjE3MTE1Mzk1MzIsImp0aSI6IjllYzg1NGQwNzQ1NTdmZjEzZTgwMjRlZDEzYTlmY2ViNmI3YTI3OTMifQ.wUXRUSEgOytmdalPHzZtqcUNhfYkvEC1KpSQK5OMre5qVT6-sahR7VWLIkTKz7gs6SNTFmecM1Kceis3CSjKKLxESZU2RrDZPlE7lUvZFy7DSc5KfaE46jOj7hYnsheUmG2xxVqP2ismzfeQwKN00qf8BrmuF8-DEP4TwWUFZ6LfNBfHmjxnIdzx5rt-px_GHvSgs8P_SG1zpCrVov2_eDzcLd1yok3fHKv6LQQGsl91tcZwnJukb1_XIIQy7HYFpdj8ixrVRwAOMrYsT9n_U3BZDfe2wjoLjEwTSwBQuJdcYu2ie-KbReVO6lGtEmIA7eZzmIgNiBZgoWSrW89ULA";
pub const AUDIENCE: &str =
"222037837154-pnh5rdr8d9hvfj9ioore6amb0gqs4bj9.apps.googleusercontent.com";
pub const EMAIL: &str = "[email protected]";
"965798652522-bn240k47q576vhqon2tuk0feg20bbt0u.apps.googleusercontent.com";
pub const EMAIL: &str = "[email protected]";
pub const SESSION_JWT: &str = "eyJhbGciOiJSUzI1NiIsImtpZCI6ImE0OTM5MWJmNTJiNThjMWQ1NjAyNTVjMmYyYTA0ZTU5ZTIyYTdiNjUiLCJ0eXAiOiJKV1QifQ.eyJpc3MiOiJodHRwczovL2FjY291bnRzLmdvb2dsZS5jb20iLCJhenAiOiI5NjU3OTg2NTI1MjItYm4yNDBrNDdxNTc2dmhxb24ydHVrMGZlZzIwYmJ0MHUuYXBwcy5nb29nbGV1c2VyY29udGVudC5jb20iLCJhdWQiOiI5NjU3OTg2NTI1MjItYm4yNDBrNDdxNTc2dmhxb24ydHVrMGZlZzIwYmJ0MHUuYXBwcy5nb29nbGV1c2VyY29udGVudC5jb20iLCJzdWIiOiIxMTM1NTUwMjYxMjgxMDczODk5MTYiLCJlbWFpbCI6Im1laXNhbXRhaGVyNzFAZ21haWwuY29tIiwiZW1haWxfdmVyaWZpZWQiOnRydWUsIm5vbmNlIjoieGlvbjE1YTV3czJ5NjM2a2YydnM3d2V0czQ0YXk3OGRzcjV6cTMzOTllcWZ2NG5rbmt3N2phdmRzNnA3Y2NjIiwibmJmIjoxNzI0MzY2NzA3LCJuYW1lIjoiTWVpc2FtIFRhaGVyIiwicGljdHVyZSI6Imh0dHBzOi8vbGgzLmdvb2dsZXVzZXJjb250ZW50LmNvbS9hL0FDZzhvY0o5QzBLeTRYR2JWejEySk1FRFpBRk9oS2lZeEh5SnlIeUdrU2VIRHVwSkFhZHB1NEJWPXM5Ni1jIiwiZ2l2ZW5fbmFtZSI6Ik1laXNhbSIsImZhbWlseV9uYW1lIjoiVGFoZXIiLCJpYXQiOjE3MjQzNjcwMDcsImV4cCI6MTcyNDM3MDYwNywianRpIjoiMjRlNjU5OTc1M2Y0ZDAxZTA3YTZjNTZmODJiMGY2Y2U1YWEzNDY5MCJ9.P4kKcgI3zD_X-eA5HekOsbHH-MH_7F5LZ8oU_b14NEXB6liSDiVIABwiNIGYBXQdjsnoNycu3Su6FwxGOZaeJ7XPNx-C-4KCpJnBosXV2Reu49dA3wz5bo7N_xpqn154xoRHmC2Ymx3jKXKq-nYVqmQX0Ug4uVFqGcumhpGfYg6PfY3LT3z5F2hXGwkWJ_1DyMKkp_MwRzlwoLCt-sHov6qV6WqzyakHq3qGxUCUCu0JWFlRThmWQ7q2C4pk0P6yBJKN3URtvgq_I-5xOtxt097aZCbVc0S29jCvyerbV9ZFi2hj8dgyFj1hQm-m6TQiHzGEEwUMly80n_iyVidVzQ";
pub const NOUNCE: &str = "xion15a5ws2y636kf2vs7wets44ay78dsr5zq3399eqfv4nknkw7javds6p7ccc";

#[test]
fn test_instantiate() {
let mut deps = mock_dependencies();

let instantiate_msg = InstantiateMsg {};
let instantiate_msg = InstantiateMsg {
keys_msg: KeysMsg {
key1: "d2d444cf8c5e3ae8386d66a13a316976aa369991".to_string(),
n1: "onV5tzUbqyPfkM6MwUqCtrqun9x20hEUbIUlmAYYuPuMhsaNHJqs1AVzRt2TzaNjmPVddEbU7VMDmeFWUt7vgDi7Xu0leevuIN4VSPbAMGBa0oj9Qopqkn9ePO_7DvIN13ktHgfQqatNBu6uXH6zkUl3VtXnubXrUhx7uyF22dARDc1-pJoj2NnsvgxDRElPMyDkU-siVv3c6cgIEwLEZZPWOcwplPTUB4qeTK6prrPBGQshuE1PWK2ZrYpIvXfzHyEbkGdPnrhcxgCzbKBUFvr8n_sfSurLRoDBLjkURKmgB8T8iRzLyXsCu9D3Hw61LKuex1aeSQLdwOFLuUEBdw".to_string(),
e1: "AQAB".to_string(),
key2: "a49391bf52b58c1d560255c2f2a04e59e22a7b65".to_string(),
n2: "v7hTj49pNGYjxKbgMx_iDyjeErhfJFepMl306IV_TW5T_CEGE4lWFfBe9w0cwpi5KD6XlC1GO1AsrtzcYF29wJ283GNBZRkbl8iTe-LQYdjQsBtf_1fLIVt6LR7H2U1RPqa3pY16Kq6i6yC2osVg6tD7ApBCGw1WKe8uU3cm28biJzuV4gv6PzcbOdErd-hb4Cv6n2SoMPYlBfT4pWee75poQh8DYoQ1KJwowz3U1MaxOBMP260hmDK-QK0q4LYabCQiBNsz4FWWcaAAFxZFbiqGY5Gdu18uOkpMbdAN5FoZ_6nMDMSTmlf0CHv7gZe_cL38kZvTaynkWwDxqsW_Xw".to_string(),
e2: "AQAB".to_string(),
key3: "".to_string(),
n3: "".to_string(),
e3: "".to_string(),
},
};
let info = mock_info("sender", &[]);

let result = instantiate(deps.as_mut(), mock_env(), info, instantiate_msg).unwrap();
Expand Down Expand Up @@ -110,7 +123,7 @@ fn test_claim_by_email() {
AUDIENCE.to_string(),
SESSION_JWT.to_string(),
dep.as_mut(),
mock_info("address1", &[]), // for email1 -> address1 and for email2 -> address2
mock_info(NOUNCE, &[]),
1,
);
// email1 shall have no more claims
Expand Down Expand Up @@ -147,7 +160,7 @@ fn test_aggregate_multiple_receives() {
AUDIENCE.to_string(),
SESSION_JWT.to_string(),
dep.as_mut(),
mock_info("address1", &[]), // for email1 -> address1 and for email2 -> address2
mock_info(NOUNCE, &[]),
4,
);
}
Expand Down Expand Up @@ -191,7 +204,7 @@ fn test_claim_multi_token() {
AUDIENCE.to_string(),
SESSION_JWT.to_string(),
dep.as_mut(),
mock_info("address1", &[]), // for email1 -> address1 and for email2 -> address2
mock_info(NOUNCE, &[]),
8,
);
}
Expand Down Expand Up @@ -223,7 +236,7 @@ fn test_claim_only_once() {
AUDIENCE.to_string(),
SESSION_JWT.to_string(),
dep.as_mut(),
mock_info("address1", &[]), // for email1 -> address1 and for email2 -> address2
mock_info(NOUNCE, &[]),
1,
);

Expand All @@ -232,7 +245,7 @@ fn test_claim_only_once() {
AUDIENCE.to_string(),
SESSION_JWT.to_string(),
dep.as_mut(),
mock_info("address1", &[]), // for email1 -> address1 and for email2 -> address2
mock_info(NOUNCE, &[]),
1,
);
}
Expand Down Expand Up @@ -289,7 +302,7 @@ fn test_empty_memo() {
AUDIENCE.to_string(),
SESSION_JWT.to_string(),
dep.as_mut(),
mock_info("address1", &[]), // for email1 -> address1 and for email2 -> address2
mock_info(NOUNCE, &[]),
1,
);
}
Expand All @@ -314,7 +327,7 @@ fn test_panic_long_memo() {
AUDIENCE.to_string(),
SESSION_JWT.to_string(),
dep.as_mut(),
mock_info("address1", &[]), // for email1 -> address1 and for email2 -> address2
mock_info(NOUNCE, &[]),
1,
);
}
Expand Down

0 comments on commit 7d9d6f9

Please sign in to comment.