@naviprotocol/wallet-client 2.0.0-beta.0 → 2.0.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client.d.ts +14 -6
- package/dist/client.d.ts.map +1 -1
- package/dist/index.esm.js +551 -448
- package/dist/index.esm.js.map +1 -1
- package/dist/modules/balanceModule/index.d.ts.map +1 -1
- package/dist/modules/balanceModule/portfolio.d.ts.map +1 -1
- package/dist/modules/haedalModule/index.d.ts +9 -7
- package/dist/modules/haedalModule/index.d.ts.map +1 -1
- package/dist/modules/lendingModule/index.d.ts +6 -1
- package/dist/modules/lendingModule/index.d.ts.map +1 -1
- package/dist/modules/lendingModule/migrate.d.ts.map +1 -1
- package/dist/modules/lendingModule/protocols/navi.d.ts.map +1 -1
- package/dist/modules/lendingModule/protocols/suilend.d.ts.map +1 -1
- package/dist/modules/swapModule/index.d.ts +4 -0
- package/dist/modules/swapModule/index.d.ts.map +1 -1
- package/dist/modules/voloModule/index.d.ts +9 -8
- package/dist/modules/voloModule/index.d.ts.map +1 -1
- package/dist/suilend-CWugUjwd.js +85 -0
- package/dist/suilend-CWugUjwd.js.map +1 -0
- package/dist/types.d.ts +4 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +6 -6
- package/dist/suilend-Df4FukWs.js +0 -80
- package/dist/suilend-Df4FukWs.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/modules/balanceModule/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAElC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAG3C,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAA;AAG9D;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,yDAAyD;IACzD,mBAAmB,EAAE,MAAM,CAAA;IAC3B,sCAAsC;IACtC,kBAAkB,EAAE,OAAO,CAAA;CAC5B;AAED;;GAEG;AACH,MAAM,MAAM,MAAM,GAAG;IACnB,yEAAyE;IACzE,2BAA2B,EAAE,EAAE,CAAA;CAChC,CAAA;AAED;;;;;;;;;GASG;AACH,qBAAa,aAAc,SAAQ,MAAM,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACpE,6BAA6B;IAC7B,QAAQ,CAAC,IAAI,aAAY;IAEzB,mCAAmC;IACnC,QAAQ,CAAC,aAAa;;;MAGrB;IAED;;;;OAIG;IACH,IAAW,KAAK,iBAEf;IAED;;;;OAIG;IACH,IAAW,SAAS,kBAEnB;IAED;;;;;OAKG;IACU,aAAa;IAO1B;;;;;;;;OAQG;IACU,QAAQ,CAAC,CAAC,SAAS,OAAO,GAAG,KAAK,EAC7C,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE;QAAE,MAAM,EAAE,CAAC,CAAA;KAAE,GACtB,OAAO,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC;IAI1C;;;;;;;;OAQG;IACU,aAAa,CAAC,CAAC,SAAS,OAAO,GAAG,KAAK,EAClD,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAAE,EACpB,OAAO,EAAE,MAAM,EAAE,EACjB,OAAO,CAAC,EAAE;QAAE,MAAM,EAAE,CAAC,CAAA;KAAE,GACtB,OAAO,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC;IA6C1C;;;;;;;OAOG;IACG,cAAc,CAAC,CAAC,SAAS,OAAO,GAAG,KAAK,EAC5C,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE;QAAE,MAAM,EAAE,CAAC,CAAA;KAAE,GACtB,OAAO,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC;IAI1C;;;;;;;;;;OAUG;IACG,mBAAmB,CAAC,CAAC,SAAS,OAAO,GAAG,KAAK,EACjD,OAAO,EAAE,MAAM,EAAE,EACjB,UAAU,EAAE,MAAM,EAAE,EACpB,OAAO,CAAC,EAAE;QAAE,MAAM,EAAE,CAAC,CAAA;KAAE,GACtB,OAAO,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC;IA6B1C;;;;;OAKG;IACH,eAAe,sBAeb;IAEF,2CAA2C;IAC3C,OAAO,CAAC,MAAM,CAAmB;IAEjC,oCAAoC;IACpC,OAAO,CAAC,UAAU,CAAqC;IAEvD,wCAAwC;IACxC,OAAO,CAAC,YAAY,CAA8B;IAElD,+CAA+C;IAC/C,OAAO,CAAC,cAAc,CAA6B;IAEnD;;;;;OAKG;YACW,YAAY;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/modules/balanceModule/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAElC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAG3C,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAA;AAG9D;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,yDAAyD;IACzD,mBAAmB,EAAE,MAAM,CAAA;IAC3B,sCAAsC;IACtC,kBAAkB,EAAE,OAAO,CAAA;CAC5B;AAED;;GAEG;AACH,MAAM,MAAM,MAAM,GAAG;IACnB,yEAAyE;IACzE,2BAA2B,EAAE,EAAE,CAAA;CAChC,CAAA;AAED;;;;;;;;;GASG;AACH,qBAAa,aAAc,SAAQ,MAAM,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACpE,6BAA6B;IAC7B,QAAQ,CAAC,IAAI,aAAY;IAEzB,mCAAmC;IACnC,QAAQ,CAAC,aAAa;;;MAGrB;IAED;;;;OAIG;IACH,IAAW,KAAK,iBAEf;IAED;;;;OAIG;IACH,IAAW,SAAS,kBAEnB;IAED;;;;;OAKG;IACU,aAAa;IAO1B;;;;;;;;OAQG;IACU,QAAQ,CAAC,CAAC,SAAS,OAAO,GAAG,KAAK,EAC7C,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE;QAAE,MAAM,EAAE,CAAC,CAAA;KAAE,GACtB,OAAO,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC;IAI1C;;;;;;;;OAQG;IACU,aAAa,CAAC,CAAC,SAAS,OAAO,GAAG,KAAK,EAClD,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAAE,EACpB,OAAO,EAAE,MAAM,EAAE,EACjB,OAAO,CAAC,EAAE;QAAE,MAAM,EAAE,CAAC,CAAA;KAAE,GACtB,OAAO,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC;IA6C1C;;;;;;;OAOG;IACG,cAAc,CAAC,CAAC,SAAS,OAAO,GAAG,KAAK,EAC5C,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE;QAAE,MAAM,EAAE,CAAC,CAAA;KAAE,GACtB,OAAO,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC;IAI1C;;;;;;;;;;OAUG;IACG,mBAAmB,CAAC,CAAC,SAAS,OAAO,GAAG,KAAK,EACjD,OAAO,EAAE,MAAM,EAAE,EACjB,UAAU,EAAE,MAAM,EAAE,EACpB,OAAO,CAAC,EAAE;QAAE,MAAM,EAAE,CAAC,CAAA;KAAE,GACtB,OAAO,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC;IA6B1C;;;;;OAKG;IACH,eAAe,sBAeb;IAEF,2CAA2C;IAC3C,OAAO,CAAC,MAAM,CAAmB;IAEjC,oCAAoC;IACpC,OAAO,CAAC,UAAU,CAAqC;IAEvD,wCAAwC;IACxC,OAAO,CAAC,YAAY,CAA8B;IAElD,+CAA+C;IAC/C,OAAO,CAAC,cAAc,CAA6B;IAEnD;;;;;OAKG;YACW,YAAY;IAc1B;;;;OAIG;IACH,OAAO,CAAC,YAAY,EAAE,YAAY;IAelC;;;;OAIG;IACH,SAAS;CAOV"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"portfolio.d.ts","sourceRoot":"","sources":["../../../src/modules/balanceModule/portfolio.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAGxC;;;;;;;;GAQG;AACH,qBAAa,aAAa;IACxB,yDAAyD;IACzD,QAAQ,EAAE;SAAG,GAAG,IAAI,MAAM,GAAG,eAAe;KAAE,CAAA;IAE9C;;;;OAIG;gBACS,KAAK,CAAC,EAAE,UAAU,EAAE,GAAG,aAAa;
|
|
1
|
+
{"version":3,"file":"portfolio.d.ts","sourceRoot":"","sources":["../../../src/modules/balanceModule/portfolio.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAGxC;;;;;;;;GAQG;AACH,qBAAa,aAAa;IACxB,yDAAyD;IACzD,QAAQ,EAAE;SAAG,GAAG,IAAI,MAAM,GAAG,eAAe;KAAE,CAAA;IAE9C;;;;OAIG;gBACS,KAAK,CAAC,EAAE,UAAU,EAAE,GAAG,aAAa;IAmChD;;;;;OAKG;IACH,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe;IAK7C;;;;OAIG;IACH,YAAY;IAMZ;;;;;OAKG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM;IAM1B;;;;;;;OAOG;IACH,KAAK;CAMN;AAED;;;;;GAKG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,kCAAkC;IAClC,QAAQ,EAAE,MAAM,CAAA;IAChB,yDAAyD;IACzD,MAAM,EAAE,SAAS,CAAA;IACjB,uCAAuC;IACvC,KAAK,EAAE,UAAU,EAAE,CAAA;CACpB,CAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CoinObject } from '@naviprotocol/lending';
|
|
1
|
+
import { CoinObject, NaviSdkServiceOptions } from '@naviprotocol/lending';
|
|
2
2
|
import { Transaction } from '@mysten/sui/transactions';
|
|
3
3
|
import { Module } from '../module';
|
|
4
4
|
import { NaviWalletTransactionResult } from '../../types';
|
|
@@ -13,7 +13,12 @@ export interface HaedalModuleConfig {
|
|
|
13
13
|
configId: string;
|
|
14
14
|
/** haSUI coin type */
|
|
15
15
|
coinType: string;
|
|
16
|
+
/** Optional NAVI service endpoint overrides. */
|
|
17
|
+
services?: NaviSdkServiceOptions;
|
|
16
18
|
}
|
|
19
|
+
export type HaedalApyOptions = {
|
|
20
|
+
services?: NaviSdkServiceOptions;
|
|
21
|
+
};
|
|
17
22
|
/**
|
|
18
23
|
* Events emitted by the Haedal module
|
|
19
24
|
*/
|
|
@@ -34,17 +39,14 @@ export declare class HaedalModule extends Module<HaedalModuleConfig, Events> {
|
|
|
34
39
|
/** Module name identifier */
|
|
35
40
|
readonly name = "haedal";
|
|
36
41
|
/** Default configuration values */
|
|
37
|
-
readonly defaultConfig:
|
|
38
|
-
packageId: string;
|
|
39
|
-
configId: string;
|
|
40
|
-
coinType: string;
|
|
41
|
-
};
|
|
42
|
+
readonly defaultConfig: HaedalModuleConfig;
|
|
42
43
|
/**
|
|
43
44
|
* Fetches the current APY for Haedal staking
|
|
44
45
|
*
|
|
45
46
|
* @returns Current APY of haSUI
|
|
46
47
|
*/
|
|
47
|
-
|
|
48
|
+
private getApyCached;
|
|
49
|
+
getApy(options?: HaedalApyOptions): Promise<number>;
|
|
48
50
|
/**
|
|
49
51
|
* Builds a transaction block for staking SUI to haSUI
|
|
50
52
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/modules/haedalModule/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,UAAU,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/modules/haedalModule/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,UAAU,EAQV,KAAK,qBAAqB,EAC3B,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAClC,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAA;AAE9D;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,+BAA+B;IAC/B,SAAS,EAAE,MAAM,CAAA;IACjB,8BAA8B;IAC9B,QAAQ,EAAE,MAAM,CAAA;IAChB,sBAAsB;IACtB,QAAQ,EAAE,MAAM,CAAA;IAChB,gDAAgD;IAChD,QAAQ,CAAC,EAAE,qBAAqB,CAAA;CACjC;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,EAAE,qBAAqB,CAAA;CACjC,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,MAAM,GAAG;IACnB,6CAA6C;IAC7C,sBAAsB,EAAE;QACtB,SAAS,EAAE,MAAM,CAAA;KAClB,CAAA;IACD,iDAAiD;IACjD,wBAAwB,EAAE;QACxB,WAAW,EAAE,MAAM,CAAA;KACpB,CAAA;CACF,CAAA;AAED;;GAEG;AACH,qBAAa,YAAa,SAAQ,MAAM,CAAC,kBAAkB,EAAE,MAAM,CAAC;IAClE,6BAA6B;IAC7B,QAAQ,CAAC,IAAI,YAAW;IACxB,mCAAmC;IACnC,QAAQ,CAAC,aAAa,EAAE,kBAAkB,CAIzC;IAED;;;;OAIG;IACH,OAAO,CAAC,YAAY,CAcnB;IAED,MAAM,CAAC,OAAO,CAAC,EAAE,gBAAgB;IAMjC;;;;;;OAMG;IACG,QAAQ,CAAC,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,UAAU;;;;IAcnD;;;;;;OAMG;IACG,UAAU,CAAC,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU;;;;IAavD;;;;;OAKG;IACG,KAAK,CAAC,CAAC,SAAS,OAAO,GAAG,KAAK,EACnC,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE;QAAE,MAAM,EAAE,CAAC,CAAA;KAAE,GACtB,OAAO,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC;IAyB1C;;;;;OAKG;IACG,OAAO,CAAC,CAAC,SAAS,OAAO,GAAG,KAAK,EACrC,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE;QAAE,MAAM,EAAE,CAAC,CAAA;KAAE,GACtB,OAAO,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC;CAwB3C"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { NaviWalletTransactionResult } from '../../types';
|
|
2
2
|
import { Module } from '../module';
|
|
3
|
-
import { AssetIdentifier, CacheOption, LendingReward, AccountCapOption, Pool } from '@naviprotocol/lending';
|
|
3
|
+
import { AssetIdentifier, CacheOption, LendingReward, AccountCapOption, Pool, NaviSdkServiceOptions } from '@naviprotocol/lending';
|
|
4
4
|
import { SuiGrpcClient } from '@mysten/sui/grpc';
|
|
5
5
|
import { migrateBalanceToSupplyPTB, migrateBetweenBorrowPTB, migrateBetweenSupplyPTB } from './migrate';
|
|
6
6
|
import { LendingProtocol } from './protocols';
|
|
@@ -20,6 +20,8 @@ export interface LendingModuleConfig {
|
|
|
20
20
|
suilendGrpcClient?: SuiGrpcClient;
|
|
21
21
|
/** Optional Suilend v3 gRPC endpoint. Used when suilendGrpcClient is not provided. */
|
|
22
22
|
suilendGrpcUrl?: string;
|
|
23
|
+
/** Optional NAVI service endpoint overrides. */
|
|
24
|
+
services?: NaviSdkServiceOptions;
|
|
23
25
|
}
|
|
24
26
|
/**
|
|
25
27
|
* Events emitted by the lending module
|
|
@@ -91,6 +93,9 @@ export declare class LendingModule extends Module<LendingModuleConfig, Events> {
|
|
|
91
93
|
private _protocols;
|
|
92
94
|
/** Get protocols (either from internal storage or config) */
|
|
93
95
|
get protocols(): LendingProtocol[];
|
|
96
|
+
get naviServiceOptions(): {
|
|
97
|
+
services?: NaviSdkServiceOptions | undefined;
|
|
98
|
+
};
|
|
94
99
|
install(walletClient: WalletClient): void;
|
|
95
100
|
getProtocol(name: string): Promise<LendingProtocol | undefined>;
|
|
96
101
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/modules/lendingModule/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAA;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAClC,OAAO,EAKL,eAAe,EAYf,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,IAAI,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/modules/lendingModule/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../../../src/modules/lendingModule/migrate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACtD,OAAO,EACL,eAAe,EAShB,MAAM,uBAAuB,CAAA;AAE9B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,GAAG,CAAA;AAMtC,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,aAAa,EACnB,EAAE,EAAE,WAAW,EACf,IAAI,EAAE,eAAe,EACrB,EAAE,EAAE,eAAe,EACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAAC,
|
|
1
|
+
{"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../../../src/modules/lendingModule/migrate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACtD,OAAO,EACL,eAAe,EAShB,MAAM,uBAAuB,CAAA;AAE9B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,GAAG,CAAA;AAMtC,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,aAAa,EACnB,EAAE,EAAE,WAAW,EACf,IAAI,EAAE,eAAe,EACrB,EAAE,EAAE,eAAe,EACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAAC,wBAyIH;AAED,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,aAAa,EACnB,EAAE,EAAE,WAAW,EACf,IAAI,EAAE,eAAe,EACrB,EAAE,EAAE,eAAe,EACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAC9B,CAAC,wBAgJH;AAED,wBAAsB,yBAAyB,CAC7C,IAAI,EAAE,aAAa,EACnB,EAAE,EAAE,WAAW,EACf,QAAQ,EAAE,MAAM,EAChB,EAAE,EAAE,eAAe,EACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAAC,wBAgDH"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"navi.d.ts","sourceRoot":"","sources":["../../../../src/modules/lendingModule/protocols/navi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,GAAG,CAAA;AAChD,OAAO,EAAE,WAAW,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AACjG,OAAO,EAAiC,UAAU,EAAW,MAAM,uBAAuB,CAAA;AAC1F,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAI9C,cAAM,YAAa,YAAW,eAAe;IAC3C,QAAQ,CAAC,IAAI,UAAS;IACtB,OAAO,CAAC,YAAY,CAAc;gBAEtB,YAAY,EAAE,YAAY;IAIhC,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAiB/C,cAAc,CAClB,EAAE,EAAE,WAAW,EACf,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,sBAAsB,EAClC,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC;IAIV,eAAe,CACnB,EAAE,EAAE,WAAW,EACf,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,iBAAiB,CAAC;IAIvB,aAAa,CACjB,EAAE,EAAE,WAAW,EACf,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,iBAAiB,CAAC;IAIvB,YAAY,CAChB,EAAE,EAAE,WAAW,EACf,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"navi.d.ts","sourceRoot":"","sources":["../../../../src/modules/lendingModule/protocols/navi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,GAAG,CAAA;AAChD,OAAO,EAAE,WAAW,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AACjG,OAAO,EAAiC,UAAU,EAAW,MAAM,uBAAuB,CAAA;AAC1F,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAI9C,cAAM,YAAa,YAAW,eAAe;IAC3C,QAAQ,CAAC,IAAI,UAAS;IACtB,OAAO,CAAC,YAAY,CAAc;gBAEtB,YAAY,EAAE,YAAY;IAIhC,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAiB/C,cAAc,CAClB,EAAE,EAAE,WAAW,EACf,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,sBAAsB,EAClC,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC;IAIV,eAAe,CACnB,EAAE,EAAE,WAAW,EACf,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,iBAAiB,CAAC;IAIvB,aAAa,CACjB,EAAE,EAAE,WAAW,EACf,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,iBAAiB,CAAC;IAIvB,YAAY,CAChB,EAAE,EAAE,WAAW,EACf,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC;CAMjB;AAED,eAAe,YAAY,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"suilend.d.ts","sourceRoot":"","sources":["../../../../src/modules/lendingModule/protocols/suilend.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,GAAG,CAAA;AAChD,OAAO,EAAE,WAAW,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;
|
|
1
|
+
{"version":3,"file":"suilend.d.ts","sourceRoot":"","sources":["../../../../src/modules/lendingModule/protocols/suilend.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,GAAG,CAAA;AAChD,OAAO,EAAE,WAAW,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AACjG,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAAE,aAAa,EAA0C,MAAM,qBAAqB,CAAA;AAG3F,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wDAAwD,CAAA;AAChG,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAM9C,KAAK,4BAA4B,GAAG;IAClC,UAAU,CAAC,EAAE,aAAa,CAAA;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,CAAA;AA4BD,cAAM,eAAgB,YAAW,eAAe;IAC9C,QAAQ,CAAC,IAAI,aAAY;IACzB,OAAO,CAAC,YAAY,CAAc;IAClC,OAAO,CAAC,kBAAkB,CAA4B;IACtD,OAAO,CAAC,aAAa,CAAe;gBAGlC,YAAY,EAAE,YAAY,EAC1B,kBAAkB,EAAE,kBAAkB,CAAC,MAAM,CAAC,EAC9C,aAAa,EAAE,aAAa;WAOjB,MAAM,CAAC,YAAY,EAAE,YAAY,EAAE,OAAO,GAAE,4BAAiC;IAgBpF,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG;QAAE,kBAAkB,EAAE,MAAM,CAAA;KAAE,CAAC;IAoDhF,cAAc,CAClB,EAAE,EAAE,WAAW,EACf,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,sBAAsB,EAClC,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC;IAIV,eAAe,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAajE,aAAa,CACjB,EAAE,EAAE,WAAW,EACf,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,iBAAiB,CAAC;IAIvB,YAAY,CAChB,EAAE,EAAE,WAAW,EACf,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,sBAAsB,EAClC,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC;CAIjB;AAED,eAAe,eAAe,CAAA"}
|
|
@@ -2,6 +2,7 @@ import { Dex, FeeOption, Quote } from '@naviprotocol/astros-aggregator-sdk';
|
|
|
2
2
|
import { Transaction } from '@mysten/sui/transactions';
|
|
3
3
|
import { Module } from '../module';
|
|
4
4
|
import { NaviWalletTransactionResult } from '../../types';
|
|
5
|
+
import { NaviSdkServiceOptions } from '@naviprotocol/lending';
|
|
5
6
|
|
|
6
7
|
/**
|
|
7
8
|
* Configuration options for the swap module
|
|
@@ -19,6 +20,8 @@ export interface SwapModuleConfig {
|
|
|
19
20
|
serviceFee: FeeOption | undefined;
|
|
20
21
|
/** Environment setting */
|
|
21
22
|
env: 'dev' | 'prod';
|
|
23
|
+
/** Optional NAVI service endpoint overrides. */
|
|
24
|
+
services?: NaviSdkServiceOptions;
|
|
22
25
|
}
|
|
23
26
|
/**
|
|
24
27
|
* Events emitted by the swap module
|
|
@@ -67,6 +70,7 @@ export declare class SwapModule extends Module<SwapModuleConfig, Events> {
|
|
|
67
70
|
dexList: Dex[];
|
|
68
71
|
depth: number;
|
|
69
72
|
serviceFee: FeeOption | undefined;
|
|
73
|
+
services: NaviSdkServiceOptions | undefined;
|
|
70
74
|
};
|
|
71
75
|
/**
|
|
72
76
|
* Get a quote for a swap
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/modules/swapModule/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAGL,GAAG,EACH,SAAS,EAET,KAAK,EACN,MAAM,qCAAqC,CAAA;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/modules/swapModule/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAGL,GAAG,EACH,SAAS,EAET,KAAK,EACN,MAAM,qCAAqC,CAAA;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAEtD,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAClC,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAA;AAE9D,OAAO,EAAiB,KAAK,qBAAqB,EAAE,MAAM,uBAAuB,CAAA;AAQjF;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,oCAAoC;IACpC,MAAM,EAAE,MAAM,CAAA;IACd,sCAAsC;IACtC,OAAO,EAAE,MAAM,CAAA;IACf,uCAAuC;IACvC,OAAO,EAAE,GAAG,EAAE,CAAA;IACd,sDAAsD;IACtD,KAAK,EAAE,MAAM,CAAA;IACb,gCAAgC;IAChC,UAAU,EAAE,SAAS,GAAG,SAAS,CAAA;IACjC,0BAA0B;IAC1B,GAAG,EAAE,KAAK,GAAG,MAAM,CAAA;IACnB,gDAAgD;IAChD,QAAQ,CAAC,EAAE,qBAAqB,CAAA;CACjC;AAED;;GAEG;AACH,MAAM,MAAM,MAAM,GAAG;IACnB,oDAAoD;IACpD,mBAAmB,EAAE;QACnB,uBAAuB;QACvB,YAAY,EAAE,MAAM,CAAA;QACpB,uBAAuB;QACvB,UAAU,EAAE,MAAM,CAAA;QAClB,mBAAmB;QACnB,UAAU,EAAE,MAAM,CAAA;QAClB,iCAAiC;QACjC,QAAQ,EAAE,MAAM,CAAA;QAChB,6BAA6B;QAC7B,QAAQ,EAAE,MAAM,CAAA;KACjB,CAAA;CACF,CAAA;AAyBD;;;;;;;;GAQG;AACH,qBAAa,UAAW,SAAQ,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAC9D,6BAA6B;IAC7B,QAAQ,CAAC,IAAI,UAAS;IAEtB,mCAAmC;IACnC,QAAQ,CAAC,aAAa,EAAE,gBAAgB,CAOvC;IAED;;;;OAIG;IACH,IAAI,QAAQ,WAEX;IAED;;;OAGG;IACH,IAAI,WAAW;;;;;;MAQd;IAED;;;;;;OAMG;IACG,QAAQ,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;IAI3E;;;;;;;OAOG;IACG,qBAAqB,CAAC,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM;IAkB1F;;;;;;;;;;;;;;;;OAgBG;IACG,IAAI,CAAC,CAAC,SAAS,OAAO,GAAG,KAAK,EAClC,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE;QAAE,MAAM,EAAE,CAAC,CAAA;KAAE,GACtB,OAAO,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC;CAoG3C"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CoinObject } from '@naviprotocol/lending';
|
|
1
|
+
import { CoinObject, NaviSdkServiceOptions } from '@naviprotocol/lending';
|
|
2
2
|
import { Transaction } from '@mysten/sui/transactions';
|
|
3
3
|
import { Module } from '../module';
|
|
4
4
|
import { NaviWalletTransactionResult } from '../../types';
|
|
@@ -15,7 +15,12 @@ export interface VoloModuleConfig {
|
|
|
15
15
|
coinType: string;
|
|
16
16
|
/** The metadata ID for the staking pool */
|
|
17
17
|
metadataId: string;
|
|
18
|
+
/** Optional NAVI service endpoint overrides. */
|
|
19
|
+
services?: NaviSdkServiceOptions;
|
|
18
20
|
}
|
|
21
|
+
export type VoloStatsOptions = {
|
|
22
|
+
services?: NaviSdkServiceOptions;
|
|
23
|
+
};
|
|
19
24
|
/**
|
|
20
25
|
* Event types emitted by the Volo module
|
|
21
26
|
*/
|
|
@@ -87,19 +92,15 @@ export declare class VoloModule extends Module<VoloModuleConfig, Events> {
|
|
|
87
92
|
/** Module name identifier */
|
|
88
93
|
readonly name = "volo";
|
|
89
94
|
/** Default configuration for the Volo staking protocol */
|
|
90
|
-
readonly defaultConfig:
|
|
91
|
-
packageId: string;
|
|
92
|
-
poolId: string;
|
|
93
|
-
metadataId: string;
|
|
94
|
-
coinType: string;
|
|
95
|
-
};
|
|
95
|
+
readonly defaultConfig: VoloModuleConfig;
|
|
96
96
|
/**
|
|
97
97
|
* Get current statistics and information about the Volo staking pool
|
|
98
98
|
* Uses caching to avoid repeated API calls
|
|
99
99
|
*
|
|
100
100
|
* @returns Volo staking pool information
|
|
101
101
|
*/
|
|
102
|
-
|
|
102
|
+
private getStatsCached;
|
|
103
|
+
getStats(options?: VoloStatsOptions): Promise<VoloStats>;
|
|
103
104
|
/**
|
|
104
105
|
* Adds staking operation to a transaction black
|
|
105
106
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/modules/voloModule/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,UAAU,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/modules/voloModule/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { SuiGrpcClient as f } from "@mysten/sui/grpc";
|
|
2
|
+
import { SuilendClient as g, LENDING_MARKET_ID as y, LENDING_MARKET_TYPE as u } from "@suilend/sdk/client";
|
|
3
|
+
import { parseObligation as C } from "@suilend/sdk/parsers/obligation";
|
|
4
|
+
import { parseReserve as T } from "@suilend/sdk/parsers/reserve";
|
|
5
|
+
import { getCoinMetadataMap as R } from "@suilend/sui-fe/lib/coinMetadata";
|
|
6
|
+
import { MAX_U64 as P } from "@suilend/sui-fe/lib/constants";
|
|
7
|
+
import { normalizeStructTag as c } from "@mysten/sui/utils";
|
|
8
|
+
function E(s, e) {
|
|
9
|
+
if (e.grpcClient)
|
|
10
|
+
return e.grpcClient;
|
|
11
|
+
const n = s.clientBundle.network;
|
|
12
|
+
if (e.grpcUrl)
|
|
13
|
+
return new f({
|
|
14
|
+
network: n,
|
|
15
|
+
baseUrl: e.grpcUrl
|
|
16
|
+
});
|
|
17
|
+
if (s.clientBundle.grpc !== s.clientBundle.legacyJsonRpc)
|
|
18
|
+
return s.clientBundle.grpc;
|
|
19
|
+
throw new Error(
|
|
20
|
+
"Suilend requires an explicit Sui gRPC client or grpcUrl; JSON-RPC endpoints are not valid gRPC endpoints"
|
|
21
|
+
);
|
|
22
|
+
}
|
|
23
|
+
class m {
|
|
24
|
+
constructor(e, n, o) {
|
|
25
|
+
this.name = "suilend", this.walletClient = e, this.obligationOwnerCap = n, this.suilendClient = o;
|
|
26
|
+
}
|
|
27
|
+
static async create(e, n = {}) {
|
|
28
|
+
const o = E(e, n), [t, a] = await Promise.all([
|
|
29
|
+
g.initialize(y, u, o),
|
|
30
|
+
g.getObligationOwnerCaps(
|
|
31
|
+
e.address,
|
|
32
|
+
[u],
|
|
33
|
+
o
|
|
34
|
+
)
|
|
35
|
+
]);
|
|
36
|
+
if (a.length === 0)
|
|
37
|
+
throw new Error("No existing obligations found for wallet address: " + e.address);
|
|
38
|
+
return new m(e, a[0], t);
|
|
39
|
+
}
|
|
40
|
+
async getPool(e) {
|
|
41
|
+
const n = c(e), o = this.suilendClient.lendingMarket.reserves, t = /* @__PURE__ */ new Set();
|
|
42
|
+
o.forEach((i) => {
|
|
43
|
+
t.add(c(i.coinType.name)), i.depositsPoolRewardManager.poolRewards.forEach((r) => {
|
|
44
|
+
r && t.add(c(r.coinType.name));
|
|
45
|
+
}), i.borrowsPoolRewardManager.poolRewards.forEach((r) => {
|
|
46
|
+
r && t.add(c(r.coinType.name));
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
const a = await R(Array.from(t)), l = o.map((i) => T(i, a)).reduce(
|
|
50
|
+
(i, r) => (i[r.coinType] = r, i),
|
|
51
|
+
{}
|
|
52
|
+
), w = await this.suilendClient.getObligation(
|
|
53
|
+
this.obligationOwnerCap.obligationId
|
|
54
|
+
), d = C(w, l), h = d.deposits.find((i) => i.coinType === n), b = d.borrows.find((i) => i.coinType === n), p = a[n].decimals;
|
|
55
|
+
return {
|
|
56
|
+
cTokenExchangeRate: l[n].cTokenExchangeRate.toNumber(),
|
|
57
|
+
supplyBalance: h?.depositedAmount.shiftedBy(p).decimalPlaces(0).toNumber() ?? 0,
|
|
58
|
+
borrowBalance: b?.borrowedAmount.shiftedBy(p).decimalPlaces(0).toNumber() ?? 0,
|
|
59
|
+
borrowAPR: l[n].borrowAprPercent.toNumber()
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
async depositCoinPTB(e, n, o, t) {
|
|
63
|
+
throw new Error("Not implemented");
|
|
64
|
+
}
|
|
65
|
+
async withdrawCoinPTB(e, n, o) {
|
|
66
|
+
const t = await this.getPool(n), a = o === t.supplyBalance;
|
|
67
|
+
return await this.suilendClient.withdraw(
|
|
68
|
+
this.obligationOwnerCap.id,
|
|
69
|
+
this.obligationOwnerCap.obligationId,
|
|
70
|
+
n,
|
|
71
|
+
a ? P.toString() : Math.ceil(o / t.cTokenExchangeRate).toString(),
|
|
72
|
+
e
|
|
73
|
+
);
|
|
74
|
+
}
|
|
75
|
+
async borrowCoinPTB(e, n, o) {
|
|
76
|
+
throw new Error("Not implemented");
|
|
77
|
+
}
|
|
78
|
+
async repayCoinPTB(e, n, o, t) {
|
|
79
|
+
this.suilendClient.repay(this.obligationOwnerCap.obligationId, n, o, e), e.transferObjects([o], e.pure.address(this.walletClient.address));
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
export {
|
|
83
|
+
m as default
|
|
84
|
+
};
|
|
85
|
+
//# sourceMappingURL=suilend-CWugUjwd.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"suilend-CWugUjwd.js","sources":["../src/modules/lendingModule/protocols/suilend.ts"],"sourcesContent":["import { LendingPool, LendingProtocol } from '.'\nimport { Transaction, TransactionObjectInput, TransactionResult } from '@mysten/sui/transactions'\nimport { SuiGrpcClient } from '@mysten/sui/grpc'\nimport { SuilendClient, LENDING_MARKET_ID, LENDING_MARKET_TYPE } from '@suilend/sdk/client'\nimport { parseObligation } from '@suilend/sdk/parsers/obligation'\nimport { parseReserve } from '@suilend/sdk/parsers/reserve'\nimport type { ObligationOwnerCap } from '@suilend/sdk/_generated/suilend/lending-market/structs'\nimport { WalletClient } from '../../../client'\nimport { getCoinMetadataMap } from '@suilend/sui-fe/lib/coinMetadata'\nimport { MAX_U64 } from '@suilend/sui-fe/lib/constants'\nimport BigNumber from 'bignumber.js'\nimport { normalizeStructTag } from '@mysten/sui/utils'\n\ntype SuilendProtocolCreateOptions = {\n grpcClient?: SuiGrpcClient\n grpcUrl?: string\n}\n\nfunction createSuilendGrpcClient(\n walletClient: WalletClient,\n options: SuilendProtocolCreateOptions\n) {\n if (options.grpcClient) {\n return options.grpcClient\n }\n\n const network = walletClient.clientBundle.network\n\n if (options.grpcUrl) {\n return new SuiGrpcClient({\n network,\n baseUrl: options.grpcUrl\n })\n }\n\n if (walletClient.clientBundle.grpc !== walletClient.clientBundle.legacyJsonRpc) {\n return walletClient.clientBundle.grpc as SuiGrpcClient\n }\n\n throw new Error(\n 'Suilend requires an explicit Sui gRPC client or grpcUrl; JSON-RPC endpoints are not valid gRPC endpoints'\n )\n}\n\nclass SuilendProtocol implements LendingProtocol {\n readonly name = 'suilend'\n private walletClient: WalletClient\n private obligationOwnerCap: ObligationOwnerCap<string>\n private suilendClient: SuilendClient\n\n constructor(\n walletClient: WalletClient,\n obligationOwnerCap: ObligationOwnerCap<string>,\n suilendClient: SuilendClient\n ) {\n this.walletClient = walletClient\n this.obligationOwnerCap = obligationOwnerCap\n this.suilendClient = suilendClient\n }\n\n static async create(walletClient: WalletClient, options: SuilendProtocolCreateOptions = {}) {\n const suilendGrpcClient = createSuilendGrpcClient(walletClient, options)\n const [suilendClient, obligations] = await Promise.all([\n SuilendClient.initialize(LENDING_MARKET_ID, LENDING_MARKET_TYPE, suilendGrpcClient),\n SuilendClient.getObligationOwnerCaps(\n walletClient.address,\n [LENDING_MARKET_TYPE],\n suilendGrpcClient\n )\n ])\n if (obligations.length === 0) {\n throw new Error('No existing obligations found for wallet address: ' + walletClient.address)\n }\n return new SuilendProtocol(walletClient, obligations[0], suilendClient)\n }\n\n async getPool(coinType: string): Promise<LendingPool & { cTokenExchangeRate: number }> {\n const normalizedCoinType = normalizeStructTag(coinType)\n\n const allReserves = this.suilendClient.lendingMarket.reserves\n\n const coinTypes = new Set<string>()\n\n allReserves.forEach((reserve) => {\n coinTypes.add(normalizeStructTag(reserve.coinType.name))\n reserve.depositsPoolRewardManager.poolRewards.forEach((reward) => {\n if (reward) {\n coinTypes.add(normalizeStructTag(reward.coinType.name))\n }\n })\n reserve.borrowsPoolRewardManager.poolRewards.forEach((reward) => {\n if (reward) {\n coinTypes.add(normalizeStructTag(reward.coinType.name))\n }\n })\n })\n\n const coinMetadataMap = await getCoinMetadataMap(Array.from(coinTypes))\n\n const parsedReserves = allReserves.map((reserve) => parseReserve(reserve, coinMetadataMap))\n const reservesMap = parsedReserves.reduce(\n (acc, reserve) => {\n acc[reserve.coinType] = reserve\n return acc\n },\n {} as Record<string, any>\n )\n\n const rawObligation = await this.suilendClient.getObligation(\n this.obligationOwnerCap.obligationId\n )\n\n const obligation = parseObligation(rawObligation, reservesMap)\n\n const deposit = obligation.deposits.find((deposit) => deposit.coinType === normalizedCoinType)\n const borrow = obligation.borrows.find((borrow) => borrow.coinType === normalizedCoinType)\n\n const decimals = coinMetadataMap[normalizedCoinType].decimals\n const cTokenExchangeRate = reservesMap[normalizedCoinType].cTokenExchangeRate.toNumber()\n\n return {\n cTokenExchangeRate: cTokenExchangeRate,\n supplyBalance: deposit?.depositedAmount.shiftedBy(decimals).decimalPlaces(0).toNumber() ?? 0,\n borrowBalance: borrow?.borrowedAmount.shiftedBy(decimals).decimalPlaces(0).toNumber() ?? 0,\n borrowAPR: reservesMap[normalizedCoinType].borrowAprPercent.toNumber()\n }\n }\n\n async depositCoinPTB(\n tx: Transaction,\n coinType: string,\n coinObject: TransactionObjectInput,\n amount: number\n ): Promise<void> {\n throw new Error('Not implemented')\n }\n\n async withdrawCoinPTB(tx: Transaction, coinType: string, amount: number) {\n const pool = await this.getPool(coinType)\n const isMax = amount === pool.supplyBalance\n\n return await this.suilendClient.withdraw(\n this.obligationOwnerCap.id,\n this.obligationOwnerCap.obligationId,\n coinType,\n isMax ? MAX_U64.toString() : Math.ceil(amount / pool.cTokenExchangeRate).toString(),\n tx\n )\n }\n\n async borrowCoinPTB(\n tx: Transaction,\n coinType: string,\n amount: number\n ): Promise<TransactionResult> {\n throw new Error('Not implemented')\n }\n\n async repayCoinPTB(\n tx: Transaction,\n coinType: string,\n coinObject: TransactionObjectInput,\n amount: number\n ): Promise<void> {\n this.suilendClient.repay(this.obligationOwnerCap.obligationId, coinType, coinObject, tx)\n tx.transferObjects([coinObject as any], tx.pure.address(this.walletClient.address))\n }\n}\n\nexport default SuilendProtocol\n"],"names":["createSuilendGrpcClient","walletClient","options","network","SuiGrpcClient","SuilendProtocol","obligationOwnerCap","suilendClient","suilendGrpcClient","obligations","SuilendClient","LENDING_MARKET_ID","LENDING_MARKET_TYPE","coinType","normalizedCoinType","normalizeStructTag","allReserves","coinTypes","reserve","reward","coinMetadataMap","getCoinMetadataMap","reservesMap","parseReserve","acc","rawObligation","obligation","parseObligation","deposit","borrow","decimals","tx","coinObject","amount","pool","isMax","MAX_U64"],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -29,7 +29,10 @@ export type NaviTransactionExecutionOptions = {
|
|
|
29
29
|
options?: NaviTransactionResponseOptions;
|
|
30
30
|
};
|
|
31
31
|
export type NaviWalletExecutionClient = {
|
|
32
|
-
core:
|
|
32
|
+
core: {
|
|
33
|
+
simulateTransaction?(options: any): Promise<any>;
|
|
34
|
+
executeTransaction?(options: any): Promise<any>;
|
|
35
|
+
};
|
|
33
36
|
};
|
|
34
37
|
export type NaviTransactionStatus = {
|
|
35
38
|
status: 'success' | 'failure' | (string & {});
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,qDAAqD;IACrD,MAAM,EAAE,OAAO,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,8BAA8B,GAAG;IAC3C,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB,CAAA;AAED,MAAM,MAAM,+BAA+B,GAAG;IAC5C,OAAO,CAAC,EAAE,8BAA8B,CAAA;CACzC,CAAA;AAED,MAAM,MAAM,yBAAyB,GAAG;IACtC,IAAI,EAAE,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,qDAAqD;IACrD,MAAM,EAAE,OAAO,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,8BAA8B,GAAG;IAC3C,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB,CAAA;AAED,MAAM,MAAM,+BAA+B,GAAG;IAC5C,OAAO,CAAC,EAAE,8BAA8B,CAAA;CACzC,CAAA;AAED,MAAM,MAAM,yBAAyB,GAAG;IACtC,IAAI,EAAE;QACJ,mBAAmB,CAAC,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;QAChD,kBAAkB,CAAC,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;KAChD,CAAA;CACF,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG;IAClC,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAA;IAC7C,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED,MAAM,MAAM,sBAAsB,GAAG;IACnC,MAAM,CAAC,EAAE,qBAAqB,CAAA;IAC9B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB,CAAA;AAED,MAAM,MAAM,yBAAyB,GAAG;IACtC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,sBAAsB,CAAA;IAChC,MAAM,EAAE,oBAAoB,EAAE,CAAA;IAC9B,cAAc,EAAE,iBAAiB,EAAE,CAAA;IACnC,aAAa,EAAE,gBAAgB,EAAE,CAAA;CAClC,CAAA;AAED,MAAM,MAAM,2BAA2B,GAAG,yBAAyB,GAAG;IACpE,IAAI,EAAE,QAAQ,CAAA;CACf,CAAA;AAED,MAAM,MAAM,4BAA4B,GAAG,yBAAyB,GAAG;IACrE,IAAI,EAAE,SAAS,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,2BAA2B,CAAC,CAAC,SAAS,OAAO,GAAG,KAAK,IAAI,CAAC,SAAS,IAAI,GAC/E,2BAA2B,GAC3B,4BAA4B,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@naviprotocol/wallet-client",
|
|
3
|
-
"version": "2.0.0-beta.
|
|
3
|
+
"version": "2.0.0-beta.1",
|
|
4
4
|
"description": "NAVI Wallet Client",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -42,12 +42,12 @@
|
|
|
42
42
|
"date-fns": "4.1.0",
|
|
43
43
|
"mitt": "3.0.1",
|
|
44
44
|
"shio-sdk": "1.0.9",
|
|
45
|
-
"@naviprotocol/astros-aggregator-sdk": "2.0.0-beta.
|
|
46
|
-
"@naviprotocol/lending": "2.0.0-beta.
|
|
45
|
+
"@naviprotocol/astros-aggregator-sdk": "2.0.0-beta.1",
|
|
46
|
+
"@naviprotocol/lending": "2.0.0-beta.1"
|
|
47
47
|
},
|
|
48
48
|
"devDependencies": {
|
|
49
49
|
"@mysten/bcs": "2.0.1",
|
|
50
|
-
"@mysten/sui": "2.
|
|
50
|
+
"@mysten/sui": "2.19.0",
|
|
51
51
|
"@pythnetwork/pyth-sui-js": "2.2.0",
|
|
52
52
|
"@suilend/sdk": "3.0.4",
|
|
53
53
|
"@suilend/sui-fe": "3.0.7",
|
|
@@ -56,11 +56,11 @@
|
|
|
56
56
|
"tsconfig-paths": "4.2.0",
|
|
57
57
|
"tslint": "6.1.3",
|
|
58
58
|
"typescript": "5.8.3",
|
|
59
|
-
"vitest": "3.2.
|
|
59
|
+
"vitest": "3.2.4"
|
|
60
60
|
},
|
|
61
61
|
"peerDependencies": {
|
|
62
|
-
"@mysten/sui": ">=2.0.0",
|
|
63
62
|
"@mysten/bcs": "2.0.1",
|
|
63
|
+
"@mysten/sui": ">=2.0.0",
|
|
64
64
|
"@pythnetwork/pyth-sui-js": "2.2.0",
|
|
65
65
|
"@suilend/sdk": "^3.0.4",
|
|
66
66
|
"@suilend/sui-fe": "^3.0.7"
|
package/dist/suilend-Df4FukWs.js
DELETED
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
import { getJsonRpcFullnodeUrl as f } from "@mysten/sui/jsonRpc";
|
|
2
|
-
import { SuiGrpcClient as y } from "@mysten/sui/grpc";
|
|
3
|
-
import { SuilendClient as m, LENDING_MARKET_ID as C, LENDING_MARKET_TYPE as g } from "@suilend/sdk/client";
|
|
4
|
-
import { parseObligation as T } from "@suilend/sdk/parsers/obligation";
|
|
5
|
-
import { parseReserve as R } from "@suilend/sdk/parsers/reserve";
|
|
6
|
-
import { getCoinMetadataMap as E } from "@suilend/sui-fe/lib/coinMetadata";
|
|
7
|
-
import { MAX_U64 as P } from "@suilend/sui-fe/lib/constants";
|
|
8
|
-
import { normalizeStructTag as s } from "@mysten/sui/utils";
|
|
9
|
-
function M(c, e) {
|
|
10
|
-
if (e.grpcClient)
|
|
11
|
-
return e.grpcClient;
|
|
12
|
-
const o = c.client.network, t = e.grpcUrl ?? c.clientUrl ?? f(o);
|
|
13
|
-
return new y({
|
|
14
|
-
network: o,
|
|
15
|
-
baseUrl: t
|
|
16
|
-
});
|
|
17
|
-
}
|
|
18
|
-
class w {
|
|
19
|
-
constructor(e, o, t) {
|
|
20
|
-
this.name = "suilend", this.walletClient = e, this.obligationOwnerCap = o, this.suilendClient = t;
|
|
21
|
-
}
|
|
22
|
-
static async create(e, o = {}) {
|
|
23
|
-
const t = M(e, o), [i, a] = await Promise.all([
|
|
24
|
-
m.initialize(C, g, t),
|
|
25
|
-
m.getObligationOwnerCaps(
|
|
26
|
-
e.address,
|
|
27
|
-
[g],
|
|
28
|
-
t
|
|
29
|
-
)
|
|
30
|
-
]);
|
|
31
|
-
if (a.length === 0)
|
|
32
|
-
throw new Error("No existing obligations found for wallet address: " + e.address);
|
|
33
|
-
return new w(e, a[0], i);
|
|
34
|
-
}
|
|
35
|
-
async getPool(e) {
|
|
36
|
-
const o = s(e), t = this.suilendClient.lendingMarket.reserves, i = /* @__PURE__ */ new Set();
|
|
37
|
-
t.forEach((n) => {
|
|
38
|
-
i.add(s(n.coinType.name)), n.depositsPoolRewardManager.poolRewards.forEach((r) => {
|
|
39
|
-
r && i.add(s(r.coinType.name));
|
|
40
|
-
}), n.borrowsPoolRewardManager.poolRewards.forEach((r) => {
|
|
41
|
-
r && i.add(s(r.coinType.name));
|
|
42
|
-
});
|
|
43
|
-
});
|
|
44
|
-
const a = await E(Array.from(i)), l = t.map((n) => R(n, a)).reduce(
|
|
45
|
-
(n, r) => (n[r.coinType] = r, n),
|
|
46
|
-
{}
|
|
47
|
-
), u = await this.suilendClient.getObligation(
|
|
48
|
-
this.obligationOwnerCap.obligationId
|
|
49
|
-
), d = T(u, l), h = d.deposits.find((n) => n.coinType === o), b = d.borrows.find((n) => n.coinType === o), p = a[o].decimals;
|
|
50
|
-
return {
|
|
51
|
-
cTokenExchangeRate: l[o].cTokenExchangeRate.toNumber(),
|
|
52
|
-
supplyBalance: h?.depositedAmount.shiftedBy(p).decimalPlaces(0).toNumber() ?? 0,
|
|
53
|
-
borrowBalance: b?.borrowedAmount.shiftedBy(p).decimalPlaces(0).toNumber() ?? 0,
|
|
54
|
-
borrowAPR: l[o].borrowAprPercent.toNumber()
|
|
55
|
-
};
|
|
56
|
-
}
|
|
57
|
-
async depositCoinPTB(e, o, t, i) {
|
|
58
|
-
throw new Error("Not implemented");
|
|
59
|
-
}
|
|
60
|
-
async withdrawCoinPTB(e, o, t) {
|
|
61
|
-
const i = await this.getPool(o), a = t === i.supplyBalance;
|
|
62
|
-
return await this.suilendClient.withdraw(
|
|
63
|
-
this.obligationOwnerCap.id,
|
|
64
|
-
this.obligationOwnerCap.obligationId,
|
|
65
|
-
o,
|
|
66
|
-
a ? P.toString() : Math.ceil(t / i.cTokenExchangeRate).toString(),
|
|
67
|
-
e
|
|
68
|
-
);
|
|
69
|
-
}
|
|
70
|
-
async borrowCoinPTB(e, o, t) {
|
|
71
|
-
throw new Error("Not implemented");
|
|
72
|
-
}
|
|
73
|
-
async repayCoinPTB(e, o, t, i) {
|
|
74
|
-
this.suilendClient.repay(this.obligationOwnerCap.obligationId, o, t, e), e.transferObjects([t], e.pure.address(this.walletClient.address));
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
export {
|
|
78
|
-
w as default
|
|
79
|
-
};
|
|
80
|
-
//# sourceMappingURL=suilend-Df4FukWs.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"suilend-Df4FukWs.js","sources":["../src/modules/lendingModule/protocols/suilend.ts"],"sourcesContent":["import { LendingPool, LendingProtocol } from '.'\nimport { Transaction, TransactionObjectInput, TransactionResult } from '@mysten/sui/transactions'\nimport { getJsonRpcFullnodeUrl } from '@mysten/sui/jsonRpc'\nimport { SuiGrpcClient } from '@mysten/sui/grpc'\nimport { SuilendClient, LENDING_MARKET_ID, LENDING_MARKET_TYPE } from '@suilend/sdk/client'\nimport { parseObligation } from '@suilend/sdk/parsers/obligation'\nimport { parseReserve } from '@suilend/sdk/parsers/reserve'\nimport type { ObligationOwnerCap } from '@suilend/sdk/_generated/suilend/lending-market/structs'\nimport { WalletClient } from '../../../client'\nimport { getCoinMetadataMap } from '@suilend/sui-fe/lib/coinMetadata'\nimport { MAX_U64 } from '@suilend/sui-fe/lib/constants'\nimport BigNumber from 'bignumber.js'\nimport { normalizeStructTag } from '@mysten/sui/utils'\n\ntype SuilendProtocolCreateOptions = {\n grpcClient?: SuiGrpcClient\n grpcUrl?: string\n}\n\nfunction createSuilendGrpcClient(\n walletClient: WalletClient,\n options: SuilendProtocolCreateOptions\n) {\n if (options.grpcClient) {\n return options.grpcClient\n }\n\n const network = walletClient.client.network\n const baseUrl =\n options.grpcUrl ??\n walletClient.clientUrl ??\n getJsonRpcFullnodeUrl(network as 'mainnet' | 'testnet' | 'devnet' | 'localnet')\n\n return new SuiGrpcClient({\n network,\n baseUrl\n })\n}\n\nclass SuilendProtocol implements LendingProtocol {\n readonly name = 'suilend'\n private walletClient: WalletClient\n private obligationOwnerCap: ObligationOwnerCap<string>\n private suilendClient: SuilendClient\n\n constructor(\n walletClient: WalletClient,\n obligationOwnerCap: ObligationOwnerCap<string>,\n suilendClient: SuilendClient\n ) {\n this.walletClient = walletClient\n this.obligationOwnerCap = obligationOwnerCap\n this.suilendClient = suilendClient\n }\n\n static async create(walletClient: WalletClient, options: SuilendProtocolCreateOptions = {}) {\n const suilendGrpcClient = createSuilendGrpcClient(walletClient, options)\n const [suilendClient, obligations] = await Promise.all([\n SuilendClient.initialize(LENDING_MARKET_ID, LENDING_MARKET_TYPE, suilendGrpcClient),\n SuilendClient.getObligationOwnerCaps(\n walletClient.address,\n [LENDING_MARKET_TYPE],\n suilendGrpcClient\n )\n ])\n if (obligations.length === 0) {\n throw new Error('No existing obligations found for wallet address: ' + walletClient.address)\n }\n return new SuilendProtocol(walletClient, obligations[0], suilendClient)\n }\n\n async getPool(coinType: string): Promise<LendingPool & { cTokenExchangeRate: number }> {\n const normalizedCoinType = normalizeStructTag(coinType)\n\n const allReserves = this.suilendClient.lendingMarket.reserves\n\n const coinTypes = new Set<string>()\n\n allReserves.forEach((reserve) => {\n coinTypes.add(normalizeStructTag(reserve.coinType.name))\n reserve.depositsPoolRewardManager.poolRewards.forEach((reward) => {\n if (reward) {\n coinTypes.add(normalizeStructTag(reward.coinType.name))\n }\n })\n reserve.borrowsPoolRewardManager.poolRewards.forEach((reward) => {\n if (reward) {\n coinTypes.add(normalizeStructTag(reward.coinType.name))\n }\n })\n })\n\n const coinMetadataMap = await getCoinMetadataMap(Array.from(coinTypes))\n\n const parsedReserves = allReserves.map((reserve) => parseReserve(reserve, coinMetadataMap))\n const reservesMap = parsedReserves.reduce(\n (acc, reserve) => {\n acc[reserve.coinType] = reserve\n return acc\n },\n {} as Record<string, any>\n )\n\n const rawObligation = await this.suilendClient.getObligation(\n this.obligationOwnerCap.obligationId\n )\n\n const obligation = parseObligation(rawObligation, reservesMap)\n\n const deposit = obligation.deposits.find((deposit) => deposit.coinType === normalizedCoinType)\n const borrow = obligation.borrows.find((borrow) => borrow.coinType === normalizedCoinType)\n\n const decimals = coinMetadataMap[normalizedCoinType].decimals\n const cTokenExchangeRate = reservesMap[normalizedCoinType].cTokenExchangeRate.toNumber()\n\n return {\n cTokenExchangeRate: cTokenExchangeRate,\n supplyBalance: deposit?.depositedAmount.shiftedBy(decimals).decimalPlaces(0).toNumber() ?? 0,\n borrowBalance: borrow?.borrowedAmount.shiftedBy(decimals).decimalPlaces(0).toNumber() ?? 0,\n borrowAPR: reservesMap[normalizedCoinType].borrowAprPercent.toNumber()\n }\n }\n\n async depositCoinPTB(\n tx: Transaction,\n coinType: string,\n coinObject: TransactionObjectInput,\n amount: number\n ): Promise<void> {\n throw new Error('Not implemented')\n }\n\n async withdrawCoinPTB(tx: Transaction, coinType: string, amount: number) {\n const pool = await this.getPool(coinType)\n const isMax = amount === pool.supplyBalance\n\n return await this.suilendClient.withdraw(\n this.obligationOwnerCap.id,\n this.obligationOwnerCap.obligationId,\n coinType,\n isMax ? MAX_U64.toString() : Math.ceil(amount / pool.cTokenExchangeRate).toString(),\n tx\n )\n }\n\n async borrowCoinPTB(\n tx: Transaction,\n coinType: string,\n amount: number\n ): Promise<TransactionResult> {\n throw new Error('Not implemented')\n }\n\n async repayCoinPTB(\n tx: Transaction,\n coinType: string,\n coinObject: TransactionObjectInput,\n amount: number\n ): Promise<void> {\n this.suilendClient.repay(this.obligationOwnerCap.obligationId, coinType, coinObject, tx)\n tx.transferObjects([coinObject as any], tx.pure.address(this.walletClient.address))\n }\n}\n\nexport default SuilendProtocol\n"],"names":["createSuilendGrpcClient","walletClient","options","network","baseUrl","getJsonRpcFullnodeUrl","SuiGrpcClient","SuilendProtocol","obligationOwnerCap","suilendClient","suilendGrpcClient","obligations","SuilendClient","LENDING_MARKET_ID","LENDING_MARKET_TYPE","coinType","normalizedCoinType","normalizeStructTag","allReserves","coinTypes","reserve","reward","coinMetadataMap","getCoinMetadataMap","reservesMap","parseReserve","acc","rawObligation","obligation","parseObligation","deposit","borrow","decimals","tx","coinObject","amount","pool","isMax","MAX_U64"],"mappings":"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"}
|