1pub mod address;
7pub mod agreement;
8pub mod block;
9pub mod docclass;
10pub mod education;
11pub mod employment;
12pub mod equity;
13pub mod finance;
14pub mod hash;
15pub mod healthcare;
16pub mod inference_attestation;
17pub mod legal;
18pub mod messaging;
19pub mod node_registry;
20pub mod policy_account;
21pub mod property;
22pub mod receipt;
23pub mod staking;
24pub mod storage_metadata;
25pub mod tax;
26pub mod transaction;
27
28pub use address::Address;
29pub use block::{Block, BlockHeader};
30pub use hash::Hash;
31pub use receipt::{Receipt, TxStatus};
32pub use staking::{
33 AddStakeData, ClaimDelegationRewardsData, CreateValidatorData, DelegateData, DelegationInfo,
34 DoubleSignEvidence, DowntimeEvidence, EvidenceType, SlashingRecord, StakingOperation,
35 StakingParams, StakingTxData, SubmitEvidenceData, UnbondingDelegation, UndelegateData,
36 UnstakeData, UpdateValidatorData, ValidatorInfo, ValidatorSet, ValidatorSetEntry,
37 ValidatorSigningInfo, ValidatorStatus, WithdrawUnbondedData,
38};
39pub use messaging::{
40 validate_message_format, AttachmentType, BlockSenderData, ClaimPaymentData, ContactData,
41 ContentType, ExternalProtocol, FundRegistryData, InboxFilter, MessageEvent, MessageFlags,
42 MessageHeader, MessagingOperation, MessagingTxData, PendingPayment, QuotaInfo,
43 RegisteredPublicKey, RegisterPublicKeyData, ReportSpamData, SendMessageData,
44 SendMessageWithPaymentData, SetDailyQuotaData, SetInboxFilterData, SetMaxMessageSizeData,
45 SetMinTrustStakeData, SetSponsorshipEnabledData, SpamReport, SponsoredMessage,
46 StakeForTrustData, UnstakeData as MessagingUnstakeData, UpdatePublicKeyData,
47 DEFAULT_DAILY_QUOTA, DEFAULT_MAX_MESSAGE_SIZE, DEFAULT_MIN_TRUST_STAKE,
48 SRC201_HEADER_SIZE, SRC201_KDF_CONTEXT, SRC201_MAGIC, SRC201_NONCE_SIZE, SRC201_TAG_SIZE,
49 SRC201_VERSION,
50};
51pub use transaction::{
52 NftOperation, NftTxData, SignedTransaction, TokenOperation, TokenTxData, Transaction,
53 TransactionV2, TxInner, TxPayload, TxType,
54};
55pub use docclass::{
56 AcademicCredential, CredentialAttribute, CredentialId, CredentialMetadata, DocClassEvent,
57 DocClassIssuer, DocClassIssuerStatus, DocClassIssuerType, DocClassOperation, DocClassTxData,
58 DocSubcode, EligibilityAttestation, EligibilityType, IdentityKey, IdentityRoot, IdentityStatus,
59 IssuerKey, KeyPurpose, KeyType, RevocationReason, RevocationRecord, RevocationStatus,
60 ServiceEndpoint, ZkProofInputs, generate_commitment, generate_credential_id, generate_nullifier,
61 generate_subject_commitment,
62};
63pub use tax::{
64 TaxClaimTypeEntry, TaxIssuerClass, TaxIssuer, TaxPolicy, TaxPolicyTemplate,
65 TaxProofEnvelope, TaxDisclosureEnvelope, TaxEvent, TaxOperation, TaxTxData,
66 TaxRiskLevel, TaxIssuerStatus, TaxVerificationResult, EncryptionAlgorithm,
67 IssuerRequirements, QuorumRule, ClaimTypeStatus,
68};
69pub use equity::{
70 EntityProfile, OrgType, GovernanceAction, GovernanceActionType, EquityToken, ShareClassType,
71 EquityControllerConfig, ControllerModel, LockupInfo, CorporateAction, CorporateActionType,
72 OwnershipSnapshot, OwnershipProofEnvelope, EquityEvent, EquityOperation, EquityTxData,
73 VestingSchedule, TradingWindow, EntityStatus, TokenStatus, CorporateActionStatus,
74 GovernanceActionStatus, OwnershipProofType, StockSplitParams, DividendDeclareParams,
75};
76pub use agreement::{
77 AgreementCommitment, AgreementEvent, AgreementOperation, AgreementProofEnvelope,
78 AgreementProofProfile, AgreementProofType, AgreementRole, AgreementStatus, AgreementTxData,
79 AttachmentRef, AttestationIssuerClass, AttestationPacket, AttestationStatus, AttestationTarget,
80 AttestationType, EncryptionAlgorithm as AgreementEncryptionAlgorithm, EncryptionMeta,
81 ExecutorLink, ExecutorState, IpActionStatus, IpActionType, IpAssetType, IpRightsAction,
82 PartyBinding, PartyRef, PartySignature, SignatureType,
83};
84pub use legal::{
85 BenefitDetermination, BenefitStatus, BenefitType, CaseAnchor, CaseStatus, CaseType, CourtOrder,
86 LegalEvent, LegalIssuerClass, LegalOperation, LegalProofEnvelope, LegalProofProfile,
87 LegalProofType, LegalTxData, OrderStatus, OrderType, ProcessEvent, ProcessEventStatus,
88 ProcessEventType,
89};
90pub use property::{
91 AssetAnchor, AssetId, AssetStatus, AssetType, ClaimId, ClaimStatus, ClaimType, CoverageId,
92 CoverageStatus, CoverageType, Encumbrance, EncumbranceId, EncumbranceStatus, EncumbranceType,
93 InsuranceClaim, InsuranceCoverage, PriorityPosition, PropertyEvent, PropertyIssuerClass,
94 PropertyOperation, PropertyProofEnvelope, PropertyProofProfile, PropertyProofType,
95 PropertyTxData, TitleEvent, TitleEventId, TitleEventStatus, TitleEventType,
96};
97pub use healthcare::{
98 ConsentEnvelope, ConsentId, ConsentStatus, ConsentType, CoverageTier, DisclosureScope,
99 HealthcareEvent, HealthcareIssuerClass, HealthcareOperation, HealthcareProofEnvelope,
100 HealthcareProofProfile, HealthcareProofType, HealthcareTxData, MembershipId, MembershipRecord,
101 MembershipStatus, MembershipType, NetworkStatus, Prescription, PrescriptionId,
102 PrescriptionStatus, PrescriptionType, ProviderId, ProviderProfile, ProviderStatus, ProviderType,
103};
104pub use employment::{
105 EmploymentCredential, EmploymentEvent, EmploymentId, EmploymentIssuerClass,
106 EmploymentIssuerProfile, EmploymentOperation, EmploymentProofEnvelope, EmploymentProofProfile,
107 EmploymentProofType, EmploymentRiskLevel, EmploymentStatus, EmploymentTxData, EmploymentType,
108 IncomeAttestation, IncomeAttestationId, IncomeBracket, IncomePeriod, IssuerStatus as EmploymentIssuerStatus,
109};
110pub use finance::{
111 AccountStanding, AccountType, AddressProof, AddressProofId, AddressProofType, AmlRisk,
112 BalanceBracket, BankStandingCredential, BankStandingId, FinanceEvent, FinanceIssuerClass,
113 FinanceIssuerProfile, FinanceIssuerStatus, FinanceOperation, FinanceProofEnvelope,
114 FinanceProofProfile, FinanceProofType, FinanceRiskLevel, FinanceTxData, KycAttestation,
115 KycAttestationId, KycLevel, KycStatus,
116};
117pub use node_registry::{
118 NodeRecord, NodeRegistryOperation, NodeRegistryOperationV2, NodeRegistryTxData,
119 NodeRegistryV2TxData, NodeRole, NodeStatus,
120};
121pub use storage_metadata::{
122 assigned_archives, assigned_archives_presorted, is_archive_assigned_to_chunk, AccessEntryV2,
123 EncryptedKeyBundleV2, FileLifecycleV2, FileVisibilityV2, StorageChallenge, StorageMetadata,
124 StorageMetadataOperation, StorageMetadataOperationV2, StorageMetadataTxData, StorageMetadataV2,
125 StorageMetadataV2TxData, CHALLENGE_INTERVAL_BLOCKS, CHALLENGE_REWARD, CHALLENGE_TTL_BLOCKS,
126 CHUNK_SIZE, SLASH_PERCENTAGE, SNIP_V2_ASSIGNMENT_CONTEXT,
127};
128pub use policy_account::{
129 ActionClass, ApprovalThreshold, MemberApproval, PolicyAccount, PolicyAccountId,
130 PolicyAccountOperation, PolicyAccountStatus, PolicyAccountTxData, PolicyConfig, PolicyMember,
131 PolicyNonce, PolicyProfile, PolicyRule, Proposal, ProposalId, ProposalStatus,
132 MAX_APPROVALS, MAX_CUSTOM_RULES, MAX_MEMBERS, MAX_PROPOSAL_PAYLOAD_SIZE,
133};
134
135pub type ChainId = u64;
137
138pub type BlockHeight = u64;
140
141pub type Nonce = u64;
143
144pub type Balance = u128;
146
147pub type Timestamp = u64;
149
150pub type Result<T> = std::result::Result<T, PrimitiveError>;
152
153#[derive(Debug, thiserror::Error)]
155pub enum PrimitiveError {
156 #[error("Invalid hex string: {0}")]
157 InvalidHex(String),
158
159 #[error("Invalid length: expected {expected}, got {got}")]
160 InvalidLength { expected: usize, got: usize },
161
162 #[error("Invalid base58 encoding: {0}")]
163 InvalidBase58(String),
164
165 #[error("Serialization error: {0}")]
166 SerializationError(String),
167
168 #[error("Invalid address checksum")]
169 InvalidChecksum,
170}