extras_filecoin/
multisig.rs1use fil_actor_multisig::{
2 AddSignerParams, ChangeNumApprovalsThresholdParams, ConstructorParams, LockBalanceParams,
3 ProposeParams, RemoveSignerParams, SwapSignerParams, Transaction, TxnID, TxnIDParams,
4};
5use fvm_ipld_encoding::RawBytes;
6use fvm_shared::address::Address;
7use fvm_shared::clock::ChainEpoch;
8use fvm_shared::econ::TokenAmount;
9use fvm_shared::MethodNum;
10use serde::{Deserialize, Serialize};
11
12use super::json::address;
13use super::json::rawbytes;
14use super::json::serde_base64_vector;
15use super::json::tokenamount;
16use super::json::vec_address;
17
18#[derive(Clone, PartialEq, Debug, Serialize, Deserialize)]
19#[serde(remote = "Transaction", rename_all = "PascalCase")]
20pub struct TransactionAPI {
21 #[serde(with = "address")]
22 pub to: Address,
23 #[serde(with = "tokenamount")]
24 pub value: TokenAmount,
25 pub method: MethodNum,
26 #[serde(with = "rawbytes")]
27 pub params: RawBytes,
28 #[serde(with = "vec_address")]
29 pub approved: Vec<Address>,
30}
31
32#[derive(Serialize, Deserialize)]
33#[serde(remote = "ConstructorParams", rename_all = "PascalCase")]
34pub struct ConstructorParamsAPI {
35 #[serde(with = "vec_address")]
36 pub signers: Vec<Address>,
37 pub num_approvals_threshold: u64,
38 pub unlock_duration: ChainEpoch,
39 pub start_epoch: ChainEpoch,
40}
41
42#[derive(Serialize, Deserialize)]
43#[serde(rename_all = "PascalCase")]
44pub struct ConstructorParamsV1 {
45 #[serde(with = "vec_address")]
46 pub signers: Vec<Address>,
47 pub num_approvals_threshold: i64,
48 pub unlock_duration: ChainEpoch,
49}
50
51#[derive(Serialize, Deserialize)]
52#[serde(remote = "ProposeParams", rename_all = "PascalCase")]
53pub struct ProposeParamsAPI {
54 #[serde(with = "address")]
55 pub to: Address,
56 #[serde(with = "tokenamount")]
57 pub value: TokenAmount,
58 pub method: MethodNum,
59 #[serde(with = "rawbytes")]
60 pub params: RawBytes,
61}
62
63#[derive(Serialize, Deserialize)]
64#[serde(remote = "TxnIDParams", rename_all = "PascalCase")]
65pub struct TxnIDParamsAPI {
66 #[serde(alias = "ID")]
67 pub id: TxnID,
68 #[serde(with = "serde_base64_vector")]
71 pub proposal_hash: Vec<u8>,
72}
73
74#[derive(Serialize, Deserialize)]
75#[serde(remote = "AddSignerParams", rename_all = "PascalCase")]
76pub struct AddSignerParamsAPI {
77 #[serde(with = "address")]
78 pub signer: Address,
79 pub increase: bool,
80}
81
82#[derive(Serialize, Deserialize)]
83#[serde(remote = "RemoveSignerParams", rename_all = "PascalCase")]
84pub struct RemoveSignerParamsAPI {
85 #[serde(with = "address")]
86 pub signer: Address,
87 pub decrease: bool,
88}
89
90#[derive(Serialize, Deserialize)]
91#[serde(remote = "SwapSignerParams", rename_all = "PascalCase")]
92pub struct SwapSignerParamsAPI {
93 #[serde(with = "address")]
94 pub from: Address,
95 #[serde(with = "address")]
96 pub to: Address,
97}
98
99#[derive(Serialize, Deserialize)]
101#[serde(
102 remote = "ChangeNumApprovalsThresholdParams",
103 rename_all = "PascalCase"
104)]
105pub struct ChangeNumApprovalsThresholdParamsAPI {
106 #[serde(alias = "NewTreshold")]
108 pub new_threshold: u64,
109}
110
111#[derive(Serialize, Deserialize)]
113#[serde(remote = "LockBalanceParams", rename_all = "PascalCase")]
114pub struct LockBalanceParamsAPI {
115 pub start_epoch: ChainEpoch,
116 pub unlock_duration: ChainEpoch,
117 #[serde(with = "tokenamount")]
118 pub amount: TokenAmount,
119}