Skip to content

Commit d87cf11

Browse files
more work
1 parent 0a14661 commit d87cf11

File tree

6 files changed

+186
-71
lines changed

6 files changed

+186
-71
lines changed

packages/rs-sdk/src/platform/documents/transitions/create.rs

Lines changed: 31 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,14 @@ use std::sync::Arc;
1818

1919
/// A builder to configure and broadcast document create transitions
2020
pub struct DocumentCreateTransitionBuilder {
21-
data_contract: Arc<DataContract>,
22-
document_type_name: String,
23-
document: Document,
24-
document_state_transition_entropy: [u8; 32],
25-
token_payment_info: Option<TokenPaymentInfo>,
26-
settings: Option<PutSettings>,
27-
user_fee_increase: Option<UserFeeIncrease>,
21+
pub data_contract: Arc<DataContract>,
22+
pub document_type_name: String,
23+
pub document: Document,
24+
pub document_state_transition_entropy: [u8; 32],
25+
pub token_payment_info: Option<TokenPaymentInfo>,
26+
pub settings: Option<PutSettings>,
27+
pub user_fee_increase: Option<UserFeeIncrease>,
28+
pub state_transition_creation_options: Option<StateTransitionCreationOptions>,
2829
}
2930

3031
impl DocumentCreateTransitionBuilder {
@@ -54,6 +55,7 @@ impl DocumentCreateTransitionBuilder {
5455
token_payment_info: None,
5556
settings: None,
5657
user_fee_increase: None,
58+
state_transition_creation_options: None,
5759
}
5860
}
5961

@@ -99,6 +101,23 @@ impl DocumentCreateTransitionBuilder {
99101
self
100102
}
101103

