@@ -770,70 +770,31 @@ Method.prototype.buildCall = function () {
770
770
return method . requestManager . send ( payload , sendTxCallback ) ;
771
771
} ;
772
772
773
- // Send the actual transaction
774
- // if (isSendTx
775
- // && !!payload.params[0]
776
- // && typeof payload.params[0] === 'object'
777
- // && typeof payload.params[0].gasPrice === 'undefined'
778
- // ) {
779
-
780
- // var getGasPrice = (new Method({
781
- // name: 'getGasPrice',
782
- // call: 'eth_gasPrice',
783
- // params: 0
784
- // })).createFunction(method.requestManager);
785
-
786
- // getGasPrice(function (err, gasPrice) {
787
- // console.log('debug1', gasPrice, payload)
788
-
789
- // if (gasPrice) {
790
- // payload.params[0].gasPrice = gasPrice;
791
- // }
792
-
793
- // console.log('debug2', gasPrice, payload)
794
-
795
- // if (isSendTx) {
796
- // setTimeout(() => {
797
- // defer.eventEmitter.emit('sending', payload);
798
- // }, 0);
799
- // }
800
-
801
- // sendRequest(payload, method);
802
- // });
803
-
804
- // } else {
805
- // if (isSendTx) {
806
- // setTimeout(() => {
807
- // defer.eventEmitter.emit('sending', payload);
808
- // }, 0);
809
- // }
810
-
811
- // sendRequest(payload, method);
812
- // }
813
-
814
773
// Send the actual transaction
815
774
if ( isSendTx
816
775
&& ! ! payload . params [ 0 ]
817
776
&& typeof payload . params [ 0 ] === 'object'
818
- && typeof payload . params [ 0 ] . gasPrice === 'undefined'
819
- // && (
820
- // typeof payload.params[0].gasPrice === 'undefined'
821
- // && (
822
- // typeof payload.params[0].maxPriorityFeePerGas === 'undefined'
823
- // || typeof payload.params[0].maxFeePerGas === 'undefined'
824
- // )
825
- // )
777
+ && (
778
+ typeof payload . params [ 0 ] . gasPrice === 'undefined'
779
+ && (
780
+ typeof payload . params [ 0 ] . maxPriorityFeePerGas === 'undefined'
781
+ || typeof payload . params [ 0 ] . maxFeePerGas === 'undefined'
782
+ )
783
+ )
826
784
) {
827
- // if (typeof payload.params[0].type === 'undefined')
828
- // payload.params[0].type = _handleTxType(payload.params[0]);
785
+ if ( typeof payload . params [ 0 ] . type === 'undefined' )
786
+ payload . params [ 0 ] . type = _handleTxType ( payload . params [ 0 ] ) ;
829
787
830
788
_handleTxPricing ( method , payload . params [ 0 ] ) . then ( txPricing => {
831
- console . log ( 'debug1' , payload )
832
- console . log ( 'debug3' , txPricing )
833
- if ( txPricing . gasPrice )
789
+ if ( txPricing . gasPrice !== undefined ) {
834
790
payload . params [ 0 ] . gasPrice = txPricing . gasPrice ;
835
- // payload.params[0] = {...payload.params[0], ...txPricing};
836
- console . log ( 'debug2' , payload )
791
+ } else if (
792
+ txPricing . maxPriorityFeePerGas !== undefined
793
+ && txPricing . maxFeePerGas !== undefined
794
+ ) {
795
+ payload . params [ 0 ] . maxPriorityFeePerGas = txPricing . maxPriorityFeePerGas ;
796
+ payload . params [ 0 ] . maxFeePerGas = txPricing . maxFeePerGas ;
797
+ }
837
798
838
799
if ( isSendTx ) {
839
800
setTimeout ( ( ) => {
@@ -912,62 +873,61 @@ function _handleTxType(tx) {
912
873
function _handleTxPricing ( method , tx ) {
913
874
return new Promise ( ( resolve , reject ) => {
914
875
try {
915
- // var getBlockByNumber = (new Method({
916
- // name: 'getBlockByNumber',
917
- // call: 'eth_getBlockByNumber',
918
- // params: 2,
919
- // inputFormatter: [function(blockNumber) {
920
- // return blockNumber ? utils.toHex(blockNumber) : 'latest'
921
- // }, function() {
922
- // return false
923
- // }]
924
- // })).createFunction(method.requestManager);
876
+ var getBlockByNumber = ( new Method ( {
877
+ name : 'getBlockByNumber' ,
878
+ call : 'eth_getBlockByNumber' ,
879
+ params : 2 ,
880
+ inputFormatter : [ function ( blockNumber ) {
881
+ return blockNumber ? utils . toHex ( blockNumber ) : 'latest'
882
+ } , function ( ) {
883
+ return false
884
+ } ]
885
+ } ) ) . createFunction ( method . requestManager ) ;
925
886
var getGasPrice = ( new Method ( {
926
887
name : 'getGasPrice' ,
927
888
call : 'eth_gasPrice' ,
928
889
params : 0
929
890
} ) ) . createFunction ( method . requestManager ) ;
930
891
931
- // if (tx.type < '0x2' && tx.gasPrice !== undefined) {
932
- // // Legacy transaction, return provided gasPrice
933
- // resolve({ gasPrice: tx.gasPrice })
934
- // } else {
892
+ if ( tx . type < '0x2' && tx . gasPrice !== undefined ) {
893
+ // Legacy transaction, return provided gasPrice
894
+ resolve ( { gasPrice : tx . gasPrice } )
895
+ } else {
935
896
Promise . all ( [
936
- // getBlockByNumber(),
897
+ getBlockByNumber ( ) ,
937
898
getGasPrice ( )
938
899
] ) . then ( responses => {
939
- const [ gasPrice ] = responses ;
940
- // const [block, gasPrice] = responses;
941
- // if (
942
- // (tx.type === '0x2') &&
943
- // block && block.baseFeePerGas
944
- // ) {
945
- // // The network supports EIP-1559
900
+ const [ block , gasPrice ] = responses ;
901
+ if (
902
+ ( tx . type === '0x2' ) &&
903
+ block && block . baseFeePerGas
904
+ ) {
905
+ // The network supports EIP-1559
946
906
947
- // // Taken from https://github.com/ethers-io/ethers.js/blob/ba6854bdd5a912fe873d5da494cb5c62c190adde/packages/abstract-provider/src.ts/index.ts#L230
948
- // let maxPriorityFeePerGas, maxFeePerGas;
907
+ // Taken from https://github.com/ethers-io/ethers.js/blob/ba6854bdd5a912fe873d5da494cb5c62c190adde/packages/abstract-provider/src.ts/index.ts#L230
908
+ let maxPriorityFeePerGas , maxFeePerGas ;
949
909
950
- // if (tx.gasPrice) {
951
- // // Using legacy gasPrice property on an eip-1559 network,
952
- // // so use gasPrice as both fee properties
953
- // maxPriorityFeePerGas = tx.gasPrice;
954
- // maxFeePerGas = tx.gasPrice;
955
- // delete tx.gasPrice;
956
- // } else {
957
- // maxPriorityFeePerGas = tx.maxPriorityFeePerGas || '0x3B9ACA00'; // 1 Gwei
958
- // maxFeePerGas = tx.maxFeePerGas ||
959
- // utils.toHex(
960
- // utils.toBN(block.baseFeePerGas)
961
- // .mul(utils.toBN(2))
962
- // .add(utils.toBN(maxPriorityFeePerGas))
963
- // );
964
- // }
965
- // resolve({ maxFeePerGas, maxPriorityFeePerGas });
966
- // } else {
967
- // if (tx.maxPriorityFeePerGas || tx.maxFeePerGas)
968
- // throw Error("Network doesn't support eip-1559")
910
+ if ( tx . gasPrice ) {
911
+ // Using legacy gasPrice property on an eip-1559 network,
912
+ // so use gasPrice as both fee properties
913
+ maxPriorityFeePerGas = tx . gasPrice ;
914
+ maxFeePerGas = tx . gasPrice ;
915
+ delete tx . gasPrice ;
916
+ } else {
917
+ maxPriorityFeePerGas = tx . maxPriorityFeePerGas || '0x3B9ACA00' ; // 1 Gwei
918
+ maxFeePerGas = tx . maxFeePerGas ||
919
+ utils . toHex (
920
+ utils . toBN ( block . baseFeePerGas )
921
+ . mul ( utils . toBN ( 2 ) )
922
+ . add ( utils . toBN ( maxPriorityFeePerGas ) )
923
+ ) ;
924
+ }
925
+ resolve ( { maxFeePerGas, maxPriorityFeePerGas } ) ;
926
+ } else {
927
+ if ( tx . maxPriorityFeePerGas || tx . maxFeePerGas )
928
+ throw Error ( "Network doesn't support eip-1559" )
969
929
resolve ( { gasPrice } ) ;
970
- // }
930
+ }
971
931
} )
972
932
// }
973
933
} catch ( error ) {
0 commit comments