Skip to content

Commit cd9bf88

Browse files
committed
feat: add inputs and feePayer to WASM explain return
Populate the inputs and feePayer fields in explainSolTransaction so consumers (wallet-platform) can call the SDK instead of wasm-solana directly. Update 26 test assertions to expect these new fields. BTC-3025 TICKET: BTC-0
1 parent 1f75157 commit cd9bf88

3 files changed

Lines changed: 185 additions & 0 deletions

File tree

modules/sdk-coin-sol/src/lib/explainTransactionWasm.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,11 @@ export function explainSolTransaction(params: ExplainTransactionWasmOptions): So
6060
...(o.tokenName ? { tokenName: findTokenName(o.tokenName, undefined, true) } : {}),
6161
}));
6262

63+
const inputs = explained.inputs.map((i) => ({
64+
address: i.address,
65+
value: String(i.value),
66+
}));
67+
6368
// Build tokenEnablements with resolved token names
6469
const tokenEnablements: ITokenEnablement[] = explained.tokenEnablements.map((te) => ({
6570
address: te.address,
@@ -89,6 +94,8 @@ export function explainSolTransaction(params: ExplainTransactionWasmOptions): So
8994
changeAmount: '0',
9095
outputAmount: String(explained.outputAmount),
9196
outputs,
97+
inputs,
98+
feePayer: explained.feePayer,
9299
fee: {
93100
fee: params.feeInfo ? String(explained.fee) : '0',
94101
feeRate: params.feeInfo ? Number(params.feeInfo.fee) : undefined,

modules/sdk-coin-sol/test/unit/sol.ts

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -901,6 +901,13 @@ describe('SOL:', function () {
901901
amount: '300000',
902902
},
903903
],
904+
inputs: [
905+
{
906+
address: '5hr5fisPi6DXNuuRpm5XUbzpiEnmdyxXuBDTwzwZj5Pe',
907+
value: '300000',
908+
},
909+
],
910+
feePayer: '5hr5fisPi6DXNuuRpm5XUbzpiEnmdyxXuBDTwzwZj5Pe',
904911
fee: {
905912
fee: '5000',
906913
feeRate: 5000,
@@ -948,6 +955,13 @@ describe('SOL:', function () {
948955
amount: '300000',
949956
},
950957
],
958+
inputs: [
959+
{
960+
address: '5hr5fisPi6DXNuuRpm5XUbzpiEnmdyxXuBDTwzwZj5Pe',
961+
value: '300000',
962+
},
963+
],
964+
feePayer: '5hr5fisPi6DXNuuRpm5XUbzpiEnmdyxXuBDTwzwZj5Pe',
951965
fee: {
952966
fee: '5000',
953967
feeRate: 5000,
@@ -996,6 +1010,13 @@ describe('SOL:', function () {
9961010
amount: '300000',
9971011
},
9981012
],
1013+
inputs: [
1014+
{
1015+
address: '5hr5fisPi6DXNuuRpm5XUbzpiEnmdyxXuBDTwzwZj5Pe',
1016+
value: '300000',
1017+
},
1018+
],
1019+
feePayer: '5hr5fisPi6DXNuuRpm5XUbzpiEnmdyxXuBDTwzwZj5Pe',
9991020
fee: {
10001021
fee: '10000',
10011022
feeRate: 5000,
@@ -1041,6 +1062,13 @@ describe('SOL:', function () {
10411062
amount: '300000',
10421063
},
10431064
],
1065+
inputs: [
1066+
{
1067+
address: '5hr5fisPi6DXNuuRpm5XUbzpiEnmdyxXuBDTwzwZj5Pe',
1068+
value: '300000',
1069+
},
1070+
],
1071+
feePayer: '5hr5fisPi6DXNuuRpm5XUbzpiEnmdyxXuBDTwzwZj5Pe',
10441072
fee: {
10451073
fee: '10000',
10461074
feeRate: 5000,
@@ -1086,6 +1114,13 @@ describe('SOL:', function () {
10861114
tokenName: 'tsol:usdc',
10871115
},
10881116
],
1117+
inputs: [
1118+
{
1119+
address: '12f6D3WubGVeQoH2m8kTvvcrasWdXWwtVzUCyRNDZxA2',
1120+
value: '300000',
1121+
},
1122+
],
1123+
feePayer: '12f6D3WubGVeQoH2m8kTvvcrasWdXWwtVzUCyRNDZxA2',
10891124
fee: {
10901125
fee: '5000',
10911126
feeRate: 5000,
@@ -1134,6 +1169,13 @@ describe('SOL:', function () {
11341169
tokenName: 'tsol:usdc',
11351170
},
11361171
],
1172+
inputs: [
1173+
{
1174+
address: '12f6D3WubGVeQoH2m8kTvvcrasWdXWwtVzUCyRNDZxA2',
1175+
value: '300000',
1176+
},
1177+
],
1178+
feePayer: '12f6D3WubGVeQoH2m8kTvvcrasWdXWwtVzUCyRNDZxA2',
11371179
fee: {
11381180
fee: '5000',
11391181
feeRate: 5000,
@@ -1192,6 +1234,13 @@ describe('SOL:', function () {
11921234
amount: '10000',
11931235
},
11941236
],
1237+
inputs: [
1238+
{
1239+
address: '5hr5fisPi6DXNuuRpm5XUbzpiEnmdyxXuBDTwzwZj5Pe',
1240+
value: '10000',
1241+
},
1242+
],
1243+
feePayer: '5hr5fisPi6DXNuuRpm5XUbzpiEnmdyxXuBDTwzwZj5Pe',
11951244
fee: {
11961245
fee: '10000',
11971246
feeRate: 5000,
@@ -1240,6 +1289,8 @@ describe('SOL:', function () {
12401289
changeAmount: '0',
12411290
outputAmount: '0',
12421291
outputs: [],
1292+
inputs: [],
1293+
feePayer: '5hr5fisPi6DXNuuRpm5XUbzpiEnmdyxXuBDTwzwZj5Pe',
12431294
fee: {
12441295
fee: '5000',
12451296
feeRate: 5000,
@@ -1294,6 +1345,13 @@ describe('SOL:', function () {
12941345
amount: '10000',
12951346
},
12961347
],
1348+
inputs: [
1349+
{
1350+
address: '7dRuGFbU2y2kijP6o1LYNzVyz4yf13MooqoionCzv5Za',
1351+
value: '10000',
1352+
},
1353+
],
1354+
feePayer: '5hr5fisPi6DXNuuRpm5XUbzpiEnmdyxXuBDTwzwZj5Pe',
12971355
fee: {
12981356
fee: '5000',
12991357
feeRate: 5000,
@@ -1346,6 +1404,8 @@ describe('SOL:', function () {
13461404
changeAmount: '0',
13471405
outputAmount: '0',
13481406
outputs: [],
1407+
inputs: [],
1408+
feePayer: '5hr5fisPi6DXNuuRpm5XUbzpiEnmdyxXuBDTwzwZj5Pe',
13491409
fee: {
13501410
fee: '3005000',
13511411
feeRate: 5000,
@@ -1416,6 +1476,8 @@ describe('SOL:', function () {
14161476
changeAmount: '0',
14171477
outputAmount: '0',
14181478
outputs: [],
1479+
inputs: [],
1480+
feePayer: '5hr5fisPi6DXNuuRpm5XUbzpiEnmdyxXuBDTwzwZj5Pe',
14191481
fee: {
14201482
fee: '6005000',
14211483
feeRate: 5000,
@@ -1476,6 +1538,13 @@ describe('SOL:', function () {
14761538
tokenName: 'tsol:usdc',
14771539
},
14781540
],
1541+
inputs: [
1542+
{
1543+
address: '5U3bH5b6XtG99aVWLqwVzYPVpQiFHytBD68Rz2eFPZd7',
1544+
value: '10000',
1545+
},
1546+
],
1547+
feePayer: '5U3bH5b6XtG99aVWLqwVzYPVpQiFHytBD68Rz2eFPZd7',
14791548
fee: { fee: '3005000', feeRate: 5000 },
14801549
memo: undefined,
14811550
blockhash: '27E3MXFvXMUNYeMJeX1pAbERGsJfUbkaZTfgMgpmNN5g',

modules/sdk-coin-sol/test/unit/transaction.ts

Lines changed: 109 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -259,6 +259,13 @@ describe('Sol Transaction', () => {
259259
amount: '10000',
260260
},
261261
],
262+
inputs: [
263+
{
264+
address: sender,
265+
value: '10000',
266+
},
267+
],
268+
feePayer: sender,
262269
fee: {
263270
fee: '5000',
264271
feeRate: 5000,
@@ -305,6 +312,13 @@ describe('Sol Transaction', () => {
305312
amount: '10000',
306313
},
307314
],
315+
inputs: [
316+
{
317+
address: sender,
318+
value: '10000',
319+
},
320+
],
321+
feePayer: sender,
308322
fee: {
309323
fee: '0',
310324
feeRate: undefined,
@@ -365,6 +379,21 @@ describe('Sol Transaction', () => {
365379
amount: '10000',
366380
},
367381
],
382+
inputs: [
383+
{
384+
address: sender,
385+
value: '10000',
386+
},
387+
{
388+
address: sender,
389+
value: '10000',
390+
},
391+
{
392+
address: sender,
393+
value: '10000',
394+
},
395+
],
396+
feePayer: sender,
368397
fee: {
369398
fee: '0',
370399
feeRate: undefined,
@@ -416,6 +445,13 @@ describe('Sol Transaction', () => {
416445
amount: '10000',
417446
},
418447
],
448+
inputs: [
449+
{
450+
address: sender,
451+
value: '10000',
452+
},
453+
],
454+
feePayer: sender,
419455
fee: {
420456
fee: '5000',
421457
feeRate: 5000,
@@ -464,6 +500,13 @@ describe('Sol Transaction', () => {
464500
amount: '10000',
465501
},
466502
],
503+
inputs: [
504+
{
505+
address: sender,
506+
value: '10000',
507+
},
508+
],
509+
feePayer: sender,
467510
fee: {
468511
fee: '10000',
469512
feeRate: 5000,
@@ -512,6 +555,13 @@ describe('Sol Transaction', () => {
512555
amount: '10000',
513556
},
514557
],
558+
inputs: [
559+
{
560+
address: sender,
561+
value: '10000',
562+
},
563+
],
564+
feePayer: sender,
515565
fee: {
516566
fee: '0',
517567
feeRate: undefined,
@@ -564,6 +614,13 @@ describe('Sol Transaction', () => {
564614
amount: '10000',
565615
},
566616
],
617+
inputs: [
618+
{
619+
address: sender,
620+
value: '10000',
621+
},
622+
],
623+
feePayer: sender,
567624
fee: {
568625
fee: '10000',
569626
feeRate: 5000,
@@ -687,6 +744,13 @@ describe('Sol Transaction', () => {
687744
amount: '10000',
688745
},
689746
],
747+
inputs: [
748+
{
749+
address: sender,
750+
value: '10000',
751+
},
752+
],
753+
feePayer: sender,
690754
fee: {
691755
fee: '10000',
692756
feeRate: 5000,
@@ -731,6 +795,8 @@ describe('Sol Transaction', () => {
731795
changeAmount: '0',
732796
outputAmount: '0',
733797
outputs: [],
798+
inputs: [],
799+
feePayer: sender,
734800
fee: {
735801
fee: '5000',
736802
feeRate: 5000,
@@ -780,6 +846,13 @@ describe('Sol Transaction', () => {
780846
amount: '10000',
781847
},
782848
],
849+
inputs: [
850+
{
851+
address: stakeAccount.pub,
852+
value: '10000',
853+
},
854+
],
855+
feePayer: sender,
783856
fee: {
784857
fee: '5000',
785858
feeRate: 5000,
@@ -830,6 +903,13 @@ describe('Sol Transaction', () => {
830903
amount: '10000',
831904
},
832905
],
906+
inputs: [
907+
{
908+
address: stakeAccount.pub,
909+
value: '10000',
910+
},
911+
],
912+
feePayer: sender,
833913
fee: {
834914
fee: '5000',
835915
feeRate: 5000,
@@ -881,6 +961,13 @@ describe('Sol Transaction', () => {
881961
tokenName: 'tsol:usdc',
882962
},
883963
],
964+
inputs: [
965+
{
966+
address: sender,
967+
value: '10000',
968+
},
969+
],
970+
feePayer: sender,
884971
fee: {
885972
fee: '5000',
886973
feeRate: 5000,
@@ -938,6 +1025,13 @@ describe('Sol Transaction', () => {
9381025
tokenName: 'F4uLeXioFz3hw13MposuwaQbMcZbCjqvEGPPeRRB1Byf',
9391026
},
9401027
],
1028+
inputs: [
1029+
{
1030+
address: sender,
1031+
value: '10000',
1032+
},
1033+
],
1034+
feePayer: sender,
9411035
fee: {
9421036
fee: '5000',
9431037
feeRate: 5000,
@@ -998,6 +1092,21 @@ describe('Sol Transaction', () => {
9981092
tokenName: 'tsol:usdc',
9991093
},
10001094
],
1095+
inputs: [
1096+
{
1097+
address: sender,
1098+
value: '10000',
1099+
},
1100+
{
1101+
address: sender,
1102+
value: '10000',
1103+
},
1104+
{
1105+
address: sender,
1106+
value: '10000',
1107+
},
1108+
],
1109+
feePayer: sender,
10011110
fee: {
10021111
fee: '0',
10031112
feeRate: undefined,

0 commit comments

Comments
 (0)