Skip to content

Commit

Permalink
Update README + v0.1.5
Browse files Browse the repository at this point in the history
  • Loading branch information
rigwild committed Jul 25, 2024
1 parent 108e1b9 commit 8794c58
Show file tree
Hide file tree
Showing 2 changed files with 306 additions and 1 deletion.
305 changes: 305 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -143,14 +143,313 @@ const nemeosPoolClient = nemeosSdk.getNemeosPoolClient({
})
```

### Preview a loan

```ts
try {
// Preview loan for Nemeos Pool `BuyOpenSea` mode
const nftId = 231
const loanDurationDays = 61
const loanData = await nemeosPoolBuyOpenSeaClient.previewLoan(nftId, loanDurationDays)

// Preview loan for Nemeos Pool `DirectMint` mode
const loanDurationDays = 61
const loanData2 = await nemeosPoolDirectMintClient.previewLoan(loanDurationDays)

console.log('Preview loanData:', loanData)
console.log('Preview loanData2:', loanData2)
} catch (error) {
console.error('Preview loan failed!', error.message)
throw error
}
```

<details>
<summary>Click to show type: Loan preview for Nemeos Pool `BuyOpenSea` mode</summary>

```ts
export type NftLivePriceBuyOpenSeaData = {
nftFullLivePriceData: {
/** @example "231" */
nftId: string
/** @example "4000000000000000000" */
openSeaNftPrice: string
/** @example "4" */
openSeaNftPriceHuman: string
/** @example "4" */
openSeaNftPriceHumanShortRound: string
/** @example "12686.2" */
openSeaNftPriceHumanUSD: string
/** @example "160000000000000003" */
nemeosOracleNftCollectionFloorPrice: string
/** @example "0.16" */
nemeosOracleNftCollectionFloorPriceHuman: string
/** @example "0.16" */
nemeosOracleNftCollectionFloorPriceHumanShortRound: string
/** @example "507.45" */
nemeosOracleNftCollectionFloorPriceHumanUSD: string
/** @example "3880000000000000000" */
proposedUpfrontPaymentGivenPrices: string
/** @example "3.88" */
proposedUpfrontPaymentGivenPricesHuman: string
/** @example "3.88" */
proposedUpfrontPaymentGivenPricesHumanShortRound: string
/** @example "12305.61" */
proposedUpfrontPaymentGivenPricesHumanUSD: string
/** @example "4000000000000000000" */
openSeaNftCollectionFloorPrice: string
/** @example "4" */
openSeaNftCollectionFloorPriceHuman: string
/** @example "4" */
openSeaNftCollectionFloorPriceHumanShortRound: string
/** @example "12686.2" */
openSeaNftCollectionFloorPriceHumanUSD: string
/** @example "3171.55" */
exchangeRateToUSD: string
/** @example "120000000000000000" */
remainingToPayPrice: string
/** @example "0.12" */
remainingToPayPriceHuman: string
/** @example "0.12" */
remainingToPayPriceHumanShortRound: string
/** @example "380.59" */
remainingToPayPriceHumanUSD: string
/** @example "121464000000000000" */
remainingToPayPriceWithInterests: string
/** @example "0.121464" */
remainingToPayPriceWithInterestsHuman: string
/** @example "0.121" */
remainingToPayPriceWithInterestsHumanShortRound: string
/** @example "385.23" */
remainingToPayPriceWithInterestsHumanUSD: string
/** @example "1464000000000000" */
interestsToPay: string
/** @example "0.001464" */
interestsToPayHuman: string
/** @example "0.001" */
interestsToPayHumanShortRound: string
/** @example "4.64" */
interestsToPayHumanUSD: string
/** @example "4001464000000000000" */
totalLoanPrice: string
/** @example "4.001464" */
totalLoanPriceHuman: string
/** @example "4.001" */
totalLoanPriceHumanShortRound: string
/** @example "12690.84" */
totalLoanPriceHumanUSD: string
/** @example 3 */
numberOfInstallments: number
paySchedule: Array<{
/** @example "3880000000000000000" */
toPay: string
/** @example "3.88" */
toPayHuman: string
/** @example "3.88" */
toPayHumanShortRound: string
/** @example "12305.61" */
toPayHumanUSD: string
/** @example "1721947310346" */
unixTimestampMs: string
/** @example "Friday, July 26" */
dateTimeHuman: string
/** @example "2024-07-25T22:41:50.346Z" */
dateTimeJSON: string
}>
}
nftPoolLiveData: {
/** @example "0x3a668917C167dfa823b2816e782704444503078D" */
nftPoolAddress: string
/** @example "25" */
minimalDepositPercent: string
/** @example "25" */
minimalDepositPercentHuman: string
/** @example "7" */
yearlyInterestPercent: string
/** @example "7" */
yearlyInterestPercentHuman: string
/** @example "5.6000000000000005" */
yearlyLiquidityProviderProfitsEstimationPercent: string
/** @example "5.6" */
yearlyLiquidityProviderProfitsEstimationPercentHuman: string
/** @example "309586878710840000" */
availableLiquidity: string
/** @example "0.30958687871084" */
availableLiquidityHuman: string
/** @example "0.31" */
availableLiquidityHumanShortRound: string
/** @example "981.87" */
availableLiquidityHumanUSD: string
/** @example "0" */
liquidityLockedInLoans: string
/** @example "0" */
liquidityLockedInLoansHuman: string
/** @example "0" */
liquidityLockedInLoansHumanShortRound: string
/** @example "0" */
liquidityLockedInLoansHumanUSD: string
/** @example "309586878710840000" */
totalValueLocked: string
/** @example "0.30958687871084" */
totalValueLockedHuman: string
/** @example "0.31" */
totalValueLockedHumanShortRound: string
/** @example "981.87" */
totalValueLockedHumanUSD: string
/** @example "3650" */
maxYearlyLoanRate: string
/** @example "43200" */
vestingTimePerBasisPoint: string
/** @example 0 */
currentOngoingLoansCount: number
/** @example 3 */
allTimeLoansCount: number
}
}
```
</details>
<details>
<summary>Click to show type: Loan preview for Nemeos Pool `DirectMint` mode</summary>
```ts
export type NftLivePriceDirectMintData = {
nftFullLivePriceData: {
/** @example "100000000000000000" */
mintPrice: string
/** @example "0.1" */
mintPriceHuman: string
/** @example "0.1" */
mintPriceHumanShortRound: string
/** @example "316.55" */
mintPriceHumanUSD: string
/** @example "25000000000000000" */
proposedUpfrontPaymentGivenPrices: string
/** @example "0.025" */
proposedUpfrontPaymentGivenPricesHuman: string
/** @example "0.025" */
proposedUpfrontPaymentGivenPricesHumanShortRound: string
/** @example "79.14" */
proposedUpfrontPaymentGivenPricesHumanUSD: string
/** @example "3165.45" */
exchangeRateToUSD: string
/** @example "75000000000000000" */
remainingToPayPrice: string
/** @example "0.075" */
remainingToPayPriceHuman: string
/** @example "0.075" */
remainingToPayPriceHumanShortRound: string
/** @example "237.41" */
remainingToPayPriceHumanUSD: string
/** @example "76372500000000000" */
remainingToPayPriceWithInterests: string
/** @example "0.0763725" */
remainingToPayPriceWithInterestsHuman: string
/** @example "0.076" */
remainingToPayPriceWithInterestsHumanShortRound: string
/** @example "241.75" */
remainingToPayPriceWithInterestsHumanUSD: string
/** @example "1372500000000000" */
interestsToPay: string
/** @example "0.0013725" */
interestsToPayHuman: string
/** @example "0.001" */
interestsToPayHumanShortRound: string
/** @example "4.34" */
interestsToPayHumanUSD: string
/** @example "101372500000000000" */
totalLoanPrice: string
/** @example "0.1013725" */
totalLoanPriceHuman: string
/** @example "0.101" */
totalLoanPriceHumanShortRound: string
/** @example "320.89" */
totalLoanPriceHumanUSD: string
/** @example 3 */
numberOfInstallments: number
paySchedule: Array<{
/** @example "25000000000000000" */
toPay: string
/** @example "0.025" */
toPayHuman: string
/** @example "0.025" */
toPayHumanShortRound: string
/** @example "79.14" */
toPayHumanUSD: string
/** @example "1721946366176" */
unixTimestampMs: string
/** @example "Friday, July 26" */
dateTimeHuman: string
/** @example "2024-07-25T22:26:06.176Z" */
dateTimeJSON: string
}>
}
nftPoolLiveData: {
/** @example "0xf4180C986Aec6f8fAdc6eFe4A0eC237c819AC074" */
nftPoolAddress: string
/** @example "25" */
minimalDepositPercent: string
/** @example "25" */
minimalDepositPercentHuman: string
/** @example "10" */
yearlyInterestPercent: string
/** @example "10" */
yearlyInterestPercentHuman: string
/** @example "8" */
yearlyLiquidityProviderProfitsEstimationPercent: string
/** @example "8" */
yearlyLiquidityProviderProfitsEstimationPercentHuman: string
/** @example "100000000000000000" */
availableLiquidity: string
/** @example "0.1" */
availableLiquidityHuman: string
/** @example "0.1" */
availableLiquidityHumanShortRound: string
/** @example "316.55" */
availableLiquidityHumanUSD: string
/** @example "0" */
liquidityLockedInLoans: string
/** @example "0" */
liquidityLockedInLoansHuman: string
/** @example "0" */
liquidityLockedInLoansHumanShortRound: string
/** @example "0" */
liquidityLockedInLoansHumanUSD: string
/** @example "100000000000000000" */
totalValueLocked: string
/** @example "0.1" */
totalValueLockedHuman: string
/** @example "0.1" */
totalValueLockedHumanShortRound: string
/** @example "316.55" */
totalValueLockedHumanUSD: string
/** @example "3650" */
maxYearlyLoanRate: string
/** @example "43200" */
vestingTimePerBasisPoint: string
/** @example 0 */
currentOngoingLoansCount: number
/** @example 0 */
allTimeLoansCount: number
}
}
```
</details>
#### Start a loan
```ts
try {
// Start loan for Nemeos Pool `BuyOpenSea` mode
const nftId = 224
const loanDurationDays = 90
const tx = await nemeosPoolClient.startLoan(nftId, loanDurationDays)

// Start loan for Nemeos Pool `DirectMint` mode
const loanDurationDays = 90
const whitelistProof = ['0x1234567890123456789012345678901234567890'] // Optional, necessary if there is a whitelist
const tx2 = await nemeosPoolClient.startLoan(loanDurationDays, whitelistProof)

console.log('Starting loan success! Transaction hash:', tx.hash)
} catch (error) {
console.error('Starting loan failed!', error.message)
Expand All @@ -165,6 +464,9 @@ const nftId = 224
const loan = await nemeosPoolClient.retrieveLoan(nftId)
```

<details>
<summary>Type: Loan</summary>

```ts
type Loan = {
/** Borrower address */
Expand Down Expand Up @@ -193,6 +495,7 @@ type Loan = {
isInLiquidation: boolean
}
```
</details>
#### Pay the next loan step
Expand Down Expand Up @@ -221,9 +524,11 @@ pnpm build
### Test script

```bash
# touch .env, or set the environment variables in the command line
export NODE_ENV=development # to connect to Nemeos backend at http://localhost:3000
export WALLET_PRIVATE_KEY=43ac571235456515454565645445454546123121454848791215488877897123
export INFURA_ENDPOINT_WITH_API_KEY=https://sepolia.infura.io/v3/b3866123121321321231212132131123

node tests/test.mjs
```

Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "nemeos-sdk",
"version": "0.1.4",
"version": "0.1.5",
"type": "module",
"description": "Nemeos SDK to facilitate integration with the Nemeos platform",
"license": "MIT",
Expand Down

0 comments on commit 8794c58

Please sign in to comment.