Import Hendrik's vaa-test
This commit is contained in:
parent
e548bbbee3
commit
9171eb89cb
|
@ -0,0 +1,123 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"crypto/ecdsa"
|
||||
"encoding/hex"
|
||||
"github.com/certusone/wormhole/bridge/pkg/vaa"
|
||||
"github.com/ethereum/go-ethereum/common"
|
||||
"github.com/ethereum/go-ethereum/crypto"
|
||||
"math/big"
|
||||
"math/rand"
|
||||
"time"
|
||||
)
|
||||
|
||||
|
||||
func main() {
|
||||
addr := common.HexToAddress("0x90F8bf6A479f320ead074411a4B0e7944Ea8c9C1")
|
||||
addrP := common.LeftPadBytes(addr[:], 32)
|
||||
addrTarget := vaa.Address{}
|
||||
copy(addrTarget[:], addrP)
|
||||
|
||||
tAddr := common.HexToAddress("0x0000000000000000000000009561c133dd8580860b6b7e504bc5aa500f0f06a7")
|
||||
tAddrP := common.LeftPadBytes(tAddr[:], 32)
|
||||
tAddrTarget := vaa.Address{}
|
||||
copy(tAddrTarget[:], tAddrP)
|
||||
v := &vaa.VAA{
|
||||
Version: 1,
|
||||
GuardianSetIndex: 2,
|
||||
Timestamp: time.Unix(4000, 0),
|
||||
Payload: &vaa.BodyTransfer{
|
||||
Nonce: 56,
|
||||
SourceChain: 1,
|
||||
TargetChain: 2,
|
||||
SourceAddress: vaa.Address{2, 1, 4},
|
||||
TargetAddress: addrTarget,
|
||||
Asset: &vaa.AssetMeta{
|
||||
Chain: vaa.ChainIDSolana,
|
||||
Address: tAddrTarget,
|
||||
},
|
||||
Amount: big.NewInt(1000000000000000000),
|
||||
},
|
||||
}
|
||||
|
||||
r := rand.New(rand.NewSource(555))
|
||||
key, err := ecdsa.GenerateKey(crypto.S256(), r)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
key2, err := ecdsa.GenerateKey(crypto.S256(), r)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
key3, err := ecdsa.GenerateKey(crypto.S256(), r)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
key4, err := ecdsa.GenerateKey(crypto.S256(), r)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
key5, err := ecdsa.GenerateKey(crypto.S256(), r)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
key6, err := ecdsa.GenerateKey(crypto.S256(), r)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
//v = &vaa.VAA{
|
||||
// Version: 1,
|
||||
// GuardianSetIndex: 1,
|
||||
// Timestamp: time.Unix(5000, 0),
|
||||
// Payload: &vaa.BodyGuardianSetUpdate{
|
||||
// Keys: []common.Address{
|
||||
// crypto.PubkeyToAddress(key.PublicKey),
|
||||
// crypto.PubkeyToAddress(key2.PublicKey),
|
||||
// crypto.PubkeyToAddress(key3.PublicKey),
|
||||
// crypto.PubkeyToAddress(key4.PublicKey),
|
||||
// crypto.PubkeyToAddress(key5.PublicKey),
|
||||
// crypto.PubkeyToAddress(key6.PublicKey),
|
||||
// },
|
||||
// NewIndex: 2,
|
||||
// },
|
||||
//}
|
||||
|
||||
AddSignature(v,key,0)
|
||||
AddSignature(v,key2,1)
|
||||
AddSignature(v,key3,2)
|
||||
AddSignature(v,key5,4)
|
||||
AddSignature(v,key6,5)
|
||||
sigAddr := crypto.PubkeyToAddress(key.PublicKey)
|
||||
println(sigAddr.String())
|
||||
println(crypto.PubkeyToAddress(key2.PublicKey).String())
|
||||
println(crypto.PubkeyToAddress(key3.PublicKey).String())
|
||||
println(crypto.PubkeyToAddress(key4.PublicKey).String())
|
||||
println(crypto.PubkeyToAddress(key5.PublicKey).String())
|
||||
println(crypto.PubkeyToAddress(key6.PublicKey).String())
|
||||
|
||||
vData, err := v.Serialize()
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
println(hex.EncodeToString(vData))
|
||||
}
|
||||
|
||||
func AddSignature(v *vaa.VAA, key *ecdsa.PrivateKey,index uint8){
|
||||
data, err := v.SigningMsg()
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
sig, err := crypto.Sign(data.Bytes(), key)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
sigData := [65]byte{}
|
||||
copy(sigData[:], sig)
|
||||
|
||||
v.Signatures = append(v.Signatures, &vaa.Signature{
|
||||
Index: index,
|
||||
Signature: sigData,
|
||||
})
|
||||
}
|
Loading…
Reference in New Issue