@huma-finance/sdk 0.0.62-beta.597 → 0.0.62-beta.612
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 +39 -21
- package/dist/cjs/graphql/generatedTypes.js +1 -2
- package/dist/cjs/graphql/generatedTypes.js.map +1 -1
- package/dist/cjs/helpers/ERC20ContractHelper.js +1 -2
- package/dist/cjs/helpers/ERC20ContractHelper.js.map +1 -1
- package/dist/cjs/helpers/ERC20TransferableReceivableContractHelper.js +1 -2
- package/dist/cjs/helpers/ERC20TransferableReceivableContractHelper.js.map +1 -1
- package/dist/cjs/helpers/PoolContractHelper.js +6 -7
- package/dist/cjs/helpers/PoolContractHelper.js.map +1 -1
- package/dist/cjs/helpers/RealWorldReceivableContractHelper.js +1 -2
- package/dist/cjs/helpers/RealWorldReceivableContractHelper.js.map +1 -1
- package/dist/cjs/helpers/index.d.ts +3 -0
- package/dist/cjs/helpers/index.js +3 -0
- package/dist/cjs/helpers/index.js.map +1 -1
- package/dist/cjs/helpers/solana/HumaSolanaContext.d.ts +19 -0
- package/dist/cjs/helpers/solana/HumaSolanaContext.js +47 -0
- package/dist/cjs/helpers/solana/HumaSolanaContext.js.map +1 -0
- package/dist/cjs/helpers/solana/HumaSolanaProgramHelper.d.ts +14 -0
- package/dist/cjs/helpers/solana/HumaSolanaProgramHelper.js +175 -0
- package/dist/cjs/helpers/solana/HumaSolanaProgramHelper.js.map +1 -0
- package/dist/cjs/helpers/solana/HumaSolanaReceivableHelper.d.ts +29 -0
- package/dist/cjs/helpers/solana/HumaSolanaReceivableHelper.js +126 -0
- package/dist/cjs/helpers/solana/HumaSolanaReceivableHelper.js.map +1 -0
- package/dist/cjs/helpers/solana/SolanaProgramHelper.d.ts +6 -0
- package/dist/cjs/helpers/solana/SolanaProgramHelper.js +88 -0
- package/dist/cjs/helpers/solana/SolanaProgramHelper.js.map +1 -0
- package/dist/cjs/helpers/solana/SolanaReceivableHelper.d.ts +13 -0
- package/dist/cjs/helpers/solana/SolanaReceivableHelper.js +92 -0
- package/dist/cjs/helpers/solana/SolanaReceivableHelper.js.map +1 -0
- package/dist/cjs/helpers/v2/CreditContractHelper.js +3 -4
- package/dist/cjs/helpers/v2/CreditContractHelper.js.map +1 -1
- package/dist/cjs/helpers/v2/ReceivableBackedCreditLineContractHelper.js +5 -6
- package/dist/cjs/helpers/v2/ReceivableBackedCreditLineContractHelper.js.map +1 -1
- package/dist/cjs/helpers/v2/ReceivableContractHelper.js +4 -5
- package/dist/cjs/helpers/v2/ReceivableContractHelper.js.map +1 -1
- package/dist/cjs/services/ARWeaveService.d.ts +38 -21
- package/dist/cjs/services/ARWeaveService.js +67 -80
- package/dist/cjs/services/ARWeaveService.js.map +1 -1
- package/dist/cjs/services/ReceivableService.js +1 -1
- package/dist/cjs/services/ReceivableService.js.map +1 -1
- package/dist/cjs/services/SubgraphService.js.map +1 -1
- package/dist/cjs/services/v2/HumaContext.js.map +1 -1
- package/dist/cjs/services/v2/HumaReceivableFactory.js +1 -1
- package/dist/cjs/services/v2/HumaReceivableFactory.js.map +1 -1
- package/dist/cjs/services/v2/HumaReceivableHandler.js.map +1 -1
- package/dist/cjs/utils/chain.js +4 -5
- package/dist/cjs/utils/chain.js.map +1 -1
- package/dist/cjs/utils/index.d.ts +1 -0
- package/dist/cjs/utils/index.js +1 -0
- package/dist/cjs/utils/index.js.map +1 -1
- package/dist/cjs/utils/maticGasStation.js +3 -4
- package/dist/cjs/utils/maticGasStation.js.map +1 -1
- package/dist/cjs/utils/solana/getReceivableReferenceAccount.d.ts +8 -0
- package/dist/cjs/utils/solana/getReceivableReferenceAccount.js +38 -0
- package/dist/cjs/utils/solana/getReceivableReferenceAccount.js.map +1 -0
- package/dist/cjs/utils/web3.js +3 -4
- package/dist/cjs/utils/web3.js.map +1 -1
- package/dist/helpers/ERC20ContractHelper.js.map +1 -1
- package/dist/helpers/PoolContractHelper.js.map +1 -1
- package/dist/helpers/index.d.ts +3 -0
- package/dist/helpers/index.js +3 -0
- package/dist/helpers/index.js.map +1 -1
- package/dist/helpers/solana/HumaSolanaContext.d.ts +19 -0
- package/dist/helpers/solana/HumaSolanaContext.js +43 -0
- package/dist/helpers/solana/HumaSolanaContext.js.map +1 -0
- package/dist/helpers/solana/HumaSolanaProgramHelper.d.ts +14 -0
- package/dist/helpers/solana/HumaSolanaProgramHelper.js +171 -0
- package/dist/helpers/solana/HumaSolanaProgramHelper.js.map +1 -0
- package/dist/helpers/solana/HumaSolanaReceivableHelper.d.ts +29 -0
- package/dist/helpers/solana/HumaSolanaReceivableHelper.js +122 -0
- package/dist/helpers/solana/HumaSolanaReceivableHelper.js.map +1 -0
- package/dist/helpers/solana/SolanaProgramHelper.d.ts +6 -0
- package/dist/helpers/solana/SolanaProgramHelper.js +83 -0
- package/dist/helpers/solana/SolanaProgramHelper.js.map +1 -0
- package/dist/helpers/solana/SolanaReceivableHelper.d.ts +13 -0
- package/dist/helpers/solana/SolanaReceivableHelper.js +86 -0
- package/dist/helpers/solana/SolanaReceivableHelper.js.map +1 -0
- package/dist/helpers/v2/CreditContractHelper.js.map +1 -1
- package/dist/helpers/v2/ReceivableBackedCreditLineContractHelper.js.map +1 -1
- package/dist/helpers/v2/ReceivableContractHelper.js.map +1 -1
- package/dist/services/ARWeaveService.d.ts +38 -21
- package/dist/services/ARWeaveService.js +65 -78
- package/dist/services/ARWeaveService.js.map +1 -1
- package/dist/services/ReceivableService.js +1 -1
- package/dist/services/ReceivableService.js.map +1 -1
- package/dist/services/SubgraphService.js.map +1 -1
- package/dist/services/v2/HumaContext.js.map +1 -1
- package/dist/services/v2/HumaReceivableFactory.js +1 -1
- package/dist/services/v2/HumaReceivableFactory.js.map +1 -1
- package/dist/services/v2/HumaReceivableHandler.js.map +1 -1
- package/dist/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/utils/chain.js.map +1 -1
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.js +1 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/maticGasStation.js.map +1 -1
- package/dist/utils/solana/getReceivableReferenceAccount.d.ts +8 -0
- package/dist/utils/solana/getReceivableReferenceAccount.js +33 -0
- package/dist/utils/solana/getReceivableReferenceAccount.js.map +1 -0
- package/dist/utils/web3.js.map +1 -1
- package/package.json +13 -5
package/API.md
CHANGED
|
@@ -77,6 +77,8 @@ Note that this does not approve a creditline in Huma's pools and an approve call
|
|
|
77
77
|
## Typedefs
|
|
78
78
|
|
|
79
79
|
<dl>
|
|
80
|
+
<dt><a href="#IrysConstructorArgs">IrysConstructorArgs</a> : <code>Object</code></dt>
|
|
81
|
+
<dd><p>Represents the constructor arguments for the Irys service.</p></dd>
|
|
80
82
|
<dt><a href="#ApprovalResult">ApprovalResult</a> : <code>Object</code></dt>
|
|
81
83
|
<dd><p>Object representing the response to the underwriting approval request.</p></dd>
|
|
82
84
|
<dt><a href="#EAPayload">EAPayload</a> : <code>Object</code></dt>
|
|
@@ -95,33 +97,33 @@ Note that this does not approve a creditline in Huma's pools and an approve call
|
|
|
95
97
|
**Kind**: global namespace
|
|
96
98
|
|
|
97
99
|
* [ARWeaveService](#ARWeaveService) : <code>object</code>
|
|
98
|
-
* [.
|
|
99
|
-
* [.
|
|
100
|
-
* [.
|
|
100
|
+
* [.getIrysNetworkConfig(chainId)](#ARWeaveService.getIrysNetworkConfig) ⇒ [<code>IrysConstructorArgs</code>](#IrysConstructorArgs)
|
|
101
|
+
* [.getIrysInstance(config, privateKey)](#ARWeaveService.getIrysInstance) ⇒
|
|
102
|
+
* [.prefundIrys(config, privateKey, amount)](#ARWeaveService.prefundIrys) ⇒ <code>Promise.<FundResponse></code>
|
|
101
103
|
* [.storeData(config, privateKey, data, tags, [lazyFund])](#ARWeaveService.storeData) ⇒ <code>Promise.<UploadResponse></code>
|
|
102
104
|
* [.queryForMetadata(chainId, sender, referenceId)](#ARWeaveService.queryForMetadata) ⇒ <code>Promise.<any></code>
|
|
103
105
|
* [.fetchMetadataFromUrl(url)](#ARWeaveService.fetchMetadataFromUrl) ⇒ <code>Promise.<JSON></code>
|
|
104
106
|
* [.getURIFromARWeaveId(arweaveId)](#ARWeaveService.getURIFromARWeaveId) ⇒ <code>string</code>
|
|
105
107
|
* [.BundlrConfig](#ARWeaveService.BundlrConfig) : <code>Object</code>
|
|
106
108
|
|
|
107
|
-
<a name="ARWeaveService.
|
|
109
|
+
<a name="ARWeaveService.getIrysNetworkConfig"></a>
|
|
108
110
|
|
|
109
|
-
### ARWeaveService.
|
|
110
|
-
<p>Get the configuration for
|
|
111
|
+
### ARWeaveService.getIrysNetworkConfig(chainId) ⇒ [<code>IrysConstructorArgs</code>](#IrysConstructorArgs)
|
|
112
|
+
<p>Get the configuration for the Irys network given a chain ID</p>
|
|
111
113
|
|
|
112
114
|
**Kind**: static method of [<code>ARWeaveService</code>](#ARWeaveService)
|
|
113
|
-
**Returns**: <code>
|
|
114
|
-
<li>The configuration for the
|
|
115
|
+
**Returns**: [<code>IrysConstructorArgs</code>](#IrysConstructorArgs) - <ul>
|
|
116
|
+
<li>The configuration for the Irys network.</li>
|
|
115
117
|
</ul>
|
|
116
118
|
|
|
117
119
|
| Param | Type | Description |
|
|
118
120
|
| --- | --- | --- |
|
|
119
121
|
| chainId | <code>number</code> | <p>The chain ID.</p> |
|
|
120
122
|
|
|
121
|
-
<a name="ARWeaveService.
|
|
123
|
+
<a name="ARWeaveService.getIrysInstance"></a>
|
|
122
124
|
|
|
123
|
-
### ARWeaveService.
|
|
124
|
-
<p>Get
|
|
125
|
+
### ARWeaveService.getIrysInstance(config, privateKey) ⇒
|
|
126
|
+
<p>Get an Irys instance for a specific network</p>
|
|
125
127
|
|
|
126
128
|
**Kind**: static method of [<code>ARWeaveService</code>](#ARWeaveService)
|
|
127
129
|
**Returns**: <p>The Bundlr instance</p>
|
|
@@ -131,12 +133,12 @@ Note that this does not approve a creditline in Huma's pools and an approve call
|
|
|
131
133
|
| config | <code>BundlrConfig</code> | <p>The configuration for the Bundlr network.</p> |
|
|
132
134
|
| privateKey | <code>string</code> | <p>The private key of the wallet to use Bundlr with.</p> |
|
|
133
135
|
|
|
134
|
-
<a name="ARWeaveService.
|
|
136
|
+
<a name="ARWeaveService.prefundIrys"></a>
|
|
135
137
|
|
|
136
|
-
### ARWeaveService.
|
|
137
|
-
<p>Prefund the
|
|
138
|
+
### ARWeaveService.prefundIrys(config, privateKey, amount) ⇒ <code>Promise.<FundResponse></code>
|
|
139
|
+
<p>Prefund the Irys network with the specified amount. Required if not lazy funding.
|
|
138
140
|
Important note: The amount is denominated in the base unit of currency for that network.
|
|
139
|
-
If you want to upload 5 Matic to the
|
|
141
|
+
If you want to upload 5 Matic to the Irys node, pass in an amount of 5.</p>
|
|
140
142
|
|
|
141
143
|
**Kind**: static method of [<code>ARWeaveService</code>](#ARWeaveService)
|
|
142
144
|
**Returns**: <code>Promise.<FundResponse></code> - <ul>
|
|
@@ -145,25 +147,25 @@ If you want to upload 5 Matic to the Bundlr node, pass in an amount of 5.</p>
|
|
|
145
147
|
|
|
146
148
|
| Param | Type | Description |
|
|
147
149
|
| --- | --- | --- |
|
|
148
|
-
| config | <code>
|
|
150
|
+
| config | [<code>IrysConstructorArgs</code>](#IrysConstructorArgs) | <p>The configuration for the Bundlr network.</p> |
|
|
149
151
|
| privateKey | <code>string</code> | <p>The private key of the wallet to send funds from.</p> |
|
|
150
152
|
| amount | <code>number</code> | <p>The amount to fund, denoted in whatever currency specified by the config (e.g. MATIC, ETH)</p> |
|
|
151
153
|
|
|
152
154
|
<a name="ARWeaveService.storeData"></a>
|
|
153
155
|
|
|
154
156
|
### ARWeaveService.storeData(config, privateKey, data, tags, [lazyFund]) ⇒ <code>Promise.<UploadResponse></code>
|
|
155
|
-
<p>Store data on ARWeave using the
|
|
157
|
+
<p>Store data on ARWeave using the Irys Network.</p>
|
|
156
158
|
|
|
157
159
|
**Kind**: static method of [<code>ARWeaveService</code>](#ARWeaveService)
|
|
158
160
|
**Returns**: <code>Promise.<UploadResponse></code> - <p>Promise resolving with the upload response.</p>
|
|
159
161
|
|
|
160
162
|
| Param | Type | Default | Description |
|
|
161
163
|
| --- | --- | --- | --- |
|
|
162
|
-
| config | <code>
|
|
163
|
-
| privateKey | <code>string</code> | | <p>Private key used for interacting with the
|
|
164
|
-
| data | <code>Record.<string, unknown></code> | | <p>The data to store in the
|
|
164
|
+
| config | [<code>IrysConstructorArgs</code>](#IrysConstructorArgs) | | <p>Configuration object for the Irys instance.</p> |
|
|
165
|
+
| privateKey | <code>string</code> | | <p>Private key used for interacting with the Irys instance.</p> |
|
|
166
|
+
| data | <code>Record.<string, unknown></code> | | <p>The data to store in the Irys instance.</p> |
|
|
165
167
|
| tags | <code>Array.<{name: string, value: string}></code> | | <p>Array of tag objects with <code>name</code> and <code>value</code> properties.</p> |
|
|
166
|
-
| [lazyFund] | <code>boolean</code> | <code>true</code> | <p>Optional flag to fund the
|
|
168
|
+
| [lazyFund] | <code>boolean</code> | <code>true</code> | <p>Optional flag to fund the Irys instance lazily. If set to <code>false</code>, the Irys node should already be funded or else uploads will fail.</p> |
|
|
167
169
|
|
|
168
170
|
<a name="ARWeaveService.queryForMetadata"></a>
|
|
169
171
|
|
|
@@ -917,6 +919,22 @@ Note that this does not approve a creditline in Huma's pools and an approve call
|
|
|
917
919
|
| poolName | <code>POOL\_NAME</code> | <p>The name of the pool.</p> |
|
|
918
920
|
| poolType | <code>POOL\_TYPE</code> | <p>The type of the pool.</p> |
|
|
919
921
|
|
|
922
|
+
<a name="IrysConstructorArgs"></a>
|
|
923
|
+
|
|
924
|
+
## IrysConstructorArgs : <code>Object</code>
|
|
925
|
+
<p>Represents the constructor arguments for the Irys service.</p>
|
|
926
|
+
|
|
927
|
+
**Kind**: global typedef
|
|
928
|
+
**Properties**
|
|
929
|
+
|
|
930
|
+
| Name | Type | Description |
|
|
931
|
+
| --- | --- | --- |
|
|
932
|
+
| [url] | <code>string</code> | <p>The URL of the Irys service.</p> |
|
|
933
|
+
| [network] | <code>Network</code> | <p>The network configuration for the Irys service. Can be mainnet or devnet.</p> |
|
|
934
|
+
| token | <code>string</code> | <p>The token for authentication.</p> |
|
|
935
|
+
| [key] | <code>string</code> | <p>The key for encryption.</p> |
|
|
936
|
+
| [config] | <code>IrysConfig</code> | <p>Additional configuration options for the Irys service.</p> |
|
|
937
|
+
|
|
920
938
|
<a name="ApprovalResult"></a>
|
|
921
939
|
|
|
922
940
|
## ApprovalResult : <code>Object</code>
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getSdk =
|
|
3
|
+
exports.getSdk = getSdk;
|
|
4
4
|
const defaultWrapper = (action, _operationName, _operationType) => action();
|
|
5
5
|
function getSdk(client, withWrapper = defaultWrapper) {
|
|
6
6
|
return {};
|
|
7
7
|
}
|
|
8
|
-
exports.getSdk = getSdk;
|
|
9
8
|
//# sourceMappingURL=generatedTypes.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generatedTypes.js","sourceRoot":"","sources":["../../../src/graphql/generatedTypes.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"generatedTypes.js","sourceRoot":"","sources":["../../../src/graphql/generatedTypes.ts"],"names":[],"mappings":";;AAoDA,wBAKC;AAXD,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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.approveERC20AllowanceIfInsufficient =
|
|
3
|
+
exports.approveERC20AllowanceIfInsufficient = approveERC20AllowanceIfInsufficient;
|
|
4
4
|
const shared_1 = require("@huma-finance/shared");
|
|
5
5
|
const utils_1 = require("../utils");
|
|
6
6
|
/**
|
|
@@ -29,5 +29,4 @@ async function approveERC20AllowanceIfInsufficient(signer, tokenAddress, spender
|
|
|
29
29
|
}
|
|
30
30
|
return null;
|
|
31
31
|
}
|
|
32
|
-
exports.approveERC20AllowanceIfInsufficient = approveERC20AllowanceIfInsufficient;
|
|
33
32
|
//# sourceMappingURL=ERC20ContractHelper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ERC20ContractHelper.js","sourceRoot":"","sources":["../../../src/helpers/ERC20ContractHelper.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ERC20ContractHelper.js","sourceRoot":"","sources":["../../../src/helpers/ERC20ContractHelper.ts"],"names":[],"mappings":";;AAkBA,kFAyBC;AA1CD,iDAAqE;AAErE,oCAAiE;AAEjE;;;;;;;;;;;;GAYG;AACI,KAAK,UAAU,mCAAmC,CACvD,MAAqB,EACrB,YAAoB,EACpB,cAAsB,EACtB,eAA6B,EAC7B,UAAqB,EAAE;IAEvB,MAAM,OAAO,GAAG,MAAM,IAAA,uCAA8B,EAAC,MAAM,CAAC,CAAA;IAE5D,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;IAC5C,CAAC;IAED,MAAM,aAAa,GAAG,IAAA,wBAAgB,EAAC,YAAY,EAAE,MAAM,CAAC,CAAA;IAE5D,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,SAAS,CAC7C,MAAM,MAAM,CAAC,UAAU,EAAE,EACzB,cAAc,CACf,CAAA;IACD,IAAI,SAAS,CAAC,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC;QAClC,OAAO,GAAG,MAAM,IAAA,4BAAoB,EAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QACtD,OAAO,aAAa,CAAC,OAAO,CAAC,cAAc,EAAE,eAAe,EAAE,OAAO,CAAC,CAAA;IACxE,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getERC20TransferableReceivableContract =
|
|
3
|
+
exports.getERC20TransferableReceivableContract = getERC20TransferableReceivableContract;
|
|
4
4
|
const shared_1 = require("@huma-finance/shared");
|
|
5
5
|
const utils_1 = require("../utils");
|
|
6
6
|
/**
|
|
@@ -18,5 +18,4 @@ function getERC20TransferableReceivableContract(signerOrProvider, chainId) {
|
|
|
18
18
|
return null;
|
|
19
19
|
return (0, utils_1.getContract)(erc20TransferableReceiable, shared_1.ERC20_TRANSFERABLE_RECEIVABLE_ABI, signerOrProvider);
|
|
20
20
|
}
|
|
21
|
-
exports.getERC20TransferableReceivableContract = getERC20TransferableReceivableContract;
|
|
22
21
|
//# sourceMappingURL=ERC20TransferableReceivableContractHelper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ERC20TransferableReceivableContractHelper.js","sourceRoot":"","sources":["../../../src/helpers/ERC20TransferableReceivableContractHelper.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ERC20TransferableReceivableContractHelper.js","sourceRoot":"","sources":["../../../src/helpers/ERC20TransferableReceivableContractHelper.ts"],"names":[],"mappings":";;AAiBA,wFAgBC;AAhCD,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"}
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.getPoolContract = getPoolContract;
|
|
4
|
+
exports.getCreditRecord = getCreditRecord;
|
|
5
|
+
exports.getTotalDue = getTotalDue;
|
|
6
|
+
exports.drawdownFromPool = drawdownFromPool;
|
|
7
|
+
exports.makePaymentToPool = makePaymentToPool;
|
|
8
|
+
exports.approvePoolAllowance = approvePoolAllowance;
|
|
4
9
|
const utils_1 = require("../utils");
|
|
5
10
|
const ERC20ContractHelper_1 = require("./ERC20ContractHelper");
|
|
6
11
|
/**
|
|
@@ -18,7 +23,6 @@ function getPoolContract(signerOrProvider, chainId, poolName, poolType) {
|
|
|
18
23
|
return null;
|
|
19
24
|
return (0, utils_1.getContract)(poolInfo.pool, poolInfo.poolAbi, signerOrProvider);
|
|
20
25
|
}
|
|
21
|
-
exports.getPoolContract = getPoolContract;
|
|
22
26
|
/**
|
|
23
27
|
* Gets the credit record of a wallet in a Huma pool. Denominated in the ERC20 tokens of the pool.
|
|
24
28
|
*
|
|
@@ -39,7 +43,6 @@ async function getCreditRecord(address, signerOrProvider, chainId, poolName, poo
|
|
|
39
43
|
}
|
|
40
44
|
return poolContract.creditRecordMapping(address);
|
|
41
45
|
}
|
|
42
|
-
exports.getCreditRecord = getCreditRecord;
|
|
43
46
|
/**
|
|
44
47
|
* Gets the total due for a Huma pool of the given wallet. Denominated in the ERC20 tokens of the pool.
|
|
45
48
|
*
|
|
@@ -56,7 +59,6 @@ async function getTotalDue(address, signerOrProvider, chainId, poolName, poolTyp
|
|
|
56
59
|
const creditRecord = await getCreditRecord(address, signerOrProvider, chainId, poolName, poolType);
|
|
57
60
|
return creditRecord.totalDue;
|
|
58
61
|
}
|
|
59
|
-
exports.getTotalDue = getTotalDue;
|
|
60
62
|
/**
|
|
61
63
|
* Calls drawdown on a Huma pool contract
|
|
62
64
|
*
|
|
@@ -78,7 +80,6 @@ async function drawdownFromPool(signer, chainId, poolName, poolType, drawdownAmo
|
|
|
78
80
|
gasOpts = await (0, utils_1.getDefaultGasOptions)(gasOpts, chainId);
|
|
79
81
|
return poolContract.drawdown(drawdownAmount, gasOpts);
|
|
80
82
|
}
|
|
81
|
-
exports.drawdownFromPool = drawdownFromPool;
|
|
82
83
|
/**
|
|
83
84
|
* Calls makePayment on a Huma pool contract. If the pool does not have sufficient allowance to complete the operation,
|
|
84
85
|
* attempt to first increase the allowance of the pool.
|
|
@@ -110,7 +111,6 @@ async function makePaymentToPool(signer, chainId, poolName, poolType, paymentAmo
|
|
|
110
111
|
}
|
|
111
112
|
return poolContract.makePayment(await signer.getAddress(), paymentAmount, gasOpts);
|
|
112
113
|
}
|
|
113
|
-
exports.makePaymentToPool = makePaymentToPool;
|
|
114
114
|
/**
|
|
115
115
|
* Approves an allowance for a Huma pool contract, which is required to do certain actions (e.g. makePayment)
|
|
116
116
|
*
|
|
@@ -137,5 +137,4 @@ async function approvePoolAllowance(signer, chainId, poolName, poolType, allowan
|
|
|
137
137
|
gasOpts = await (0, utils_1.getDefaultGasOptions)(gasOpts, chainId);
|
|
138
138
|
return poolTokenContract.approve(poolContract.address, allowanceAmount, gasOpts);
|
|
139
139
|
}
|
|
140
|
-
exports.approvePoolAllowance = approvePoolAllowance;
|
|
141
140
|
//# sourceMappingURL=PoolContractHelper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PoolContractHelper.js","sourceRoot":"","sources":["../../../src/helpers/PoolContractHelper.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PoolContractHelper.js","sourceRoot":"","sources":["../../../src/helpers/PoolContractHelper.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getRealWorldReceivableContract =
|
|
3
|
+
exports.getRealWorldReceivableContract = getRealWorldReceivableContract;
|
|
4
4
|
const shared_1 = require("@huma-finance/shared");
|
|
5
5
|
const utils_1 = require("../utils");
|
|
6
6
|
/**
|
|
@@ -18,5 +18,4 @@ function getRealWorldReceivableContract(signerOrProvider, chainId) {
|
|
|
18
18
|
return null;
|
|
19
19
|
return (0, utils_1.getContract)(rwReceivableContract, shared_1.REAL_WORLD_RECEIVABLE_ABI, signerOrProvider);
|
|
20
20
|
}
|
|
21
|
-
exports.getRealWorldReceivableContract = getRealWorldReceivableContract;
|
|
22
21
|
//# sourceMappingURL=RealWorldReceivableContractHelper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RealWorldReceivableContractHelper.js","sourceRoot":"","sources":["../../../src/helpers/RealWorldReceivableContractHelper.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"RealWorldReceivableContractHelper.js","sourceRoot":"","sources":["../../../src/helpers/RealWorldReceivableContractHelper.ts"],"names":[],"mappings":";;AAiBA,wEAgBC;AAhCD,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"}
|
|
@@ -4,3 +4,6 @@ export * from './PoolContractHelper';
|
|
|
4
4
|
export * from './v2/ReceivableContractHelper';
|
|
5
5
|
export * from './v2/ReceivableBackedCreditLineContractHelper';
|
|
6
6
|
export * from './v2/CreditContractHelper';
|
|
7
|
+
export * from './solana/HumaSolanaProgramHelper';
|
|
8
|
+
export * from './solana/HumaSolanaReceivableHelper';
|
|
9
|
+
export * from './solana/HumaSolanaContext';
|
|
@@ -7,4 +7,7 @@ tslib_1.__exportStar(require("./PoolContractHelper"), exports);
|
|
|
7
7
|
tslib_1.__exportStar(require("./v2/ReceivableContractHelper"), exports);
|
|
8
8
|
tslib_1.__exportStar(require("./v2/ReceivableBackedCreditLineContractHelper"), exports);
|
|
9
9
|
tslib_1.__exportStar(require("./v2/CreditContractHelper"), exports);
|
|
10
|
+
tslib_1.__exportStar(require("./solana/HumaSolanaProgramHelper"), exports);
|
|
11
|
+
tslib_1.__exportStar(require("./solana/HumaSolanaReceivableHelper"), exports);
|
|
12
|
+
tslib_1.__exportStar(require("./solana/HumaSolanaContext"), exports);
|
|
10
13
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/helpers/index.ts"],"names":[],"mappings":";;;AAAA,8EAAmD;AACnD,sFAA2D;AAC3D,+DAAoC;AACpC,wEAA6C;AAC7C,wFAA6D;AAC7D,oEAAyC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/helpers/index.ts"],"names":[],"mappings":";;;AAAA,8EAAmD;AACnD,sFAA2D;AAC3D,+DAAoC;AACpC,wEAA6C;AAC7C,wFAA6D;AAC7D,oEAAyC;AACzC,2EAAgD;AAChD,8EAAmD;AACnD,qEAA0C"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Connection, PublicKey } from '@solana/web3.js';
|
|
2
|
+
import { POOL_NAME, SolanaChainEnum } from '@huma-finance/shared';
|
|
3
|
+
export declare class HumaSolanaContext {
|
|
4
|
+
#private;
|
|
5
|
+
constructor({ publicKey, connection, chainId, poolName, }: {
|
|
6
|
+
publicKey: PublicKey;
|
|
7
|
+
connection: Connection;
|
|
8
|
+
chainId: SolanaChainEnum;
|
|
9
|
+
poolName: POOL_NAME;
|
|
10
|
+
});
|
|
11
|
+
get publicKey(): PublicKey;
|
|
12
|
+
set publicKey(value: PublicKey);
|
|
13
|
+
get connection(): Connection;
|
|
14
|
+
set connection(value: Connection);
|
|
15
|
+
get chainId(): SolanaChainEnum;
|
|
16
|
+
set chainId(value: SolanaChainEnum);
|
|
17
|
+
get poolName(): POOL_NAME;
|
|
18
|
+
set poolName(value: POOL_NAME);
|
|
19
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var _HumaSolanaContext_publicKey, _HumaSolanaContext_connection, _HumaSolanaContext_chainId, _HumaSolanaContext_poolName;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.HumaSolanaContext = void 0;
|
|
5
|
+
const tslib_1 = require("tslib");
|
|
6
|
+
class HumaSolanaContext {
|
|
7
|
+
constructor({ publicKey, connection, chainId, poolName, }) {
|
|
8
|
+
_HumaSolanaContext_publicKey.set(this, void 0);
|
|
9
|
+
_HumaSolanaContext_connection.set(this, void 0);
|
|
10
|
+
_HumaSolanaContext_chainId.set(this, void 0);
|
|
11
|
+
_HumaSolanaContext_poolName.set(this, void 0);
|
|
12
|
+
if (!publicKey || !connection || !chainId || !poolName) {
|
|
13
|
+
throw new Error('All parameters are required');
|
|
14
|
+
}
|
|
15
|
+
tslib_1.__classPrivateFieldSet(this, _HumaSolanaContext_publicKey, publicKey, "f");
|
|
16
|
+
tslib_1.__classPrivateFieldSet(this, _HumaSolanaContext_connection, connection, "f");
|
|
17
|
+
tslib_1.__classPrivateFieldSet(this, _HumaSolanaContext_chainId, chainId, "f");
|
|
18
|
+
tslib_1.__classPrivateFieldSet(this, _HumaSolanaContext_poolName, poolName, "f");
|
|
19
|
+
}
|
|
20
|
+
get publicKey() {
|
|
21
|
+
return tslib_1.__classPrivateFieldGet(this, _HumaSolanaContext_publicKey, "f");
|
|
22
|
+
}
|
|
23
|
+
set publicKey(value) {
|
|
24
|
+
tslib_1.__classPrivateFieldSet(this, _HumaSolanaContext_publicKey, value, "f");
|
|
25
|
+
}
|
|
26
|
+
get connection() {
|
|
27
|
+
return tslib_1.__classPrivateFieldGet(this, _HumaSolanaContext_connection, "f");
|
|
28
|
+
}
|
|
29
|
+
set connection(value) {
|
|
30
|
+
tslib_1.__classPrivateFieldSet(this, _HumaSolanaContext_connection, value, "f");
|
|
31
|
+
}
|
|
32
|
+
get chainId() {
|
|
33
|
+
return tslib_1.__classPrivateFieldGet(this, _HumaSolanaContext_chainId, "f");
|
|
34
|
+
}
|
|
35
|
+
set chainId(value) {
|
|
36
|
+
tslib_1.__classPrivateFieldSet(this, _HumaSolanaContext_chainId, value, "f");
|
|
37
|
+
}
|
|
38
|
+
get poolName() {
|
|
39
|
+
return tslib_1.__classPrivateFieldGet(this, _HumaSolanaContext_poolName, "f");
|
|
40
|
+
}
|
|
41
|
+
set poolName(value) {
|
|
42
|
+
tslib_1.__classPrivateFieldSet(this, _HumaSolanaContext_poolName, value, "f");
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
exports.HumaSolanaContext = HumaSolanaContext;
|
|
46
|
+
_HumaSolanaContext_publicKey = new WeakMap(), _HumaSolanaContext_connection = new WeakMap(), _HumaSolanaContext_chainId = new WeakMap(), _HumaSolanaContext_poolName = new WeakMap();
|
|
47
|
+
//# sourceMappingURL=HumaSolanaContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HumaSolanaContext.js","sourceRoot":"","sources":["../../../../src/helpers/solana/HumaSolanaContext.ts"],"names":[],"mappings":";;;;;AAGA,MAAa,iBAAiB;IAS5B,YAAY,EACV,SAAS,EACT,UAAU,EACV,OAAO,EACP,QAAQ,GAMT;QAlBD,+CAAqB;QAErB,gDAAuB;QAEvB,6CAAyB;QAEzB,8CAAoB;QAalB,IAAI,CAAC,SAAS,IAAI,CAAC,UAAU,IAAI,CAAC,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;YACvD,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAA;QAChD,CAAC;QAED,+BAAA,IAAI,gCAAc,SAAS,MAAA,CAAA;QAC3B,+BAAA,IAAI,iCAAe,UAAU,MAAA,CAAA;QAC7B,+BAAA,IAAI,8BAAY,OAAO,MAAA,CAAA;QACvB,+BAAA,IAAI,+BAAa,QAAQ,MAAA,CAAA;IAC3B,CAAC;IAED,IAAI,SAAS;QACX,OAAO,+BAAA,IAAI,oCAAW,CAAA;IACxB,CAAC;IAED,IAAI,SAAS,CAAC,KAAgB;QAC5B,+BAAA,IAAI,gCAAc,KAAK,MAAA,CAAA;IACzB,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,+BAAA,IAAI,qCAAY,CAAA;IACzB,CAAC;IAED,IAAI,UAAU,CAAC,KAAiB;QAC9B,+BAAA,IAAI,iCAAe,KAAK,MAAA,CAAA;IAC1B,CAAC;IAED,IAAI,OAAO;QACT,OAAO,+BAAA,IAAI,kCAAS,CAAA;IACtB,CAAC;IAED,IAAI,OAAO,CAAC,KAAsB;QAChC,+BAAA,IAAI,8BAAY,KAAK,MAAA,CAAA;IACvB,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,+BAAA,IAAI,mCAAU,CAAA;IACvB,CAAC;IAED,IAAI,QAAQ,CAAC,KAAgB;QAC3B,+BAAA,IAAI,+BAAa,KAAK,MAAA,CAAA;IACxB,CAAC;CACF;AA7DD,8CA6DC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Transaction } from '@solana/web3.js';
|
|
2
|
+
import { BN } from '@coral-xyz/anchor';
|
|
3
|
+
import { HumaSolanaContext } from './HumaSolanaContext';
|
|
4
|
+
export declare class HumaSolanaProgramHelper {
|
|
5
|
+
#private;
|
|
6
|
+
constructor({ solanaContext }: {
|
|
7
|
+
solanaContext: HumaSolanaContext;
|
|
8
|
+
});
|
|
9
|
+
buildSubmitReceivableTransaction(referenceId: string): Promise<Transaction>;
|
|
10
|
+
buildDrawdownTransaction(amount: BN): Promise<Transaction>;
|
|
11
|
+
buildPaymentTransaction(amount: BN, principalOnly?: boolean): Promise<Transaction>;
|
|
12
|
+
buildApproveAllowanceTransaction(): Promise<Transaction>;
|
|
13
|
+
getAccountInfo(): Promise<any>;
|
|
14
|
+
}
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var _HumaSolanaProgramHelper_solanaContext;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.HumaSolanaProgramHelper = void 0;
|
|
5
|
+
const tslib_1 = require("tslib");
|
|
6
|
+
const web3_js_1 = require("@solana/web3.js");
|
|
7
|
+
const anchor_1 = require("@coral-xyz/anchor");
|
|
8
|
+
const shared_1 = require("@huma-finance/shared");
|
|
9
|
+
const mpl_core_1 = require("@metaplex-foundation/mpl-core");
|
|
10
|
+
const spl_token_1 = require("@solana/spl-token");
|
|
11
|
+
const getReceivableReferenceAccount_1 = require("../../utils/solana/getReceivableReferenceAccount");
|
|
12
|
+
class HumaSolanaProgramHelper {
|
|
13
|
+
constructor({ solanaContext }) {
|
|
14
|
+
_HumaSolanaProgramHelper_solanaContext.set(this, void 0);
|
|
15
|
+
if (!solanaContext) {
|
|
16
|
+
throw new Error('All parameters are required');
|
|
17
|
+
}
|
|
18
|
+
tslib_1.__classPrivateFieldSet(this, _HumaSolanaProgramHelper_solanaContext, solanaContext, "f");
|
|
19
|
+
}
|
|
20
|
+
async buildSubmitReceivableTransaction(referenceId) {
|
|
21
|
+
const { publicKey, connection, chainId, poolName } = tslib_1.__classPrivateFieldGet(this, _HumaSolanaProgramHelper_solanaContext, "f");
|
|
22
|
+
const program = (0, shared_1.getHumaProgram)(chainId, connection);
|
|
23
|
+
const poolInfo = (0, shared_1.getSolanaPoolInfo)(chainId, poolName);
|
|
24
|
+
if (!poolInfo) {
|
|
25
|
+
throw new Error('Could not find pool');
|
|
26
|
+
}
|
|
27
|
+
const tx = new web3_js_1.Transaction();
|
|
28
|
+
const receivableReferenceData = await (0, getReceivableReferenceAccount_1.getReceivableReferenceData)(chainId, publicKey, connection, referenceId);
|
|
29
|
+
const { creditConfigAccount, creditStateAccount } = (0, shared_1.getCreditAccounts)(poolInfo, publicKey);
|
|
30
|
+
const programTx = await program.methods
|
|
31
|
+
.submitReceivable()
|
|
32
|
+
.accountsPartial({
|
|
33
|
+
borrower: publicKey,
|
|
34
|
+
asset: receivableReferenceData.asset,
|
|
35
|
+
humaConfig: poolInfo.humaConfig,
|
|
36
|
+
poolConfig: poolInfo.poolConfig,
|
|
37
|
+
poolState: poolInfo.poolState,
|
|
38
|
+
creditConfig: creditConfigAccount,
|
|
39
|
+
creditState: creditStateAccount,
|
|
40
|
+
mplCore: mpl_core_1.MPL_CORE_PROGRAM_ID,
|
|
41
|
+
logWrapper: null,
|
|
42
|
+
})
|
|
43
|
+
.transaction();
|
|
44
|
+
tx.add(programTx);
|
|
45
|
+
return tx;
|
|
46
|
+
}
|
|
47
|
+
async buildDrawdownTransaction(amount) {
|
|
48
|
+
var _a;
|
|
49
|
+
const { publicKey, connection, chainId, poolName } = tslib_1.__classPrivateFieldGet(this, _HumaSolanaProgramHelper_solanaContext, "f");
|
|
50
|
+
const program = (0, shared_1.getHumaProgram)(chainId, connection);
|
|
51
|
+
const poolInfo = (0, shared_1.getSolanaPoolInfo)(chainId, poolName);
|
|
52
|
+
if (!poolInfo) {
|
|
53
|
+
throw new Error('Could not find pool');
|
|
54
|
+
}
|
|
55
|
+
const tx = new web3_js_1.Transaction();
|
|
56
|
+
const { creditConfigAccount, creditStateAccount } = (0, shared_1.getCreditAccounts)(poolInfo, publicKey);
|
|
57
|
+
const { underlyingTokenATA: borrowerUnderlyingTokenAccountAddress } = (0, shared_1.getTokenAccounts)(poolInfo, publicKey);
|
|
58
|
+
const sentinelAddress = (0, shared_1.getSentinelAddress)(chainId);
|
|
59
|
+
let addApproveInstruction = false;
|
|
60
|
+
try {
|
|
61
|
+
const borrowerUnderlyingTokenAccountInfo = await (0, spl_token_1.getAccount)(connection, borrowerUnderlyingTokenAccountAddress, undefined, spl_token_1.TOKEN_2022_PROGRAM_ID);
|
|
62
|
+
if (new anchor_1.BN(borrowerUnderlyingTokenAccountInfo.delegatedAmount).lt(amount.muln(2)) ||
|
|
63
|
+
((_a = borrowerUnderlyingTokenAccountInfo.delegate) === null || _a === void 0 ? void 0 : _a.toString()) !==
|
|
64
|
+
sentinelAddress) {
|
|
65
|
+
addApproveInstruction = true;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
catch (error) {
|
|
69
|
+
if (error instanceof spl_token_1.TokenAccountNotFoundError) {
|
|
70
|
+
const createAccountInstruction = (0, spl_token_1.createAssociatedTokenAccountInstruction)(publicKey, borrowerUnderlyingTokenAccountAddress, publicKey, new web3_js_1.PublicKey(poolInfo.underlyingMint.address), spl_token_1.TOKEN_2022_PROGRAM_ID);
|
|
71
|
+
tx.add(createAccountInstruction);
|
|
72
|
+
addApproveInstruction = true;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
if (addApproveInstruction) {
|
|
76
|
+
const approveInstruction = (0, spl_token_1.createApproveCheckedInstruction)(borrowerUnderlyingTokenAccountAddress, new web3_js_1.PublicKey(poolInfo.underlyingMint.address), new web3_js_1.PublicKey(sentinelAddress), // delegate
|
|
77
|
+
publicKey, // owner of the wallet
|
|
78
|
+
amount.muln(2), // amount
|
|
79
|
+
poolInfo.underlyingMint.decimals, undefined, // multiSigners
|
|
80
|
+
spl_token_1.TOKEN_2022_PROGRAM_ID);
|
|
81
|
+
tx.add(approveInstruction);
|
|
82
|
+
}
|
|
83
|
+
const programTx = await program.methods
|
|
84
|
+
.drawdown(amount)
|
|
85
|
+
.accountsPartial({
|
|
86
|
+
borrower: publicKey,
|
|
87
|
+
humaConfig: poolInfo.humaConfig,
|
|
88
|
+
poolConfig: poolInfo.poolConfig,
|
|
89
|
+
poolState: poolInfo.poolState,
|
|
90
|
+
creditConfig: creditConfigAccount,
|
|
91
|
+
creditState: creditStateAccount,
|
|
92
|
+
poolAuthority: poolInfo.poolAuthority,
|
|
93
|
+
underlyingMint: poolInfo.underlyingMint.address,
|
|
94
|
+
poolUnderlyingToken: poolInfo.poolUnderlyingTokenAccount,
|
|
95
|
+
borrowerUnderlyingToken: borrowerUnderlyingTokenAccountAddress,
|
|
96
|
+
tokenProgram: spl_token_1.TOKEN_2022_PROGRAM_ID,
|
|
97
|
+
})
|
|
98
|
+
.transaction();
|
|
99
|
+
tx.add(programTx);
|
|
100
|
+
return tx;
|
|
101
|
+
}
|
|
102
|
+
async buildPaymentTransaction(amount, principalOnly = false) {
|
|
103
|
+
const { publicKey, chainId, poolName } = tslib_1.__classPrivateFieldGet(this, _HumaSolanaProgramHelper_solanaContext, "f");
|
|
104
|
+
const program = (0, shared_1.getHumaProgram)(chainId, tslib_1.__classPrivateFieldGet(this, _HumaSolanaProgramHelper_solanaContext, "f").connection);
|
|
105
|
+
const poolInfo = (0, shared_1.getSolanaPoolInfo)(chainId, poolName);
|
|
106
|
+
if (!poolInfo) {
|
|
107
|
+
throw new Error('Could not find pool');
|
|
108
|
+
}
|
|
109
|
+
const { creditConfigAccount, creditStateAccount } = (0, shared_1.getCreditAccounts)(poolInfo, publicKey);
|
|
110
|
+
const { underlyingTokenATA: borrowerUnderlyingTokenAcccount } = (0, shared_1.getTokenAccounts)(poolInfo, publicKey);
|
|
111
|
+
const accounts = {
|
|
112
|
+
humaConfig: poolInfo.humaConfig,
|
|
113
|
+
poolConfig: poolInfo.poolConfig,
|
|
114
|
+
poolState: poolInfo.poolState,
|
|
115
|
+
creditConfig: creditConfigAccount,
|
|
116
|
+
creditState: creditStateAccount,
|
|
117
|
+
poolAuthority: poolInfo.poolAuthority,
|
|
118
|
+
underlyingMint: poolInfo.underlyingMint.address,
|
|
119
|
+
poolUnderlyingToken: poolInfo.poolUnderlyingTokenAccount,
|
|
120
|
+
borrowerUnderlyingToken: borrowerUnderlyingTokenAcccount,
|
|
121
|
+
tokenProgram: spl_token_1.TOKEN_2022_PROGRAM_ID,
|
|
122
|
+
};
|
|
123
|
+
let tx;
|
|
124
|
+
if (principalOnly) {
|
|
125
|
+
tx = await program.methods
|
|
126
|
+
.makePrincipalPayment(amount)
|
|
127
|
+
.accountsPartial(Object.assign(Object.assign({}, accounts), { borrower: publicKey }))
|
|
128
|
+
.transaction();
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
tx = await program.methods
|
|
132
|
+
.makePayment(amount)
|
|
133
|
+
.accountsPartial(Object.assign(Object.assign({}, accounts), { signer: publicKey }))
|
|
134
|
+
.transaction();
|
|
135
|
+
}
|
|
136
|
+
return tx;
|
|
137
|
+
}
|
|
138
|
+
async buildApproveAllowanceTransaction() {
|
|
139
|
+
const { publicKey, chainId, poolName } = tslib_1.__classPrivateFieldGet(this, _HumaSolanaProgramHelper_solanaContext, "f");
|
|
140
|
+
const poolInfo = (0, shared_1.getSolanaPoolInfo)(chainId, poolName);
|
|
141
|
+
if (!poolInfo) {
|
|
142
|
+
throw new Error('Could not find pool');
|
|
143
|
+
}
|
|
144
|
+
const { underlyingTokenATA: borrowerUnderlyingTokenAcccount } = (0, shared_1.getTokenAccounts)(poolInfo, publicKey);
|
|
145
|
+
return new web3_js_1.Transaction().add((0, spl_token_1.createApproveCheckedInstruction)(borrowerUnderlyingTokenAcccount, new web3_js_1.PublicKey(poolInfo.underlyingMint.address), new web3_js_1.PublicKey((0, shared_1.getSentinelAddress)(chainId)), publicKey, shared_1.SolanaTokenUtils.parseUnits('100000000000', poolInfo.underlyingMint.decimals), poolInfo.underlyingMint.decimals, undefined, spl_token_1.TOKEN_2022_PROGRAM_ID));
|
|
146
|
+
}
|
|
147
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
148
|
+
async getAccountInfo() {
|
|
149
|
+
const { publicKey, chainId, poolName } = tslib_1.__classPrivateFieldGet(this, _HumaSolanaProgramHelper_solanaContext, "f");
|
|
150
|
+
const program = (0, shared_1.getHumaProgram)(chainId, tslib_1.__classPrivateFieldGet(this, _HumaSolanaProgramHelper_solanaContext, "f").connection);
|
|
151
|
+
const poolInfo = (0, shared_1.getSolanaPoolInfo)(chainId, poolName);
|
|
152
|
+
if (!poolInfo) {
|
|
153
|
+
throw new Error('Could not find pool');
|
|
154
|
+
}
|
|
155
|
+
const { creditConfigAccount, creditStateAccount } = (0, shared_1.getCreditAccounts)(poolInfo, publicKey);
|
|
156
|
+
const ccData = await program.account.creditConfig.fetchMultiple([
|
|
157
|
+
creditConfigAccount,
|
|
158
|
+
]);
|
|
159
|
+
const ccInfo = ccData[0];
|
|
160
|
+
const csData = await program.account.creditState.fetchMultiple([
|
|
161
|
+
creditStateAccount,
|
|
162
|
+
]);
|
|
163
|
+
const csInfo = csData[0];
|
|
164
|
+
if (!ccInfo || !csInfo) {
|
|
165
|
+
return null;
|
|
166
|
+
}
|
|
167
|
+
return {
|
|
168
|
+
creditConfig: ccInfo,
|
|
169
|
+
creditState: csInfo,
|
|
170
|
+
};
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
exports.HumaSolanaProgramHelper = HumaSolanaProgramHelper;
|
|
174
|
+
_HumaSolanaProgramHelper_solanaContext = new WeakMap();
|
|
175
|
+
//# sourceMappingURL=HumaSolanaProgramHelper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HumaSolanaProgramHelper.js","sourceRoot":"","sources":["../../../../src/helpers/solana/HumaSolanaProgramHelper.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { BN } from '@coral-xyz/anchor';
|
|
2
|
+
import { Transaction, Keypair, PublicKey } from '@solana/web3.js';
|
|
3
|
+
import { HumaSolanaContext } from './HumaSolanaContext';
|
|
4
|
+
export type ReceivableState = 'deleted' | 'minted' | 'approved' | 'partiallyPaid' | 'paid' | 'rejected' | 'delayed' | 'defaulted';
|
|
5
|
+
export declare class HumaSolanaReceivableHelper {
|
|
6
|
+
#private;
|
|
7
|
+
constructor({ solanaContext }: {
|
|
8
|
+
solanaContext: HumaSolanaContext;
|
|
9
|
+
});
|
|
10
|
+
buildCreateReceivableTransaction(newAsset: Keypair, receivableArgs: {
|
|
11
|
+
name: string;
|
|
12
|
+
uri: string;
|
|
13
|
+
currencyCode: string;
|
|
14
|
+
receivableAmount: BN;
|
|
15
|
+
maturityDate: BN;
|
|
16
|
+
referenceId: string;
|
|
17
|
+
}): Promise<Transaction>;
|
|
18
|
+
buildDeclarePaymentTransaction(referenceId: string, paymentAmount: BN): Promise<Transaction>;
|
|
19
|
+
getReceivableInfo(referenceId: string): Promise<{
|
|
20
|
+
bump: number;
|
|
21
|
+
currencyCode: string;
|
|
22
|
+
receivableAmount: BN;
|
|
23
|
+
amountPaid: BN;
|
|
24
|
+
creationDate: BN;
|
|
25
|
+
maturityDate: BN;
|
|
26
|
+
creator: PublicKey;
|
|
27
|
+
state: ReceivableState;
|
|
28
|
+
} | null>;
|
|
29
|
+
}
|