@@ -241,7 +241,6 @@ export class Contract<Abi extends ContractAbi>
241241 * RPC provider when using contract methods.
242242 * Default is `input`
243243 */
244- private readonly _dataInputFill ?: 'data' | 'input' | 'both' ;
245244
246245 private context ?: Web3Context ;
247246 /**
@@ -369,17 +368,11 @@ export class Contract<Abi extends ContractAbi>
369368 : isDataFormat ( optionsOrContextOrReturnFormat )
370369 ? optionsOrContextOrReturnFormat
371370 : returnFormat ?? DEFAULT_RETURN_FORMAT ;
372-
373371 const address =
374372 typeof addressOrOptionsOrContext === 'string' ? addressOrOptionsOrContext : undefined ;
375-
376- if ( this . config . contractDataInputFill === 'both' ) {
377- this . _dataInputFill = this . config . contractDataInputFill ;
378- } else {
379- this . _dataInputFill =
373+ this . config . contractDataInputFill =
380374 ( options as ContractInitOptions ) ?. dataInputFill ??
381375 this . config . contractDataInputFill ;
382- }
383376 this . _parseAndSetJsonInterface ( jsonInterface , returnDataFormat ) ;
384377
385378 if ( ! isNullish ( address ) ) {
@@ -409,6 +402,13 @@ export class Contract<Abi extends ContractAbi>
409402 set : ( value : ContractAbi ) => this . _parseAndSetJsonInterface ( value , returnDataFormat ) ,
410403 get : ( ) => this . _jsonInterface ,
411404 } ) ;
405+
406+ if ( contractContext instanceof Web3Context ) {
407+ contractContext . on ( Web3ConfigEvent . CONFIG_CHANGE , event => {
408+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
409+ this . setConfig ( { [ event . name ] : event . newValue } ) ;
410+ } ) ;
411+ }
412412 }
413413
414414 /**
@@ -501,7 +501,7 @@ export class Contract<Abi extends ContractAbi>
501501 data : this . options . data ,
502502 provider : this . currentProvider ,
503503 syncWithContext : this . syncWithContext ,
504- dataInputFill : this . _dataInputFill ,
504+ dataInputFill : this . config . contractDataInputFill ,
505505 } ,
506506 this . getContextObject ( ) ,
507507 ) ;
@@ -516,7 +516,7 @@ export class Contract<Abi extends ContractAbi>
516516 data : this . options . data ,
517517 provider : this . currentProvider ,
518518 syncWithContext : this . syncWithContext ,
519- dataInputFill : this . _dataInputFill ,
519+ dataInputFill : this . config . contractDataInputFill ,
520520 } ,
521521 this . getContextObject ( ) ,
522522 ) ;
@@ -1014,7 +1014,7 @@ export class Contract<Abi extends ContractAbi>
10141014 params,
10151015 options : {
10161016 ...options ,
1017- dataInputFill : this . _dataInputFill ,
1017+ dataInputFill : this . config . contractDataInputFill ,
10181018 } ,
10191019 contractOptions : {
10201020 ...this . options ,
@@ -1088,7 +1088,7 @@ export class Contract<Abi extends ContractAbi>
10881088 checkRevertBeforeSending : false ,
10891089 contractAbi : this . _jsonInterface ,
10901090 } ) ;
1091-
1091+
10921092 // eslint-disable-next-line no-void
10931093 void transactionToSend . on ( 'error' , ( error : unknown ) => {
10941094 if ( error instanceof ContractExecutionError ) {
0 commit comments