@@ -27,7 +27,9 @@ import (
27
27
"github.com/spacemeshos/go-spacemesh/sql/transactions"
28
28
"github.com/spacemeshos/go-spacemesh/system"
29
29
"github.com/spacemeshos/go-spacemesh/vm/core"
30
+ "github.com/spacemeshos/go-spacemesh/vm/templates/mint"
30
31
"github.com/spacemeshos/go-spacemesh/vm/templates/multisig"
32
+ tokenwallet "github.com/spacemeshos/go-spacemesh/vm/templates/token_wallet"
31
33
"github.com/spacemeshos/go-spacemesh/vm/templates/wallet"
32
34
)
33
35
@@ -451,6 +453,19 @@ func toTxContents(rawTx []byte, header *types.TxHeader) (
451
453
},
452
454
}
453
455
txType = spacemeshv2alpha1 .Transaction_TRANSACTION_TYPE_DEPLOY
456
+ case * wallet.ProxyArgs :
457
+ contents := & spacemeshv2alpha1.TransactionContents_Proxy {
458
+ Proxy : & spacemeshv2alpha1.ContentsProxy {
459
+ Destination : args .Destination .String (),
460
+ Amount : args .Amount ,
461
+ },
462
+ }
463
+ if args .Method != nil {
464
+ contents .Proxy .Method = args .Method [:]
465
+ }
466
+ res .Contents = contents
467
+ txType = spacemeshv2alpha1 .Transaction_TRANSACTION_TYPE_PROXY
468
+
454
469
}
455
470
case multisig .TemplateAddress :
456
471
txArgs , err := multisig .ParseArgs (payload )
@@ -486,6 +501,54 @@ func toTxContents(rawTx []byte, header *types.TxHeader) (
486
501
}
487
502
txType = spacemeshv2alpha1 .Transaction_TRANSACTION_TYPE_DEPLOY
488
503
}
504
+ case mint .TemplateAddress :
505
+ txArgs , err := mint .ParseArgs (payload )
506
+ if err != nil {
507
+ return nil , txType , fmt .Errorf ("%w: decoding TX args: %w" , core .ErrMalformed , err )
508
+ }
509
+ switch args := txArgs .(type ) {
510
+ case * mint.SpawnArguments :
511
+ res .Contents = & spacemeshv2alpha1.TransactionContents_MintSpawn {
512
+ MintSpawn : & spacemeshv2alpha1.ContentsMintSpawn {
513
+ Pubkey : args .Owner .String (),
514
+ MaxSupply : args .MaxSupply ,
515
+ Price : args .Price ,
516
+ },
517
+ }
518
+ txType = spacemeshv2alpha1 .Transaction_TRANSACTION_TYPE_MINT_SPAWN
519
+ }
520
+ case tokenwallet .TemplateAddress :
521
+ txArgs , err := tokenwallet .ParseArgs (payload )
522
+ if err != nil {
523
+ return nil , txType , fmt .Errorf ("%w: decoding TX args: %w" , core .ErrMalformed , err )
524
+ }
525
+ switch args := txArgs .(type ) {
526
+ case * tokenwallet.SpawnArguments :
527
+ res .Contents = & spacemeshv2alpha1.TransactionContents_TokenWalletSpawn {
528
+ TokenWalletSpawn : & spacemeshv2alpha1.ContentsTokenWalletSpawn {
529
+ Pubkey : args .Owner .String (),
530
+ MintTemplate : args .MintTemplate .String (),
531
+ WalletTemplate : args .WalletTemplate .String (),
532
+ },
533
+ }
534
+ txType = spacemeshv2alpha1 .Transaction_TRANSACTION_TYPE_TOKEN_WALLET_SPAWN
535
+ case * tokenwallet.SendTokenArguments :
536
+ res .Contents = & spacemeshv2alpha1.TransactionContents_TokenWalletSendToken {
537
+ TokenWalletSendToken : & spacemeshv2alpha1.ContentsTokenWalletSendToken {
538
+ Destination : args .To .String (),
539
+ Amount : args .Amount ,
540
+ TokenId : args .TokenId .String (),
541
+ },
542
+ }
543
+ txType = spacemeshv2alpha1 .Transaction_TRANSACTION_TYPE_TOKEN_WALLET_SEND_TOKEN
544
+ case * tokenwallet.SpendArguments :
545
+ res .Contents = & spacemeshv2alpha1.TransactionContents_Send {
546
+ Send : & spacemeshv2alpha1.ContentsSend {
547
+ Destination : args .To .String (),
548
+ Amount : args .Amount ,
549
+ },
550
+ }
551
+ }
489
552
}
490
553
491
554
return res , txType , nil
0 commit comments