1use cid::Cid;
2use fil_actor_init::{ConstructorParams, ExecParams, ExecReturn};
3use fvm_ipld_encoding::RawBytes;
4use fvm_shared::address::Address;
5use serde::{Deserialize, Serialize};
6
7use super::json::address;
8use super::json::cid as json_cid;
9use super::json::rawbytes;
10
11#[derive(Serialize, Deserialize)]
12#[serde(remote = "ConstructorParams", rename_all = "PascalCase")]
13pub struct ConstructorParamsAPI {
14 pub network_name: String,
15}
16
17#[derive(Serialize, Deserialize)]
18#[serde(remote = "ExecParams", rename_all = "PascalCase")]
19pub struct ExecParamsAPI {
20 #[serde(with = "json_cid")]
21 pub code_cid: Cid,
22 #[serde(with = "rawbytes")]
23 pub constructor_params: RawBytes,
24}
25
26#[derive(Serialize, Deserialize)]
27#[serde(remote = "ExecReturn", rename_all = "PascalCase")]
28pub struct ExecReturnAPI {
29 #[serde(with = "address")]
30 pub id_address: Address,
31 #[serde(with = "address")]
32 pub robust_address: Address,
33}