func Bond(nodeAddr, signAddr, pubkey, unbondAddr, amtS, nonceS string) (*types.BondTx, error) { pub, amt, nonce, err := checkCommon(nodeAddr, signAddr, pubkey, "", amtS, nonceS) if err != nil { return nil, err } var pubKey account.PubKeyEd25519 var unbondAddrBytes []byte if unbondAddr == "" { pkb, _ := hex.DecodeString(pubkey) copy(pubKey[:], pkb) unbondAddrBytes = pubKey.Address() } else { unbondAddrBytes, err = hex.DecodeString(unbondAddr) if err != nil { return nil, fmt.Errorf("unbondAddr is bad hex: %v", err) } } tx, err := types.NewBondTx(pub) if err != nil { return nil, err } tx.AddInputWithNonce(pub, amt, int(nonce)) tx.AddOutput(unbondAddrBytes, amt) return tx, nil }
func verifyChallengeSignature(challenge *[32]byte, remPubKey acm.PubKeyEd25519, remSignature acm.SignatureEd25519) bool { return remPubKey.VerifyBytes(challenge[:], remSignature) }