@@ -1021,39 +1021,20 @@ func (cr *Cryptodotcom) GetFeeByType(ctx context.Context, feeBuilder *exchange.F
10211021 if feeBuilder == nil {
10221022 return 0 , fmt .Errorf ("%T %w" , feeBuilder , common .ErrNilPointer )
10231023 }
1024- if ! cr .AreCredentialsValid (ctx ) && // Todo check connection status
1024+ if ! cr .AreCredentialsValid (ctx ) &&
10251025 feeBuilder .FeeType == exchange .CryptocurrencyTradeFee {
10261026 feeBuilder .FeeType = exchange .OfflineTradeFee
10271027 }
1028-
10291028 var fee float64
1030-
10311029 switch feeBuilder .FeeType {
10321030 case exchange .CryptocurrencyTradeFee :
1033- fee = cr . calculateTradingFee (ctx , feeBuilder ) * feeBuilder .Amount * feeBuilder .PurchasePrice
1031+ fee = calculateTradingFee (feeBuilder ) * feeBuilder .Amount * feeBuilder .PurchasePrice
10341032 case exchange .CryptocurrencyWithdrawalFee :
1035- switch feeBuilder .Pair .Base {
1036- case currency .USDT :
1037- fee = 1.08
1038- case currency .TUSD :
1039- fee = 1.09
1040- case currency .BTC :
1041- fee = 0.0005
1042- case currency .ETH :
1043- fee = 0.01
1044- case currency .LTC :
1045- fee = 0.001
1046- }
1047- case exchange .InternationalBankDepositFee :
1048- fee = getInternationalBankDepositFee (feeBuilder .Amount )
1049- case exchange .InternationalBankWithdrawalFee :
1050- fee = getInternationalBankWithdrawalFee (feeBuilder .Amount )
1033+ fee = 0.5 * feeBuilder .PurchasePrice * feeBuilder .Amount
10511034 case exchange .OfflineTradeFee :
10521035 fee = getOfflineTradeFee (feeBuilder .PurchasePrice , feeBuilder .Amount )
10531036 }
10541037 return fee , nil
1055-
1056- return 0 , common .ErrNotYetImplemented
10571038}
10581039
10591040func (cr * Cryptodotcom ) checkCredentials (ctx context.Context ) bool {
@@ -1067,26 +1048,31 @@ func getOfflineTradeFee(price, amount float64) float64 {
10671048}
10681049
10691050// calculateTradingFee return fee based on users current fee tier or default values
1070- func (b * Cryptodotcom ) calculateTradingFee (ctx context.Context , feeBuilder * exchange.FeeBuilder ) float64 {
1071- formattedPair , err := b .FormatExchangeCurrency (feeBuilder .Pair , asset .Spot )
1072- if err != nil {
1051+ func calculateTradingFee (feeBuilder * exchange.FeeBuilder ) float64 {
1052+ switch {
1053+ case feeBuilder .Amount <= 250 :
1054+ return feeBuilder .PurchasePrice * feeBuilder .Amount * 0.075
1055+ case feeBuilder .Amount < 1000000 :
10731056 if feeBuilder .IsMaker {
1074- return 0.001
1057+ return feeBuilder . PurchasePrice * feeBuilder . Amount * 0.07
10751058 }
1076- return 0.002
1077- }
1078- feeTiers , err := dy .GetFeeInformation (ctx , formattedPair .String ())
1079- if err != nil {
1080- // TODO: Return actual error, we shouldn't pivot around errors.
1059+ return feeBuilder .PurchasePrice * feeBuilder .Amount * 0.072
1060+ case feeBuilder .Amount < 5000000 :
10811061 if feeBuilder .IsMaker {
1082- return 0.001
1062+ return feeBuilder . PurchasePrice * feeBuilder . Amount * 0.065
10831063 }
1084- return 0.002
1085- }
1086- if feeBuilder .IsMaker {
1087- return feeTiers [0 ].MakerFee
1064+ return feeBuilder .PurchasePrice * feeBuilder .Amount * 0.069
1065+ case feeBuilder .Amount <= 10000000 :
1066+ if feeBuilder .IsMaker {
1067+ return feeBuilder .PurchasePrice * feeBuilder .Amount * 0.06
1068+ }
1069+ return feeBuilder .PurchasePrice * feeBuilder .Amount * 0.065
1070+ default :
1071+ if ! feeBuilder .IsMaker {
1072+ return feeBuilder .PurchasePrice * feeBuilder .Amount * 0.05
1073+ }
1074+ return 0
10881075 }
1089- return feeTiers [0 ].TakerFee
10901076}
10911077
10921078// ValidateCredentials validates current credentials used for wrapper
0 commit comments