github.com/hungdoo/bot@v0.0.0-20240325145135-dd1f386f7b81/src/packages/command/tomb/command_test.go (about)

     1  package tomb
     2  
     3  import (
     4  	"fmt"
     5  	"log"
     6  	"testing"
     7  	"time"
     8  
     9  	"github.com/hungdoo/bot/src/packages/tombplus"
    10  )
    11  
    12  func TestLoadSecretFile(t *testing.T) {
    13  	pk, err := LoadSecrets(0, "16-byte-key12345")
    14  	if err != nil {
    15  		log.Fatal("LoadSecret error:", err)
    16  	}
    17  	addess, err := tombplus.AddressFromPriKey(pk)
    18  	if err != nil {
    19  		log.Fatal("AddressFromPriKey error:", err)
    20  	}
    21  	t.Log(addess)
    22  	if addess.String() != "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266" {
    23  		t.Errorf("Not same address")
    24  	}
    25  
    26  	pk, err = LoadSecrets(1, "16-byte-key12399")
    27  	if err != nil {
    28  		log.Fatal("LoadSecret error:", err)
    29  	}
    30  	addess, err = tombplus.AddressFromPriKey(pk)
    31  	if err != nil {
    32  		log.Fatal("AddressFromPriKey error:", err)
    33  	}
    34  	if addess.String() != "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266" {
    35  		t.Errorf("Not same address")
    36  	}
    37  }
    38  func TestSecret(t *testing.T) {
    39  	// Example plaintext secret
    40  	plaintextSecrets := map[string]string{ // [16-byte-key12345]:"k"
    41  		"16-byte-key12345": "ac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80",
    42  		"16-byte-key12399": "ac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80",
    43  	}
    44  
    45  	for k, s := range plaintextSecrets {
    46  		// Encrypt the secret
    47  		encryptedSecret, err := Encrypt([]byte(s), []byte(k))
    48  		if err != nil {
    49  			log.Fatal("Encryption error:", err)
    50  		}
    51  
    52  		// Print the encrypted secret (this is what you would store or transmit)
    53  		fmt.Println("Encrypted Secret:", encryptedSecret)
    54  
    55  		// Decrypt the secret
    56  		decryptedSecret, err := Decrypt(encryptedSecret, []byte(k))
    57  		if err != nil {
    58  			log.Fatal("Decryption error:", err)
    59  		}
    60  
    61  		// Print the decrypted secret
    62  		fmt.Println("Decrypted Secret:", string(decryptedSecret))
    63  	}
    64  }
    65  
    66  func TestTombCommand(t *testing.T) {
    67  	cmd := TombCommand{
    68  		Rpc:      "https://rpc3.fantom.network",
    69  		Contract: "0xA979F47480b4B598bf6a8bFA73aC0B6aEccBa505",
    70  		Up:       true,
    71  		PkIdx:    1,
    72  		Key:      "aaa",
    73  		User:     "0xA979F47480b4B598bf6a8bFA73aC0B6aEccBa505",
    74  	}
    75  
    76  	// Set time
    77  	res, err := cmd.Execute(true, "")
    78  	if err != nil {
    79  		t.Error(err)
    80  	}
    81  	t.Logf("set time: %v\nTimestamps: %v/%v", res, cmd.VoteEndTimestamp, cmd.NextEpochTimestamp)
    82  
    83  	// Early
    84  	res, err = cmd.Execute(true, "")
    85  	if err != nil {
    86  		t.Error(err)
    87  	}
    88  	t.Logf("early: %v", res)
    89  
    90  	// Mock VoteEnd 4m before now -> vote too late
    91  	cmd.VoteEndTimestamp = time.Now().Add(-4 * time.Minute)
    92  	res, err = cmd.Execute(true, "")
    93  	if err != nil {
    94  		t.Error(err)
    95  	}
    96  	t.Logf("VoteEnd 4m before now: %v", res)
    97  
    98  	// Mock VoteEnd 4m after now -> vote window
    99  	cmd.VoteEndTimestamp = time.Now().Add(4 * time.Minute)
   100  	res, err = cmd.Execute(true, "")
   101  	if err != nil {
   102  		t.Error(err)
   103  	}
   104  	t.Logf("VoteEnd 4m after now: %v", res)
   105  }