Skip to content

Commit 0d9160f

Browse files
committed
test(sia): update test to use standard withdrawresult model
1 parent f3b8609 commit 0d9160f

3 files changed

Lines changed: 32 additions & 38 deletions

File tree

packages/komodo_defi_rpc_methods/lib/src/common_structures/activation/activation_params/sia_activation_params.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ class SiaActivationParams extends ActivationParams {
1616
this.password,
1717
this.txHistory = true,
1818
super.requiredConfirmations,
19-
PrivateKeyPolicy super.privKeyPolicy,
19+
super.privKeyPolicy,
2020
});
2121

2222
/// Creates [SiaActivationParams] from a coins-config JSON entry.
Lines changed: 24 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
1+
import 'package:decimal/decimal.dart';
12
import 'package:flutter_test/flutter_test.dart';
23
import 'package:komodo_defi_rpc_methods/komodo_defi_rpc_methods.dart';
34
import 'package:komodo_defi_types/komodo_defi_type_utils.dart';
5+
import 'package:komodo_defi_types/komodo_defi_types.dart';
46

57
void main() {
68
group('SIA RPC', () {
@@ -25,37 +27,34 @@ void main() {
2527
});
2628

2729
test('SiaWithdrawResponse parses full SIA withdraw shape', () {
28-
final response = {
29-
'mmrpc': '2.0',
30-
'result': {
31-
'tx_json': <String, dynamic>{'siacoinOutputs': <dynamic>[]},
32-
'tx_hash': 'hash',
33-
'from': ['from_addr'],
34-
'to': ['to_addr'],
35-
'total_amount': '10',
36-
'spent_by_me': '0',
37-
'received_by_me': '100',
38-
'my_balance_change': '100',
39-
'block_height': 1,
40-
'timestamp': 123456,
41-
'fee_details': {
42-
'type': 'Sia',
43-
'coin': 'SC',
44-
'policy': 'Fixed',
45-
'total_amount': '0.1',
46-
},
30+
final responseResult = {
31+
'tx_json': <String, dynamic>{'siacoinOutputs': <dynamic>[]},
32+
'tx_hash': 'hash',
33+
'from': ['from_addr'],
34+
'to': ['to_addr'],
35+
'total_amount': '10',
36+
'spent_by_me': '0',
37+
'received_by_me': '100',
38+
'my_balance_change': '100',
39+
'block_height': 1,
40+
'timestamp': 123456,
41+
'fee_details': {
42+
'type': 'Sia',
4743
'coin': 'SC',
48-
'internal_id': '',
49-
'transaction_type': 'SiaV2Transaction',
50-
'memo': null,
44+
'policy': 'Fixed',
45+
'total_amount': '0.1',
5146
},
47+
'coin': 'SC',
48+
'internal_id': '',
49+
'transaction_type': 'SiaV2Transaction',
50+
'memo': null,
5251
};
53-
final parsed = SiaWithdrawResponse.parse(JsonMap.of(response));
52+
final parsed = WithdrawResult.fromJson(JsonMap.of(responseResult));
5453
expect(parsed.txHash, 'hash');
5554
expect(parsed.from, <String>['from_addr']);
5655
expect(parsed.to, <String>['to_addr']);
57-
expect(parsed.totalAmount, '10');
58-
expect(parsed.feeDetails.coin, 'SC');
56+
expect(parsed.balanceChanges.totalAmount, Decimal.fromInt(10));
57+
expect(parsed.fee.coin, 'SC');
5958
});
6059
});
6160
}

packages/komodo_defi_types/lib/src/transactions/fee_info.dart

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -37,17 +37,6 @@ sealed class FeeInfo with _$FeeInfo {
3737
coin: json['coin'] as String? ?? '',
3838
amount: Decimal.parse(json['amount'] as String),
3939
);
40-
case 'Sia':
41-
final rawTotal =
42-
json['total_amount'] ??
43-
json['amount']; // some examples use total_amount
44-
if (rawTotal == null) {
45-
throw ArgumentError('Sia fee_details missing total_amount/amount');
46-
}
47-
return FeeInfo.utxoFixed(
48-
coin: json['coin'] as String? ?? '',
49-
amount: Decimal.parse(rawTotal.toString()),
50-
);
5140
case 'EthGas' || 'Eth':
5241
final totalGasFee = json['total_fee'] != null
5342
? Decimal.parse(json['total_fee'].toString())
@@ -96,9 +85,15 @@ sealed class FeeInfo with _$FeeInfo {
9685
gasLimit: json['gas_limit'] as int,
9786
);
9887
case 'Sia':
88+
final rawTotal =
89+
json['total_amount'] ??
90+
json['amount']; // some examples use total_amount
91+
if (rawTotal == null) {
92+
throw ArgumentError('Sia fee_details missing total_amount/amount');
93+
}
9994
return FeeInfo.sia(
10095
coin: json['coin'] as String? ?? '',
101-
amount: Decimal.parse(json['total_amount'].toString()),
96+
amount: Decimal.parse(rawTotal.toString()),
10297
policy: json['policy'] as String? ?? 'Fixed',
10398
);
10499
default:

0 commit comments

Comments
 (0)