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 }