code: func DecodeBig(input string) (*big.Int, error) {
  	raw, err := checkNumber(input)
  	if err != nil {
  		return nil, err
  	}
  	if len(raw) > 64 {
  		return nil, ErrBig256Range
  	}
  	words := make([]big.Word, len(raw)/bigWordNibbles+1)
  	end := len(raw)
  	for i := range words {
  		start := end - bigWordNibbles
  		if start < 0 {
  			start = 0
  		}
  		for ri := start; ri < end; ri++ {
  			nib := decodeNibble(raw[ri])
  			if nib == badNibble {
  				return nil, ErrSyntax
  			}
  			words[i] *= 16
  			words[i] += big.Word(nib)
  		}
  		end = start
  	}
  	dec := new(big.Int).SetBits(words)
  	return dec, nil
  }
docs: // DecodeBig decodes a hex string with 0x prefix as a quantity.
  // Numbers larger than 256 bits are not accepted.