@suilend/sdk 1.0.9 → 1.1.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/core/client.d.ts +58 -52
- package/core/client.js +186 -122
- package/core/parsers/apiReserveAssetDataEvent.js +1 -1
- package/core/parsers/lendingMarket.d.ts +2 -2
- package/core/parsers/lendingMarket.js +13 -1
- package/core/parsers/obligation.d.ts +3 -2
- package/core/parsers/obligation.js +2 -1
- package/core/parsers/reserve.d.ts +3 -3
- package/core/parsers/reserve.js +1 -1
- package/core/types.d.ts +65 -60
- package/core/types.js +7 -5
- package/core/utils/events.d.ts +2 -2
- package/core/utils/simulate.d.ts +1 -1
- package/core/utils/simulate.js +3 -3
- package/core/utils.d.ts +3 -1
- package/core/utils.js +12 -2
- package/mainnet/_generated/_dependencies/source/0x1/ascii/structs.d.ts +16 -6
- package/mainnet/_generated/_dependencies/source/0x1/ascii/structs.js +43 -7
- package/mainnet/_generated/_dependencies/source/0x1/index.d.ts +1 -0
- package/mainnet/_generated/_dependencies/source/0x1/index.js +2 -1
- package/mainnet/_generated/_dependencies/source/0x1/option/structs.d.ts +10 -4
- package/mainnet/_generated/_dependencies/source/0x1/option/structs.js +32 -4
- package/mainnet/_generated/_dependencies/source/0x1/type-name/structs.d.ts +8 -3
- package/mainnet/_generated/_dependencies/source/0x1/type-name/structs.js +23 -4
- package/mainnet/_generated/_dependencies/source/0x2/bag/structs.d.ts +8 -3
- package/mainnet/_generated/_dependencies/source/0x2/bag/structs.js +23 -4
- package/mainnet/_generated/_dependencies/source/0x2/balance/structs.d.ts +14 -5
- package/mainnet/_generated/_dependencies/source/0x2/balance/structs.js +61 -7
- package/mainnet/_generated/_dependencies/source/0x2/index.d.ts +1 -0
- package/mainnet/_generated/_dependencies/source/0x2/index.js +2 -1
- package/mainnet/_generated/_dependencies/source/0x2/object/structs.d.ts +14 -5
- package/mainnet/_generated/_dependencies/source/0x2/object/structs.js +45 -9
- package/mainnet/_generated/_dependencies/source/0x2/object-table/structs.d.ts +8 -3
- package/mainnet/_generated/_dependencies/source/0x2/object-table/structs.js +34 -4
- package/mainnet/_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/index.d.ts +2 -0
- package/mainnet/_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/index.js +3 -1
- package/mainnet/_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/price-identifier/structs.d.ts +10 -4
- package/mainnet/_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/price-identifier/structs.js +24 -5
- package/mainnet/_generated/_framework/reified.d.ts +28 -20
- package/mainnet/_generated/_framework/reified.js +11 -34
- package/mainnet/_generated/_framework/util.d.ts +26 -38
- package/mainnet/_generated/_framework/util.js +142 -56
- package/mainnet/_generated/_framework/vector.d.ts +35 -0
- package/mainnet/_generated/_framework/vector.js +77 -0
- package/mainnet/_generated/suilend/cell/structs.d.ts +8 -3
- package/mainnet/_generated/suilend/cell/structs.js +33 -5
- package/mainnet/_generated/suilend/decimal/structs.d.ts +8 -3
- package/mainnet/_generated/suilend/decimal/structs.js +23 -5
- package/mainnet/_generated/suilend/index.d.ts +2 -1
- package/mainnet/_generated/suilend/index.js +3 -2
- package/mainnet/_generated/suilend/lending-market/functions.d.ts +106 -107
- package/mainnet/_generated/suilend/lending-market/functions.js +191 -189
- package/mainnet/_generated/suilend/lending-market/structs.d.ts +88 -30
- package/mainnet/_generated/suilend/lending-market/structs.js +388 -110
- package/mainnet/_generated/suilend/lending-market-registry/functions.d.ts +3 -4
- package/mainnet/_generated/suilend/lending-market-registry/functions.js +5 -5
- package/mainnet/_generated/suilend/liquidity-mining/structs.d.ts +34 -12
- package/mainnet/_generated/suilend/liquidity-mining/structs.js +117 -22
- package/mainnet/_generated/suilend/obligation/structs.d.ts +40 -14
- package/mainnet/_generated/suilend/obligation/structs.js +144 -33
- package/mainnet/_generated/suilend/rate-limiter/functions.d.ts +13 -14
- package/mainnet/_generated/suilend/rate-limiter/functions.js +21 -21
- package/mainnet/_generated/suilend/rate-limiter/structs.d.ts +14 -5
- package/mainnet/_generated/suilend/rate-limiter/structs.js +44 -9
- package/mainnet/_generated/suilend/reserve/structs.d.ts +38 -13
- package/mainnet/_generated/suilend/reserve/structs.js +164 -30
- package/mainnet/_generated/suilend/reserve-config/functions.d.ts +65 -65
- package/mainnet/_generated/suilend/reserve-config/functions.js +146 -146
- package/mainnet/_generated/suilend/reserve-config/structs.d.ts +16 -6
- package/mainnet/_generated/suilend/reserve-config/structs.js +45 -9
- package/mainnet/client.d.ts +5 -6
- package/mainnet/client.js +4 -5
- package/mainnet/parsers/lendingMarket.d.ts +2 -2
- package/mainnet/parsers/reserve.d.ts +3 -3
- package/mainnet/utils/index.d.ts +0 -1
- package/mainnet/utils/index.js +0 -1
- package/mainnet/utils/obligation.d.ts +1 -1
- package/mainnet/utils/obligation.js +3 -3
- package/mainnet/utils/simulate.d.ts +1 -1
- package/package.json +1 -1
- package/core/utils/utils.d.ts +0 -61
- package/core/utils/utils.js +0 -157
- package/mainnet/_generated/_dependencies/source/0x1/bit-vector/structs.d.ts +0 -50
- package/mainnet/_generated/_dependencies/source/0x1/bit-vector/structs.js +0 -154
- package/mainnet/_generated/_dependencies/source/0x1/fixed-point32/structs.d.ts +0 -41
- package/mainnet/_generated/_dependencies/source/0x1/fixed-point32/structs.js +0 -124
- package/mainnet/_generated/_dependencies/source/0x1/init.d.ts +0 -2
- package/mainnet/_generated/_dependencies/source/0x1/init.js +0 -42
- package/mainnet/_generated/_dependencies/source/0x1/string/structs.d.ts +0 -44
- package/mainnet/_generated/_dependencies/source/0x1/string/structs.js +0 -148
- package/mainnet/_generated/_dependencies/source/0x2/authenticator-state/structs.d.ts +0 -442
- package/mainnet/_generated/_dependencies/source/0x2/authenticator-state/structs.js +0 -633
- package/mainnet/_generated/_dependencies/source/0x2/bcs/structs.d.ts +0 -44
- package/mainnet/_generated/_dependencies/source/0x2/bcs/structs.js +0 -147
- package/mainnet/_generated/_dependencies/source/0x2/bls12381/structs.d.ts +0 -155
- package/mainnet/_generated/_dependencies/source/0x2/bls12381/structs.js +0 -448
- package/mainnet/_generated/_dependencies/source/0x2/borrow/structs.d.ts +0 -104
- package/mainnet/_generated/_dependencies/source/0x2/borrow/structs.js +0 -260
- package/mainnet/_generated/_dependencies/source/0x2/clock/structs.d.ts +0 -56
- package/mainnet/_generated/_dependencies/source/0x2/clock/structs.js +0 -131
- package/mainnet/_generated/_dependencies/source/0x2/coin/structs.d.ts +0 -379
- package/mainnet/_generated/_dependencies/source/0x2/coin/structs.js +0 -741
- package/mainnet/_generated/_dependencies/source/0x2/deny-list/structs.d.ts +0 -178
- package/mainnet/_generated/_dependencies/source/0x2/deny-list/structs.js +0 -279
- package/mainnet/_generated/_dependencies/source/0x2/display/structs.d.ts +0 -228
- package/mainnet/_generated/_dependencies/source/0x2/display/structs.js +0 -375
- package/mainnet/_generated/_dependencies/source/0x2/dynamic-field/structs.d.ts +0 -63
- package/mainnet/_generated/_dependencies/source/0x2/dynamic-field/structs.js +0 -139
- package/mainnet/_generated/_dependencies/source/0x2/dynamic-object-field/structs.d.ts +0 -42
- package/mainnet/_generated/_dependencies/source/0x2/dynamic-object-field/structs.js +0 -127
- package/mainnet/_generated/_dependencies/source/0x2/groth16/structs.d.ts +0 -186
- package/mainnet/_generated/_dependencies/source/0x2/groth16/structs.js +0 -489
- package/mainnet/_generated/_dependencies/source/0x2/group-ops/structs.d.ts +0 -44
- package/mainnet/_generated/_dependencies/source/0x2/group-ops/structs.js +0 -150
- package/mainnet/_generated/_dependencies/source/0x2/init.d.ts +0 -2
- package/mainnet/_generated/_dependencies/source/0x2/init.js +0 -151
- package/mainnet/_generated/_dependencies/source/0x2/kiosk/structs.d.ts +0 -565
- package/mainnet/_generated/_dependencies/source/0x2/kiosk/structs.js +0 -1235
- package/mainnet/_generated/_dependencies/source/0x2/kiosk-extension/structs.d.ts +0 -112
- package/mainnet/_generated/_dependencies/source/0x2/kiosk-extension/structs.js +0 -248
- package/mainnet/_generated/_dependencies/source/0x2/linked-table/structs.d.ts +0 -144
- package/mainnet/_generated/_dependencies/source/0x2/linked-table/structs.js +0 -269
- package/mainnet/_generated/_dependencies/source/0x2/object-bag/structs.d.ts +0 -56
- package/mainnet/_generated/_dependencies/source/0x2/object-bag/structs.js +0 -131
- package/mainnet/_generated/_dependencies/source/0x2/package/structs.d.ts +0 -262
- package/mainnet/_generated/_dependencies/source/0x2/package/structs.js +0 -531
- package/mainnet/_generated/_dependencies/source/0x2/priority-queue/structs.d.ts +0 -101
- package/mainnet/_generated/_dependencies/source/0x2/priority-queue/structs.js +0 -269
- package/mainnet/_generated/_dependencies/source/0x2/random/structs.d.ts +0 -190
- package/mainnet/_generated/_dependencies/source/0x2/random/structs.js +0 -404
- package/mainnet/_generated/_dependencies/source/0x2/sui/structs.d.ts +0 -41
- package/mainnet/_generated/_dependencies/source/0x2/sui/structs.js +0 -123
- package/mainnet/_generated/_dependencies/source/0x2/table/structs.d.ts +0 -56
- package/mainnet/_generated/_dependencies/source/0x2/table/structs.js +0 -133
- package/mainnet/_generated/_dependencies/source/0x2/table-vec/structs.d.ts +0 -63
- package/mainnet/_generated/_dependencies/source/0x2/table-vec/structs.js +0 -151
- package/mainnet/_generated/_dependencies/source/0x2/token/structs.d.ts +0 -424
- package/mainnet/_generated/_dependencies/source/0x2/token/structs.js +0 -758
- package/mainnet/_generated/_dependencies/source/0x2/transfer/structs.d.ts +0 -52
- package/mainnet/_generated/_dependencies/source/0x2/transfer/structs.js +0 -133
- package/mainnet/_generated/_dependencies/source/0x2/transfer-policy/structs.d.ts +0 -345
- package/mainnet/_generated/_dependencies/source/0x2/transfer-policy/structs.js +0 -746
- package/mainnet/_generated/_dependencies/source/0x2/tx-context/structs.d.ts +0 -68
- package/mainnet/_generated/_dependencies/source/0x2/tx-context/structs.js +0 -177
- package/mainnet/_generated/_dependencies/source/0x2/url/structs.d.ts +0 -48
- package/mainnet/_generated/_dependencies/source/0x2/url/structs.js +0 -124
- package/mainnet/_generated/_dependencies/source/0x2/vec-map/structs.d.ts +0 -101
- package/mainnet/_generated/_dependencies/source/0x2/vec-map/structs.js +0 -267
- package/mainnet/_generated/_dependencies/source/0x2/vec-set/structs.d.ts +0 -45
- package/mainnet/_generated/_dependencies/source/0x2/vec-set/structs.js +0 -151
- package/mainnet/_generated/_dependencies/source/0x2/versioned/structs.d.ts +0 -104
- package/mainnet/_generated/_dependencies/source/0x2/versioned/structs.js +0 -246
- package/mainnet/_generated/_dependencies/source/0x2/zklogin-verified-id/structs.d.ts +0 -105
- package/mainnet/_generated/_dependencies/source/0x2/zklogin-verified-id/structs.js +0 -161
- package/mainnet/_generated/_dependencies/source/0x2/zklogin-verified-issuer/structs.d.ts +0 -69
- package/mainnet/_generated/_dependencies/source/0x2/zklogin-verified-issuer/structs.js +0 -143
- package/mainnet/_generated/_dependencies/source/0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a/bytes20/structs.d.ts +0 -44
- package/mainnet/_generated/_dependencies/source/0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a/bytes20/structs.js +0 -149
- package/mainnet/_generated/_dependencies/source/0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a/bytes32/structs.d.ts +0 -44
- package/mainnet/_generated/_dependencies/source/0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a/bytes32/structs.js +0 -149
- package/mainnet/_generated/_dependencies/source/0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a/consumed-vaas/structs.d.ts +0 -72
- package/mainnet/_generated/_dependencies/source/0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a/consumed-vaas/structs.js +0 -151
- package/mainnet/_generated/_dependencies/source/0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a/cursor/structs.d.ts +0 -45
- package/mainnet/_generated/_dependencies/source/0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a/cursor/structs.js +0 -151
- package/mainnet/_generated/_dependencies/source/0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a/emitter/structs.d.ts +0 -140
- package/mainnet/_generated/_dependencies/source/0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a/emitter/structs.js +0 -352
- package/mainnet/_generated/_dependencies/source/0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a/external-address/structs.d.ts +0 -52
- package/mainnet/_generated/_dependencies/source/0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a/external-address/structs.js +0 -126
- package/mainnet/_generated/_dependencies/source/0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a/fee-collector/structs.d.ts +0 -58
- package/mainnet/_generated/_dependencies/source/0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a/fee-collector/structs.js +0 -157
- package/mainnet/_generated/_dependencies/source/0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a/governance-message/structs.d.ts +0 -158
- package/mainnet/_generated/_dependencies/source/0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a/governance-message/structs.js +0 -299
- package/mainnet/_generated/_dependencies/source/0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a/guardian/structs.d.ts +0 -52
- package/mainnet/_generated/_dependencies/source/0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a/guardian/structs.js +0 -126
- package/mainnet/_generated/_dependencies/source/0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a/guardian-set/structs.d.ts +0 -75
- package/mainnet/_generated/_dependencies/source/0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a/guardian-set/structs.js +0 -162
- package/mainnet/_generated/_dependencies/source/0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a/guardian-signature/structs.d.ts +0 -80
- package/mainnet/_generated/_dependencies/source/0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a/guardian-signature/structs.js +0 -144
- package/mainnet/_generated/_dependencies/source/0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a/index.d.ts +0 -2
- package/mainnet/_generated/_dependencies/source/0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a/index.js +0 -5
- package/mainnet/_generated/_dependencies/source/0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a/init.d.ts +0 -2
- package/mainnet/_generated/_dependencies/source/0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a/init.js +0 -91
- package/mainnet/_generated/_dependencies/source/0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a/migrate/structs.d.ts +0 -46
- package/mainnet/_generated/_dependencies/source/0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a/migrate/structs.js +0 -126
- package/mainnet/_generated/_dependencies/source/0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a/package-utils/structs.d.ts +0 -177
- package/mainnet/_generated/_dependencies/source/0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a/package-utils/structs.js +0 -463
- package/mainnet/_generated/_dependencies/source/0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a/publish-message/structs.d.ts +0 -141
- package/mainnet/_generated/_dependencies/source/0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a/publish-message/structs.js +0 -308
- package/mainnet/_generated/_dependencies/source/0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a/set/structs.d.ts +0 -101
- package/mainnet/_generated/_dependencies/source/0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a/set/structs.js +0 -260
- package/mainnet/_generated/_dependencies/source/0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a/set-fee/structs.d.ts +0 -79
- package/mainnet/_generated/_dependencies/source/0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a/set-fee/structs.js +0 -235
- package/mainnet/_generated/_dependencies/source/0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a/setup/structs.d.ts +0 -50
- package/mainnet/_generated/_dependencies/source/0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a/setup/structs.js +0 -126
- package/mainnet/_generated/_dependencies/source/0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a/state/structs.d.ts +0 -269
- package/mainnet/_generated/_dependencies/source/0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a/state/structs.js +0 -314
- package/mainnet/_generated/_dependencies/source/0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a/transfer-fee/structs.d.ts +0 -85
- package/mainnet/_generated/_dependencies/source/0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a/transfer-fee/structs.js +0 -246
- package/mainnet/_generated/_dependencies/source/0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a/update-guardian-set/structs.d.ts +0 -145
- package/mainnet/_generated/_dependencies/source/0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a/update-guardian-set/structs.js +0 -376
- package/mainnet/_generated/_dependencies/source/0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a/upgrade-contract/structs.d.ts +0 -143
- package/mainnet/_generated/_dependencies/source/0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a/upgrade-contract/structs.js +0 -353
- package/mainnet/_generated/_dependencies/source/0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a/vaa/structs.d.ts +0 -122
- package/mainnet/_generated/_dependencies/source/0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a/vaa/structs.js +0 -198
- package/mainnet/_generated/_dependencies/source/0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a/version-control/structs.d.ts +0 -79
- package/mainnet/_generated/_dependencies/source/0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a/version-control/structs.js +0 -235
- package/mainnet/_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/batch-price-attestation/structs.d.ts +0 -279
- package/mainnet/_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/batch-price-attestation/structs.js +0 -302
- package/mainnet/_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/contract-upgrade/structs.d.ts +0 -105
- package/mainnet/_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/contract-upgrade/structs.js +0 -243
- package/mainnet/_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/data-source/structs.d.ts +0 -66
- package/mainnet/_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/data-source/structs.js +0 -132
- package/mainnet/_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/event/structs.d.ts +0 -200
- package/mainnet/_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/event/structs.js +0 -242
- package/mainnet/_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/governance/structs.d.ts +0 -67
- package/mainnet/_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/governance/structs.js +0 -162
- package/mainnet/_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/governance-action/structs.d.ts +0 -41
- package/mainnet/_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/governance-action/structs.js +0 -125
- package/mainnet/_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/governance-instruction/structs.d.ts +0 -71
- package/mainnet/_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/governance-instruction/structs.js +0 -168
- package/mainnet/_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/hot-potato-vector/structs.d.ts +0 -45
- package/mainnet/_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/hot-potato-vector/structs.js +0 -151
- package/mainnet/_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/i64/structs.d.ts +0 -47
- package/mainnet/_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/i64/structs.js +0 -130
- package/mainnet/_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/init.d.ts +0 -2
- package/mainnet/_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/init.js +0 -86
- package/mainnet/_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/migrate/structs.d.ts +0 -46
- package/mainnet/_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/migrate/structs.js +0 -126
- package/mainnet/_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/price/structs.d.ts +0 -84
- package/mainnet/_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/price/structs.js +0 -144
- package/mainnet/_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/price-feed/structs.d.ts +0 -153
- package/mainnet/_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/price-feed/structs.js +0 -139
- package/mainnet/_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/price-info/structs.d.ts +0 -351
- package/mainnet/_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/price-info/structs.js +0 -255
- package/mainnet/_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/price-status/structs.d.ts +0 -41
- package/mainnet/_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/price-status/structs.js +0 -125
- package/mainnet/_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/set/structs.d.ts +0 -110
- package/mainnet/_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/set/structs.js +0 -267
- package/mainnet/_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/set-data-sources/structs.d.ts +0 -75
- package/mainnet/_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/set-data-sources/structs.js +0 -150
- package/mainnet/_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/set-fee-recipient/structs.d.ts +0 -41
- package/mainnet/_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/set-fee-recipient/structs.js +0 -130
- package/mainnet/_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/set-governance-data-source/structs.d.ts +0 -72
- package/mainnet/_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/set-governance-data-source/structs.js +0 -138
- package/mainnet/_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/set-stale-price-threshold/structs.d.ts +0 -41
- package/mainnet/_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/set-stale-price-threshold/structs.js +0 -125
- package/mainnet/_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/set-update-fee/structs.d.ts +0 -47
- package/mainnet/_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/set-update-fee/structs.js +0 -131
- package/mainnet/_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/setup/structs.d.ts +0 -50
- package/mainnet/_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/setup/structs.js +0 -126
- package/mainnet/_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/state/structs.d.ts +0 -269
- package/mainnet/_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/state/structs.js +0 -396
- package/mainnet/_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/version-control/structs.d.ts +0 -117
- package/mainnet/_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/version-control/structs.js +0 -345
- package/mainnet/_generated/_framework/init-source.d.ts +0 -1
- package/mainnet/_generated/_framework/init-source.js +0 -45
- package/mainnet/_generated/_framework/loader.d.ts +0 -17
- package/mainnet/_generated/_framework/loader.js +0 -46
- package/mainnet/_generated/suilend/cell/functions.d.ts +0 -10
- package/mainnet/_generated/suilend/cell/functions.js +0 -37
- package/mainnet/_generated/suilend/decimal/functions.d.ts +0 -75
- package/mainnet/_generated/suilend/decimal/functions.js +0 -152
- package/mainnet/_generated/suilend/init.d.ts +0 -2
- package/mainnet/_generated/suilend/init.js +0 -79
- package/mainnet/_generated/suilend/launch/functions.d.ts +0 -3
- package/mainnet/_generated/suilend/launch/functions.js +0 -12
- package/mainnet/_generated/suilend/launch/structs.d.ts +0 -41
- package/mainnet/_generated/suilend/launch/structs.js +0 -125
- package/mainnet/_generated/suilend/lending-market-registry/structs.d.ts +0 -123
- package/mainnet/_generated/suilend/lending-market-registry/structs.js +0 -274
- package/mainnet/_generated/suilend/liquidity-mining/functions.d.ts +0 -68
- package/mainnet/_generated/suilend/liquidity-mining/functions.js +0 -149
- package/mainnet/_generated/suilend/obligation/functions.d.ts +0 -132
- package/mainnet/_generated/suilend/obligation/functions.js +0 -286
- package/mainnet/_generated/suilend/oracles/functions.d.ts +0 -8
- package/mainnet/_generated/suilend/oracles/functions.js +0 -19
- package/mainnet/_generated/suilend/reserve/functions.d.ts +0 -138
- package/mainnet/_generated/suilend/reserve/functions.js +0 -356
- package/mainnet/_generated/suilend/suilend/structs.d.ts +0 -41
- package/mainnet/_generated/suilend/suilend/structs.js +0 -125
- package/mainnet/utils/utils.d.ts +0 -1
- package/mainnet/utils/utils.js +0 -17
- package/pyth-sdk/SuiPriceServiceConnection.d.ts +0 -14
- package/pyth-sdk/SuiPriceServiceConnection.js +0 -32
- package/pyth-sdk/client.d.ts +0 -74
- package/pyth-sdk/client.js +0 -322
- package/pyth-sdk/index.d.ts +0 -4
- package/pyth-sdk/index.js +0 -10
package/core/client.js
CHANGED
|
@@ -10,19 +10,19 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.SuilendClient = void 0;
|
|
13
|
-
const
|
|
14
|
-
const
|
|
15
|
-
const src_1 = require("../pyth-sdk");
|
|
13
|
+
const utils_1 = require("@mysten/sui/utils");
|
|
14
|
+
const pyth_sui_js_1 = require("@pythnetwork/pyth-sui-js");
|
|
16
15
|
const types_1 = require("./types");
|
|
16
|
+
const utils_2 = require("./utils");
|
|
17
17
|
const WORMHOLE_STATE_ID = "0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c";
|
|
18
18
|
const PYTH_STATE_ID = "0x1f9310238ee9298fb703c3419030b35b22bb1cc37113e3bb5007c99aec79e5b8";
|
|
19
19
|
const SUI_COINTYPE = "0x2::sui::SUI";
|
|
20
20
|
class SuilendClient {
|
|
21
|
-
constructor(lendingMarket, client, { phantom, PACKAGE_ID, PUBLISHED_AT, LendingMarket, Obligation, ObligationOwnerCap, createLendingMarket, createReserveConfig, updateReserveConfig, addReserve, addPoolReward, cancelPoolReward, closePoolReward, claimRewards, claimRewardsAndDeposit, createRateLimiterConfig, updateRateLimiterConfig, refreshReservePrice, depositLiquidityAndMintCtokens, depositCtokensIntoObligation, withdrawCtokens, borrow, repay, liquidate, migrate, }) {
|
|
21
|
+
constructor(lendingMarket, client, { phantom, PACKAGE_ID, PUBLISHED_AT, LendingMarket, Obligation, ObligationOwnerCap, createLendingMarket, createReserveConfig, updateReserveConfig, addReserve, addPoolReward, cancelPoolReward, closePoolReward, claimRewards, claimRewardsAndDeposit, createRateLimiterConfig, updateRateLimiterConfig, refreshReservePrice, depositLiquidityAndMintCtokens, depositCtokensIntoObligation, withdrawCtokens, borrow, repay, liquidate, migrate, claimFees, redeemCtokensAndWithdrawLiquidity, }) {
|
|
22
22
|
this.lendingMarket = lendingMarket;
|
|
23
23
|
this.client = client;
|
|
24
|
-
this.pythClient = new
|
|
25
|
-
this.pythConnection = new
|
|
24
|
+
this.pythClient = new pyth_sui_js_1.SuiPythClient(client, PYTH_STATE_ID, WORMHOLE_STATE_ID);
|
|
25
|
+
this.pythConnection = new pyth_sui_js_1.SuiPriceServiceConnection("https://hermes.pyth.network");
|
|
26
26
|
this.phantom = phantom;
|
|
27
27
|
this.PACKAGE_ID = PACKAGE_ID;
|
|
28
28
|
this.PUBLISHED_AT = PUBLISHED_AT;
|
|
@@ -49,6 +49,9 @@ class SuilendClient {
|
|
|
49
49
|
this.repayFunction = repay;
|
|
50
50
|
this.liquidateFunction = liquidate;
|
|
51
51
|
this.migrateFunction = migrate;
|
|
52
|
+
this.claimFeesFunction = claimFees;
|
|
53
|
+
this.redeemCtokensAndWithdrawLiquidityFunction =
|
|
54
|
+
redeemCtokensAndWithdrawLiquidity;
|
|
52
55
|
}
|
|
53
56
|
static initialize(lendingMarketId, lendingMarketType, client, deps) {
|
|
54
57
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -72,10 +75,10 @@ class SuilendClient {
|
|
|
72
75
|
return objs.data.length > 0;
|
|
73
76
|
});
|
|
74
77
|
}
|
|
75
|
-
static createNewLendingMarket(registryId_1, lendingMarketType_1,
|
|
76
|
-
return __awaiter(this, arguments, void 0, function* (registryId, lendingMarketType,
|
|
77
|
-
const [ownerCap, lendingMarket] = createLendingMarket(
|
|
78
|
-
|
|
78
|
+
static createNewLendingMarket(registryId_1, lendingMarketType_1, transaction_1, _a) {
|
|
79
|
+
return __awaiter(this, arguments, void 0, function* (registryId, lendingMarketType, transaction, { LendingMarket, createLendingMarket, }) {
|
|
80
|
+
const [ownerCap, lendingMarket] = createLendingMarket(transaction, lendingMarketType, transaction.object(registryId));
|
|
81
|
+
transaction.moveCall({
|
|
79
82
|
target: `0x2::transfer::public_share_object`,
|
|
80
83
|
typeArguments: [`${LendingMarket.$typeName}<${lendingMarketType}>}`],
|
|
81
84
|
arguments: [lendingMarket],
|
|
@@ -104,7 +107,7 @@ class SuilendClient {
|
|
|
104
107
|
var _a, _b, _c, _d;
|
|
105
108
|
if (((_b = (_a = obj.data) === null || _a === void 0 ? void 0 : _a.bcs) === null || _b === void 0 ? void 0 : _b.dataType) !== "moveObject")
|
|
106
109
|
throw new Error("Error: invalid data type");
|
|
107
|
-
obligationOwnerCaps.push(ObligationOwnerCap.fromBcs(phantom(lendingMarketTypeArgs[0]), (0,
|
|
110
|
+
obligationOwnerCaps.push(ObligationOwnerCap.fromBcs(phantom(lendingMarketTypeArgs[0]), (0, utils_1.fromBase64)((_d = (_c = obj.data) === null || _c === void 0 ? void 0 : _c.bcs) === null || _d === void 0 ? void 0 : _d.bcsBytes)));
|
|
108
111
|
});
|
|
109
112
|
return obligationOwnerCaps;
|
|
110
113
|
}
|
|
@@ -123,7 +126,7 @@ class SuilendClient {
|
|
|
123
126
|
if (((_c = (_b = obligationData.data) === null || _b === void 0 ? void 0 : _b.bcs) === null || _c === void 0 ? void 0 : _c.dataType) !== "moveObject") {
|
|
124
127
|
throw new Error("Error: invalid data type");
|
|
125
128
|
}
|
|
126
|
-
const obligation = Obligation.fromBcs(phantom(lendingMarketTypeArgs[0]), (0,
|
|
129
|
+
const obligation = Obligation.fromBcs(phantom(lendingMarketTypeArgs[0]), (0, utils_1.fromBase64)(obligationData.data.bcs.bcsBytes));
|
|
127
130
|
return obligation;
|
|
128
131
|
});
|
|
129
132
|
}
|
|
@@ -150,20 +153,20 @@ class SuilendClient {
|
|
|
150
153
|
return SuilendClient.getLendingMarketOwnerCapId(ownerId, this.lendingMarket.$typeArgs, this.client, { PACKAGE_ID: this.PACKAGE_ID });
|
|
151
154
|
});
|
|
152
155
|
}
|
|
153
|
-
createReserve(lendingMarketOwnerCapId,
|
|
156
|
+
createReserve(lendingMarketOwnerCapId, transaction, pythPriceId, coinType, createReserveConfigArgs) {
|
|
154
157
|
return __awaiter(this, void 0, void 0, function* () {
|
|
155
|
-
const [config] = this.createReserveConfigFunction(
|
|
158
|
+
const [config] = this.createReserveConfigFunction(transaction, createReserveConfigArgs);
|
|
156
159
|
const priceUpdateData = yield this.pythConnection.getPriceFeedsUpdateData([
|
|
157
160
|
pythPriceId,
|
|
158
161
|
]);
|
|
159
|
-
const priceInfoObjectIds = yield this.pythClient.updatePriceFeeds(
|
|
162
|
+
const priceInfoObjectIds = yield this.pythClient.updatePriceFeeds(transaction, priceUpdateData, [pythPriceId]);
|
|
160
163
|
const coin_metadata = yield this.client.getCoinMetadata({
|
|
161
164
|
coinType: coinType,
|
|
162
165
|
});
|
|
163
166
|
if (coin_metadata === null) {
|
|
164
167
|
throw new Error("Error: coin metadata not found");
|
|
165
168
|
}
|
|
166
|
-
return this.addReserveFunction(
|
|
169
|
+
return this.addReserveFunction(transaction, [this.lendingMarket.$typeArgs[0], coinType], {
|
|
167
170
|
lendingMarketOwnerCap: lendingMarketOwnerCapId,
|
|
168
171
|
lendingMarket: this.lendingMarket.id,
|
|
169
172
|
priceInfo: priceInfoObjectIds[0],
|
|
@@ -173,19 +176,19 @@ class SuilendClient {
|
|
|
173
176
|
});
|
|
174
177
|
});
|
|
175
178
|
}
|
|
176
|
-
addReward(ownerId, lendingMarketOwnerCapId, reserveArrayIndex, isDepositReward, rewardCoinType, rewardValue, startTimeMs, endTimeMs,
|
|
179
|
+
addReward(ownerId, lendingMarketOwnerCapId, reserveArrayIndex, isDepositReward, rewardCoinType, rewardValue, startTimeMs, endTimeMs, transaction) {
|
|
177
180
|
return __awaiter(this, void 0, void 0, function* () {
|
|
178
181
|
const isSui = (0, utils_1.normalizeStructTag)(rewardCoinType) === (0, utils_1.normalizeStructTag)(SUI_COINTYPE);
|
|
179
182
|
const coins = (yield this.client.getCoins({
|
|
180
183
|
owner: ownerId,
|
|
181
184
|
coinType: rewardCoinType,
|
|
182
185
|
})).data;
|
|
183
|
-
const
|
|
186
|
+
const mergeCoin = coins[0];
|
|
184
187
|
if (coins.length > 1 && !isSui) {
|
|
185
|
-
|
|
188
|
+
transaction.mergeCoins(transaction.object(mergeCoin.coinObjectId), coins.map((c) => transaction.object(c.coinObjectId)).slice(1));
|
|
186
189
|
}
|
|
187
|
-
const [rewardCoin] =
|
|
188
|
-
return this.addPoolRewardFunction(
|
|
190
|
+
const [rewardCoin] = transaction.splitCoins(isSui ? transaction.gas : transaction.object(mergeCoin.coinObjectId), [rewardValue]);
|
|
191
|
+
return this.addPoolRewardFunction(transaction, [this.lendingMarket.$typeArgs[0], rewardCoinType], {
|
|
189
192
|
lendingMarketOwnerCap: lendingMarketOwnerCapId,
|
|
190
193
|
lendingMarket: this.lendingMarket.id,
|
|
191
194
|
reserveArrayIndex,
|
|
@@ -197,8 +200,8 @@ class SuilendClient {
|
|
|
197
200
|
});
|
|
198
201
|
});
|
|
199
202
|
}
|
|
200
|
-
cancelReward(lendingMarketOwnerCapId, reserveArrayIndex, isDepositReward, rewardIndex, rewardCoinType,
|
|
201
|
-
return this.cancelPoolRewardFunction(
|
|
203
|
+
cancelReward(lendingMarketOwnerCapId, reserveArrayIndex, isDepositReward, rewardIndex, rewardCoinType, transaction) {
|
|
204
|
+
return this.cancelPoolRewardFunction(transaction, [this.lendingMarket.$typeArgs[0], rewardCoinType], {
|
|
202
205
|
lendingMarketOwnerCap: lendingMarketOwnerCapId,
|
|
203
206
|
lendingMarket: this.lendingMarket.id,
|
|
204
207
|
reserveArrayIndex,
|
|
@@ -207,8 +210,8 @@ class SuilendClient {
|
|
|
207
210
|
clock: utils_1.SUI_CLOCK_OBJECT_ID,
|
|
208
211
|
});
|
|
209
212
|
}
|
|
210
|
-
closeReward(lendingMarketOwnerCapId, reserveArrayIndex, isDepositReward, rewardIndex, rewardCoinType,
|
|
211
|
-
return this.closePoolRewardFunction(
|
|
213
|
+
closeReward(lendingMarketOwnerCapId, reserveArrayIndex, isDepositReward, rewardIndex, rewardCoinType, transaction) {
|
|
214
|
+
return this.closePoolRewardFunction(transaction, [this.lendingMarket.$typeArgs[0], rewardCoinType], {
|
|
212
215
|
lendingMarketOwnerCap: lendingMarketOwnerCapId,
|
|
213
216
|
lendingMarket: this.lendingMarket.id,
|
|
214
217
|
reserveArrayIndex,
|
|
@@ -217,38 +220,43 @@ class SuilendClient {
|
|
|
217
220
|
clock: utils_1.SUI_CLOCK_OBJECT_ID,
|
|
218
221
|
});
|
|
219
222
|
}
|
|
220
|
-
claimReward(obligationOwnerCapId, reserveArrayIndex, rewardIndex, rewardType, side,
|
|
221
|
-
return this.claimRewardsFunction(
|
|
222
|
-
lendingMarket:
|
|
223
|
-
cap:
|
|
223
|
+
claimReward(obligationOwnerCapId, reserveArrayIndex, rewardIndex, rewardType, side, transaction) {
|
|
224
|
+
return this.claimRewardsFunction(transaction, [this.lendingMarket.$typeArgs[0], rewardType], {
|
|
225
|
+
lendingMarket: transaction.object(this.lendingMarket.id),
|
|
226
|
+
cap: transaction.object(obligationOwnerCapId),
|
|
224
227
|
clock: utils_1.SUI_CLOCK_OBJECT_ID,
|
|
225
228
|
reserveId: reserveArrayIndex,
|
|
226
229
|
rewardIndex,
|
|
227
230
|
isDepositReward: side === types_1.Side.DEPOSIT,
|
|
228
231
|
});
|
|
229
232
|
}
|
|
230
|
-
claimRewardsAndDeposit(obligationId, rewardReserveArrayIndex, rewardIndex, rewardType, side, depositReserveArrayIndex,
|
|
231
|
-
return this.claimRewardsAndDepositFunction(
|
|
232
|
-
lendingMarket:
|
|
233
|
+
claimRewardsAndDeposit(obligationId, rewardReserveArrayIndex, rewardIndex, rewardType, side, depositReserveArrayIndex, transaction) {
|
|
234
|
+
return this.claimRewardsAndDepositFunction(transaction, [this.lendingMarket.$typeArgs[0], rewardType], {
|
|
235
|
+
lendingMarket: transaction.object(this.lendingMarket.id),
|
|
233
236
|
obligationId,
|
|
234
|
-
clock:
|
|
237
|
+
clock: transaction.object(utils_1.SUI_CLOCK_OBJECT_ID),
|
|
235
238
|
rewardReserveId: rewardReserveArrayIndex,
|
|
236
239
|
rewardIndex,
|
|
237
240
|
isDepositReward: side === types_1.Side.DEPOSIT,
|
|
238
241
|
depositReserveId: depositReserveArrayIndex,
|
|
239
242
|
});
|
|
240
243
|
}
|
|
241
|
-
claimRewardsToObligation(ownerId, rewards,
|
|
244
|
+
claimRewardsToObligation(ownerId, rewards, transaction) {
|
|
242
245
|
return __awaiter(this, void 0, void 0, function* () {
|
|
243
|
-
const
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
246
|
+
const mergeCoinsMap = {};
|
|
247
|
+
for (const reward of rewards) {
|
|
248
|
+
const [claimedCoin] = this.claimReward(reward.obligationOwnerCapId, reward.reserveArrayIndex, reward.rewardIndex, reward.rewardType, reward.side, transaction);
|
|
249
|
+
if (mergeCoinsMap[reward.rewardType] === undefined)
|
|
250
|
+
mergeCoinsMap[reward.rewardType] = [];
|
|
251
|
+
mergeCoinsMap[reward.rewardType].push(claimedCoin);
|
|
252
|
+
}
|
|
253
|
+
for (const mergeCoins of Object.values(mergeCoinsMap)) {
|
|
254
|
+
const mergeCoin = mergeCoins[0];
|
|
255
|
+
if (mergeCoins.length > 1) {
|
|
256
|
+
transaction.mergeCoins(mergeCoin, mergeCoins.slice(1));
|
|
257
|
+
}
|
|
258
|
+
transaction.transferObjects([mergeCoin], transaction.pure.address(ownerId));
|
|
250
259
|
}
|
|
251
|
-
txb.transferObjects([mergedCoin], txb.pure(ownerId));
|
|
252
260
|
});
|
|
253
261
|
}
|
|
254
262
|
findReserveArrayIndex(coinType) {
|
|
@@ -256,21 +264,21 @@ class SuilendClient {
|
|
|
256
264
|
const array_index = this.lendingMarket.reserves.findIndex((r) => (0, utils_1.normalizeStructTag)(r.coinType.name) == normalizedCoinType);
|
|
257
265
|
return BigInt(array_index);
|
|
258
266
|
}
|
|
259
|
-
updateReserveConfig(ownerId, lendingMarketOwnerCapId,
|
|
267
|
+
updateReserveConfig(ownerId, lendingMarketOwnerCapId, transaction, coinType, createReserveConfigArgs) {
|
|
260
268
|
return __awaiter(this, void 0, void 0, function* () {
|
|
261
|
-
const [config] = this.createReserveConfigFunction(
|
|
262
|
-
return this.updateReserveConfigFunction(
|
|
269
|
+
const [config] = this.createReserveConfigFunction(transaction, createReserveConfigArgs);
|
|
270
|
+
return this.updateReserveConfigFunction(transaction, [...this.lendingMarket.$typeArgs, coinType], {
|
|
263
271
|
lendingMarketOwnerCap: lendingMarketOwnerCapId,
|
|
264
272
|
lendingMarket: this.lendingMarket.id,
|
|
265
|
-
config,
|
|
266
273
|
reserveArrayIndex: this.findReserveArrayIndex(coinType),
|
|
274
|
+
config,
|
|
267
275
|
});
|
|
268
276
|
});
|
|
269
277
|
}
|
|
270
|
-
updateRateLimiterConfig(lendingMarketOwnerCapId,
|
|
278
|
+
updateRateLimiterConfig(lendingMarketOwnerCapId, transaction, newRateLimiterConfigArgs) {
|
|
271
279
|
return __awaiter(this, void 0, void 0, function* () {
|
|
272
|
-
const [config] = this.createRateLimiterConfigFunction(
|
|
273
|
-
return this.updateRateLimiterConfigFunction(
|
|
280
|
+
const [config] = this.createRateLimiterConfigFunction(transaction, newRateLimiterConfigArgs);
|
|
281
|
+
return this.updateRateLimiterConfigFunction(transaction, this.lendingMarket.$typeArgs[0], {
|
|
274
282
|
lendingMarketOwnerCap: lendingMarketOwnerCapId,
|
|
275
283
|
lendingMarket: this.lendingMarket.id,
|
|
276
284
|
clock: utils_1.SUI_CLOCK_OBJECT_ID,
|
|
@@ -278,225 +286,281 @@ class SuilendClient {
|
|
|
278
286
|
});
|
|
279
287
|
});
|
|
280
288
|
}
|
|
281
|
-
createObligation(
|
|
282
|
-
return
|
|
289
|
+
createObligation(transaction) {
|
|
290
|
+
return transaction.moveCall({
|
|
283
291
|
target: `${this.PUBLISHED_AT}::lending_market::create_obligation`,
|
|
284
|
-
arguments: [
|
|
292
|
+
arguments: [transaction.object(this.lendingMarket.id)],
|
|
285
293
|
typeArguments: this.lendingMarket.$typeArgs,
|
|
286
294
|
});
|
|
287
295
|
}
|
|
288
|
-
refreshAll(
|
|
296
|
+
refreshAll(transaction, obligation, extraReserveArrayIndex) {
|
|
289
297
|
return __awaiter(this, void 0, void 0, function* () {
|
|
290
298
|
const reserveArrayIndexToPriceId = new Map();
|
|
291
299
|
obligation.deposits.forEach((deposit) => {
|
|
292
300
|
const reserve = this.lendingMarket.reserves[deposit.reserveArrayIndex];
|
|
293
|
-
reserveArrayIndexToPriceId.set(deposit.reserveArrayIndex, (0,
|
|
301
|
+
reserveArrayIndexToPriceId.set(deposit.reserveArrayIndex, (0, utils_1.toHex)(new Uint8Array(reserve.priceIdentifier.bytes)));
|
|
294
302
|
});
|
|
295
303
|
obligation.borrows.forEach((borrow) => {
|
|
296
304
|
const reserve = this.lendingMarket.reserves[borrow.reserveArrayIndex];
|
|
297
|
-
reserveArrayIndexToPriceId.set(borrow.reserveArrayIndex, (0,
|
|
305
|
+
reserveArrayIndexToPriceId.set(borrow.reserveArrayIndex, (0, utils_1.toHex)(new Uint8Array(reserve.priceIdentifier.bytes)));
|
|
298
306
|
});
|
|
299
307
|
if (extraReserveArrayIndex != undefined &&
|
|
300
308
|
extraReserveArrayIndex >= 0 &&
|
|
301
309
|
extraReserveArrayIndex < this.lendingMarket.reserves.length) {
|
|
302
310
|
const reserve = this.lendingMarket.reserves[extraReserveArrayIndex];
|
|
303
|
-
reserveArrayIndexToPriceId.set(extraReserveArrayIndex, (0,
|
|
311
|
+
reserveArrayIndexToPriceId.set(extraReserveArrayIndex, (0, utils_1.toHex)(new Uint8Array(reserve.priceIdentifier.bytes)));
|
|
304
312
|
}
|
|
305
313
|
const tuples = Array.from(reserveArrayIndexToPriceId.entries()).sort();
|
|
306
|
-
const priceIds = Array.from(
|
|
314
|
+
const priceIds = Array.from(tuples.map((tuple) => tuple[1]));
|
|
307
315
|
const priceUpdateData = yield this.pythConnection.getPriceFeedsUpdateData(priceIds);
|
|
308
|
-
const priceInfoObjectIds = yield this.pythClient.updatePriceFeeds(
|
|
316
|
+
const priceInfoObjectIds = yield this.pythClient.updatePriceFeeds(transaction, priceUpdateData, priceIds);
|
|
309
317
|
for (let i = 0; i < tuples.length; i++) {
|
|
310
|
-
this.refreshReservePrices(
|
|
318
|
+
this.refreshReservePrices(transaction, priceInfoObjectIds[i], tuples[i][0]);
|
|
311
319
|
}
|
|
312
320
|
});
|
|
313
321
|
}
|
|
314
|
-
refreshReservePrices(
|
|
322
|
+
refreshReservePrices(transaction, priceInfoObjectId, reserveArrayIndex) {
|
|
315
323
|
return __awaiter(this, void 0, void 0, function* () {
|
|
316
324
|
if (priceInfoObjectId == null) {
|
|
317
325
|
return;
|
|
318
326
|
}
|
|
319
|
-
this.refreshReservePriceFunction(
|
|
327
|
+
this.refreshReservePriceFunction(transaction, this.lendingMarket.$typeArgs[0], {
|
|
320
328
|
lendingMarket: this.lendingMarket.id,
|
|
329
|
+
reserveArrayIndex,
|
|
321
330
|
clock: utils_1.SUI_CLOCK_OBJECT_ID,
|
|
322
331
|
priceInfo: priceInfoObjectId,
|
|
323
|
-
reserveArrayIndex,
|
|
324
332
|
});
|
|
325
333
|
});
|
|
326
334
|
}
|
|
327
|
-
deposit(sendCoin, coinType, obligationOwnerCap,
|
|
335
|
+
deposit(sendCoin, coinType, obligationOwnerCap, transaction) {
|
|
328
336
|
return __awaiter(this, void 0, void 0, function* () {
|
|
329
|
-
const [ctokens] = this.depositLiquidityAndMintCtokensFunction(
|
|
337
|
+
const [ctokens] = this.depositLiquidityAndMintCtokensFunction(transaction, [this.lendingMarket.$typeArgs[0], coinType], {
|
|
330
338
|
lendingMarket: this.lendingMarket.id,
|
|
339
|
+
reserveArrayIndex: this.findReserveArrayIndex(coinType),
|
|
331
340
|
clock: utils_1.SUI_CLOCK_OBJECT_ID,
|
|
332
341
|
deposit: sendCoin,
|
|
333
|
-
reserveArrayIndex: this.findReserveArrayIndex(coinType),
|
|
334
342
|
});
|
|
335
|
-
this.depositCtokensIntoObligationFunction(
|
|
343
|
+
this.depositCtokensIntoObligationFunction(transaction, [this.lendingMarket.$typeArgs[0], coinType], {
|
|
336
344
|
lendingMarket: this.lendingMarket.id,
|
|
345
|
+
reserveArrayIndex: this.findReserveArrayIndex(coinType),
|
|
337
346
|
obligationOwnerCap,
|
|
338
|
-
deposit: ctokens,
|
|
339
347
|
clock: utils_1.SUI_CLOCK_OBJECT_ID,
|
|
340
|
-
|
|
348
|
+
deposit: ctokens,
|
|
341
349
|
});
|
|
342
350
|
});
|
|
343
351
|
}
|
|
344
|
-
depositCoin(ownerId, sendCoin, coinType,
|
|
352
|
+
depositCoin(ownerId, sendCoin, coinType, transaction, obligationOwnerCapId) {
|
|
345
353
|
return __awaiter(this, void 0, void 0, function* () {
|
|
346
354
|
let createdObligationOwnerCap;
|
|
347
355
|
if (!obligationOwnerCapId) {
|
|
348
|
-
createdObligationOwnerCap = this.createObligation(
|
|
356
|
+
createdObligationOwnerCap = this.createObligation(transaction)[0];
|
|
349
357
|
}
|
|
350
|
-
this.deposit(sendCoin, coinType, (obligationOwnerCapId !== null && obligationOwnerCapId !== void 0 ? obligationOwnerCapId : createdObligationOwnerCap),
|
|
358
|
+
this.deposit(sendCoin, coinType, (obligationOwnerCapId !== null && obligationOwnerCapId !== void 0 ? obligationOwnerCapId : createdObligationOwnerCap), transaction);
|
|
351
359
|
if (createdObligationOwnerCap) {
|
|
352
|
-
|
|
360
|
+
transaction.transferObjects([createdObligationOwnerCap], transaction.pure.address(ownerId));
|
|
353
361
|
}
|
|
354
362
|
});
|
|
355
363
|
}
|
|
356
|
-
depositIntoObligation(ownerId, coinType, value,
|
|
364
|
+
depositIntoObligation(ownerId, coinType, value, transaction, obligationOwnerCapId) {
|
|
357
365
|
return __awaiter(this, void 0, void 0, function* () {
|
|
358
366
|
const isSui = (0, utils_1.normalizeStructTag)(coinType) === (0, utils_1.normalizeStructTag)(SUI_COINTYPE);
|
|
359
367
|
const coins = (yield this.client.getCoins({
|
|
360
368
|
owner: ownerId,
|
|
361
369
|
coinType,
|
|
362
370
|
})).data;
|
|
363
|
-
const
|
|
371
|
+
const mergeCoin = coins[0];
|
|
364
372
|
if (coins.length > 1 && !isSui) {
|
|
365
|
-
|
|
373
|
+
transaction.mergeCoins(transaction.object(mergeCoin.coinObjectId), coins.map((c) => transaction.object(c.coinObjectId)).slice(1));
|
|
366
374
|
}
|
|
367
|
-
const [sendCoin] =
|
|
368
|
-
this.depositCoin(ownerId, sendCoin, coinType,
|
|
375
|
+
const [sendCoin] = transaction.splitCoins(isSui ? transaction.gas : transaction.object(mergeCoin.coinObjectId), [value]);
|
|
376
|
+
this.depositCoin(ownerId, sendCoin, coinType, transaction, obligationOwnerCapId);
|
|
369
377
|
});
|
|
370
378
|
}
|
|
371
|
-
|
|
379
|
+
depositLiquidityAndGetCTokens(ownerId, coinType, value, transaction) {
|
|
380
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
381
|
+
const isSui = (0, utils_1.normalizeStructTag)(coinType) === (0, utils_1.normalizeStructTag)(SUI_COINTYPE);
|
|
382
|
+
const coins = (yield this.client.getCoins({
|
|
383
|
+
owner: ownerId,
|
|
384
|
+
coinType,
|
|
385
|
+
})).data;
|
|
386
|
+
const mergeCoin = coins[0];
|
|
387
|
+
if (coins.length > 1 && !isSui) {
|
|
388
|
+
transaction.mergeCoins(transaction.object(mergeCoin.coinObjectId), coins.map((c) => transaction.object(c.coinObjectId)).slice(1));
|
|
389
|
+
}
|
|
390
|
+
const [sendCoin] = transaction.splitCoins(isSui ? transaction.gas : transaction.object(mergeCoin.coinObjectId), [value]);
|
|
391
|
+
const [ctokens] = this.depositLiquidityAndMintCtokensFunction(transaction, [this.lendingMarket.$typeArgs[0], coinType], {
|
|
392
|
+
lendingMarket: this.lendingMarket.id,
|
|
393
|
+
reserveArrayIndex: this.findReserveArrayIndex(coinType),
|
|
394
|
+
clock: utils_1.SUI_CLOCK_OBJECT_ID,
|
|
395
|
+
deposit: sendCoin,
|
|
396
|
+
});
|
|
397
|
+
transaction.transferObjects([ctokens], transaction.pure.address(ownerId));
|
|
398
|
+
});
|
|
399
|
+
}
|
|
400
|
+
withdraw(obligationOwnerCapId, obligationId, coinType, value, transaction) {
|
|
372
401
|
return __awaiter(this, void 0, void 0, function* () {
|
|
373
402
|
const obligation = yield this.getObligation(obligationId);
|
|
374
403
|
if (!obligation)
|
|
375
404
|
throw new Error("Error: no obligation");
|
|
376
|
-
yield this.refreshAll(
|
|
377
|
-
const [ctokens] = this.withdrawCtokensFunction(
|
|
405
|
+
yield this.refreshAll(transaction, obligation);
|
|
406
|
+
const [ctokens] = this.withdrawCtokensFunction(transaction, [this.lendingMarket.$typeArgs[0], coinType], {
|
|
378
407
|
lendingMarket: this.lendingMarket.id,
|
|
408
|
+
reserveArrayIndex: this.findReserveArrayIndex(coinType),
|
|
379
409
|
obligationOwnerCap: obligationOwnerCapId,
|
|
380
410
|
clock: utils_1.SUI_CLOCK_OBJECT_ID,
|
|
381
411
|
amount: BigInt(value),
|
|
382
|
-
reserveArrayIndex: this.findReserveArrayIndex(coinType),
|
|
383
412
|
});
|
|
384
|
-
const [exemption] =
|
|
413
|
+
const [exemption] = transaction.moveCall({
|
|
385
414
|
target: `0x1::option::none`,
|
|
386
415
|
typeArguments: [
|
|
387
416
|
`${this.PACKAGE_ID}::lending_market::RateLimiterExemption<${this.lendingMarket.$typeArgs[0]}, ${coinType}>`,
|
|
388
417
|
],
|
|
389
418
|
arguments: [],
|
|
390
419
|
});
|
|
391
|
-
return
|
|
420
|
+
return transaction.moveCall({
|
|
392
421
|
target: `${this.PUBLISHED_AT}::lending_market::redeem_ctokens_and_withdraw_liquidity`,
|
|
393
422
|
typeArguments: [this.lendingMarket.$typeArgs[0], coinType],
|
|
394
423
|
arguments: [
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
424
|
+
transaction.object(this.lendingMarket.id),
|
|
425
|
+
transaction.pure.u64(this.findReserveArrayIndex(coinType)),
|
|
426
|
+
transaction.object(utils_1.SUI_CLOCK_OBJECT_ID),
|
|
398
427
|
ctokens,
|
|
399
428
|
exemption,
|
|
400
429
|
],
|
|
401
430
|
});
|
|
402
431
|
});
|
|
403
432
|
}
|
|
404
|
-
withdrawFromObligation(ownerId, obligationOwnerCapId, obligationId, coinType, value,
|
|
433
|
+
withdrawFromObligation(ownerId, obligationOwnerCapId, obligationId, coinType, value, transaction) {
|
|
405
434
|
return __awaiter(this, void 0, void 0, function* () {
|
|
406
|
-
const [withdrawCoin] = yield this.withdraw(obligationOwnerCapId, obligationId, coinType, value,
|
|
407
|
-
|
|
435
|
+
const [withdrawCoin] = yield this.withdraw(obligationOwnerCapId, obligationId, coinType, value, transaction);
|
|
436
|
+
transaction.transferObjects([withdrawCoin], transaction.pure.address(ownerId));
|
|
408
437
|
});
|
|
409
438
|
}
|
|
410
|
-
borrow(obligationOwnerCapId, obligationId, coinType, value,
|
|
439
|
+
borrow(obligationOwnerCapId, obligationId, coinType, value, transaction) {
|
|
411
440
|
return __awaiter(this, void 0, void 0, function* () {
|
|
412
441
|
const obligation = yield this.getObligation(obligationId);
|
|
413
442
|
if (!obligation)
|
|
414
443
|
throw new Error("Error: no obligation");
|
|
415
|
-
yield this.refreshAll(
|
|
416
|
-
const result = this.borrowFunction(
|
|
444
|
+
yield this.refreshAll(transaction, obligation, this.findReserveArrayIndex(coinType));
|
|
445
|
+
const result = this.borrowFunction(transaction, [this.lendingMarket.$typeArgs[0], coinType], {
|
|
417
446
|
lendingMarket: this.lendingMarket.id,
|
|
447
|
+
reserveArrayIndex: this.findReserveArrayIndex(coinType),
|
|
418
448
|
obligationOwnerCap: obligationOwnerCapId,
|
|
419
449
|
clock: utils_1.SUI_CLOCK_OBJECT_ID,
|
|
420
450
|
amount: BigInt(value),
|
|
421
|
-
reserveArrayIndex: this.findReserveArrayIndex(coinType),
|
|
422
451
|
});
|
|
423
452
|
return result;
|
|
424
453
|
});
|
|
425
454
|
}
|
|
426
|
-
borrowFromObligation(ownerId, obligationOwnerCapId, obligationId, coinType, value,
|
|
455
|
+
borrowFromObligation(ownerId, obligationOwnerCapId, obligationId, coinType, value, transaction) {
|
|
427
456
|
return __awaiter(this, void 0, void 0, function* () {
|
|
428
|
-
const [borrowCoin] = yield this.borrow(obligationOwnerCapId, obligationId, coinType, value,
|
|
429
|
-
|
|
457
|
+
const [borrowCoin] = yield this.borrow(obligationOwnerCapId, obligationId, coinType, value, transaction);
|
|
458
|
+
transaction.transferObjects([borrowCoin], transaction.pure.address(ownerId));
|
|
430
459
|
});
|
|
431
460
|
}
|
|
432
|
-
repay(obligationId, coinType, coin,
|
|
433
|
-
return this.repayFunction(
|
|
461
|
+
repay(obligationId, coinType, coin, transaction) {
|
|
462
|
+
return this.repayFunction(transaction, [this.lendingMarket.$typeArgs[0], coinType], {
|
|
434
463
|
lendingMarket: this.lendingMarket.id,
|
|
464
|
+
reserveArrayIndex: this.findReserveArrayIndex(coinType),
|
|
435
465
|
obligationId: obligationId,
|
|
436
466
|
clock: utils_1.SUI_CLOCK_OBJECT_ID,
|
|
437
467
|
maxRepayCoins: coin,
|
|
438
|
-
reserveArrayIndex: this.findReserveArrayIndex(coinType),
|
|
439
468
|
});
|
|
440
469
|
}
|
|
441
|
-
repayIntoObligation(ownerId, obligationId, coinType, value,
|
|
470
|
+
repayIntoObligation(ownerId, obligationId, coinType, value, transaction) {
|
|
442
471
|
return __awaiter(this, void 0, void 0, function* () {
|
|
443
472
|
const isSui = (0, utils_1.normalizeStructTag)(coinType) === (0, utils_1.normalizeStructTag)(SUI_COINTYPE);
|
|
444
473
|
const coins = (yield this.client.getCoins({
|
|
445
474
|
owner: ownerId,
|
|
446
475
|
coinType,
|
|
447
476
|
})).data;
|
|
448
|
-
const
|
|
477
|
+
const mergeCoin = coins[0];
|
|
449
478
|
if (coins.length > 1 && !isSui) {
|
|
450
|
-
|
|
479
|
+
transaction.mergeCoins(transaction.object(mergeCoin.coinObjectId), coins.map((c) => transaction.object(c.coinObjectId)).slice(1));
|
|
451
480
|
}
|
|
452
|
-
const [sendCoin] =
|
|
453
|
-
const result = this.repay(obligationId, coinType, sendCoin,
|
|
454
|
-
|
|
481
|
+
const [sendCoin] = transaction.splitCoins(isSui ? transaction.gas : transaction.object(mergeCoin.coinObjectId), [value]);
|
|
482
|
+
const result = this.repay(obligationId, coinType, sendCoin, transaction);
|
|
483
|
+
transaction.transferObjects([sendCoin], ownerId);
|
|
455
484
|
return result;
|
|
456
485
|
});
|
|
457
486
|
}
|
|
458
|
-
liquidateAndRedeem(
|
|
487
|
+
liquidateAndRedeem(transaction, obligation, repayCoinType, withdrawCoinType, repayCoinId) {
|
|
459
488
|
return __awaiter(this, void 0, void 0, function* () {
|
|
460
|
-
const [ctokens, exemption] = yield this.liquidate(
|
|
461
|
-
const [optionalExemption] =
|
|
489
|
+
const [ctokens, exemption] = yield this.liquidate(transaction, obligation, repayCoinType, withdrawCoinType, repayCoinId);
|
|
490
|
+
const [optionalExemption] = transaction.moveCall({
|
|
462
491
|
target: `0x1::option::some`,
|
|
463
492
|
typeArguments: [
|
|
464
493
|
`${this.PUBLISHED_AT}::lending_market::RateLimiterExemption<${this.lendingMarket.$typeArgs[0]}, ${withdrawCoinType}>`,
|
|
465
494
|
],
|
|
466
495
|
arguments: [exemption],
|
|
467
496
|
});
|
|
468
|
-
return
|
|
497
|
+
return transaction.moveCall({
|
|
469
498
|
target: `${this.PUBLISHED_AT}::lending_market::redeem_ctokens_and_withdraw_liquidity`,
|
|
470
499
|
typeArguments: [this.lendingMarket.$typeArgs[0], withdrawCoinType],
|
|
471
500
|
arguments: [
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
501
|
+
transaction.object(this.lendingMarket.id),
|
|
502
|
+
transaction.pure.u64(this.findReserveArrayIndex(withdrawCoinType)),
|
|
503
|
+
transaction.object(utils_1.SUI_CLOCK_OBJECT_ID),
|
|
475
504
|
ctokens,
|
|
476
505
|
optionalExemption,
|
|
477
506
|
],
|
|
478
507
|
});
|
|
479
508
|
});
|
|
480
509
|
}
|
|
481
|
-
liquidate(
|
|
510
|
+
liquidate(transaction, obligation, repayCoinType, withdrawCoinType, repayCoinId) {
|
|
482
511
|
return __awaiter(this, void 0, void 0, function* () {
|
|
483
|
-
yield this.refreshAll(
|
|
484
|
-
return this.liquidateFunction(
|
|
512
|
+
yield this.refreshAll(transaction, obligation);
|
|
513
|
+
return this.liquidateFunction(transaction, [this.lendingMarket.$typeArgs[0], repayCoinType, withdrawCoinType], {
|
|
485
514
|
lendingMarket: this.lendingMarket.id,
|
|
486
515
|
obligationId: obligation.id,
|
|
487
|
-
clock: utils_1.SUI_CLOCK_OBJECT_ID,
|
|
488
|
-
repayCoins: repayCoinId,
|
|
489
516
|
repayReserveArrayIndex: this.findReserveArrayIndex(repayCoinType),
|
|
490
517
|
withdrawReserveArrayIndex: this.findReserveArrayIndex(withdrawCoinType),
|
|
518
|
+
clock: utils_1.SUI_CLOCK_OBJECT_ID,
|
|
519
|
+
repayCoins: repayCoinId,
|
|
491
520
|
});
|
|
492
521
|
});
|
|
493
522
|
}
|
|
494
|
-
migrate(
|
|
523
|
+
migrate(transaction, lendingMarketOwnerCapId) {
|
|
524
|
+
return this.migrateFunction(transaction, this.lendingMarket.$typeArgs[0], {
|
|
525
|
+
lendingMarketOwnerCap: lendingMarketOwnerCapId,
|
|
526
|
+
lendingMarket: this.lendingMarket.id,
|
|
527
|
+
});
|
|
528
|
+
}
|
|
529
|
+
claimFees(transaction, coinType) {
|
|
530
|
+
return this.claimFeesFunction(transaction, [this.lendingMarket.$typeArgs[0], coinType], {
|
|
531
|
+
lendingMarket: this.lendingMarket.id,
|
|
532
|
+
reserveArrayIndex: this.findReserveArrayIndex(coinType),
|
|
533
|
+
});
|
|
534
|
+
}
|
|
535
|
+
redeemCtokensAndWithdrawLiquidity(ownerId, ctokenCoinTypes, transaction) {
|
|
495
536
|
return __awaiter(this, void 0, void 0, function* () {
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
537
|
+
const mergeCoinsMap = {};
|
|
538
|
+
for (const ctokenCoinType of ctokenCoinTypes) {
|
|
539
|
+
const coins = (yield this.client.getCoins({
|
|
540
|
+
owner: ownerId,
|
|
541
|
+
coinType: ctokenCoinType,
|
|
542
|
+
})).data;
|
|
543
|
+
if (coins.length === 0)
|
|
544
|
+
continue;
|
|
545
|
+
if (mergeCoinsMap[ctokenCoinType] === undefined)
|
|
546
|
+
mergeCoinsMap[ctokenCoinType] = [];
|
|
547
|
+
mergeCoinsMap[ctokenCoinType].push(...coins);
|
|
548
|
+
}
|
|
549
|
+
for (const [ctokenCoinType, mergeCoins] of Object.entries(mergeCoinsMap)) {
|
|
550
|
+
const mergeCoin = mergeCoins[0];
|
|
551
|
+
if (mergeCoins.length > 1) {
|
|
552
|
+
transaction.mergeCoins(transaction.object(mergeCoin.coinObjectId), mergeCoins.map((mc) => transaction.object(mc.coinObjectId)).slice(1));
|
|
553
|
+
}
|
|
554
|
+
const coinType = (0, utils_2.extractCTokenCoinType)(ctokenCoinType);
|
|
555
|
+
const [redeemCoin] = this.redeemCtokensAndWithdrawLiquidityFunction(transaction, [this.lendingMarket.$typeArgs[0], coinType], {
|
|
556
|
+
lendingMarket: this.lendingMarket.id,
|
|
557
|
+
reserveArrayIndex: this.findReserveArrayIndex(coinType),
|
|
558
|
+
clock: utils_1.SUI_CLOCK_OBJECT_ID,
|
|
559
|
+
ctokens: transaction.object(mergeCoin.coinObjectId),
|
|
560
|
+
rateLimiterExemption: null,
|
|
561
|
+
});
|
|
562
|
+
transaction.transferObjects([redeemCoin], transaction.pure.address(ownerId));
|
|
563
|
+
}
|
|
500
564
|
});
|
|
501
565
|
}
|
|
502
566
|
}
|
|
@@ -4,7 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.parseDownsampledApiReserveAssetDataEvent = exports.parseReserveAssetDataEvent = void 0;
|
|
7
|
-
const utils_1 = require("@mysten/sui
|
|
7
|
+
const utils_1 = require("@mysten/sui/utils");
|
|
8
8
|
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
|
9
9
|
const constants_1 = require("../constants");
|
|
10
10
|
const parseReserveAssetDataEvent = (event, reserve) => {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CoinMetadata } from "@mysten/sui
|
|
1
|
+
import { CoinMetadata } from "@mysten/sui/client";
|
|
2
2
|
import BigNumber from "bignumber.js";
|
|
3
3
|
import { Deps } from "./deps";
|
|
4
4
|
export type ParsedLendingMarket = ReturnType<typeof parseLendingMarket>;
|
|
@@ -21,7 +21,7 @@ export declare const parseLendingMarket: ({ LendingMarket, Reserve, PoolRewardMa
|
|
|
21
21
|
borrowFeeBps: number;
|
|
22
22
|
spreadFeeBps: number;
|
|
23
23
|
protocolLiquidationFeeBps: number;
|
|
24
|
-
isolated:
|
|
24
|
+
isolated: boolean;
|
|
25
25
|
openAttributedBorrowLimitUsd: number;
|
|
26
26
|
closeAttributedBorrowLimitUsd: number;
|
|
27
27
|
interestRate: {
|
|
@@ -10,7 +10,19 @@ const reserve_1 = require("./reserve");
|
|
|
10
10
|
const parseLendingMarket = ({ LendingMarket, Reserve, PoolRewardManager, PoolReward, simulate, RateLimiter, }, lendingMarket, reserves, coinMetadataMap, currentTime) => {
|
|
11
11
|
const id = lendingMarket.id;
|
|
12
12
|
const version = lendingMarket.version;
|
|
13
|
-
const parsedReserves = reserves
|
|
13
|
+
const parsedReserves = reserves
|
|
14
|
+
.map((reserve) => (0, reserve_1.parseReserve)({ Reserve, PoolRewardManager, PoolReward, simulate }, reserve, coinMetadataMap))
|
|
15
|
+
.sort((a, b) => {
|
|
16
|
+
const customOrder = ["SUI", "wUSDC", "USDC"];
|
|
17
|
+
const aCustomOrderIndex = customOrder.indexOf(a.symbol);
|
|
18
|
+
const bCustomOrderIndex = customOrder.indexOf(b.symbol);
|
|
19
|
+
if (aCustomOrderIndex > -1 && bCustomOrderIndex > -1)
|
|
20
|
+
return aCustomOrderIndex - bCustomOrderIndex;
|
|
21
|
+
else if (aCustomOrderIndex === -1 && bCustomOrderIndex === -1)
|
|
22
|
+
return 0;
|
|
23
|
+
else
|
|
24
|
+
return aCustomOrderIndex > -1 ? -1 : 1;
|
|
25
|
+
});
|
|
14
26
|
const obligations = lendingMarket.obligations;
|
|
15
27
|
const parsedRateLimiter = (0, rateLimiter_1.parseRateLimiter)({ RateLimiter }, lendingMarket.rateLimiter, currentTime);
|
|
16
28
|
const feeReceiver = lendingMarket.feeReceiver;
|