| 28 | #[storable] |
| 29 | #[derive(Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)] |
| 30 | pub struct Account { |
| 31 | /// The account id, which is a UUID. |
| 32 | pub id: AccountId, |
| 33 | /// The account name (e.g. `My Main Account`) |
| 34 | pub name: String, |
| 35 | /// The seed for address creation. |
| 36 | pub seed: AccountSeed, |
| 37 | /// The list of assets this account holds. |
| 38 | pub assets: Vec<AccountAsset>, |
| 39 | /// The list of addresses that belong to this account. |
| 40 | pub addresses: Vec<AccountAddress>, |
| 41 | /// The account metadata, which is a list of key-value pairs, |
| 42 | /// where the key is unique and the first entry in the tuple, |
| 43 | /// and the value is the second entry in the tuple. |
| 44 | pub metadata: Metadata, |
| 45 | /// The account transfer policy id, which is a UUID. |
| 46 | /// |
| 47 | /// This policy is non exaustive, this means that the account can have other policies that are enforced |
| 48 | /// by the system that are globally defined. |
| 49 | pub transfer_request_policy_id: Option<UUID>, |
| 50 | /// The account update policy id, which is a UUID. |
| 51 | /// |
| 52 | /// This policy is non exaustive, this means that the account can have other policies that are enforced |
| 53 | /// by the system that are globally defined. |
| 54 | pub configs_request_policy_id: Option<UUID>, |
| 55 | /// The last time the record was updated or created. |
| 56 | pub last_modification_timestamp: Timestamp, |
| 57 | } |
| 58 | |
| 59 | #[storable] |
| 60 | #[derive(Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)] |
no outgoing calls