104+
/// Adds creation_options to the document create transition
105+
///
106+
/// # Arguments
107+
///
108+
/// * `settings` - The settings to add
109+
///
110+
/// # Returns
111+
///
112+
/// * `Self` - The updated builder
113+
pub fn with_state_transition_creation_options(
114+
mut self,
115+
creation_options: StateTransitionCreationOptions,
116+
) -> Self {
117+
self.state_transition_creation_options = Some(creation_options);
118+
self
119+
}
120+
102121
/// Signs the document create transition
103122
///
104123
/// # Arguments
@@ -118,7 +137,6 @@ impl DocumentCreateTransitionBuilder {
118137
identity_public_key: &IdentityPublicKey,
119138
signer: &impl Signer,
120139
platform_version: &PlatformVersion,
121-
options: Option<StateTransitionCreationOptions>,
122140
) -> Result<StateTransition, Error> {
123141
let identity_contract_nonce = sdk
124142
.get_identity_contract_nonce(
@@ -144,7 +162,7 @@ impl DocumentCreateTransitionBuilder {
144162
self.token_payment_info,
145163
signer,
146164
platform_version,
147-
options,
165+
self.state_transition_creation_options,
148166
)?;
149167

150168
Ok(state_transition)
@@ -189,12 +207,14 @@ impl Sdk {
189207
) -> Result<DocumentCreateResult, Error> {
190208
let platform_version = self.version();
191209

210+
let put_settings = create_document_transition_builder.settings;
211+
192212
let state_transition = create_document_transition_builder
193-
.sign(self, signing_key, signer, platform_version, None)
213+
.sign(self, signing_key, signer, platform_version)
194214
.await?;
195215

196216
let proof_result = state_transition
197-
.broadcast_and_wait::<StateTransitionProofResult>(self, None)
217+
.broadcast_and_wait::<StateTransitionProofResult>(self, put_settings)
198218
.await?;
199219

200220
match proof_result {

packages/rs-sdk/src/platform/documents/transitions/delete.rs

Lines changed: 31 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,14 @@ use std::sync::Arc;
1919

2020
/// A builder to configure and broadcast document delete transitions
2121
pub struct DocumentDeleteTransitionBuilder {
22-
data_contract: Arc<DataContract>,
23-
document_type_name: String,
24-
document_id: Identifier,
25-
owner_id: Identifier,
26-
token_payment_info: Option<TokenPaymentInfo>,
27-
settings: Option<PutSettings>,
28-
user_fee_increase: Option<UserFeeIncrease>,
22+
pub data_contract: Arc<DataContract>,
23+
pub document_type_name: String,
24+
pub document_id: Identifier,
25+
pub owner_id: Identifier,
26+
pub token_payment_info: Option<TokenPaymentInfo>,
27+
pub settings: Option<PutSettings>,
28+
pub user_fee_increase: Option<UserFeeIncrease>,
29+
pub state_transition_creation_options: Option<StateTransitionCreationOptions>,
2930
}
3031

3132
impl DocumentDeleteTransitionBuilder {
@@ -55,6 +56,7 @@ impl DocumentDeleteTransitionBuilder {
5556
token_payment_info: None,
5657
settings: None,
5758
user_fee_increase: None,
59+
state_transition_creation_options: None,
5860
}
5961
}
6062

@@ -125,6 +127,23 @@ impl DocumentDeleteTransitionBuilder {
125127
self
126128
}
127129

130+
/// Adds creation_options to the document delete transition
131+
///
132+
/// # Arguments
133+
///
134+
/// * `creation_options` - The creation options to add
135+
///
136+
/// # Returns
137+
///
138+
/// * `Self` - The updated builder
139+
pub fn with_state_transition_creation_options(
140+
mut self,
141+
creation_options: StateTransitionCreationOptions,
142+
) -> Self {
143+
self.state_transition_creation_options = Some(creation_options);
144+
self
145+
}
146+
128147
/// Signs the document delete transition
129148
///
130149
/// # Arguments
@@ -133,7 +152,6 @@ impl DocumentDeleteTransitionBuilder {
133152
/// * `identity_public_key` - The public key of the identity
134153
/// * `signer` - The signer instance
135154
/// * `platform_version` - The platform version
136-
/// * `options` - Optional state transition creation options
137155
///
138156
/// # Returns
139157
///
@@ -144,7 +162,6 @@ impl DocumentDeleteTransitionBuilder {
144162
identity_public_key: &IdentityPublicKey,
145163
signer: &impl Signer,
146164
platform_version: &PlatformVersion,
147-
options: Option<StateTransitionCreationOptions>,
148165
) -> Result<StateTransition, Error> {
149166
let identity_contract_nonce = sdk
150167
.get_identity_contract_nonce(
@@ -186,7 +203,7 @@ impl DocumentDeleteTransitionBuilder {
186203
self.token_payment_info,
187204
signer,
188205
platform_version,
189-
options,
206+
self.state_transition_creation_options,
190207
)?;
191208

192209
Ok(state_transition)
@@ -232,12 +249,14 @@ impl Sdk {
232249
) -> Result<DocumentDeleteResult, Error> {
233250
let platform_version = self.version();
234251

252+
let put_settings = delete_document_transition_builder.settings;
253+
235254
let state_transition = delete_document_transition_builder
236-
.sign(self, signing_key, signer, platform_version, None)
255+
.sign(self, signing_key, signer, platform_version)
237256
.await?;
238257

239258
let proof_result = state_transition
240-
.broadcast_and_wait::<StateTransitionProofResult>(self, None)
259+
.broadcast_and_wait::<StateTransitionProofResult>(self, put_settings)
241260
.await?;
242261

243262
match proof_result {

packages/rs-sdk/src/platform/documents/transitions/purchase.rs

Lines changed: 32 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,15 @@ use std::sync::Arc;
2020

2121
/// A builder to configure and broadcast document purchase transitions
2222
pub struct DocumentPurchaseTransitionBuilder {
23-
data_contract: Arc<DataContract>,
24-
document_type_name: String,
25-
document: Document,
26-
purchaser_id: Identifier,
27-
price: Credits,
28-
token_payment_info: Option<TokenPaymentInfo>,
29-
settings: Option<PutSettings>,
30-
user_fee_increase: Option<UserFeeIncrease>,
23+
pub data_contract: Arc<DataContract>,
24+
pub document_type_name: String,
25+
pub document: Document,
26+
pub purchaser_id: Identifier,
27+
pub price: Credits,
28+
pub token_payment_info: Option<TokenPaymentInfo>,
29+
pub settings: Option<PutSettings>,
30+
pub user_fee_increase: Option<UserFeeIncrease>,
31+
pub state_transition_creation_options: Option<StateTransitionCreationOptions>,
3132
}
3233

3334
impl DocumentPurchaseTransitionBuilder {
@@ -60,6 +61,7 @@ impl DocumentPurchaseTransitionBuilder {
6061
token_payment_info: None,
6162
settings: None,
6263
user_fee_increase: None,
64+
state_transition_creation_options: None,
6365
}
6466
}
6567

@@ -154,6 +156,23 @@ impl DocumentPurchaseTransitionBuilder {
154156
self
155157
}
156158

159+
/// Adds creation_options to the document purchase transition
160+
///
161+
/// # Arguments
162+
///
163+
/// * `creation_options` - The creation options to add
164+
///
165+
/// # Returns
166+
///
167+
/// * `Self` - The updated builder
168+
pub fn with_state_transition_creation_options(
169+
mut self,
170+
creation_options: StateTransitionCreationOptions,
171+
) -> Self {
172+
self.state_transition_creation_options = Some(creation_options);
173+
self
174+
}
175+
157176
/// Signs the document purchase transition
158177
///
159178
/// # Arguments
@@ -162,7 +181,6 @@ impl DocumentPurchaseTransitionBuilder {
162181
/// * `identity_public_key` - The public key of the identity
163182
/// * `signer` - The signer instance
164183
/// * `platform_version` - The platform version
165-
/// * `options` - Optional state transition creation options
166184
///
167185
/// # Returns
168186
///
@@ -173,7 +191,6 @@ impl DocumentPurchaseTransitionBuilder {
173191
identity_public_key: &IdentityPublicKey,
174192
signer: &impl Signer,
175193
platform_version: &PlatformVersion,
176-
options: Option<StateTransitionCreationOptions>,
177194
) -> Result<StateTransition, Error> {
178195
let identity_contract_nonce = sdk
179196
.get_identity_contract_nonce(
@@ -200,7 +217,7 @@ impl DocumentPurchaseTransitionBuilder {
200217
self.token_payment_info,
201218
signer,
202219
platform_version,
203-
options,
220+
self.state_transition_creation_options,
204221
)?;
205222

206223
Ok(state_transition)
@@ -249,12 +266,14 @@ impl Sdk {
249266
) -> Result<DocumentPurchaseResult, Error> {
250267
let platform_version = self.version();
251268

269+
let put_settings = purchase_document_transition_builder.settings;
270+
252271
let state_transition = purchase_document_transition_builder
253-
.sign(self, signing_key, signer, platform_version, None)
272+
.sign(self, signing_key, signer, platform_version)
254273
.await?;
255274

256275
let proof_result = state_transition
257-
.broadcast_and_wait::<StateTransitionProofResult>(self, None)
276+
.broadcast_and_wait::<StateTransitionProofResult>(self, put_settings)
258277
.await?;
259278

260279
match proof_result {

packages/rs-sdk/src/platform/documents/transitions/replace.rs

Lines changed: 30 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,13 @@ use std::sync::Arc;
1818

1919
/// A builder to configure and broadcast document replace transitions
2020
pub struct DocumentReplaceTransitionBuilder {
21-
data_contract: Arc<DataContract>,
22-
document_type_name: String,
23-
document: Document,
24-
token_payment_info: Option<TokenPaymentInfo>,
25-
settings: Option<PutSettings>,
26-
user_fee_increase: Option<UserFeeIncrease>,
21+
pub data_contract: Arc<DataContract>,
22+
pub document_type_name: String,
23+
pub document: Document,
24+
pub token_payment_info: Option<TokenPaymentInfo>,
25+
pub settings: Option<PutSettings>,
26+
pub user_fee_increase: Option<UserFeeIncrease>,
27+
pub state_transition_creation_options: Option<StateTransitionCreationOptions>,
2728
}
2829

2930
impl DocumentReplaceTransitionBuilder {
@@ -50,6 +51,7 @@ impl DocumentReplaceTransitionBuilder {
5051
token_payment_info: None,
5152
settings: None,
5253
user_fee_increase: None,
54+
state_transition_creation_options: None,
5355
}
5456
}
5557

@@ -95,6 +97,23 @@ impl DocumentReplaceTransitionBuilder {
9597
self
9698
}
9799

100+
/// Adds creation_options to the document replace transition
101+
///
102+
/// # Arguments
103+
///
104+
/// * `creation_options` - The creation options to add
105+
///
106+
/// # Returns
107+
///
108+
/// * `Self` - The updated builder
109+
pub fn with_state_transition_creation_options(
110+
mut self,
111+
creation_options: StateTransitionCreationOptions,
112+
) -> Self {
113+
self.state_transition_creation_options = Some(creation_options);
114+
self
115+
}
116+
98117
/// Signs the document replace transition
99118
///
100119
/// # Arguments
@@ -103,7 +122,6 @@ impl DocumentReplaceTransitionBuilder {
103122
/// * `identity_public_key` - The public key of the identity
104123
/// * `signer` - The signer instance
105124
/// * `platform_version` - The platform version
106-
/// * `options` - Optional state transition creation options
107125
///
108126
/// # Returns
109127
///
@@ -114,7 +132,6 @@ impl DocumentReplaceTransitionBuilder {
114132
identity_public_key: &IdentityPublicKey,
115133
signer: &impl Signer,
116134
platform_version: &PlatformVersion,
117-
options: Option<StateTransitionCreationOptions>,
118135
) -> Result<StateTransition, Error> {
119136
let identity_contract_nonce = sdk
120137
.get_identity_contract_nonce(
@@ -139,7 +156,7 @@ impl DocumentReplaceTransitionBuilder {
139156
self.token_payment_info,
140157
signer,
141158
platform_version,
142-
options,
159+
self.state_transition_creation_options,
143160
)?;
144161

145162
Ok(state_transition)
@@ -185,12 +202,14 @@ impl Sdk {
185202
) -> Result<DocumentReplaceResult, Error> {
186203
let platform_version = self.version();
187204

205+
let put_settings = replace_document_transition_builder.settings;
206+
188207
let state_transition = replace_document_transition_builder
189-
.sign(self, signing_key, signer, platform_version, None)
208+
.sign(self, signing_key, signer, platform_version)
190209
.await?;
191210

192211
let proof_result = state_transition
193-
.broadcast_and_wait::<StateTransitionProofResult>(self, None)
212+
.broadcast_and_wait::<StateTransitionProofResult>(self, put_settings)
194213
.await?;
195214

196215
match proof_result {

0 commit comments

Comments
 (0)