@@ -31,10 +31,16 @@ func NewBigNumberZero() *BigNumber {
3131}
3232
3333func (b * BigNumber ) String () string {
34+ if b == nil {
35+ return ""
36+ }
3437 return kos_mobile .BigNumberString (b .inner )
3538}
3639
3740func Add (lhs , rhs * BigNumber ) (* BigNumber , error ) {
41+ if lhs == nil || rhs == nil {
42+ return nil , fmt .Errorf ("nil BigNumber operand" )
43+ }
3844 result , err := kos_mobile .BigNumberAdd (lhs .inner , rhs .inner )
3945 if err != nil {
4046 return nil , err
@@ -43,6 +49,9 @@ func Add(lhs, rhs *BigNumber) (*BigNumber, error) {
4349}
4450
4551func Sub (lhs , rhs * BigNumber ) (* BigNumber , error ) {
52+ if lhs == nil || rhs == nil {
53+ return nil , fmt .Errorf ("nil BigNumber operand" )
54+ }
4655 result , err := kos_mobile .BigNumberSubtract (lhs .inner , rhs .inner )
4756 if err != nil {
4857 return nil , err
@@ -51,6 +60,9 @@ func Sub(lhs, rhs *BigNumber) (*BigNumber, error) {
5160}
5261
5362func Mul (lhs , rhs * BigNumber ) (* BigNumber , error ) {
63+ if lhs == nil || rhs == nil {
64+ return nil , fmt .Errorf ("nil BigNumber operand" )
65+ }
5466 result , err := kos_mobile .BigNumberMultiply (lhs .inner , rhs .inner )
5567 if err != nil {
5668 return nil , err
@@ -59,6 +71,9 @@ func Mul(lhs, rhs *BigNumber) (*BigNumber, error) {
5971}
6072
6173func Div (lhs , rhs * BigNumber ) (* BigNumber , error ) {
74+ if lhs == nil || rhs == nil {
75+ return nil , fmt .Errorf ("nil BigNumber operand" )
76+ }
6277 result , err := kos_mobile .BigNumberDivide (lhs .inner , rhs .inner )
6378 if err != nil {
6479 return nil , err
@@ -67,6 +82,9 @@ func Div(lhs, rhs *BigNumber) (*BigNumber, error) {
6782}
6883
6984func Pow (base , exp * BigNumber ) (* BigNumber , error ) {
85+ if base == nil || exp == nil {
86+ return nil , fmt .Errorf ("nil BigNumber operand" )
87+ }
7088 result , err := kos_mobile .BigNumberPow (base .inner , exp .inner )
7189 if err != nil {
7290 return nil , err
@@ -75,26 +93,44 @@ func Pow(base, exp *BigNumber) (*BigNumber, error) {
7593}
7694
7795func IsEqual (lhs , rhs * BigNumber ) bool {
96+ if lhs == nil || rhs == nil {
97+ return false
98+ }
7899 return kos_mobile .BigNumberIsEqual (lhs .inner , rhs .inner )
79100}
80101
81102func IsGt (lhs , rhs * BigNumber ) bool {
103+ if lhs == nil || rhs == nil {
104+ return false
105+ }
82106 return kos_mobile .BigNumberIsGt (lhs .inner , rhs .inner )
83107}
84108
85109func IsGte (lhs , rhs * BigNumber ) bool {
110+ if lhs == nil || rhs == nil {
111+ return false
112+ }
86113 return kos_mobile .BigNumberIsGte (lhs .inner , rhs .inner )
87114}
88115
89116func IsLt (lhs , rhs * BigNumber ) bool {
117+ if lhs == nil || rhs == nil {
118+ return false
119+ }
90120 return kos_mobile .BigNumberIsLt (lhs .inner , rhs .inner )
91121}
92122
93123func IsLte (lhs , rhs * BigNumber ) bool {
124+ if lhs == nil || rhs == nil {
125+ return false
126+ }
94127 return kos_mobile .BigNumberIsLte (lhs .inner , rhs .inner )
95128}
96129
97130func Abs (b * BigNumber ) (* BigNumber , error ) {
131+ if b == nil {
132+ return nil , fmt .Errorf ("nil BigNumber operand" )
133+ }
98134 result , err := kos_mobile .BigNumberAbsolute (b .inner )
99135 if err != nil {
100136 return nil , err
@@ -103,10 +139,16 @@ func Abs(b *BigNumber) (*BigNumber, error) {
103139}
104140
105141func IsZero (b * BigNumber ) bool {
142+ if b == nil {
143+ return false
144+ }
106145 return kos_mobile .BigNumberIsZero (b .inner )
107146}
108147
109148func Increment (b * BigNumber ) (* BigNumber , error ) {
149+ if b == nil {
150+ return nil , fmt .Errorf ("nil BigNumber operand" )
151+ }
110152 result , err := kos_mobile .BigNumberIncrement (b .inner )
111153 if err != nil {
112154 return nil , err
@@ -115,6 +157,9 @@ func Increment(b *BigNumber) (*BigNumber, error) {
115157}
116158
117159func Decrement (b * BigNumber ) (* BigNumber , error ) {
160+ if b == nil {
161+ return nil , fmt .Errorf ("nil BigNumber operand" )
162+ }
118163 result , err := kos_mobile .BigNumberDecrement (b .inner )
119164 if err != nil {
120165 return nil , err
@@ -123,9 +168,15 @@ func Decrement(b *BigNumber) (*BigNumber, error) {
123168}
124169
125170func IsPositive (b * BigNumber ) bool {
171+ if b == nil {
172+ return false
173+ }
126174 return kos_mobile .BigNumberIsPositive (b .inner )
127175}
128176
129177func IsNegative (b * BigNumber ) bool {
178+ if b == nil {
179+ return false
180+ }
130181 return kos_mobile .BigNumberIsNegative (b .inner )
131182}
0 commit comments