code: func (n scriptNum) Int32() int32 {
  	if n > maxInt32 {
  		return maxInt32
  	}
  
  	if n < minInt32 {
  		return minInt32
  	}
  
  	return int32(n)
  }
docs: // Int32 returns the script number clamped to a valid int32.  That is to say
  // when the script number is higher than the max allowed int32, the max int32
  // value is returned and vice versa for the minimum value.  Note that this
  // behavior is different from a simple int32 cast because that truncates
  // and the consensus rules dictate numbers which are directly cast to ints
  // provide this behavior.
  //
  // In practice, for most opcodes, the number should never be out of range since
  // it will have been created with makeScriptNum using the defaultScriptLen
  // value, which rejects them.  In case something in the future ends up calling
  // this function against the result of some arithmetic, which IS allowed to be
  // out of range before being reinterpreted as an integer, this will provide the
  // correct behavior.