mirror of
https://github.com/luxfi/sdk.git
synced 2026-10-30 15:19:23 +00:00
Lux Partners Limited is not the entity behind this work. Every place the old name stood — copyright lines, site footers, brand config, legal and compliance text — now names the company that actually holds it. lux.fund is the exception and is not renamed to match: that site belongs to Lux Assets Management LLC, a different company, and it says so. Two kinds of line were left for a person rather than rewritten. A dated news item recording that Lux Partners Limited was established in the Isle of Man is a historical fact, and renaming it would falsify the record. And a sentence asserting that the company is domiciled in the Isle of Man is a claim about a jurisdiction, not a name — an Inc or an LLC is not an Isle of Man company, so swapping the name there would assert something untrue. Co-authored-by: Hanzo Dev <[email protected]>
27 lines
822 B
Go
27 lines
822 B
Go
// Copyright (C) 2026, Lux Industries Inc. All rights reserved.
|
|
// See the file LICENSE for licensing terms.
|
|
|
|
package aichain
|
|
|
|
import (
|
|
"crypto/ecdsa"
|
|
"fmt"
|
|
"strings"
|
|
|
|
"github.com/luxfi/crypto"
|
|
"github.com/luxfi/geth/common"
|
|
)
|
|
|
|
// parseKey parses a 0x-optional hex secp256k1 private key into a key + its EVM
|
|
// address.
|
|
func parseKey(hexKey string) (*ecdsa.PrivateKey, common.Address, error) {
|
|
key, err := crypto.HexToECDSA(strings.TrimPrefix(hexKey, "0x"))
|
|
if err != nil {
|
|
return nil, common.Address{}, fmt.Errorf("aichain: bad private key: %w", err)
|
|
}
|
|
// crypto.PubkeyToAddress returns luxfi/crypto/common.Address ([20]byte);
|
|
// convert via bytes to the luxfi/geth/common.Address used throughout the SDK.
|
|
addr := crypto.PubkeyToAddress(key.PublicKey)
|
|
return key, common.BytesToAddress(addr.Bytes()), nil
|
|
}
|