@huma-finance/sdk 0.0.39 → 0.0.42-beta.76
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/API.md +45 -9
- package/dist/cjs/graphql/generatedTypes.d.ts +40 -0
- package/dist/cjs/graphql/generatedTypes.js +9 -0
- package/dist/cjs/graphql/generatedTypes.js.map +1 -0
- package/dist/cjs/graphql/index.d.ts +1 -0
- package/dist/cjs/graphql/index.js +5 -0
- package/dist/cjs/graphql/index.js.map +1 -0
- package/dist/cjs/helpers/ERC20TransferableReceivableContractHelper.d.ts +10 -0
- package/dist/cjs/helpers/ERC20TransferableReceivableContractHelper.js +22 -0
- package/dist/cjs/helpers/ERC20TransferableReceivableContractHelper.js.map +1 -0
- package/dist/cjs/helpers/PoolContractHelper.d.ts +119 -0
- package/dist/cjs/helpers/PoolContractHelper.js +144 -0
- package/dist/cjs/helpers/PoolContractHelper.js.map +1 -0
- package/dist/cjs/helpers/RealWorldReceivableContractHelper.d.ts +10 -0
- package/dist/cjs/helpers/RealWorldReceivableContractHelper.js +22 -0
- package/dist/cjs/helpers/RealWorldReceivableContractHelper.js.map +1 -0
- package/dist/cjs/helpers/index.d.ts +3 -0
- package/dist/cjs/helpers/index.js +7 -0
- package/dist/cjs/helpers/index.js.map +1 -0
- package/dist/cjs/hooks/index.d.ts +4 -0
- package/dist/cjs/hooks/index.js +8 -0
- package/dist/cjs/hooks/index.js.map +1 -0
- package/dist/cjs/hooks/useContract.d.ts +13 -0
- package/dist/cjs/hooks/useContract.js +31 -0
- package/dist/cjs/hooks/useContract.js.map +1 -0
- package/dist/cjs/hooks/useERC20TransferableReceivableContract.d.ts +12 -0
- package/dist/cjs/hooks/useERC20TransferableReceivableContract.js +21 -0
- package/dist/cjs/hooks/useERC20TransferableReceivableContract.js.map +1 -0
- package/dist/cjs/hooks/usePoolContract.d.ts +60 -0
- package/dist/cjs/hooks/usePoolContract.js +54 -0
- package/dist/cjs/hooks/usePoolContract.js.map +1 -0
- package/dist/cjs/hooks/useRealWorldReceivableContract.d.ts +10 -0
- package/dist/cjs/hooks/useRealWorldReceivableContract.js +20 -0
- package/dist/cjs/hooks/useRealWorldReceivableContract.js.map +1 -0
- package/dist/cjs/index.d.ts +4 -0
- package/dist/cjs/index.js +8 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/services/ARWeaveService.d.ts +117 -0
- package/dist/cjs/services/ARWeaveService.js +204 -0
- package/dist/cjs/services/ARWeaveService.js.map +1 -0
- package/dist/cjs/services/EAService.d.ts +20 -0
- package/dist/cjs/services/EAService.js +34 -0
- package/dist/cjs/services/EAService.js.map +1 -0
- package/dist/cjs/services/ReceivableService.d.ts +142 -0
- package/dist/cjs/services/ReceivableService.js +330 -0
- package/dist/cjs/services/ReceivableService.js.map +1 -0
- package/dist/cjs/services/SubgraphService.d.ts +53 -0
- package/dist/cjs/services/SubgraphService.js +94 -0
- package/dist/cjs/services/SubgraphService.js.map +1 -0
- package/dist/cjs/services/index.d.ts +4 -0
- package/dist/cjs/services/index.js +8 -0
- package/dist/cjs/services/index.js.map +1 -0
- package/dist/cjs/utils/chain.d.ts +15 -0
- package/dist/cjs/utils/chain.js +38 -0
- package/dist/cjs/utils/chain.js.map +1 -0
- package/dist/cjs/utils/index.d.ts +4 -0
- package/dist/cjs/utils/index.js +8 -0
- package/dist/cjs/utils/index.js.map +1 -0
- package/dist/cjs/utils/maticGasStation.d.ts +3 -0
- package/dist/cjs/utils/maticGasStation.js +39 -0
- package/dist/cjs/utils/maticGasStation.js.map +1 -0
- package/dist/cjs/utils/poolInfo.d.ts +8 -0
- package/dist/cjs/utils/poolInfo.js +13 -0
- package/dist/cjs/utils/poolInfo.js.map +1 -0
- package/dist/cjs/utils/web3.d.ts +5 -0
- package/dist/cjs/utils/web3.js +34 -0
- package/dist/cjs/utils/web3.js.map +1 -0
- package/dist/graphql/generatedTypes.d.ts +40 -0
- package/dist/graphql/generatedTypes.js +5 -0
- package/dist/graphql/generatedTypes.js.map +1 -0
- package/dist/graphql/index.d.ts +1 -0
- package/dist/graphql/index.js +2 -0
- package/dist/graphql/index.js.map +1 -0
- package/dist/helpers/ERC20TransferableReceivableContractHelper.d.ts +10 -0
- package/dist/helpers/ERC20TransferableReceivableContractHelper.js +18 -0
- package/dist/helpers/ERC20TransferableReceivableContractHelper.js.map +1 -0
- package/dist/helpers/PoolContractHelper.d.ts +119 -0
- package/dist/helpers/PoolContractHelper.js +135 -0
- package/dist/helpers/PoolContractHelper.js.map +1 -0
- package/dist/helpers/RealWorldReceivableContractHelper.d.ts +10 -0
- package/dist/helpers/RealWorldReceivableContractHelper.js +18 -0
- package/dist/helpers/RealWorldReceivableContractHelper.js.map +1 -0
- package/dist/helpers/index.d.ts +3 -0
- package/dist/helpers/index.js +4 -0
- package/dist/helpers/index.js.map +1 -0
- package/dist/hooks/index.d.ts +4 -0
- package/dist/hooks/index.js +5 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/useContract.d.ts +13 -0
- package/dist/hooks/useContract.js +27 -0
- package/dist/hooks/useContract.js.map +1 -0
- package/dist/hooks/useERC20TransferableReceivableContract.d.ts +12 -0
- package/dist/hooks/useERC20TransferableReceivableContract.js +17 -0
- package/dist/hooks/useERC20TransferableReceivableContract.js.map +1 -0
- package/dist/hooks/usePoolContract.d.ts +60 -0
- package/dist/hooks/usePoolContract.js +49 -0
- package/dist/hooks/usePoolContract.js.map +1 -0
- package/dist/hooks/useRealWorldReceivableContract.d.ts +10 -0
- package/dist/hooks/useRealWorldReceivableContract.js +16 -0
- package/dist/hooks/useRealWorldReceivableContract.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -0
- package/dist/services/ARWeaveService.d.ts +117 -0
- package/dist/services/ARWeaveService.js +199 -0
- package/dist/services/ARWeaveService.js.map +1 -0
- package/dist/services/EAService.d.ts +20 -0
- package/dist/services/EAService.js +31 -0
- package/dist/services/EAService.js.map +1 -0
- package/dist/services/ReceivableService.d.ts +142 -0
- package/dist/services/ReceivableService.js +327 -0
- package/dist/services/ReceivableService.js.map +1 -0
- package/dist/services/SubgraphService.d.ts +53 -0
- package/dist/services/SubgraphService.js +91 -0
- package/dist/services/SubgraphService.js.map +1 -0
- package/dist/services/index.d.ts +4 -0
- package/dist/services/index.js +5 -0
- package/dist/services/index.js.map +1 -0
- package/dist/tsconfig.cjs.tsbuildinfo +1 -0
- package/dist/utils/chain.d.ts +15 -0
- package/dist/utils/chain.js +32 -0
- package/dist/utils/chain.js.map +1 -0
- package/dist/utils/index.d.ts +4 -0
- package/dist/utils/index.js +5 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/maticGasStation.d.ts +3 -0
- package/dist/utils/maticGasStation.js +34 -0
- package/dist/utils/maticGasStation.js.map +1 -0
- package/dist/utils/poolInfo.d.ts +8 -0
- package/dist/utils/poolInfo.js +9 -0
- package/dist/utils/poolInfo.js.map +1 -0
- package/dist/utils/web3.d.ts +5 -0
- package/dist/utils/web3.js +28 -0
- package/dist/utils/web3.js.map +1 -0
- package/package.json +3 -3
package/API.md
CHANGED
|
@@ -140,6 +140,7 @@ Note that this does not approve a creditline in Huma's pools and an approve call
|
|
|
140
140
|
* [.storeData(config, signerOrPrivateKey, data, tags, [lazyFund])](#ARWeaveService.storeData) ⇒ <code>Promise.<UploadResponse></code>
|
|
141
141
|
* [.queryForMetadata(chainId, sender, referenceId)](#ARWeaveService.queryForMetadata) ⇒ <code>Promise.<any></code>
|
|
142
142
|
* [.fetchMetadataFromUrl(url)](#ARWeaveService.fetchMetadataFromUrl) ⇒ <code>Promise.<JSON></code>
|
|
143
|
+
* [.getURIFromARWeaveId(arweaveId)](#ARWeaveService.getURIFromARWeaveId) ⇒ <code>string</code>
|
|
143
144
|
* [.BundlrConfig](#ARWeaveService.BundlrConfig) : <code>Object</code>
|
|
144
145
|
|
|
145
146
|
<a name="ARWeaveService.getBundlrNetworkConfig"></a>
|
|
@@ -229,6 +230,18 @@ If you want to upload 5 Matic to the Bundlr node, pass in an amount of 5.</p>
|
|
|
229
230
|
| --- | --- | --- |
|
|
230
231
|
| url | <code>string</code> | <p>The ARWeave metadata URL to query.</p> |
|
|
231
232
|
|
|
233
|
+
<a name="ARWeaveService.getURIFromARWeaveId"></a>
|
|
234
|
+
|
|
235
|
+
### ARWeaveService.getURIFromARWeaveId(arweaveId) ⇒ <code>string</code>
|
|
236
|
+
<p>Helper method to get an ARWeave URI from an ARWeave ID.</p>
|
|
237
|
+
|
|
238
|
+
**Kind**: static method of [<code>ARWeaveService</code>](#ARWeaveService)
|
|
239
|
+
**Returns**: <code>string</code> - <p>The ARWeave URI.</p>
|
|
240
|
+
|
|
241
|
+
| Param | Type | Description |
|
|
242
|
+
| --- | --- | --- |
|
|
243
|
+
| arweaveId | <code>string</code> | <p>The ARWeave metadata ID.</p> |
|
|
244
|
+
|
|
232
245
|
<a name="ARWeaveService.BundlrConfig"></a>
|
|
233
246
|
|
|
234
247
|
### ARWeaveService.BundlrConfig : <code>Object</code>
|
|
@@ -275,17 +288,18 @@ in Huma's pools that can be drawn down by the borrower.</p>
|
|
|
275
288
|
**Kind**: global namespace
|
|
276
289
|
|
|
277
290
|
* [ReceivableService](#ReceivableService) : <code>object</code>
|
|
278
|
-
* [.
|
|
291
|
+
* [.getTokenIdByURI(signer, arweaveId)](#ReceivableService.getTokenIdByURI) ⇒ <code>Promise.<(string\|null\|undefined)></code>
|
|
279
292
|
* [.declareReceivablePaymentByReferenceId(signer, referenceId, paymentAmount, [gasOpts])](#ReceivableService.declareReceivablePaymentByReferenceId) ⇒ <code>Promise.<TransactionResponse></code>
|
|
280
293
|
* [.declareReceivablePaymentByTokenId(signer, receivableTokenId, paymentAmount, [gasOpts])](#ReceivableService.declareReceivablePaymentByTokenId) ⇒ <code>Promise.<TransactionResponse></code>
|
|
281
|
-
* [.createReceivable(signer, poolName, poolType, currencyCode, receivableAmount, maturityDate, uri, [gasOpts])](#ReceivableService.createReceivable) ⇒ <code>Promise.<TransactionResponse></code>
|
|
294
|
+
* [.createReceivable(signer, poolName, poolType, currencyCode, receivableAmount, maturityDate, uri, [gasOpts])](#ReceivableService.createReceivable) ⇒ <code>Promise.<(TransactionResponse\|null)></code>
|
|
295
|
+
* [.uploadOrFetchMetadataURI(signerOrProvider, privateKey, chainId, poolName, poolType, metadata, referenceId, extraTags, [lazyFund])](#ReceivableService.uploadOrFetchMetadataURI) ⇒ <code>Promise.<string></code>
|
|
282
296
|
* [.createReceivableWithMetadata(signerOrProvider, privateKey, chainId, poolName, poolType, currencyCode, receivableAmount, maturityDate, metadata, referenceId, extraTags, [lazyFund], [gasOpts])](#ReceivableService.createReceivableWithMetadata) ⇒ <code>Promise.<TransactionResponse></code>
|
|
283
297
|
* [.loadReceivablesOfOwnerWithMetadata(signerOrProvider, owner, poolName, poolType)](#ReceivableService.loadReceivablesOfOwnerWithMetadata) ⇒ <code>Promise.<Array.<RealWorldReceivableInfo>></code>
|
|
284
298
|
|
|
285
|
-
<a name="ReceivableService.
|
|
299
|
+
<a name="ReceivableService.getTokenIdByURI"></a>
|
|
286
300
|
|
|
287
|
-
### ReceivableService.
|
|
288
|
-
<p>
|
|
301
|
+
### ReceivableService.getTokenIdByURI(signer, arweaveId) ⇒ <code>Promise.<(string\|null\|undefined)></code>
|
|
302
|
+
<p>Fetches the tokenId of a RealWorldReceivable, or null if it doesn't exist, given a metadata URI</p>
|
|
289
303
|
|
|
290
304
|
**Kind**: static method of [<code>ReceivableService</code>](#ReceivableService)
|
|
291
305
|
**Returns**: <code>Promise.<(string\|null\|undefined)></code> - <ul>
|
|
@@ -339,17 +353,17 @@ in Huma's pools that can be drawn down by the borrower.</p>
|
|
|
339
353
|
|
|
340
354
|
<a name="ReceivableService.createReceivable"></a>
|
|
341
355
|
|
|
342
|
-
### ReceivableService.createReceivable(signer, poolName, poolType, currencyCode, receivableAmount, maturityDate, uri, [gasOpts]) ⇒ <code>Promise.<TransactionResponse></code>
|
|
356
|
+
### ReceivableService.createReceivable(signer, poolName, poolType, currencyCode, receivableAmount, maturityDate, uri, [gasOpts]) ⇒ <code>Promise.<(TransactionResponse\|null)></code>
|
|
343
357
|
<p>Creates a new RealWorldReceivable token on the given chain of the signer</p>
|
|
344
358
|
|
|
345
359
|
**Kind**: static method of [<code>ReceivableService</code>](#ReceivableService)
|
|
346
|
-
**Returns**: <code>Promise.<TransactionResponse></code> - <ul>
|
|
360
|
+
**Returns**: <code>Promise.<(TransactionResponse\|null)></code> - <ul>
|
|
347
361
|
<li>A Promise of the transaction response.</li>
|
|
348
362
|
</ul>
|
|
349
363
|
**Throws**:
|
|
350
364
|
|
|
351
365
|
- <code>Error</code> <ul>
|
|
352
|
-
<li>Throws an error if the RealWorldReceivable contract is not available on the network.</li>
|
|
366
|
+
<li>Throws an error if the RealWorldReceivable contract is not available on the network, or if a token already exists with the same metadata URI.</li>
|
|
353
367
|
</ul>
|
|
354
368
|
|
|
355
369
|
|
|
@@ -364,6 +378,28 @@ in Huma's pools that can be drawn down by the borrower.</p>
|
|
|
364
378
|
| uri | <code>string</code> | <p>The URI of the receivable token metadata.</p> |
|
|
365
379
|
| [gasOpts] | <code>Overrides</code> | <p>The gas options to use for the transaction.</p> |
|
|
366
380
|
|
|
381
|
+
<a name="ReceivableService.uploadOrFetchMetadataURI"></a>
|
|
382
|
+
|
|
383
|
+
### ReceivableService.uploadOrFetchMetadataURI(signerOrProvider, privateKey, chainId, poolName, poolType, metadata, referenceId, extraTags, [lazyFund]) ⇒ <code>Promise.<string></code>
|
|
384
|
+
<p>Uploads metadata onto ARWeave (or fetches the existing metadata with the same reference Id) and returns the ARWeave URL</p>
|
|
385
|
+
|
|
386
|
+
**Kind**: static method of [<code>ReceivableService</code>](#ReceivableService)
|
|
387
|
+
**Returns**: <code>Promise.<string></code> - <ul>
|
|
388
|
+
<li>The ARWeave metadata URI.</li>
|
|
389
|
+
</ul>
|
|
390
|
+
|
|
391
|
+
| Param | Type | Default | Description |
|
|
392
|
+
| --- | --- | --- | --- |
|
|
393
|
+
| signerOrProvider | <code>Web3Provider</code> \| <code>ethers.Signer</code> | | <p>If calling this function from a browser, this function expects a Web3Provider. If calling this function from a server, this function expects an ethers Signer. Note that privateKey only needs to be included from server calls.</p> |
|
|
394
|
+
| privateKey | <code>string</code> \| <code>null</code> | | <p>Private key of the wallet used to upload metadata to ARWeave. Only required if calling this function from a server.</p> |
|
|
395
|
+
| chainId | <code>number</code> | | <p>The chain ID to mint the receivable token on and pay ARWeave funds from.</p> |
|
|
396
|
+
| poolName | <code>POOL\_NAME</code> | | <p>The pool name. Used to lookup the pool address to pay to.</p> |
|
|
397
|
+
| poolType | <code>POOL\_TYPE</code> | | <p>The pool type. Used to lookup the pool address to pay to.</p> |
|
|
398
|
+
| metadata | <code>Record.<string, any></code> | | <p>The metadata in JSON format. This will be uploaded onto ARWeave</p> |
|
|
399
|
+
| referenceId | <code>string</code> | | <p>An internal identifier value added as a tag on ARWeave, for easily querying the metadata later.</p> |
|
|
400
|
+
| extraTags | <code>Array.<{name: string, value: string}></code> | | <p>Any extraTags you'd like to tag your metadata with. Note that metadata on ARWeave is indexed by these tags, so make sure to include any tags that you'd like to be able to query by.</p> |
|
|
401
|
+
| [lazyFund] | <code>boolean</code> | <code>true</code> | <p>Whether to lazy fund the ARWeave uploads. If true, the ARWeave uploads will be paid for by the metadata uploader immediately before uploading. If false, the ARWeave node must be pre-funded before calling this function.</p> |
|
|
402
|
+
|
|
367
403
|
<a name="ReceivableService.createReceivableWithMetadata"></a>
|
|
368
404
|
|
|
369
405
|
### ReceivableService.createReceivableWithMetadata(signerOrProvider, privateKey, chainId, poolName, poolType, currencyCode, receivableAmount, maturityDate, metadata, referenceId, extraTags, [lazyFund], [gasOpts]) ⇒ <code>Promise.<TransactionResponse></code>
|
|
@@ -385,7 +421,7 @@ in Huma's pools that can be drawn down by the borrower.</p>
|
|
|
385
421
|
| receivableAmount | <code>number</code> | | <p>The receivable amount.</p> |
|
|
386
422
|
| maturityDate | <code>number</code> | | <p>The maturity date of the receivable, in UNIX timestamp format.</p> |
|
|
387
423
|
| metadata | <code>Record.<string, any></code> | | <p>The metadata in JSON format. This will be uploaded onto ARWeave</p> |
|
|
388
|
-
| referenceId | <code>
|
|
424
|
+
| referenceId | <code>string</code> | | <p>An internal identifier value added as a tag on ARWeave, for easily querying the metadata later.</p> |
|
|
389
425
|
| extraTags | <code>Array.<{name: string, value: string}></code> | | <p>Any extraTags you'd like to tag your metadata with. Note that metadata on ARWeave is indexed by these tags, so make sure to include any tags that you'd like to be able to query by.</p> |
|
|
390
426
|
| [lazyFund] | <code>boolean</code> | <code>true</code> | <p>Whether to lazy fund the ARWeave uploads. If true, the ARWeave uploads will be paid for by the metadata uploader immediately before uploading. If false, the ARWeave node must be pre-funded before calling this function.</p> |
|
|
391
427
|
| [gasOpts] | <code>Overrides</code> | | <p>Optional gas overrides for the transaction.</p> |
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { GraphQLClient } from 'graphql-request';
|
|
2
|
+
export type Maybe<T> = T | null;
|
|
3
|
+
export type InputMaybe<T> = Maybe<T>;
|
|
4
|
+
export type Exact<T extends {
|
|
5
|
+
[key: string]: unknown;
|
|
6
|
+
}> = {
|
|
7
|
+
[K in keyof T]: T[K];
|
|
8
|
+
};
|
|
9
|
+
export type MakeOptional<T, K extends keyof T> = Omit<T, K> & {
|
|
10
|
+
[SubKey in K]?: Maybe<T[SubKey]>;
|
|
11
|
+
};
|
|
12
|
+
export type MakeMaybe<T, K extends keyof T> = Omit<T, K> & {
|
|
13
|
+
[SubKey in K]: Maybe<T[SubKey]>;
|
|
14
|
+
};
|
|
15
|
+
/** All built-in and custom scalars, mapped to their actual values */
|
|
16
|
+
export type Scalars = {
|
|
17
|
+
ID: string;
|
|
18
|
+
String: string;
|
|
19
|
+
Boolean: boolean;
|
|
20
|
+
Int: number;
|
|
21
|
+
Float: number;
|
|
22
|
+
};
|
|
23
|
+
export type Receivable = {
|
|
24
|
+
__typename?: 'Receivable';
|
|
25
|
+
creationDate?: Maybe<Scalars['String']>;
|
|
26
|
+
currencyCode?: Maybe<Scalars['String']>;
|
|
27
|
+
id?: Maybe<Scalars['String']>;
|
|
28
|
+
lastUpdate?: Maybe<Scalars['String']>;
|
|
29
|
+
maturityDate?: Maybe<Scalars['String']>;
|
|
30
|
+
owner?: Maybe<Scalars['String']>;
|
|
31
|
+
paidAmount?: Maybe<Scalars['String']>;
|
|
32
|
+
pool?: Maybe<Scalars['String']>;
|
|
33
|
+
receivableAmount?: Maybe<Scalars['String']>;
|
|
34
|
+
status?: Maybe<Scalars['String']>;
|
|
35
|
+
tokenId?: Maybe<Scalars['String']>;
|
|
36
|
+
uri?: Maybe<Scalars['String']>;
|
|
37
|
+
};
|
|
38
|
+
export type SdkFunctionWrapper = <T>(action: (requestHeaders?: Record<string, string>) => Promise<T>, operationName: string, operationType?: string) => Promise<T>;
|
|
39
|
+
export declare function getSdk(client: GraphQLClient, withWrapper?: SdkFunctionWrapper): {};
|
|
40
|
+
export type Sdk = ReturnType<typeof getSdk>;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getSdk = void 0;
|
|
4
|
+
const defaultWrapper = (action, _operationName, _operationType) => action();
|
|
5
|
+
function getSdk(client, withWrapper = defaultWrapper) {
|
|
6
|
+
return {};
|
|
7
|
+
}
|
|
8
|
+
exports.getSdk = getSdk;
|
|
9
|
+
//# sourceMappingURL=generatedTypes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generatedTypes.js","sourceRoot":"","sources":["../../../src/graphql/generatedTypes.ts"],"names":[],"mappings":";;;AA8CA,MAAM,cAAc,GAAuB,CACzC,MAAM,EACN,cAAc,EACd,cAAc,EACd,EAAE,CAAC,MAAM,EAAE,CAAA;AAEb,SAAgB,MAAM,CACpB,MAAqB,EACrB,cAAkC,cAAc;IAEhD,OAAO,EAAE,CAAA;AACX,CAAC;AALD,wBAKC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './generatedTypes';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/graphql/index.ts"],"names":[],"mappings":";;;AAAA,2DAAgC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Contract, ethers } from 'ethers';
|
|
2
|
+
/**
|
|
3
|
+
* Returns an ethers contract instance for the ERC20TransferableReceivable contract
|
|
4
|
+
* associated with the given pool name on the current chain.
|
|
5
|
+
*
|
|
6
|
+
* @param {ethers.providers.Provider | ethers.Signer} signerOrProvider The provider or signer instance to use for the contract.
|
|
7
|
+
* @param {number} chainId The chain id where the contract instance exists
|
|
8
|
+
* @returns {Contract | null} A contract instance for the ERC20TransferableReceivable contract or null if it could not be found.
|
|
9
|
+
*/
|
|
10
|
+
export declare function getERC20TransferableReceivableContract(signerOrProvider: ethers.providers.Provider | ethers.Signer, chainId: number): Contract | null;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getERC20TransferableReceivableContract = void 0;
|
|
4
|
+
const shared_1 = require("@huma-finance/shared");
|
|
5
|
+
const utils_1 = require("../utils");
|
|
6
|
+
/**
|
|
7
|
+
* Returns an ethers contract instance for the ERC20TransferableReceivable contract
|
|
8
|
+
* associated with the given pool name on the current chain.
|
|
9
|
+
*
|
|
10
|
+
* @param {ethers.providers.Provider | ethers.Signer} signerOrProvider The provider or signer instance to use for the contract.
|
|
11
|
+
* @param {number} chainId The chain id where the contract instance exists
|
|
12
|
+
* @returns {Contract | null} A contract instance for the ERC20TransferableReceivable contract or null if it could not be found.
|
|
13
|
+
*/
|
|
14
|
+
function getERC20TransferableReceivableContract(signerOrProvider, chainId) {
|
|
15
|
+
var _a;
|
|
16
|
+
const erc20TransferableReceiable = (_a = shared_1.SupplementaryContractsMap[chainId]) === null || _a === void 0 ? void 0 : _a[shared_1.SupplementaryContracts.ERC20TransferableReceivable];
|
|
17
|
+
if (!erc20TransferableReceiable)
|
|
18
|
+
return null;
|
|
19
|
+
return (0, utils_1.getContract)(erc20TransferableReceiable, shared_1.ERC20_TRANSFERABLE_RECEIVABLE_ABI, signerOrProvider);
|
|
20
|
+
}
|
|
21
|
+
exports.getERC20TransferableReceivableContract = getERC20TransferableReceivableContract;
|
|
22
|
+
//# sourceMappingURL=ERC20TransferableReceivableContractHelper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ERC20TransferableReceivableContractHelper.js","sourceRoot":"","sources":["../../../src/helpers/ERC20TransferableReceivableContractHelper.ts"],"names":[],"mappings":";;;AACA,iDAI6B;AAE7B,oCAAsC;AAEtC;;;;;;;GAOG;AACH,SAAgB,sCAAsC,CACpD,gBAA2D,EAC3D,OAAe;;IAEf,MAAM,0BAA0B,GAC9B,MAAA,kCAAyB,CAAC,OAAO,CAAC,0CAChC,+BAAsB,CAAC,2BAA2B,CACnD,CAAA;IAEH,IAAI,CAAC,0BAA0B;QAAE,OAAO,IAAI,CAAA;IAE5C,OAAO,IAAA,mBAAW,EAChB,0BAA0B,EAC1B,0CAAiC,EACjC,gBAAgB,CACjB,CAAA;AACH,CAAC;AAhBD,wFAgBC"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { BigNumber } from '@ethersproject/bignumber';
|
|
2
|
+
import { BigNumberish, Contract, Overrides, ethers } from 'ethers';
|
|
3
|
+
import { POOL_NAME, POOL_TYPE } from '@huma-finance/shared';
|
|
4
|
+
import { TransactionResponse } from '@ethersproject/providers';
|
|
5
|
+
/**
|
|
6
|
+
* Returns an ethers contract instance for a Huma pool contract
|
|
7
|
+
*
|
|
8
|
+
* @param {ethers.providers.Provider | ethers.Signer} signerOrProvider The provider or signer instance to use for the contract.
|
|
9
|
+
* @param {number} chainId The chain id where the contract instance exists
|
|
10
|
+
* @param {POOL_NAME} poolName The name of the pool contract to get.
|
|
11
|
+
* @param {POOL_TYPE} poolType The type of the pool contract to get.
|
|
12
|
+
* @returns {Contract | null} A contract instance for the Pool contract or null if it could not be found.
|
|
13
|
+
*/
|
|
14
|
+
export declare function getPoolContract(signerOrProvider: ethers.providers.Provider | ethers.Signer, chainId: number, poolName: POOL_NAME, poolType: POOL_TYPE): Contract | null;
|
|
15
|
+
/**
|
|
16
|
+
* Return type of getCreditRecord
|
|
17
|
+
*
|
|
18
|
+
* @memberof getCreditRecord
|
|
19
|
+
* @typedef {Object} CreditRecord
|
|
20
|
+
* @property {BigNumber} unbilledPrincipal - The amount of principal not included in the bill
|
|
21
|
+
* @property {BigNumber} dueDate - Unix timestamp due date of the next payment
|
|
22
|
+
* @property {BigNumber} correction - the adjustment of interest over or under-counted because of drawdown
|
|
23
|
+
* or principal payment in the middle of a billing period
|
|
24
|
+
* @property {BigNumber} totalDue - The due amount of the next payment
|
|
25
|
+
* @property {BigNumber} feesAndInterestDue - Interest and fees due for the next payment
|
|
26
|
+
* @property {number} missedPeriods - # of consecutive missed payments, for default processing
|
|
27
|
+
* @property {number} remainingPeriods - # of payment periods until the maturity of the credit line
|
|
28
|
+
* @property {number} state - status of the credit line.
|
|
29
|
+
* For more info: https://github.com/00labs/huma-contracts/blob/b075a8f957de281e0885e37dbd72a422b6a54a38/contracts/libraries/BaseStructs.sol#L49
|
|
30
|
+
*/
|
|
31
|
+
export type CreditRecord = [
|
|
32
|
+
BigNumber,
|
|
33
|
+
BigNumber,
|
|
34
|
+
BigNumber,
|
|
35
|
+
BigNumber,
|
|
36
|
+
BigNumber,
|
|
37
|
+
number,
|
|
38
|
+
number,
|
|
39
|
+
number
|
|
40
|
+
] & {
|
|
41
|
+
unbilledPrincipal: BigNumber;
|
|
42
|
+
dueDate: BigNumber;
|
|
43
|
+
correction: BigNumber;
|
|
44
|
+
totalDue: BigNumber;
|
|
45
|
+
feesAndInterestDue: BigNumber;
|
|
46
|
+
missedPeriods: number;
|
|
47
|
+
remainingPeriods: number;
|
|
48
|
+
state: number;
|
|
49
|
+
};
|
|
50
|
+
/**
|
|
51
|
+
* Gets the credit record of a wallet in a Huma pool. Denominated in the ERC20 tokens of the pool.
|
|
52
|
+
*
|
|
53
|
+
* @namespace getCreditRecord
|
|
54
|
+
* @async
|
|
55
|
+
* @function
|
|
56
|
+
* @param {string} address - The address to lookup.
|
|
57
|
+
* @param {ethers.providers.Provider | ethers.Signer} signerOrProvider - The signer or provider used to read data.
|
|
58
|
+
* @param {number} chainId - The chain ID of the pool. Used to lookup the pool address.
|
|
59
|
+
* @param {POOL_NAME} poolName - The name of the credit pool. Used to lookup the pool address.
|
|
60
|
+
* @param {POOL_TYPE} poolType - The type of the credit pool. Used to lookup the pool address.
|
|
61
|
+
* @returns {Promise<CreditRecord>} - A Promise of the transaction response.
|
|
62
|
+
*/
|
|
63
|
+
export declare function getCreditRecord(address: string, signerOrProvider: ethers.providers.Provider | ethers.Signer, chainId: number, poolName: POOL_NAME, poolType: POOL_TYPE): Promise<CreditRecord>;
|
|
64
|
+
/**
|
|
65
|
+
* Gets the total due for a Huma pool of the given wallet. Denominated in the ERC20 tokens of the pool.
|
|
66
|
+
*
|
|
67
|
+
* @async
|
|
68
|
+
* @function
|
|
69
|
+
* @param {string} address - The address to lookup.
|
|
70
|
+
* @param {ethers.providers.Provider | ethers.Signer} signerOrProvider - The signer or provider used to read data.
|
|
71
|
+
* @param {number} chainId - The chain ID of the pool. Used to lookup the pool address.
|
|
72
|
+
* @param {POOL_NAME} poolName - The name of the credit pool. Used to lookup the pool address.
|
|
73
|
+
* @param {POOL_TYPE} poolType - The type of the credit pool. Used to lookup the pool address.
|
|
74
|
+
* @returns {Promise<BigNumber>} - A Promise of the transaction response.
|
|
75
|
+
*/
|
|
76
|
+
export declare function getTotalDue(address: string, signerOrProvider: ethers.providers.Provider | ethers.Signer, chainId: number, poolName: POOL_NAME, poolType: POOL_TYPE): Promise<BigNumber>;
|
|
77
|
+
/**
|
|
78
|
+
* Calls drawdown on a Huma pool contract
|
|
79
|
+
*
|
|
80
|
+
* @async
|
|
81
|
+
* @function
|
|
82
|
+
* @param {ethers.Signer} signer - The signer used to send the transaction.
|
|
83
|
+
* @param {number} chainId - The chain ID of the pool to call drawdown on. Used to lookup the pool address.
|
|
84
|
+
* @param {POOL_NAME} poolName - The name of the credit pool to mint the receivable token from. Used to lookup the pool address.
|
|
85
|
+
* @param {POOL_TYPE} poolType - The type of the credit pool to mint the receivable token from. Used to lookup the pool address.
|
|
86
|
+
* @param {BigNumberish} drawdownAmount - The amount of tokens to withdraw, denominated in the ERC20 tokens of the pool.
|
|
87
|
+
* @param {Overrides} [gasOpts] - The gas options to use for the transaction.
|
|
88
|
+
* @returns {Promise<TransactionResponse>} - A Promise of the transaction response.
|
|
89
|
+
*/
|
|
90
|
+
export declare function drawdownFromPool(signer: ethers.Signer, chainId: number, poolName: POOL_NAME, poolType: POOL_TYPE, drawdownAmount: BigNumberish, gasOpts?: Overrides): Promise<TransactionResponse>;
|
|
91
|
+
/**
|
|
92
|
+
* Calls makePayment on a Huma pool contract. If the pool does not have sufficient allowance to complete the operation,
|
|
93
|
+
* attempt to first increase the allowance of the pool.
|
|
94
|
+
*
|
|
95
|
+
* @async
|
|
96
|
+
* @function
|
|
97
|
+
* @param {ethers.Signer} signer - The signer used to send the transaction.
|
|
98
|
+
* @param {number} chainId - The chain ID of the pool to call drawdown on. Used to lookup the pool address.
|
|
99
|
+
* @param {POOL_NAME} poolName - The name of the credit pool to mint the receivable token from. Used to lookup the pool address.
|
|
100
|
+
* @param {POOL_TYPE} poolType - The type of the credit pool to mint the receivable token from. Used to lookup the pool address.
|
|
101
|
+
* @param {BigNumberish} paymentAmount - The amount of tokens to payback, denominated in the ERC20 tokens of the pool.
|
|
102
|
+
* @param {Overrides} [gasOpts] - The gas options to use for the transaction.
|
|
103
|
+
* @returns {Promise<TransactionResponse>} - A Promise of the transaction response.
|
|
104
|
+
*/
|
|
105
|
+
export declare function makePaymentToPool(signer: ethers.Signer, chainId: number, poolName: POOL_NAME, poolType: POOL_TYPE, paymentAmount: BigNumberish, gasOpts?: Overrides): Promise<TransactionResponse>;
|
|
106
|
+
/**
|
|
107
|
+
* Approves an allowance for a Huma pool contract, which is required to do certain actions (e.g. makePayment)
|
|
108
|
+
*
|
|
109
|
+
* @async
|
|
110
|
+
* @function
|
|
111
|
+
* @param {ethers.Signer} signer - The signer used to send the transaction.
|
|
112
|
+
* @param {number} chainId - The chain ID of the pool to call drawdown on. Used to lookup the pool address.
|
|
113
|
+
* @param {POOL_NAME} poolName - The name of the credit pool to mint the receivable token from. Used to lookup the pool address.
|
|
114
|
+
* @param {POOL_TYPE} poolType - The type of the credit pool to mint the receivable token from. Used to lookup the pool address.
|
|
115
|
+
* @param {BigNumberish} allowanceAmount - The amount of tokens to payback, denominated in the ERC20 tokens of the pool.
|
|
116
|
+
* @param {Overrides} [gasOpts] - The gas options to use for the transaction.
|
|
117
|
+
* @returns {Promise<TransactionResponse>} - A Promise of the transaction response.
|
|
118
|
+
*/
|
|
119
|
+
export declare function approvePoolAllowance(signer: ethers.Signer, chainId: number, poolName: POOL_NAME, poolType: POOL_TYPE, allowanceAmount: BigNumberish, gasOpts?: Overrides): Promise<TransactionResponse>;
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.approvePoolAllowance = exports.makePaymentToPool = exports.drawdownFromPool = exports.getTotalDue = exports.getCreditRecord = exports.getPoolContract = void 0;
|
|
4
|
+
const utils_1 = require("../utils");
|
|
5
|
+
/**
|
|
6
|
+
* Returns an ethers contract instance for a Huma pool contract
|
|
7
|
+
*
|
|
8
|
+
* @param {ethers.providers.Provider | ethers.Signer} signerOrProvider The provider or signer instance to use for the contract.
|
|
9
|
+
* @param {number} chainId The chain id where the contract instance exists
|
|
10
|
+
* @param {POOL_NAME} poolName The name of the pool contract to get.
|
|
11
|
+
* @param {POOL_TYPE} poolType The type of the pool contract to get.
|
|
12
|
+
* @returns {Contract | null} A contract instance for the Pool contract or null if it could not be found.
|
|
13
|
+
*/
|
|
14
|
+
function getPoolContract(signerOrProvider, chainId, poolName, poolType) {
|
|
15
|
+
const poolInfo = (0, utils_1.getPoolInfo)(chainId, poolName, poolType);
|
|
16
|
+
if (!poolInfo)
|
|
17
|
+
return null;
|
|
18
|
+
return (0, utils_1.getContract)(poolInfo.pool, poolInfo.poolAbi, signerOrProvider);
|
|
19
|
+
}
|
|
20
|
+
exports.getPoolContract = getPoolContract;
|
|
21
|
+
/**
|
|
22
|
+
* Gets the credit record of a wallet in a Huma pool. Denominated in the ERC20 tokens of the pool.
|
|
23
|
+
*
|
|
24
|
+
* @namespace getCreditRecord
|
|
25
|
+
* @async
|
|
26
|
+
* @function
|
|
27
|
+
* @param {string} address - The address to lookup.
|
|
28
|
+
* @param {ethers.providers.Provider | ethers.Signer} signerOrProvider - The signer or provider used to read data.
|
|
29
|
+
* @param {number} chainId - The chain ID of the pool. Used to lookup the pool address.
|
|
30
|
+
* @param {POOL_NAME} poolName - The name of the credit pool. Used to lookup the pool address.
|
|
31
|
+
* @param {POOL_TYPE} poolType - The type of the credit pool. Used to lookup the pool address.
|
|
32
|
+
* @returns {Promise<CreditRecord>} - A Promise of the transaction response.
|
|
33
|
+
*/
|
|
34
|
+
async function getCreditRecord(address, signerOrProvider, chainId, poolName, poolType) {
|
|
35
|
+
const poolContract = getPoolContract(signerOrProvider, chainId, poolName, poolType);
|
|
36
|
+
if (!poolContract) {
|
|
37
|
+
throw new Error('Could not find pool contract');
|
|
38
|
+
}
|
|
39
|
+
return poolContract.creditRecordMapping(address);
|
|
40
|
+
}
|
|
41
|
+
exports.getCreditRecord = getCreditRecord;
|
|
42
|
+
/**
|
|
43
|
+
* Gets the total due for a Huma pool of the given wallet. Denominated in the ERC20 tokens of the pool.
|
|
44
|
+
*
|
|
45
|
+
* @async
|
|
46
|
+
* @function
|
|
47
|
+
* @param {string} address - The address to lookup.
|
|
48
|
+
* @param {ethers.providers.Provider | ethers.Signer} signerOrProvider - The signer or provider used to read data.
|
|
49
|
+
* @param {number} chainId - The chain ID of the pool. Used to lookup the pool address.
|
|
50
|
+
* @param {POOL_NAME} poolName - The name of the credit pool. Used to lookup the pool address.
|
|
51
|
+
* @param {POOL_TYPE} poolType - The type of the credit pool. Used to lookup the pool address.
|
|
52
|
+
* @returns {Promise<BigNumber>} - A Promise of the transaction response.
|
|
53
|
+
*/
|
|
54
|
+
async function getTotalDue(address, signerOrProvider, chainId, poolName, poolType) {
|
|
55
|
+
const creditRecord = await getCreditRecord(address, signerOrProvider, chainId, poolName, poolType);
|
|
56
|
+
return creditRecord.totalDue;
|
|
57
|
+
}
|
|
58
|
+
exports.getTotalDue = getTotalDue;
|
|
59
|
+
/**
|
|
60
|
+
* Calls drawdown on a Huma pool contract
|
|
61
|
+
*
|
|
62
|
+
* @async
|
|
63
|
+
* @function
|
|
64
|
+
* @param {ethers.Signer} signer - The signer used to send the transaction.
|
|
65
|
+
* @param {number} chainId - The chain ID of the pool to call drawdown on. Used to lookup the pool address.
|
|
66
|
+
* @param {POOL_NAME} poolName - The name of the credit pool to mint the receivable token from. Used to lookup the pool address.
|
|
67
|
+
* @param {POOL_TYPE} poolType - The type of the credit pool to mint the receivable token from. Used to lookup the pool address.
|
|
68
|
+
* @param {BigNumberish} drawdownAmount - The amount of tokens to withdraw, denominated in the ERC20 tokens of the pool.
|
|
69
|
+
* @param {Overrides} [gasOpts] - The gas options to use for the transaction.
|
|
70
|
+
* @returns {Promise<TransactionResponse>} - A Promise of the transaction response.
|
|
71
|
+
*/
|
|
72
|
+
async function drawdownFromPool(signer, chainId, poolName, poolType, drawdownAmount, gasOpts = {}) {
|
|
73
|
+
const poolContract = getPoolContract(signer, chainId, poolName, poolType);
|
|
74
|
+
if (!poolContract) {
|
|
75
|
+
throw new Error('Could not find pool contract');
|
|
76
|
+
}
|
|
77
|
+
gasOpts = await (0, utils_1.getDefaultGasOptions)(gasOpts, chainId);
|
|
78
|
+
// TODO: Generate typechain for pool contract
|
|
79
|
+
return poolContract.drawdown(drawdownAmount, gasOpts);
|
|
80
|
+
}
|
|
81
|
+
exports.drawdownFromPool = drawdownFromPool;
|
|
82
|
+
/**
|
|
83
|
+
* Calls makePayment on a Huma pool contract. If the pool does not have sufficient allowance to complete the operation,
|
|
84
|
+
* attempt to first increase the allowance of the pool.
|
|
85
|
+
*
|
|
86
|
+
* @async
|
|
87
|
+
* @function
|
|
88
|
+
* @param {ethers.Signer} signer - The signer used to send the transaction.
|
|
89
|
+
* @param {number} chainId - The chain ID of the pool to call drawdown on. Used to lookup the pool address.
|
|
90
|
+
* @param {POOL_NAME} poolName - The name of the credit pool to mint the receivable token from. Used to lookup the pool address.
|
|
91
|
+
* @param {POOL_TYPE} poolType - The type of the credit pool to mint the receivable token from. Used to lookup the pool address.
|
|
92
|
+
* @param {BigNumberish} paymentAmount - The amount of tokens to payback, denominated in the ERC20 tokens of the pool.
|
|
93
|
+
* @param {Overrides} [gasOpts] - The gas options to use for the transaction.
|
|
94
|
+
* @returns {Promise<TransactionResponse>} - A Promise of the transaction response.
|
|
95
|
+
*/
|
|
96
|
+
async function makePaymentToPool(signer, chainId, poolName, poolType, paymentAmount, gasOpts = {}) {
|
|
97
|
+
const poolInfo = (0, utils_1.getPoolInfo)(chainId, poolName, poolType);
|
|
98
|
+
if (!(poolInfo === null || poolInfo === void 0 ? void 0 : poolInfo.poolUnderlyingToken.address)) {
|
|
99
|
+
throw new Error('Could not find pool underlying token address');
|
|
100
|
+
}
|
|
101
|
+
const poolTokenContract = (0, utils_1.getERC20Contract)(poolInfo === null || poolInfo === void 0 ? void 0 : poolInfo.poolUnderlyingToken.address, signer);
|
|
102
|
+
const poolContract = getPoolContract(signer, chainId, poolName, poolType);
|
|
103
|
+
if (!poolContract) {
|
|
104
|
+
throw new Error('Could not find pool contract');
|
|
105
|
+
}
|
|
106
|
+
gasOpts = await (0, utils_1.getDefaultGasOptions)(gasOpts, chainId);
|
|
107
|
+
const allowance = await poolTokenContract.allowance(await signer.getAddress(), poolContract.address);
|
|
108
|
+
if (allowance.lt(paymentAmount)) {
|
|
109
|
+
const approvalTx = await poolTokenContract.approve(poolContract.address, paymentAmount, gasOpts);
|
|
110
|
+
// Wait for 5 block confirmations since this is required for makePayment
|
|
111
|
+
await approvalTx.wait(5);
|
|
112
|
+
}
|
|
113
|
+
// TODO: Generate typechain for pool contract
|
|
114
|
+
return poolContract.makePayment(await signer.getAddress(), paymentAmount, gasOpts);
|
|
115
|
+
}
|
|
116
|
+
exports.makePaymentToPool = makePaymentToPool;
|
|
117
|
+
/**
|
|
118
|
+
* Approves an allowance for a Huma pool contract, which is required to do certain actions (e.g. makePayment)
|
|
119
|
+
*
|
|
120
|
+
* @async
|
|
121
|
+
* @function
|
|
122
|
+
* @param {ethers.Signer} signer - The signer used to send the transaction.
|
|
123
|
+
* @param {number} chainId - The chain ID of the pool to call drawdown on. Used to lookup the pool address.
|
|
124
|
+
* @param {POOL_NAME} poolName - The name of the credit pool to mint the receivable token from. Used to lookup the pool address.
|
|
125
|
+
* @param {POOL_TYPE} poolType - The type of the credit pool to mint the receivable token from. Used to lookup the pool address.
|
|
126
|
+
* @param {BigNumberish} allowanceAmount - The amount of tokens to payback, denominated in the ERC20 tokens of the pool.
|
|
127
|
+
* @param {Overrides} [gasOpts] - The gas options to use for the transaction.
|
|
128
|
+
* @returns {Promise<TransactionResponse>} - A Promise of the transaction response.
|
|
129
|
+
*/
|
|
130
|
+
async function approvePoolAllowance(signer, chainId, poolName, poolType, allowanceAmount, gasOpts = {}) {
|
|
131
|
+
const poolInfo = (0, utils_1.getPoolInfo)(chainId, poolName, poolType);
|
|
132
|
+
if (!(poolInfo === null || poolInfo === void 0 ? void 0 : poolInfo.poolUnderlyingToken.address)) {
|
|
133
|
+
throw new Error('Could not find pool underlying token address');
|
|
134
|
+
}
|
|
135
|
+
const poolTokenContract = (0, utils_1.getERC20Contract)(poolInfo === null || poolInfo === void 0 ? void 0 : poolInfo.poolUnderlyingToken.address, signer);
|
|
136
|
+
const poolContract = getPoolContract(signer, chainId, poolName, poolType);
|
|
137
|
+
if (!poolContract) {
|
|
138
|
+
throw new Error('Could not find pool contract');
|
|
139
|
+
}
|
|
140
|
+
gasOpts = await (0, utils_1.getDefaultGasOptions)(gasOpts, chainId);
|
|
141
|
+
return poolTokenContract.approve(poolContract.address, allowanceAmount, gasOpts);
|
|
142
|
+
}
|
|
143
|
+
exports.approvePoolAllowance = approvePoolAllowance;
|
|
144
|
+
//# sourceMappingURL=PoolContractHelper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PoolContractHelper.js","sourceRoot":"","sources":["../../../src/helpers/PoolContractHelper.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Contract, ethers } from 'ethers';
|
|
2
|
+
/**
|
|
3
|
+
* Returns an ethers contract instance for the RealWorldReceivable contract
|
|
4
|
+
* associated with the given pool name on the current chain.
|
|
5
|
+
*
|
|
6
|
+
* @param {ethers.providers.Provider | ethers.Signer} signerOrProvider The provider or signer instance to use for the contract.
|
|
7
|
+
* @param {number} chainId The chain id where the contract instance exists
|
|
8
|
+
* @returns {Contract | null} A contract instance for the RealWorldReceivable contract or null if it could not be found.
|
|
9
|
+
*/
|
|
10
|
+
export declare function getRealWorldReceivableContract(signerOrProvider: ethers.providers.Provider | ethers.Signer, chainId: number): Contract | null;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getRealWorldReceivableContract = void 0;
|
|
4
|
+
const shared_1 = require("@huma-finance/shared");
|
|
5
|
+
const utils_1 = require("../utils");
|
|
6
|
+
/**
|
|
7
|
+
* Returns an ethers contract instance for the RealWorldReceivable contract
|
|
8
|
+
* associated with the given pool name on the current chain.
|
|
9
|
+
*
|
|
10
|
+
* @param {ethers.providers.Provider | ethers.Signer} signerOrProvider The provider or signer instance to use for the contract.
|
|
11
|
+
* @param {number} chainId The chain id where the contract instance exists
|
|
12
|
+
* @returns {Contract | null} A contract instance for the RealWorldReceivable contract or null if it could not be found.
|
|
13
|
+
*/
|
|
14
|
+
function getRealWorldReceivableContract(signerOrProvider, chainId) {
|
|
15
|
+
var _a;
|
|
16
|
+
const rwReceivableContract = (_a = shared_1.SupplementaryContractsMap[chainId]) === null || _a === void 0 ? void 0 : _a[shared_1.SupplementaryContracts.RealWorldReceivable];
|
|
17
|
+
if (!rwReceivableContract)
|
|
18
|
+
return null;
|
|
19
|
+
return (0, utils_1.getContract)(rwReceivableContract, shared_1.REAL_WORLD_RECEIVABLE_ABI, signerOrProvider);
|
|
20
|
+
}
|
|
21
|
+
exports.getRealWorldReceivableContract = getRealWorldReceivableContract;
|
|
22
|
+
//# sourceMappingURL=RealWorldReceivableContractHelper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RealWorldReceivableContractHelper.js","sourceRoot":"","sources":["../../../src/helpers/RealWorldReceivableContractHelper.ts"],"names":[],"mappings":";;;AACA,iDAI6B;AAE7B,oCAAsC;AAEtC;;;;;;;GAOG;AACH,SAAgB,8BAA8B,CAC5C,gBAA2D,EAC3D,OAAe;;IAEf,MAAM,oBAAoB,GACxB,MAAA,kCAAyB,CAAC,OAAO,CAAC,0CAChC,+BAAsB,CAAC,mBAAmB,CAC3C,CAAA;IAEH,IAAI,CAAC,oBAAoB;QAAE,OAAO,IAAI,CAAA;IAEtC,OAAO,IAAA,mBAAW,EAChB,oBAAoB,EACpB,kCAAyB,EACzB,gBAAgB,CACjB,CAAA;AACH,CAAC;AAhBD,wEAgBC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
tslib_1.__exportStar(require("./RealWorldReceivableContractHelper"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./ERC20TransferableReceivableContractHelper"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./PoolContractHelper"), exports);
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/helpers/index.ts"],"names":[],"mappings":";;;AAAA,8EAAmD;AACnD,sFAA2D;AAC3D,+DAAoC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
tslib_1.__exportStar(require("./useContract"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./useRealWorldReceivableContract"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./useERC20TransferableReceivableContract"), exports);
|
|
7
|
+
tslib_1.__exportStar(require("./usePoolContract"), exports);
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":";;;AAAA,wDAA6B;AAC7B,2EAAgD;AAChD,mFAAwD;AACxD,4DAAiC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Contract } from '@ethersproject/contracts';
|
|
2
|
+
import { ethers } from 'ethers';
|
|
3
|
+
/**
|
|
4
|
+
* Custom hook for creating an ethers instance of a smart contract.
|
|
5
|
+
*
|
|
6
|
+
* @template T - The type of the contract.
|
|
7
|
+
* @param {string | null | undefined} address - The address of the smart contract instance.
|
|
8
|
+
* @param {any} ABI - The ABI of the smart contract.
|
|
9
|
+
* @param {ethers.providers.Provider | ethers.Signer} signerOrProvider - The signer or provider used to sign transactions or retrieve blockchain data.
|
|
10
|
+
* Note that this signerOrProvider must be connected to the same network as the smart contract in question.
|
|
11
|
+
* @returns {T | null} An instance of the smart contract, or null if an error occurs.
|
|
12
|
+
*/
|
|
13
|
+
export declare function useContract<T extends Contract = Contract>(address: string | null | undefined, ABI: any, signerOrProvider: ethers.providers.Provider | ethers.Signer): T | null;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useContract = void 0;
|
|
4
|
+
const react_1 = require("react");
|
|
5
|
+
const web3_1 = require("../utils/web3");
|
|
6
|
+
/**
|
|
7
|
+
* Custom hook for creating an ethers instance of a smart contract.
|
|
8
|
+
*
|
|
9
|
+
* @template T - The type of the contract.
|
|
10
|
+
* @param {string | null | undefined} address - The address of the smart contract instance.
|
|
11
|
+
* @param {any} ABI - The ABI of the smart contract.
|
|
12
|
+
* @param {ethers.providers.Provider | ethers.Signer} signerOrProvider - The signer or provider used to sign transactions or retrieve blockchain data.
|
|
13
|
+
* Note that this signerOrProvider must be connected to the same network as the smart contract in question.
|
|
14
|
+
* @returns {T | null} An instance of the smart contract, or null if an error occurs.
|
|
15
|
+
*/
|
|
16
|
+
function useContract(address,
|
|
17
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
18
|
+
ABI, signerOrProvider) {
|
|
19
|
+
return (0, react_1.useMemo)(() => {
|
|
20
|
+
if (!address || !ABI || !signerOrProvider)
|
|
21
|
+
return null;
|
|
22
|
+
try {
|
|
23
|
+
return (0, web3_1.getContract)(address, ABI, signerOrProvider);
|
|
24
|
+
}
|
|
25
|
+
catch (error) {
|
|
26
|
+
return null;
|
|
27
|
+
}
|
|
28
|
+
}, [address, ABI, signerOrProvider]);
|
|
29
|
+
}
|
|
30
|
+
exports.useContract = useContract;
|
|
31
|
+
//# sourceMappingURL=useContract.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useContract.js","sourceRoot":"","sources":["../../../src/hooks/useContract.ts"],"names":[],"mappings":";;;AACA,iCAA+B;AAG/B,wCAA2C;AAE3C;;;;;;;;;GASG;AACH,SAAgB,WAAW,CACzB,OAAkC;AAClC,8DAA8D;AAC9D,GAAQ,EACR,gBAA2D;IAE3D,OAAO,IAAA,eAAO,EAAC,GAAG,EAAE;QAClB,IAAI,CAAC,OAAO,IAAI,CAAC,GAAG,IAAI,CAAC,gBAAgB;YAAE,OAAO,IAAI,CAAA;QACtD,IAAI;YACF,OAAO,IAAA,kBAAW,EAAC,OAAO,EAAE,GAAG,EAAE,gBAAgB,CAAC,CAAA;SACnD;QAAC,OAAO,KAAK,EAAE;YACd,OAAO,IAAI,CAAA;SACZ;IACH,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,gBAAgB,CAAC,CAAM,CAAA;AAC3C,CAAC;AAdD,kCAcC"}
|