@@ -11,6 +11,7 @@ import {
11
11
GeneralTransactionMetadata ,
12
12
Int ,
13
13
LinearFee ,
14
+ NetworkId ,
14
15
RewardAddress ,
15
16
StakeCredential ,
16
17
StakeDelegation ,
@@ -148,7 +149,7 @@ export default async function buildUnsignedTx(
148
149
149
150
// #7 add auxiliary data hash
150
151
if ( builder . auxiliaryDataHash ) {
151
- // auto generated
152
+ // note: the hash will be set after building auxillary data
152
153
}
153
154
154
155
// #8 add validity interval start
@@ -171,11 +172,6 @@ export default async function buildUnsignedTx(
171
172
txBuilder . add_required_signer ( Ed25519KeyHash . from_hex ( stakeCred ) ) ;
172
173
}
173
174
174
- // #15 add network id
175
- if ( builder . networkId ) {
176
- // auto generated
177
- }
178
-
179
175
// aux data
180
176
const auxMetadata = AuxiliaryData . new ( ) ;
181
177
const txMetadata = GeneralTransactionMetadata . new ( ) ;
@@ -212,6 +208,7 @@ export default async function buildUnsignedTx(
212
208
213
209
if ( txMetadata . len ( ) ) {
214
210
auxMetadata . set_metadata ( txMetadata ) ;
211
+ txBuilder . set_auxiliary_data ( auxMetadata ) ;
215
212
}
216
213
217
214
// generate fee incase too much ADA provided for fee
@@ -221,7 +218,15 @@ export default async function buildUnsignedTx(
221
218
}
222
219
223
220
// build a full transaction, passing in empty witness set
224
- const unsignedTx = Transaction . new ( txBuilder . build ( ) , TransactionWitnessSet . new ( ) , auxMetadata ) ;
221
+ const txBody = txBuilder . build ( ) ;
222
+
223
+ // #15 add network id
224
+ if ( builder . networkId && [ 0 , 1 ] . includes ( Number ( builder . networkId ) ) ) {
225
+ const networkId = Number ( builder . networkId ) === 0 ? NetworkId . testnet ( ) : NetworkId . mainnet ( )
226
+ txBody . set_network_id ( networkId ) ;
227
+ }
228
+
229
+ const unsignedTx = Transaction . new ( txBody , TransactionWitnessSet . new ( ) , auxMetadata ) ;
225
230
226
231
return unsignedTx ;
227
232
}
0 commit comments