diff options
-rw-r--r-- | src/handlers.rs | 6 | ||||
-rw-r--r-- | tests/route_tests.rs | 90 |
2 files changed, 66 insertions, 30 deletions
diff --git a/src/handlers.rs b/src/handlers.rs index 88f9a80..b7b1007 100644 --- a/src/handlers.rs +++ b/src/handlers.rs | |||
@@ -608,9 +608,11 @@ pub async fn authorized_propose_transaction( | |||
608 | // it has been changed since | 608 | // it has been changed since |
609 | 609 | ||
610 | let hashed_transaction = Md5::digest(&serde_json::to_vec(&new_transaction).unwrap()); | 610 | let hashed_transaction = Md5::digest(&serde_json::to_vec(&new_transaction).unwrap()); |
611 | 611 | println!("{:?}", new_transaction); | |
612 | println!("{:?}", &serde_json::to_vec(&new_transaction).unwrap()); | ||
613 | println!("{:x}", hashed_transaction); | ||
612 | if token_payload.claims.tha != format!("{:x}", hashed_transaction) { | 614 | if token_payload.claims.tha != format!("{:x}", hashed_transaction) { |
613 | debug!( | 615 | println!( |
614 | "the hash of the request {:x} did not match the hash given in jwt {:?}", | 616 | "the hash of the request {:x} did not match the hash given in jwt {:?}", |
615 | hashed_transaction, token_payload.claims.tha | 617 | hashed_transaction, token_payload.claims.tha |
616 | ); | 618 | ); |
diff --git a/tests/route_tests.rs b/tests/route_tests.rs index 59483d3..ce7d704 100644 --- a/tests/route_tests.rs +++ b/tests/route_tests.rs | |||
@@ -27,33 +27,51 @@ FQIDAQAB | |||
27 | }, | 27 | }, |
28 | ); | 28 | ); |
29 | 29 | ||
30 | // -----BEGIN RSA PRIVATE KEY----- | 30 | db.users.write().insert( |
31 | // MIIEpAIBAAKCAQEA5yWTMeFqr2nvOC9oR5Wq/nzcNlwCIaziojt7rJ4BBvuwkT0t | 31 | "mock_transaction_source2".to_owned(), |
32 | // ERDz8AgvUsaewiB+Fz5OXTeb3WAB1FEXnBXGekrGzvC8jHQMKHyNoWzUlpQJ9UMt | 32 | User { |
33 | // dQIWPOCuMyLpc+rNPL3428U8UpldjbTHHyq2/ef6abkdj+XWg/slYtrFeOf3ktc1 | 33 | user_id: MetuId::new("e254275".to_owned(), "DtNX1qk4YF4saRH".to_owned()).unwrap(), |
34 | // l50R4k8VO8L6kQuh2+YIjXGPLShRaqnUQPtH8LFPX4bO9lJ9mAoMZFec6XVwumn/ | 34 | public_key: "-----BEGIN PUBLIC KEY----- |
35 | // uqu9jyWQL6qh6gtwQHgN+A9wGvzVvltJ9h8sshSHWWtBD0M19ilbXhKyBsHSSZkp | 35 | MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5yWTMeFqr2nvOC9oR5Wq |
36 | // x+TAvFhfQ8JURw7KqahUPVlCwJ5OIKccJ/6FFQIDAQABAoIBADTZGnZlG4dPqSon | 36 | /nzcNlwCIaziojt7rJ4BBvuwkT0tERDz8AgvUsaewiB+Fz5OXTeb3WAB1FEXnBXG |
37 | // bKgxSA83bQHgt3wLkyWUhApLdeCq2wvZ+NvWDG/s7yT11IZ991ZJIJGfjTtoIALz | 37 | ekrGzvC8jHQMKHyNoWzUlpQJ9UMtdQIWPOCuMyLpc+rNPL3428U8UpldjbTHHyq2 |
38 | // J3rAX8jGH/5gfDuArOb000z9HP3wivZQjawa9gqlNC7s5INkQ9iHdsaIqeoYtpMX | 38 | /ef6abkdj+XWg/slYtrFeOf3ktc1l50R4k8VO8L6kQuh2+YIjXGPLShRaqnUQPtH |
39 | // qg8uLPiQeWiCsoeb/Rff7ARWEKA7udoZ2uZcZFMHTKx+mBpk8IiepQAJPBRVwmXk | 39 | 8LFPX4bO9lJ9mAoMZFec6XVwumn/uqu9jyWQL6qh6gtwQHgN+A9wGvzVvltJ9h8s |
40 | // x/3LTaezi6Tkvp/k/gf4IeSICiRGFRmm2Vxciduj11/CrdTHPQLz/Rh5/IN8Bkry | 40 | shSHWWtBD0M19ilbXhKyBsHSSZkpx+TAvFhfQ8JURw7KqahUPVlCwJ5OIKccJ/6F |
41 | // xdQdQxxhwxF/ap6OJIJyguq7gximn2uK0jbHY3nRmrF8SsEtIT+Gd7I46L/goR8c | 41 | FQIDAQAB |
42 | // jQOQRmECgYEA9RJSOBUkZMLoUcC2LGJBZOAnJZ7WToCVdu3LrPceRYtQHwcznW4O | 42 | -----END PUBLIC KEY-----" |
43 | // NAHF+blQRzqvbMi11ap8NVpkDDu0ki/Yi2VdSVjQmlaOcpAXjN6T5ZrKoz61xj4g | 43 | .to_owned(), |
44 | // 2T2/K6d6ypkZRKPhKCC1iI419rq/APVEZHYCl7jZp4iD2izHiegZYccCgYEA8XRK | 44 | balance: 30, |
45 | // rfVuPiYsaB07eJrRKKjuoM1Jcr19jZyXY8sbALRcExaTX2CRaPA7binVeDBXayQ1 | 45 | }, |
46 | // I0+kA1nV1EI+ROegV+b6gs2YaUmMJzI1yLqMqGDgHFxFvhkDsZaI+/V+G9eOLEt4 | 46 | ); |
47 | // 5ic5tImfZITLE/GSC8b+C16gxMGUN4t9gHq2okMCgYAKyNedaDDFzl3y2wwpP9mo | 47 | |
48 | // 2sReP3Mm2Tm6lhRUdDt8y/impOZ8kw9E8p8HskP6HncBzoNR98KnhmbIswfrNvfM | 48 | /*-----BEGIN RSA PRIVATE KEY----- |
49 | // ipVkWOg1IoH6QKUIqfLQM9OfA290Xd+ML89t2Fzq9XnLL3sFDQtwCvIM/YLSQ/jS | 49 | MIIEpAIBAAKCAQEA5yWTMeFqr2nvOC9oR5Wq/nzcNlwCIaziojt7rJ4BBvuwkT0t |
50 | // gu7yRkwttzA2NapCQ1h6mQKBgQClwBwn8Qyd01y2mCKkNzsP+2/cqTAbeSNAXFe8 | 50 | ERDz8AgvUsaewiB+Fz5OXTeb3WAB1FEXnBXGekrGzvC8jHQMKHyNoWzUlpQJ9UMt |
51 | // pMfDowx1+hBu7/7CF+/kPwmQuTa5kSB9PgWsWzYjwNm4OX1j+mbL9lEDLf7tRVWQ | 51 | dQIWPOCuMyLpc+rNPL3428U8UpldjbTHHyq2/ef6abkdj+XWg/slYtrFeOf3ktc1 |
52 | // lydJyz7tmRYzWj6j4V/l/u90M3QgyiqTbCf73GG0AkjaRwHn3dG1gl9A0lZqDvK3 | 52 | l50R4k8VO8L6kQuh2+YIjXGPLShRaqnUQPtH8LFPX4bO9lJ9mAoMZFec6XVwumn/ |
53 | // iQXouwKBgQCrx6SCnEkhLISSZpzdDehtWmyCQJIwcdlRQlAmFLVn+TJHTXR7xUm2 | 53 | uqu9jyWQL6qh6gtwQHgN+A9wGvzVvltJ9h8sshSHWWtBD0M19ilbXhKyBsHSSZkp |
54 | // VpTrPTfaYWx83OQUn/OZqY5gIQ+jlfwqnVg+PDQQ/P09/4xygRCLvjL6NCSvtkj1 | 54 | x+TAvFhfQ8JURw7KqahUPVlCwJ5OIKccJ/6FFQIDAQABAoIBADTZGnZlG4dPqSon |
55 | // MRArEl4y68+jZLRu74TVG0lXi6ht6KhNHF6GiWKU9FHZ4B+btLicsg== | 55 | bKgxSA83bQHgt3wLkyWUhApLdeCq2wvZ+NvWDG/s7yT11IZ991ZJIJGfjTtoIALz |
56 | // -----END RSA PRIVATE KEY----- | 56 | J3rAX8jGH/5gfDuArOb000z9HP3wivZQjawa9gqlNC7s5INkQ9iHdsaIqeoYtpMX |
57 | qg8uLPiQeWiCsoeb/Rff7ARWEKA7udoZ2uZcZFMHTKx+mBpk8IiepQAJPBRVwmXk | ||
58 | x/3LTaezi6Tkvp/k/gf4IeSICiRGFRmm2Vxciduj11/CrdTHPQLz/Rh5/IN8Bkry | ||
59 | xdQdQxxhwxF/ap6OJIJyguq7gximn2uK0jbHY3nRmrF8SsEtIT+Gd7I46L/goR8c | ||
60 | jQOQRmECgYEA9RJSOBUkZMLoUcC2LGJBZOAnJZ7WToCVdu3LrPceRYtQHwcznW4O | ||
61 | NAHF+blQRzqvbMi11ap8NVpkDDu0ki/Yi2VdSVjQmlaOcpAXjN6T5ZrKoz61xj4g | ||
62 | 2T2/K6d6ypkZRKPhKCC1iI419rq/APVEZHYCl7jZp4iD2izHiegZYccCgYEA8XRK | ||
63 | rfVuPiYsaB07eJrRKKjuoM1Jcr19jZyXY8sbALRcExaTX2CRaPA7binVeDBXayQ1 | ||
64 | I0+kA1nV1EI+ROegV+b6gs2YaUmMJzI1yLqMqGDgHFxFvhkDsZaI+/V+G9eOLEt4 | ||
65 | 5ic5tImfZITLE/GSC8b+C16gxMGUN4t9gHq2okMCgYAKyNedaDDFzl3y2wwpP9mo | ||
66 | 2sReP3Mm2Tm6lhRUdDt8y/impOZ8kw9E8p8HskP6HncBzoNR98KnhmbIswfrNvfM | ||
67 | ipVkWOg1IoH6QKUIqfLQM9OfA290Xd+ML89t2Fzq9XnLL3sFDQtwCvIM/YLSQ/jS | ||
68 | gu7yRkwttzA2NapCQ1h6mQKBgQClwBwn8Qyd01y2mCKkNzsP+2/cqTAbeSNAXFe8 | ||
69 | pMfDowx1+hBu7/7CF+/kPwmQuTa5kSB9PgWsWzYjwNm4OX1j+mbL9lEDLf7tRVWQ | ||
70 | lydJyz7tmRYzWj6j4V/l/u90M3QgyiqTbCf73GG0AkjaRwHn3dG1gl9A0lZqDvK3 | ||
71 | iQXouwKBgQCrx6SCnEkhLISSZpzdDehtWmyCQJIwcdlRQlAmFLVn+TJHTXR7xUm2 | ||
72 | VpTrPTfaYWx83OQUn/OZqY5gIQ+jlfwqnVg+PDQQ/P09/4xygRCLvjL6NCSvtkj1 | ||
73 | MRArEl4y68+jZLRu74TVG0lXi6ht6KhNHF6GiWKU9FHZ4B+btLicsg== | ||
74 | -----END RSA PRIVATE KEY-----*/ | ||
57 | 75 | ||
58 | db.pending_transactions.write().insert( | 76 | db.pending_transactions.write().insert( |
59 | "mock_transaction_source".to_owned(), | 77 | "mock_transaction_source".to_owned(), |
@@ -109,6 +127,16 @@ FQIDAQAB | |||
109 | timestamp: chrono::NaiveDate::from_ymd(2021, 04, 09).and_hms(14, 30, 00), | 127 | timestamp: chrono::NaiveDate::from_ymd(2021, 04, 09).and_hms(14, 30, 00), |
110 | } | 128 | } |
111 | } | 129 | } |
130 | fn mocked_transaction2() -> Transaction { | ||
131 | Transaction { | ||
132 | by: "mock_transaction_source".to_owned(), | ||
133 | source: "mock_transaction_source".to_owned(), | ||
134 | target: "mock_transaction_target".to_owned(), | ||
135 | amount: 25, | ||
136 | timestamp: chrono::NaiveDate::from_ymd(2021, 04, 09).and_hms(14, 30, 00), | ||
137 | } | ||
138 | } | ||
139 | // r#"{"by":"mock_transaction_source","source":"mock_transaction_source","target":"mock_transaction_target","amount":25,"timestamp":"2021-04-09T14:30:00"}"# | ||
112 | 140 | ||
113 | /// Test simple GET request to /transaction, an endpoint that exists | 141 | /// Test simple GET request to /transaction, an endpoint that exists |
114 | /// https://tools.ietf.org/html/rfc7231#section-6.3.1 | 142 | /// https://tools.ietf.org/html/rfc7231#section-6.3.1 |
@@ -185,13 +213,16 @@ FQIDAQAB | |||
185 | let res = warp::test::request() | 213 | let res = warp::test::request() |
186 | .method("POST") | 214 | .method("POST") |
187 | .json(&mocked_transaction()) | 215 | .json(&mocked_transaction()) |
188 | .header("Authorization", "Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0aGEiOiI2NjkyZTc3NGViYTdmYjkyZGMwZmU2Y2Y3MzQ3NTkxZSIsImlhdCI6MTYxODI2MDY0MSwiZXhwIjoxNzE4MjYwNjQxfQ.M_FVVE5F_aYcDsprkcqV8n2DAhnM6jImAUEXChI9qYn55meE_0Pmp6AaJlTzclYUT1ZUQfFuehYTYu5UkigQ_AimDhqM5VWxPdnyfTQscV916arbNn4qXW6-3oHGUR93xK7-mX6mxeXyDZLxr1SD_JEvVzGWTU4Xo9SMYSIcaHjROAg_ChxJdD4WLe5T4He7O443jpXdAeeVVYfKoJyBfINx_bxiF58-ni1vur9q6-nrjnMw6sMMbtWD3qvzKZHN7HzfwNXM-90D-9VX1KiaJN05jIxLzCYacLeBUH595I4--XfgpLmqrV_P3Sucmny0yvagbZtjYjswmf0DjR99ug") | 216 | .header("Authorization", "Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0aGEiOiJmODRmNTBjNjZkNDdhZTAzNzcwZjY0ZjUwMDgzMTAwMSIsImlhdCI6MTUxNjIzOTAyMiwiZXhwIjoyMDE2MjM5MDIyfQ.APOAH0nOqxnW5FoRjM-T9Mm0VThLrDZspKeTGXioKZJNkAMc6ZbQ_wqdvRXG-GRzivyVAW8849kbnQ-smWFHQjftKEF-aiKxWeO17vsQ4j5I9UdwwPJpGDbxU5vBgLAPXYG8wEndvC4bgy_a0P3FAlD8gIHebMh1YsbyfyEc6DFD4nvZwHzRFJtR43xRfCVgFAjSF_pB5YPAccB0DmYz_uKaGj69-9eNQYKr6giwXaiYIcF-G561kKLmTFPjCuACYNLMHONjwg8i0pT-tdiZgS7SiiWAOAo_98X54W0bCvn6i5tUPpzWKv61QXCWDdHi831YA8kMNJ2az_baRMtmhg") |
189 | .path("/transaction") | 217 | .path("/transaction") |
190 | .reply(&filter) | 218 | .reply(&filter) |
191 | .await; | 219 | .await; |
192 | 220 | ||
193 | println!("{:?}", res.body()); | 221 | println!("{:?}", res.body()); |
194 | assert_eq!(res.status(), StatusCode::CREATED); | 222 | assert_eq!(res.status(), StatusCode::CREATED); |
223 | for i in db.pending_transactions.read().iter() { | ||
224 | println!("{:?}", i); | ||
225 | } | ||
195 | assert_eq!(db.pending_transactions.read().len(), 2); | 226 | assert_eq!(db.pending_transactions.read().len(), 2); |
196 | } | 227 | } |
197 | 228 | ||
@@ -229,9 +260,12 @@ FQIDAQAB | |||
229 | /// the block | 260 | /// the block |
230 | #[tokio::test] | 261 | #[tokio::test] |
231 | async fn post_block_auth_201() { | 262 | async fn post_block_auth_201() { |
263 | println!("Wtf"); | ||
232 | let db = mocked_db(); | 264 | let db = mocked_db(); |
233 | let filter = consensus_routes(db.clone()); | 265 | let filter = consensus_routes(db.clone()); |
234 | 266 | ||
267 | |||
268 | |||
235 | let res = warp::test::request() | 269 | let res = warp::test::request() |
236 | .method("POST") | 270 | .method("POST") |
237 | .json(&Block { | 271 | .json(&Block { |