@@ -28,28 +28,32 @@ import { SDKConstruct } from "./SDKConstruct";
2828
2929export interface BaseContractOptions < abi extends Abi | readonly unknown [ ] > {
3030 abi : abi ;
31- address : Address ;
31+ addr : Address ;
3232 name ?: string ;
33- version ?: number ;
33+ version ?: number | bigint ;
3434 contractType ?: string ;
3535}
3636
3737export abstract class BaseContract <
3838 abi extends Abi | readonly unknown [ ] ,
3939> extends SDKConstruct {
40- contract : GetContractReturnType < abi , { public : Client } , Address > ;
40+ public readonly contract : GetContractReturnType <
41+ abi ,
42+ { public : Client } ,
43+ Address
44+ > ;
4145 public readonly abi : abi ;
4246 public readonly logger ?: ILogger ;
47+ public readonly contractType : string ;
48+ public version : number ;
4349
44- version : number ;
45- contractType : string ;
4650 #name: string ;
4751 #address: Address ;
4852
4953 constructor ( sdk : GearboxSDK , args : BaseContractOptions < abi > ) {
5054 super ( sdk ) ;
5155 this . abi = args . abi ;
52- this . #address = args . address . toLowerCase ( ) as Address ;
56+ this . #address = args . addr ;
5357
5458 this . contract = getContract ( {
5559 address : this . address ,
@@ -58,7 +62,7 @@ export abstract class BaseContract<
5862 public : sdk . provider . publicClient ,
5963 } ,
6064 } ) ;
61- this . version = args . version || 0 ;
65+ this . version = Number ( args . version || 0 ) ;
6266 this . contractType = args . contractType ?? "" ;
6367 if ( isHex ( this . contractType ) ) {
6468 this . contractType = bytes32ToString ( this . contractType ) ;
@@ -71,35 +75,35 @@ export abstract class BaseContract<
7175 sdk . contracts . upsert ( this . address , this ) ;
7276 }
7377
74- get address ( ) : Address {
78+ public get address ( ) : Address {
7579 return this . #address;
7680 }
7781
78- set address ( address : Address ) {
82+ public set address ( address : Address ) {
7983 if ( this . #address !== ADDRESS_0X0 ) {
8084 throw new Error ( `Address can't be changed, currently: ${ this . #address} ` ) ;
8185 }
8286 this . #address = address ;
8387 this . addressLabels . set ( address , this . #name) ;
8488 }
8589
86- test_setAddress ( address : Address ) {
90+ public test_setAddress ( address : Address ) {
8791 this . #address = address ;
8892 this . addressLabels . set ( address , this . #name) ;
8993 }
9094
91- get name ( ) : string {
95+ public get name ( ) : string {
9296 return this . #name;
9397 }
9498
95- set name ( name : string ) {
99+ public set name ( name : string ) {
96100 this . #name = name ;
97101 if ( this . #address !== ADDRESS_0X0 ) {
98102 this . addressLabels . set ( this . #address, name ) ;
99103 }
100104 }
101105
102- get contractData ( ) : BaseContractState {
106+ public get contractData ( ) : BaseContractState {
103107 return {
104108 address : this . address ,
105109 version : this . version ,
@@ -113,6 +117,11 @@ export abstract class BaseContract<
113117 */
114118 public parseLog ( _log : Log ) : void { }
115119
120+ /**
121+ * Converts contract calldata to some human-friendly string
122+ * @param calldata
123+ * @returns
124+ */
116125 public parseFunctionData ( calldata : Hex ) : string {
117126 const decoded = decodeFunctionData ( {
118127 abi : this . abi ,
@@ -147,13 +156,13 @@ export abstract class BaseContract<
147156 return `${ this . name } .${ decoded . functionName } ({${ paramsHuman . join ( ", " ) } })` ;
148157 }
149158
150- parseFunctionParams (
159+ public parseFunctionParams (
151160 _params : DecodeFunctionDataReturnType < abi > ,
152161 ) : Array < string > | undefined {
153162 return undefined ;
154163 }
155164
156- async getVersion ( ) : Promise < number > {
165+ public async getVersion ( ) : Promise < number > {
157166 this . version = Number (
158167 await this . sdk . provider . publicClient . readContract ( {
159168 abi : iVersionAbi ,
0 commit comments