@@ -33,26 +33,35 @@ type CKD struct {
3333 mu sync.RWMutex
3434}
3535
36- // NewCKD loads chain code from environment variable CHAIN_CODE (hex-encoded).
37- func NewCKD () (* CKD , error ) {
38- envVal := os .Getenv ("CHAIN_CODE" )
39- if envVal == "" {
40- return nil , fmt .Errorf ("CHAIN_CODE not set in environment" )
36+ // NewCKDFromHex creates CKD from a hex-encoded chain code string (32 bytes).
37+ func NewCKDFromHex (hexStr string ) (* CKD , error ) {
38+ if hexStr == "" {
39+ return nil , fmt .Errorf ("chain code is empty" )
4140 }
4241
43- code , err := hex .DecodeString (envVal )
42+ code , err := hex .DecodeString (hexStr )
4443 if err != nil {
45- return nil , fmt .Errorf ("invalid CHAIN_CODE hex: %w" , err )
44+ return nil , fmt .Errorf ("invalid chain code hex: %w" , err )
4645 }
4746 if len (code ) != chainCodeLength {
4847 return nil , fmt .Errorf ("%w: got %d, want %d" , ErrInvalidChainCode , len (code ), chainCodeLength )
4948 }
5049
51- logger .Info ("Loaded static chain code from environment " )
50+ logger .Info ("Loaded static chain code from config " )
5251
5352 return & CKD {masterChainCode : code }, nil
5453}
5554
55+ // NewCKD loads chain code from environment variable CHAIN_CODE (hex-encoded).
56+ // Deprecated: prefer NewCKDFromHex with config-provided value.
57+ func NewCKD () (* CKD , error ) {
58+ envVal := os .Getenv ("CHAIN_CODE" )
59+ if envVal == "" {
60+ return nil , fmt .Errorf ("CHAIN_CODE not set in environment" )
61+ }
62+ return NewCKDFromHex (envVal )
63+ }
64+
5665// GetMasterChainCode returns a copy of the chain code.
5766func (c * CKD ) GetMasterChainCode () []byte {
5867 c .mu .RLock ()
0 commit comments