Skip to content

Commit

Permalink
Fix contract to parse proper types
Browse files Browse the repository at this point in the history
  • Loading branch information
ethanfrey committed Jun 16, 2019
1 parent 4ab5c22 commit 43262e9
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 17 deletions.
2 changes: 1 addition & 1 deletion x/contract/examples/regen/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ crate-type = ["cdylib"]
# lto = true

[dependencies]
serde_json = "1.0.39"
serde_json = { version = "1.0.39", features = ["raw_value"] }
serde = { version = "1.0", default-features = false, features = ["derive"] }
heapless = "0.4.0"
failure = "0.1.5"
12 changes: 6 additions & 6 deletions x/contract/examples/regen/src/contract.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,26 +2,26 @@ use crate::{get_state, set_state, CosmosMsg, InitParams, SendAmount, SendParams}

use failure::{bail, Error};
use serde::{Deserialize, Serialize};
use serde_json::{from_slice, to_vec};
use serde_json::{from_slice, from_str, to_vec};

#[derive(Serialize, Deserialize)]
struct RegenInitMsg {
verifier: Vec<u8>,
beneficiary: Vec<u8>,
verifier: String,
beneficiary: String,
}

#[derive(Serialize, Deserialize)]
struct RegenState {
verifier: Vec<u8>,
beneficiary: Vec<u8>,
verifier: String,
beneficiary: String,
payout: u64,
}

#[derive(Serialize, Deserialize)]
struct RegenSendMsg {}

pub fn init(params: InitParams) -> Result<Vec<CosmosMsg>, Error> {
let msg: RegenInitMsg = from_slice(&params.msg)?;
let msg: RegenInitMsg = from_str(params.msg.get())?;

set_state(to_vec(&RegenState {
verifier: msg.verifier,
Expand Down
23 changes: 13 additions & 10 deletions x/contract/examples/regen/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ extern crate serde_json;

use failure::Error;
use serde::{Deserialize, Serialize};
use serde_json::value::RawValue;
use serde_json::{from_slice, to_vec};
use std::ffi::{CStr, CString};
use std::mem;
Expand All @@ -14,10 +15,11 @@ mod contract;
use contract::{init, send};

#[derive(Serialize, Deserialize)]
pub struct SendParams {
contract_address: Vec<u8>,
sender: Vec<u8>,
msg: Vec<u8>,
pub struct SendParams<'a> {
contract_address: String,
sender: String,
#[serde(borrow)]
msg: &'a RawValue,
sent_funds: u64,
}

Expand All @@ -27,8 +29,8 @@ struct RegenSendMsg {}
#[derive(Serialize, Deserialize)]
pub enum CosmosMsg {
SendTx {
from_address: Vec<u8>,
to_address: Vec<u8>,
from_address: String,
to_address: String,
amount: Vec<SendAmount>,
},
}
Expand Down Expand Up @@ -85,10 +87,11 @@ pub extern "C" fn deallocate(pointer: *mut c_void, capacity: usize) {
}

#[derive(Serialize, Deserialize)]
pub struct InitParams {
contract_address: Vec<u8>,
sender: Vec<u8>,
msg: Vec<u8>,
pub struct InitParams<'a> {
contract_address: String,
sender: String,
#[serde(borrow)]
msg: &'a RawValue,
sent_funds: u64,
}

Expand Down

0 comments on commit 43262e9

Please sign in to comment.