github.com/halybang/go-ethereum@v1.0.5-0.20180325041310-3b262bc1367c/internal/ethapi/api_test.go (about) 1 // Copyright 2018 Wanchain Foundation Ltd 2 3 package ethapi 4 5 import ( 6 "context" 7 "testing" 8 "time" 9 10 "github.com/wanchain/go-wanchain/common" 11 ) 12 13 func TestGenerateOneTimeAddress(t *testing.T) { 14 s := new(PublicTransactionPoolAPI) 15 16 vailidWaddrs := []string{ 17 "0x02e37be2aa12f3df03953c0a172d0f964a1561f321120c8dfa061df35dac4d52d0030dfc2b696438f942a9c187edb10691346a0d68cdfbbc590f85ba46f3b5f9e2a9", 18 "0x03a8aa21dc331a4471c0d32b4a1032812297c4c201acb48286279b701c990ea35a037061ac75a8a89b2dc4454953275edaced7d3ae16ac0ddce5fbddd2bc04bfe16d", 19 "0x024230cabb18b57b216e4f2865090e5a042150704a1c020b2ba87d319b7d3b5c5703fa8e37f3707803978c5e154ce05b251d82dd4247712493df9a094d62a17bbd97", 20 "0x03059dee5729f28b64edd3e4c79e18af99e155acd1c66aadd81b01e8a43c3150f50240bf3059bcf95ac65ddd71b74fedd5800c1c90a4ae376f3319dffeda3990a6a8", 21 "0x03918d923c5cd59e5bbc04efd595b21a9248783a4f3d7dc149a0202646db03779d023acb92fbca55476154a90447b784cbdfde6270fd8acb8170b03178285ba44e6d", 22 } 23 24 ctx, cancel := context.WithTimeout(context.Background(), 200*time.Millisecond) 25 defer cancel() 26 27 for _, waddr := range vailidWaddrs { 28 ota, err := s.GenerateOneTimeAddress(ctx, waddr) 29 if err != nil { 30 t.Errorf("waddr:%s, err:%s", waddr, err.Error()) 31 } 32 33 if len(ota) != common.WAddressLength*2+2 { 34 t.Errorf("invalid ota length! waddr:%s, ota:%s", waddr, ota) 35 } 36 37 if ota[0] != '0' || (ota[1] != 'x' && ota[1] != 'X') { 38 t.Errorf("invalid ota! waddr:%s, ota:%s", waddr, ota) 39 } 40 } 41 42 invalidWaddr := []string{ 43 "", 44 "4324324242", 45 "0x324324324324", 46 "dsfsfsfds", 47 "0xfsfdsfdsfhhhhjj", 48 "0x5435436lefjeerw9998", 49 "0x03918d923c5cd59e5bbc04efd595b21a9248783a4f3d7dc149a0202646db03779d023acb92fbca55476154a90447b784cbdfde6270fd8acb8170b03178285ba44e6d654654", 50 } 51 52 for _, waddr := range invalidWaddr { 53 ota, err := s.GenerateOneTimeAddress(ctx, waddr) 54 if err == nil { 55 t.Errorf("succeed from invalid wanaddress. waddr:%s, ota:%s", waddr, ota) 56 } 57 } 58 }