Documentation ¶
Index ¶
- Constants
- func GetLockScriptArgsFromShortAddress(address string) (string, error)
- func GetShortAddressFromLockScriptArgs(args string, isTestNet bool) (string, error)
- type CkbWalletObj
- type EllipticCurve
- func (ec *EllipticCurve) Add(P, Q Point) (R Point)
- func (ec *EllipticCurve) Decompress(x *big.Int, ylsb uint) (P Point, err error)
- func (ec *EllipticCurve) IsInfinity(P Point) bool
- func (ec *EllipticCurve) IsOnCurve(P Point) bool
- func (ec *EllipticCurve) ScalarBaseMult(k *big.Int) (Q Point)
- func (ec *EllipticCurve) ScalarMult(k *big.Int, P Point) (Q Point)
- type HexStrObj
- type NewWalletObj
- type Point
- type PrivateKey
- type PublicKey
Constants ¶
const ( PREFIX_MAINNET = "ckb" PREFIX_TESTNET = "ckt" )
Variables ¶
This section is empty.
Functions ¶
func GetShortAddressFromLockScriptArgs ¶
payload = type(01) | code hash index(00) | pubkey Blake160 docs: https://github.com/nervosnetwork/rfcs/blob/master/rfcs/0021-ckb-address-format/0021-ckb-address-format.md
Types ¶
type CkbWalletObj ¶
type CkbWalletObj struct { SystemScripts *utils.SystemScripts Secp256k1Key *secp256k1.Secp256k1Key LockScript *types.Script }
func InitCkbWallet ¶
func InitCkbWallet(privateKeyHex string, systemScript *utils.SystemScripts) (*CkbWalletObj, error)
type EllipticCurve ¶
y**2 = x**3 + a*x + b % p
EllipticCurve represents the parameters of a short Weierstrass equation elliptic curve.
func (*EllipticCurve) Add ¶
func (ec *EllipticCurve) Add(P, Q Point) (R Point)
Add computes R = P + Q on EllipticCurve ec.
func (*EllipticCurve) Decompress ¶
Decompress decompresses coordinate x and ylsb (y's least significant bit) into a Point P on EllipticCurve ec.
func (*EllipticCurve) IsInfinity ¶
func (ec *EllipticCurve) IsInfinity(P Point) bool
IsInfinity checks if point P is infinity on EllipticCurve ec.
func (*EllipticCurve) IsOnCurve ¶
func (ec *EllipticCurve) IsOnCurve(P Point) bool
IsOnCurve checks if point P is on EllipticCurve ec.
func (*EllipticCurve) ScalarBaseMult ¶
func (ec *EllipticCurve) ScalarBaseMult(k *big.Int) (Q Point)
ScalarBaseMult computes Q = k * G on EllipticCurve ec.
func (*EllipticCurve) ScalarMult ¶
func (ec *EllipticCurve) ScalarMult(k *big.Int, P Point) (Q Point)
ScalarMult computes Q = k * P on EllipticCurve ec.
type NewWalletObj ¶
func CreateCKBWallet ¶
func CreateCKBWallet(isTestNet bool) (*NewWalletObj, error)
func (*NewWalletObj) Json ¶
func (n *NewWalletObj) Json() string
type PrivateKey ¶
PrivateKey represents a Bitcoin private key.
func GenerateKey ¶
func GenerateKey(rand io.Reader) (priv PrivateKey, err error)
GenerateKey generates a public and private key pair using random source rand.
func NewPrivateKey ¶
func NewPrivateKey(d *big.Int) *PrivateKey
func (*PrivateKey) ToBytes ¶
func (priv *PrivateKey) ToBytes() (b []byte)
ToBytes converts a Bitcoin private key to a 32-byte byte slice.
type PublicKey ¶
type PublicKey struct {
Point
}
PublicKey represents a Bitcoin public key.
func (*PublicKey) ToBytes ¶
ToBytes converts a Bitcoin public key to a 33-byte byte slice with point compression.
func (*PublicKey) ToBytesUncompressed ¶
ToBytesUncompressed converts a Bitcoin public key to a 65-byte byte slice without point compression.