Separating serialization of send and signTransaction
This commit is contained in:
parent
a7037f8e5b
commit
3e69ff0b88
@ -89,7 +89,7 @@ fn should_return_list_of_items_to_confirm() {
|
|||||||
let request = r#"{"jsonrpc":"2.0","method":"signer_requestsToConfirm","params":[],"id":1}"#;
|
let request = r#"{"jsonrpc":"2.0","method":"signer_requestsToConfirm","params":[],"id":1}"#;
|
||||||
let response = concat!(
|
let response = concat!(
|
||||||
r#"{"jsonrpc":"2.0","result":["#,
|
r#"{"jsonrpc":"2.0","result":["#,
|
||||||
r#"{"id":"0x1","payload":{"transaction":{"data":"0x","from":"0x0000000000000000000000000000000000000001","gas":"0x989680","gasPrice":"0x2710","nonce":null,"to":"0xd46e8dd67c5d32be8058bb8eb970870f07244567","value":"0x1"}}},"#,
|
r#"{"id":"0x1","payload":{"sendTransaction":{"data":"0x","from":"0x0000000000000000000000000000000000000001","gas":"0x989680","gasPrice":"0x2710","nonce":null,"to":"0xd46e8dd67c5d32be8058bb8eb970870f07244567","value":"0x1"}}},"#,
|
||||||
r#"{"id":"0x2","payload":{"sign":{"address":"0x0000000000000000000000000000000000000001","hash":"0x0000000000000000000000000000000000000000000000000000000000000005"}}}"#,
|
r#"{"id":"0x2","payload":{"sign":{"address":"0x0000000000000000000000000000000000000001","hash":"0x0000000000000000000000000000000000000000000000000000000000000005"}}}"#,
|
||||||
r#"],"id":1}"#
|
r#"],"id":1}"#
|
||||||
);
|
);
|
||||||
|
@ -105,10 +105,10 @@ impl Serialize for ConfirmationResponse {
|
|||||||
#[derive(Debug, Clone, Eq, PartialEq, Hash, Serialize)]
|
#[derive(Debug, Clone, Eq, PartialEq, Hash, Serialize)]
|
||||||
pub enum ConfirmationPayload {
|
pub enum ConfirmationPayload {
|
||||||
/// Send Transaction
|
/// Send Transaction
|
||||||
#[serde(rename="transaction")]
|
#[serde(rename="sendTransaction")]
|
||||||
SendTransaction(TransactionRequest),
|
SendTransaction(TransactionRequest),
|
||||||
/// Sign Transaction
|
/// Sign Transaction
|
||||||
#[serde(rename="transaction")]
|
#[serde(rename="signTransaction")]
|
||||||
SignTransaction(TransactionRequest),
|
SignTransaction(TransactionRequest),
|
||||||
/// Signature
|
/// Signature
|
||||||
#[serde(rename="sign")]
|
#[serde(rename="sign")]
|
||||||
@ -220,7 +220,49 @@ mod tests {
|
|||||||
|
|
||||||
// when
|
// when
|
||||||
let res = serde_json::to_string(&ConfirmationRequest::from(request));
|
let res = serde_json::to_string(&ConfirmationRequest::from(request));
|
||||||
let expected = r#"{"id":"0xf","payload":{"transaction":{"from":"0x0000000000000000000000000000000000000000","to":null,"gasPrice":"0x2710","gas":"0x3a98","value":"0x186a0","data":"0x010203","nonce":"0x1"}}}"#;
|
let expected = r#"{"id":"0xf","payload":{"sendTransaction":{"from":"0x0000000000000000000000000000000000000000","to":null,"gasPrice":"0x2710","gas":"0x3a98","value":"0x186a0","data":"0x010203","nonce":"0x1"}}}"#;
|
||||||
|
|
||||||
|
// then
|
||||||
|
assert_eq!(res.unwrap(), expected.to_owned());
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn should_serialize_sign_transaction_confirmation() {
|
||||||
|
// given
|
||||||
|
let request = helpers::ConfirmationRequest {
|
||||||
|
id: 15.into(),
|
||||||
|
payload: helpers::ConfirmationPayload::SignTransaction(helpers::FilledTransactionRequest {
|
||||||
|
from: 0.into(),
|
||||||
|
to: None,
|
||||||
|
gas: 15_000.into(),
|
||||||
|
gas_price: 10_000.into(),
|
||||||
|
value: 100_000.into(),
|
||||||
|
data: vec![1, 2, 3],
|
||||||
|
nonce: Some(1.into()),
|
||||||
|
}),
|
||||||
|
};
|
||||||
|
|
||||||
|
// when
|
||||||
|
let res = serde_json::to_string(&ConfirmationRequest::from(request));
|
||||||
|
let expected = r#"{"id":"0xf","payload":{"signTransaction":{"from":"0x0000000000000000000000000000000000000000","to":null,"gasPrice":"0x2710","gas":"0x3a98","value":"0x186a0","data":"0x010203","nonce":"0x1"}}}"#;
|
||||||
|
|
||||||
|
// then
|
||||||
|
assert_eq!(res.unwrap(), expected.to_owned());
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn should_serialize_decrypt_confirmation() {
|
||||||
|
// given
|
||||||
|
let request = helpers::ConfirmationRequest {
|
||||||
|
id: 15.into(),
|
||||||
|
payload: helpers::ConfirmationPayload::Decrypt(
|
||||||
|
10.into(), vec![1, 2, 3].into(),
|
||||||
|
),
|
||||||
|
};
|
||||||
|
|
||||||
|
// when
|
||||||
|
let res = serde_json::to_string(&ConfirmationRequest::from(request));
|
||||||
|
let expected = r#"{"id":"0xf","payload":{"decrypt":{"address":"0x000000000000000000000000000000000000000a","msg":"0x010203"}}}"#;
|
||||||
|
|
||||||
// then
|
// then
|
||||||
assert_eq!(res.unwrap(), expected.to_owned());
|
assert_eq!(res.unwrap(), expected.to_owned());
|
||||||
|
Loading…
Reference in New Issue
Block a user