@huma-finance/sdk 0.0.62-beta.616 → 0.0.62-beta.621
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 +15 -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 +31 -0
- package/dist/cjs/helpers/solana/HumaSolanaReceivableHelper.js +126 -0
- package/dist/cjs/helpers/solana/HumaSolanaReceivableHelper.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 +15 -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 +31 -0
- package/dist/helpers/solana/HumaSolanaReceivableHelper.js +122 -0
- package/dist/helpers/solana/HumaSolanaReceivableHelper.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 +11 -5
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var _HumaSolanaReceivableHelper_solanaContext;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.HumaSolanaReceivableHelper = void 0;
|
|
5
|
+
const tslib_1 = require("tslib");
|
|
6
|
+
const shared_1 = require("@huma-finance/shared");
|
|
7
|
+
const web3_js_1 = require("@solana/web3.js");
|
|
8
|
+
const lodash_1 = tslib_1.__importDefault(require("lodash"));
|
|
9
|
+
const getReceivableReferenceAccount_1 = require("../../utils/solana/getReceivableReferenceAccount");
|
|
10
|
+
const HumaSolanaProgramHelper_1 = require("./HumaSolanaProgramHelper");
|
|
11
|
+
class HumaSolanaReceivableHelper {
|
|
12
|
+
constructor({ solanaContext }) {
|
|
13
|
+
_HumaSolanaReceivableHelper_solanaContext.set(this, void 0);
|
|
14
|
+
if (!solanaContext) {
|
|
15
|
+
throw new Error('All parameters are required');
|
|
16
|
+
}
|
|
17
|
+
tslib_1.__classPrivateFieldSet(this, _HumaSolanaReceivableHelper_solanaContext, solanaContext, "f");
|
|
18
|
+
}
|
|
19
|
+
async buildCreateReceivableTransaction(newAsset, receivableArgs) {
|
|
20
|
+
const { publicKey, connection, chainId, poolName } = tslib_1.__classPrivateFieldGet(this, _HumaSolanaReceivableHelper_solanaContext, "f");
|
|
21
|
+
const program = (0, shared_1.getHumaProgram)(chainId, connection);
|
|
22
|
+
const poolInfo = (0, shared_1.getSolanaPoolInfo)(chainId, poolName);
|
|
23
|
+
if (!poolInfo) {
|
|
24
|
+
throw new Error('Could not find pool');
|
|
25
|
+
}
|
|
26
|
+
const tx = new web3_js_1.Transaction();
|
|
27
|
+
const receivableReferencePDA = (0, getReceivableReferenceAccount_1.getReceivableReferenceAccount)(chainId, publicKey, receivableArgs.referenceId);
|
|
28
|
+
const remainingAccounts = [
|
|
29
|
+
{
|
|
30
|
+
pubkey: receivableReferencePDA,
|
|
31
|
+
isWritable: true,
|
|
32
|
+
isSigner: false,
|
|
33
|
+
},
|
|
34
|
+
];
|
|
35
|
+
const programTx = await program.methods
|
|
36
|
+
.createReceivable(receivableArgs)
|
|
37
|
+
.accountsPartial({
|
|
38
|
+
asset: newAsset.publicKey,
|
|
39
|
+
owner: publicKey,
|
|
40
|
+
humaConfig: poolInfo.humaConfig,
|
|
41
|
+
poolConfig: poolInfo.poolConfig,
|
|
42
|
+
poolState: poolInfo.poolState,
|
|
43
|
+
mplCore: HumaSolanaProgramHelper_1.MPL_CORE_PROGRAM_ID,
|
|
44
|
+
logWrapper: null,
|
|
45
|
+
})
|
|
46
|
+
.remainingAccounts(remainingAccounts)
|
|
47
|
+
.transaction();
|
|
48
|
+
tx.add(programTx);
|
|
49
|
+
tx.feePayer = publicKey;
|
|
50
|
+
return tx;
|
|
51
|
+
}
|
|
52
|
+
async buildDeclarePaymentTransaction(referenceId, paymentAmount) {
|
|
53
|
+
const { publicKey, connection, chainId, poolName } = tslib_1.__classPrivateFieldGet(this, _HumaSolanaReceivableHelper_solanaContext, "f");
|
|
54
|
+
const program = (0, shared_1.getHumaProgram)(chainId, connection);
|
|
55
|
+
const poolInfo = (0, shared_1.getSolanaPoolInfo)(chainId, poolName);
|
|
56
|
+
if (!poolInfo) {
|
|
57
|
+
throw new Error('Could not find pool');
|
|
58
|
+
}
|
|
59
|
+
const tx = new web3_js_1.Transaction();
|
|
60
|
+
const receivableReferenceData = await (0, getReceivableReferenceAccount_1.getReceivableReferenceData)(chainId, publicKey, connection, referenceId);
|
|
61
|
+
const programTx = await program.methods
|
|
62
|
+
.declarePayment(paymentAmount)
|
|
63
|
+
.accountsPartial({
|
|
64
|
+
authority: publicKey,
|
|
65
|
+
asset: receivableReferenceData.asset,
|
|
66
|
+
humaConfig: poolInfo.humaConfig,
|
|
67
|
+
poolConfig: poolInfo.poolConfig,
|
|
68
|
+
poolState: poolInfo.poolState,
|
|
69
|
+
mplCore: HumaSolanaProgramHelper_1.MPL_CORE_PROGRAM_ID,
|
|
70
|
+
logWrapper: null,
|
|
71
|
+
})
|
|
72
|
+
.transaction();
|
|
73
|
+
tx.add(programTx);
|
|
74
|
+
return tx;
|
|
75
|
+
}
|
|
76
|
+
async getReceivableInfo(referenceId) {
|
|
77
|
+
const { publicKey, connection, chainId, poolName } = tslib_1.__classPrivateFieldGet(this, _HumaSolanaReceivableHelper_solanaContext, "f");
|
|
78
|
+
const program = (0, shared_1.getHumaProgram)(chainId, connection);
|
|
79
|
+
const poolInfo = (0, shared_1.getSolanaPoolInfo)(chainId, poolName);
|
|
80
|
+
if (!poolInfo) {
|
|
81
|
+
throw new Error('Could not find pool');
|
|
82
|
+
}
|
|
83
|
+
const receivableReferenceData = await (0, getReceivableReferenceAccount_1.getReceivableReferenceData)(chainId, publicKey, connection, referenceId);
|
|
84
|
+
const [receivableInfoPDA] = web3_js_1.PublicKey.findProgramAddressSync([
|
|
85
|
+
Buffer.from('receivable_info'),
|
|
86
|
+
receivableReferenceData.asset.toBuffer(),
|
|
87
|
+
], program.programId);
|
|
88
|
+
const data = await program.account.receivableInfo.fetchMultiple([
|
|
89
|
+
receivableInfoPDA,
|
|
90
|
+
]);
|
|
91
|
+
const receivableInfo = data[0];
|
|
92
|
+
if (!receivableInfo) {
|
|
93
|
+
return null;
|
|
94
|
+
}
|
|
95
|
+
let state;
|
|
96
|
+
if (lodash_1.default.isEqual(receivableInfo.state, { deleted: {} })) {
|
|
97
|
+
state = 'deleted';
|
|
98
|
+
}
|
|
99
|
+
else if (lodash_1.default.isEqual(receivableInfo.state, { minted: {} })) {
|
|
100
|
+
state = 'minted';
|
|
101
|
+
}
|
|
102
|
+
else if (lodash_1.default.isEqual(receivableInfo.state, { approved: {} })) {
|
|
103
|
+
state = 'approved';
|
|
104
|
+
}
|
|
105
|
+
else if (lodash_1.default.isEqual(receivableInfo.state, { partiallyPaid: {} })) {
|
|
106
|
+
state = 'partiallyPaid';
|
|
107
|
+
}
|
|
108
|
+
else if (lodash_1.default.isEqual(receivableInfo.state, { paid: {} })) {
|
|
109
|
+
state = 'paid';
|
|
110
|
+
}
|
|
111
|
+
else if (lodash_1.default.isEqual(receivableInfo.state, { rejected: {} })) {
|
|
112
|
+
state = 'rejected';
|
|
113
|
+
}
|
|
114
|
+
else if (lodash_1.default.isEqual(receivableInfo.state, { delayed: {} })) {
|
|
115
|
+
state = 'delayed';
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
state = 'defaulted';
|
|
119
|
+
}
|
|
120
|
+
receivableInfo.state = state;
|
|
121
|
+
return receivableInfo;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
exports.HumaSolanaReceivableHelper = HumaSolanaReceivableHelper;
|
|
125
|
+
_HumaSolanaReceivableHelper_solanaContext = new WeakMap();
|
|
126
|
+
//# sourceMappingURL=HumaSolanaReceivableHelper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HumaSolanaReceivableHelper.js","sourceRoot":"","sources":["../../../../src/helpers/solana/HumaSolanaReceivableHelper.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.getAvailableBalanceForPool = getAvailableBalanceForPool;
|
|
4
|
+
exports.getCreditRecordForPool = getCreditRecordForPool;
|
|
5
|
+
exports.getAvailableCreditForPool = getAvailableCreditForPool;
|
|
4
6
|
const shared_1 = require("@huma-finance/shared");
|
|
5
7
|
/**
|
|
6
8
|
* Returns the current pool balance available for borrowing
|
|
@@ -15,7 +17,6 @@ async function getAvailableBalanceForPool(poolName, provider) {
|
|
|
15
17
|
}
|
|
16
18
|
return safeContract.getAvailableBalanceForPool();
|
|
17
19
|
}
|
|
18
|
-
exports.getAvailableBalanceForPool = getAvailableBalanceForPool;
|
|
19
20
|
/**
|
|
20
21
|
* Returns the credit record of the borrower
|
|
21
22
|
*
|
|
@@ -30,7 +31,6 @@ async function getCreditRecordForPool(poolName, borrower, provider) {
|
|
|
30
31
|
}
|
|
31
32
|
return creditRecord;
|
|
32
33
|
}
|
|
33
|
-
exports.getCreditRecordForPool = getCreditRecordForPool;
|
|
34
34
|
/**
|
|
35
35
|
* Returns the borrower's remaining credit they can use for borrowing. Note that this might not be
|
|
36
36
|
* currently available for borrowing as the credit limit might exceed the available pool balance. Use
|
|
@@ -48,5 +48,4 @@ async function getAvailableCreditForPool(borrower, poolName, provider) {
|
|
|
48
48
|
}
|
|
49
49
|
return creditConfig.creditLimit.sub(creditRecord.unbilledPrincipal);
|
|
50
50
|
}
|
|
51
|
-
exports.getAvailableCreditForPool = getAvailableCreditForPool;
|
|
52
51
|
//# sourceMappingURL=CreditContractHelper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CreditContractHelper.js","sourceRoot":"","sources":["../../../../src/helpers/v2/CreditContractHelper.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"CreditContractHelper.js","sourceRoot":"","sources":["../../../../src/helpers/v2/CreditContractHelper.ts"],"names":[],"mappings":";;AAgBA,gEAWC;AASD,wDAYC;AAWD,8DAaC;AAvED,iDAM6B;AAG7B;;;;;GAKG;AACI,KAAK,UAAU,0BAA0B,CAC9C,QAAmB,EACnB,QAAwC;IAExC,MAAM,YAAY,GAAG,MAAM,IAAA,8BAAqB,EAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;IAEpE,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAA;IAC1D,CAAC;IAED,OAAO,YAAY,CAAC,0BAA0B,EAAE,CAAA;AAClD,CAAC;AAED;;;;;;GAMG;AACI,KAAK,UAAU,sBAAsB,CAC1C,QAAmB,EACnB,QAAgB,EAChB,QAAwC;IAExC,MAAM,YAAY,GAAG,MAAM,IAAA,0BAAiB,EAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAA;IAE1E,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAA;IAC1D,CAAC;IAED,OAAO,YAAY,CAAA;AACrB,CAAC;AAED;;;;;;;;GAQG;AACI,KAAK,UAAU,yBAAyB,CAC7C,QAAgB,EAChB,QAAmB,EACnB,QAAwC;IAExC,MAAM,YAAY,GAAG,MAAM,IAAA,0BAAiB,EAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAA;IAC1E,MAAM,YAAY,GAAG,MAAM,IAAA,0BAAiB,EAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAA;IAE1E,IAAI,CAAC,YAAY,IAAI,CAAC,YAAY,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAA;IAClE,CAAC;IAED,OAAO,YAAY,CAAC,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAA;AACrE,CAAC"}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.getReceivableBackedCreditLineContractV2 = getReceivableBackedCreditLineContractV2;
|
|
4
|
+
exports.getTotalDueV2 = getTotalDueV2;
|
|
5
|
+
exports.drawdownWithReceivable = drawdownWithReceivable;
|
|
6
|
+
exports.makePaymentWithReceivable = makePaymentWithReceivable;
|
|
7
|
+
exports.makePrincipalPaymentAndDrawdownWithReceivable = makePrincipalPaymentAndDrawdownWithReceivable;
|
|
4
8
|
const shared_1 = require("@huma-finance/shared");
|
|
5
9
|
const utils_1 = require("../../utils");
|
|
6
10
|
const ERC20ContractHelper_1 = require("../ERC20ContractHelper");
|
|
@@ -21,7 +25,6 @@ async function getReceivableBackedCreditLineContractV2(poolName, signerOrProvide
|
|
|
21
25
|
}
|
|
22
26
|
return (0, utils_1.getContract)(poolInfo.poolCredit, shared_1.RECEIVABLE_BACKED_CREDIT_LINE_V2_ABI, signerOrProvider);
|
|
23
27
|
}
|
|
24
|
-
exports.getReceivableBackedCreditLineContractV2 = getReceivableBackedCreditLineContractV2;
|
|
25
28
|
/**
|
|
26
29
|
* Returns account's total due amount in BigNumber format
|
|
27
30
|
* associated with the given pool name on the current chain.
|
|
@@ -37,7 +40,6 @@ async function getTotalDueV2(poolName, account, provider) {
|
|
|
37
40
|
}
|
|
38
41
|
return creditRecord.nextDue.add(creditRecord.totalPastDue);
|
|
39
42
|
}
|
|
40
|
-
exports.getTotalDueV2 = getTotalDueV2;
|
|
41
43
|
/**
|
|
42
44
|
* Draws down from a pool using a receivable.
|
|
43
45
|
*
|
|
@@ -65,7 +67,6 @@ async function drawdownWithReceivable(signer, poolName, receivableId, drawdownAm
|
|
|
65
67
|
await (approveTx === null || approveTx === void 0 ? void 0 : approveTx.wait((0, utils_1.getChainConfirmations)(chainId)));
|
|
66
68
|
return creditContract.drawdownWithReceivable(receivableId, drawdownAmount, gasOpts);
|
|
67
69
|
}
|
|
68
|
-
exports.drawdownWithReceivable = drawdownWithReceivable;
|
|
69
70
|
/**
|
|
70
71
|
* Makes a payment with a receivable.
|
|
71
72
|
*
|
|
@@ -109,7 +110,6 @@ async function makePaymentWithReceivable(signer, poolName, receivableId, payment
|
|
|
109
110
|
}
|
|
110
111
|
return paymentTx;
|
|
111
112
|
}
|
|
112
|
-
exports.makePaymentWithReceivable = makePaymentWithReceivable;
|
|
113
113
|
/**
|
|
114
114
|
* Makes a principal payment and drawdown with receivables.
|
|
115
115
|
*
|
|
@@ -153,5 +153,4 @@ async function makePrincipalPaymentAndDrawdownWithReceivable(signer, poolName, p
|
|
|
153
153
|
}
|
|
154
154
|
return creditContract.makePrincipalPaymentAndDrawdownWithReceivable(paymentReceivableId, paymentAmount, drawdownReceivableId, drawdownAmount, gasOpts);
|
|
155
155
|
}
|
|
156
|
-
exports.makePrincipalPaymentAndDrawdownWithReceivable = makePrincipalPaymentAndDrawdownWithReceivable;
|
|
157
156
|
//# sourceMappingURL=ReceivableBackedCreditLineContractHelper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReceivableBackedCreditLineContractHelper.js","sourceRoot":"","sources":["../../../../src/helpers/v2/ReceivableBackedCreditLineContractHelper.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ReceivableBackedCreditLineContractHelper.js","sourceRoot":"","sources":["../../../../src/helpers/v2/ReceivableBackedCreditLineContractHelper.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.getReceivableContractV2 = getReceivableContractV2;
|
|
4
|
+
exports.getReceivableTokenIdFromReferenceId = getReceivableTokenIdFromReferenceId;
|
|
5
|
+
exports.getReceivableReferenceAlreadyExists = getReceivableReferenceAlreadyExists;
|
|
6
|
+
exports.approveReceivableTransferIfNeeded = approveReceivableTransferIfNeeded;
|
|
4
7
|
const shared_1 = require("@huma-finance/shared");
|
|
5
8
|
const utils_1 = require("../../utils");
|
|
6
9
|
/**
|
|
@@ -19,7 +22,6 @@ async function getReceivableContractV2(poolName, signer) {
|
|
|
19
22
|
const receivableAsset = await poolConfigContract.receivableAsset();
|
|
20
23
|
return (0, utils_1.getContract)(receivableAsset, shared_1.RECEIVABLE_V2_ABI, signer);
|
|
21
24
|
}
|
|
22
|
-
exports.getReceivableContractV2 = getReceivableContractV2;
|
|
23
25
|
/**
|
|
24
26
|
* Retrieves the receivable token ID associated with a given reference ID.
|
|
25
27
|
*
|
|
@@ -37,12 +39,10 @@ async function getReceivableTokenIdFromReferenceId(referenceId, creator, poolNam
|
|
|
37
39
|
const referenceIdHash = await contract.getReferenceIdHash(referenceId, creator);
|
|
38
40
|
return contract.referenceIdHashToTokenId(referenceIdHash);
|
|
39
41
|
}
|
|
40
|
-
exports.getReceivableTokenIdFromReferenceId = getReceivableTokenIdFromReferenceId;
|
|
41
42
|
async function getReceivableReferenceAlreadyExists(referenceId, signerAddress, poolName, signer) {
|
|
42
43
|
const tokenId = await getReceivableTokenIdFromReferenceId(referenceId, signerAddress, poolName, signer);
|
|
43
44
|
return !tokenId.isZero();
|
|
44
45
|
}
|
|
45
|
-
exports.getReceivableReferenceAlreadyExists = getReceivableReferenceAlreadyExists;
|
|
46
46
|
async function approveReceivableTransferIfNeeded(signer, poolName, receivableId, gasOpts = {}) {
|
|
47
47
|
const receivableContract = await getReceivableContractV2(poolName, signer);
|
|
48
48
|
if (!receivableContract) {
|
|
@@ -61,5 +61,4 @@ async function approveReceivableTransferIfNeeded(signer, poolName, receivableId,
|
|
|
61
61
|
}
|
|
62
62
|
return receivableContract.approve(poolCreditContract.address, receivableId, gasOpts);
|
|
63
63
|
}
|
|
64
|
-
exports.approveReceivableTransferIfNeeded = approveReceivableTransferIfNeeded;
|
|
65
64
|
//# sourceMappingURL=ReceivableContractHelper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReceivableContractHelper.js","sourceRoot":"","sources":["../../../../src/helpers/v2/ReceivableContractHelper.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ReceivableContractHelper.js","sourceRoot":"","sources":["../../../../src/helpers/v2/ReceivableContractHelper.ts"],"names":[],"mappings":";;AAwBA,0DAmBC;AAWD,kFAiBC;AAED,kFAcC;AAED,8EAiCC;AAzHD,iDAM6B;AAO7B,uCAAyC;AAEzC;;;;;;;GAOG;AACI,KAAK,UAAU,uBAAuB,CAC3C,QAAmB,EACnB,MAAqB;IAErB,MAAM,kBAAkB,GAAG,MAAM,IAAA,gCAAuB,EACtD,QAAQ,EACR,MAAM,CAAC,QAA0C,CAClD,CAAA;IAED,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAA;IACvD,CAAC;IACD,MAAM,eAAe,GAAG,MAAM,kBAAkB,CAAC,eAAe,EAAE,CAAA;IAElE,OAAO,IAAA,mBAAW,EAChB,eAAe,EACf,0BAAiB,EACjB,MAAM,CACP,CAAA;AACH,CAAC;AAED;;;;;;;;GAQG;AACI,KAAK,UAAU,mCAAmC,CACvD,WAAmB,EACnB,OAAe,EACf,QAAmB,EACnB,MAAqB;IAErB,MAAM,QAAQ,GAAG,MAAM,uBAAuB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;IAChE,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAA;IACvD,CAAC;IAED,MAAM,eAAe,GAAG,MAAM,QAAQ,CAAC,kBAAkB,CACvD,WAAW,EACX,OAAO,CACR,CAAA;IAED,OAAO,QAAQ,CAAC,wBAAwB,CAAC,eAAe,CAAC,CAAA;AAC3D,CAAC;AAEM,KAAK,UAAU,mCAAmC,CACvD,WAAmB,EACnB,aAAqB,EACrB,QAAmB,EACnB,MAAqB;IAErB,MAAM,OAAO,GAAG,MAAM,mCAAmC,CACvD,WAAW,EACX,aAAa,EACb,QAAQ,EACR,MAAM,CACP,CAAA;IAED,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,CAAA;AAC1B,CAAC;AAEM,KAAK,UAAU,iCAAiC,CACrD,MAAqB,EACrB,QAAmB,EACnB,YAA0B,EAC1B,UAAqB,EAAE;IAEvB,MAAM,kBAAkB,GAAG,MAAM,uBAAuB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;IAE1E,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAA;IACvD,CAAC;IAED,mEAAmE;IACnE,MAAM,QAAQ,GAAG,MAAM,CAAC,QAA0C,CAAA;IAClE,MAAM,kBAAkB,GAAG,MAAM,IAAA,gCAAuB,EAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;IAE5E,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAA;IACxD,CAAC;IAED,MAAM,eAAe,GAAG,MAAM,kBAAkB,CAAC,WAAW,CAAC,YAAY,CAAC,CAAA;IAC1E,IACE,kBAAkB,CAAC,OAAO;QAC1B,eAAe,KAAK,kBAAkB,CAAC,OAAO,EAC9C,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAED,OAAO,kBAAkB,CAAC,OAAO,CAC/B,kBAAkB,CAAC,OAAO,EAC1B,YAAY,EACZ,OAAO,CACR,CAAA;AACH,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
1
|
+
import Irys from '@irys/sdk';
|
|
2
|
+
import { FundResponse, IrysConfig, Network, UploadResponse } from '@irys/sdk/build/cjs/common/types';
|
|
3
3
|
/**
|
|
4
4
|
* The configuration for Bundlr network instances
|
|
5
5
|
*
|
|
@@ -16,16 +16,33 @@ export type BundlrConfig = {
|
|
|
16
16
|
providerUrl?: string;
|
|
17
17
|
};
|
|
18
18
|
/**
|
|
19
|
-
*
|
|
19
|
+
* Represents the constructor arguments for the Irys service.
|
|
20
|
+
*
|
|
21
|
+
* @typedef {Object} IrysConstructorArgs
|
|
22
|
+
* @property {string} [url] - The URL of the Irys service.
|
|
23
|
+
* @property {Network} [network] - The network configuration for the Irys service. Can be mainnet or devnet.
|
|
24
|
+
* @property {string} token - The token for authentication.
|
|
25
|
+
* @property {string} [key] - The key for encryption.
|
|
26
|
+
* @property {IrysConfig} [config] - Additional configuration options for the Irys service.
|
|
27
|
+
*/
|
|
28
|
+
export type IrysConstructorArgs = {
|
|
29
|
+
url?: string;
|
|
30
|
+
network?: Network;
|
|
31
|
+
token: string;
|
|
32
|
+
key?: string;
|
|
33
|
+
config?: IrysConfig;
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* Get the configuration for the Irys network given a chain ID
|
|
20
37
|
*
|
|
21
38
|
* @function
|
|
22
39
|
* @memberof ARWeaveService
|
|
23
40
|
* @param {number} chainId - The chain ID.
|
|
24
|
-
* @returns {
|
|
41
|
+
* @returns {IrysConstructorArgs} - The configuration for the Irys network.
|
|
25
42
|
*/
|
|
26
|
-
export declare function
|
|
43
|
+
export declare function getIrysNetworkConfig(chainId: number): IrysConstructorArgs;
|
|
27
44
|
/**
|
|
28
|
-
* Get
|
|
45
|
+
* Get an Irys instance for a specific network
|
|
29
46
|
*
|
|
30
47
|
* @async
|
|
31
48
|
* @function
|
|
@@ -34,36 +51,36 @@ export declare function getBundlrNetworkConfig(chainId: number): BundlrConfig;
|
|
|
34
51
|
* @param {string} privateKey - The private key of the wallet to use Bundlr with.
|
|
35
52
|
* @returns The Bundlr instance
|
|
36
53
|
*/
|
|
37
|
-
declare function
|
|
54
|
+
declare function getIrysInstance(config: IrysConstructorArgs, privateKey: string): Promise<Irys>;
|
|
38
55
|
/**
|
|
39
|
-
* Prefund the
|
|
56
|
+
* Prefund the Irys network with the specified amount. Required if not lazy funding.
|
|
40
57
|
* Important note: The amount is denominated in the base unit of currency for that network.
|
|
41
|
-
* If you want to upload 5 Matic to the
|
|
58
|
+
* If you want to upload 5 Matic to the Irys node, pass in an amount of 5.
|
|
42
59
|
*
|
|
43
60
|
* @async
|
|
44
61
|
* @function
|
|
45
62
|
* @memberof ARWeaveService
|
|
46
|
-
* @param {
|
|
63
|
+
* @param {IrysConstructorArgs} config - The configuration for the Bundlr network.
|
|
47
64
|
* @param {string} privateKey - The private key of the wallet to send funds from.
|
|
48
65
|
* @param {number} amount - The amount to fund, denoted in whatever currency specified by the config (e.g. MATIC, ETH)
|
|
49
66
|
* @returns {Promise<FundResponse>} - The fund response.
|
|
50
67
|
*/
|
|
51
|
-
declare function
|
|
68
|
+
declare function prefundIrys(config: IrysConstructorArgs, privateKey: string, amount: number): Promise<FundResponse>;
|
|
52
69
|
/**
|
|
53
|
-
* Store data on ARWeave using the
|
|
70
|
+
* Store data on ARWeave using the Irys Network.
|
|
54
71
|
*
|
|
55
72
|
* @async
|
|
56
73
|
* @function
|
|
57
74
|
* @memberof ARWeaveService
|
|
58
|
-
* @param {
|
|
59
|
-
* @param {string} privateKey - Private key used for interacting with the
|
|
60
|
-
* @param {Record<string, unknown>} data - The data to store in the
|
|
75
|
+
* @param {IrysConstructorArgs} config - Configuration object for the Irys instance.
|
|
76
|
+
* @param {string} privateKey - Private key used for interacting with the Irys instance.
|
|
77
|
+
* @param {Record<string, unknown>} data - The data to store in the Irys instance.
|
|
61
78
|
* @param {Array<{ name: string, value: string }>} tags - Array of tag objects with `name` and `value` properties.
|
|
62
|
-
* @param {boolean} [lazyFund=true] - Optional flag to fund the
|
|
63
|
-
*
|
|
79
|
+
* @param {boolean} [lazyFund=true] - Optional flag to fund the Irys instance lazily. If set to `false`, the
|
|
80
|
+
* Irys node should already be funded or else uploads will fail.
|
|
64
81
|
* @returns {Promise<UploadResponse>} Promise resolving with the upload response.
|
|
65
82
|
*/
|
|
66
|
-
declare function storeData(config:
|
|
83
|
+
declare function storeData(config: IrysConstructorArgs, privateKey: string, data: Record<string, unknown>, tags: {
|
|
67
84
|
name: string;
|
|
68
85
|
value: string;
|
|
69
86
|
}[], lazyFund?: boolean): Promise<UploadResponse>;
|
|
@@ -106,9 +123,9 @@ declare function getURIFromARWeaveId(arweaveId: string): string;
|
|
|
106
123
|
export declare const ARWeaveService: {
|
|
107
124
|
queryForMetadata: typeof queryForMetadata;
|
|
108
125
|
storeData: typeof storeData;
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
126
|
+
prefundIrys: typeof prefundIrys;
|
|
127
|
+
getIrysNetworkConfig: typeof getIrysNetworkConfig;
|
|
128
|
+
getIrysInstance: typeof getIrysInstance;
|
|
112
129
|
fetchMetadataFromUrl: typeof fetchMetadataFromUrl;
|
|
113
130
|
getURIFromARWeaveId: typeof getURIFromARWeaveId;
|
|
114
131
|
};
|
|
@@ -1,76 +1,79 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ARWeaveService =
|
|
3
|
+
exports.ARWeaveService = void 0;
|
|
4
|
+
exports.getIrysNetworkConfig = getIrysNetworkConfig;
|
|
4
5
|
const tslib_1 = require("tslib");
|
|
5
|
-
const
|
|
6
|
+
const sdk_1 = tslib_1.__importDefault(require("@irys/sdk"));
|
|
6
7
|
const axios_1 = tslib_1.__importDefault(require("axios"));
|
|
7
8
|
const graphql_request_1 = tslib_1.__importStar(require("graphql-request"));
|
|
8
9
|
/**
|
|
9
|
-
* Get the configuration for
|
|
10
|
+
* Get the configuration for the Irys network given a chain ID
|
|
10
11
|
*
|
|
11
12
|
* @function
|
|
12
13
|
* @memberof ARWeaveService
|
|
13
14
|
* @param {number} chainId - The chain ID.
|
|
14
|
-
* @returns {
|
|
15
|
+
* @returns {IrysConstructorArgs} - The configuration for the Irys network.
|
|
15
16
|
*/
|
|
16
|
-
function
|
|
17
|
+
function getIrysNetworkConfig(chainId) {
|
|
17
18
|
switch (chainId) {
|
|
18
|
-
case 5: // Goerli
|
|
19
|
-
return {
|
|
20
|
-
nodeUrl: 'https://devnet.bundlr.network',
|
|
21
|
-
currency: 'ethereum',
|
|
22
|
-
providerUrl: 'https://goerli.infura.io/v3/9aa3d95b3bc440fa88ea12eaa4456161',
|
|
23
|
-
};
|
|
24
|
-
// @dev #TODO: remove mumbai
|
|
25
|
-
case 80001: // Mumbai
|
|
26
|
-
return {
|
|
27
|
-
nodeUrl: 'https://devnet.bundlr.network',
|
|
28
|
-
currency: 'matic',
|
|
29
|
-
providerUrl: 'https://rpc.ankr.com/polygon_mumbai',
|
|
30
|
-
};
|
|
31
19
|
case 80002: // Amoy
|
|
32
20
|
return {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
21
|
+
network: 'devnet',
|
|
22
|
+
token: 'matic',
|
|
23
|
+
config: {
|
|
24
|
+
providerUrl: 'https://rpc.ankr.com/polygon_amoy',
|
|
25
|
+
},
|
|
36
26
|
};
|
|
37
27
|
case 137: // Matic
|
|
38
28
|
return {
|
|
39
|
-
|
|
40
|
-
|
|
29
|
+
network: 'mainnet',
|
|
30
|
+
token: 'matic',
|
|
41
31
|
};
|
|
42
32
|
case 44787: // Alfajores
|
|
43
33
|
return {
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
// TODO: Allow for any currency combination with network
|
|
34
|
+
network: 'devnet',
|
|
35
|
+
token: '',
|
|
47
36
|
};
|
|
48
37
|
case 42220: // Celo
|
|
49
38
|
return {
|
|
50
|
-
|
|
51
|
-
|
|
39
|
+
network: 'mainnet',
|
|
40
|
+
token: '', // Uploads with Celo is not currently supported by Bundlr
|
|
52
41
|
};
|
|
53
42
|
case 534352: // Scroll
|
|
54
43
|
return {
|
|
55
|
-
|
|
56
|
-
|
|
44
|
+
network: 'mainnet',
|
|
45
|
+
token: 'scroll-eth',
|
|
57
46
|
};
|
|
58
47
|
case 534351: // Scroll Sepolia
|
|
59
48
|
return {
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
49
|
+
network: 'devnet',
|
|
50
|
+
token: 'scroll-eth',
|
|
51
|
+
config: {
|
|
52
|
+
providerUrl: 'https://rpc.ankr.com/scroll_sepolia_testnet',
|
|
53
|
+
},
|
|
54
|
+
};
|
|
55
|
+
case 101: // Solana Mainnet
|
|
56
|
+
return {
|
|
57
|
+
network: 'mainnet',
|
|
58
|
+
token: 'solana',
|
|
59
|
+
};
|
|
60
|
+
case 103: // Solana Devnet
|
|
61
|
+
return {
|
|
62
|
+
network: 'devnet',
|
|
63
|
+
token: 'solana',
|
|
64
|
+
config: {
|
|
65
|
+
providerUrl: 'https://api.devnet.solana.com',
|
|
66
|
+
},
|
|
63
67
|
};
|
|
64
68
|
default:
|
|
65
69
|
return {
|
|
66
|
-
|
|
67
|
-
|
|
70
|
+
network: '',
|
|
71
|
+
token: '',
|
|
68
72
|
};
|
|
69
73
|
}
|
|
70
74
|
}
|
|
71
|
-
exports.getBundlrNetworkConfig = getBundlrNetworkConfig;
|
|
72
75
|
/**
|
|
73
|
-
* Get
|
|
76
|
+
* Get an Irys instance for a specific network
|
|
74
77
|
*
|
|
75
78
|
* @async
|
|
76
79
|
* @function
|
|
@@ -79,72 +82,54 @@ exports.getBundlrNetworkConfig = getBundlrNetworkConfig;
|
|
|
79
82
|
* @param {string} privateKey - The private key of the wallet to use Bundlr with.
|
|
80
83
|
* @returns The Bundlr instance
|
|
81
84
|
*/
|
|
82
|
-
async function
|
|
83
|
-
|
|
84
|
-
? {
|
|
85
|
-
providerUrl: config.providerUrl,
|
|
86
|
-
}
|
|
87
|
-
: undefined);
|
|
88
|
-
await bundlr.ready();
|
|
89
|
-
return bundlr;
|
|
85
|
+
async function getIrysInstance(config, privateKey) {
|
|
86
|
+
return new sdk_1.default(Object.assign(Object.assign({}, config), { key: privateKey }));
|
|
90
87
|
}
|
|
91
88
|
/**
|
|
92
|
-
* Prefund the
|
|
89
|
+
* Prefund the Irys network with the specified amount. Required if not lazy funding.
|
|
93
90
|
* Important note: The amount is denominated in the base unit of currency for that network.
|
|
94
|
-
* If you want to upload 5 Matic to the
|
|
91
|
+
* If you want to upload 5 Matic to the Irys node, pass in an amount of 5.
|
|
95
92
|
*
|
|
96
93
|
* @async
|
|
97
94
|
* @function
|
|
98
95
|
* @memberof ARWeaveService
|
|
99
|
-
* @param {
|
|
96
|
+
* @param {IrysConstructorArgs} config - The configuration for the Bundlr network.
|
|
100
97
|
* @param {string} privateKey - The private key of the wallet to send funds from.
|
|
101
98
|
* @param {number} amount - The amount to fund, denoted in whatever currency specified by the config (e.g. MATIC, ETH)
|
|
102
99
|
* @returns {Promise<FundResponse>} - The fund response.
|
|
103
100
|
*/
|
|
104
|
-
async function
|
|
105
|
-
|
|
106
|
-
privateKey, amount) {
|
|
107
|
-
const bundlr = new client_1.default(config.nodeUrl, config.currency, privateKey, config.providerUrl
|
|
108
|
-
? {
|
|
109
|
-
providerUrl: config.providerUrl,
|
|
110
|
-
}
|
|
111
|
-
: undefined);
|
|
112
|
-
await bundlr.ready();
|
|
101
|
+
async function prefundIrys(config, privateKey, amount) {
|
|
102
|
+
const irys = await getIrysInstance(config, privateKey);
|
|
113
103
|
// Convert currency to its atomic units (e.g. MATIC -> wei)
|
|
114
|
-
const atomicAmount =
|
|
115
|
-
return
|
|
104
|
+
const atomicAmount = irys.utils.toAtomic(amount);
|
|
105
|
+
return irys.fund(atomicAmount);
|
|
116
106
|
}
|
|
117
107
|
/**
|
|
118
|
-
* Store data on ARWeave using the
|
|
108
|
+
* Store data on ARWeave using the Irys Network.
|
|
119
109
|
*
|
|
120
110
|
* @async
|
|
121
111
|
* @function
|
|
122
112
|
* @memberof ARWeaveService
|
|
123
|
-
* @param {
|
|
124
|
-
* @param {string} privateKey - Private key used for interacting with the
|
|
125
|
-
* @param {Record<string, unknown>} data - The data to store in the
|
|
113
|
+
* @param {IrysConstructorArgs} config - Configuration object for the Irys instance.
|
|
114
|
+
* @param {string} privateKey - Private key used for interacting with the Irys instance.
|
|
115
|
+
* @param {Record<string, unknown>} data - The data to store in the Irys instance.
|
|
126
116
|
* @param {Array<{ name: string, value: string }>} tags - Array of tag objects with `name` and `value` properties.
|
|
127
|
-
* @param {boolean} [lazyFund=true] - Optional flag to fund the
|
|
128
|
-
*
|
|
117
|
+
* @param {boolean} [lazyFund=true] - Optional flag to fund the Irys instance lazily. If set to `false`, the
|
|
118
|
+
* Irys node should already be funded or else uploads will fail.
|
|
129
119
|
* @returns {Promise<UploadResponse>} Promise resolving with the upload response.
|
|
130
120
|
*/
|
|
131
121
|
async function storeData(config, privateKey, data, tags, lazyFund = true) {
|
|
132
|
-
const
|
|
133
|
-
? {
|
|
134
|
-
providerUrl: config.providerUrl,
|
|
135
|
-
}
|
|
136
|
-
: undefined);
|
|
137
|
-
await bundlr.ready();
|
|
122
|
+
const irys = await getIrysInstance(config, privateKey);
|
|
138
123
|
const dataStr = JSON.stringify(data);
|
|
139
124
|
if (lazyFund) {
|
|
140
125
|
const size = Buffer.byteLength(dataStr);
|
|
141
|
-
const price = await
|
|
126
|
+
const price = await irys.getPrice(size);
|
|
142
127
|
// Add a buffer of 20% to account for fluctuations in the price
|
|
143
128
|
const priceWithBuffer = price.multipliedBy(1.2).integerValue();
|
|
144
|
-
console.log(`Funding
|
|
145
|
-
await
|
|
129
|
+
console.log(`Funding irys with ${priceWithBuffer} ${config.token} to upload data`);
|
|
130
|
+
await irys.fund(priceWithBuffer);
|
|
146
131
|
}
|
|
147
|
-
return
|
|
132
|
+
return irys.upload(dataStr, { tags });
|
|
148
133
|
}
|
|
149
134
|
/**
|
|
150
135
|
* Helper method to query the Arweave network for receivables metadata previously uploaded.
|
|
@@ -159,7 +144,7 @@ async function storeData(config, privateKey, data, tags, lazyFund = true) {
|
|
|
159
144
|
*/
|
|
160
145
|
async function queryForMetadata(chainId, sender, referenceId) {
|
|
161
146
|
var _a, _b, _c, _d;
|
|
162
|
-
const config =
|
|
147
|
+
const config = getIrysNetworkConfig(chainId);
|
|
163
148
|
const query = (0, graphql_request_1.gql) `
|
|
164
149
|
query ArweaveHumaMetadataQuery($sender: String!, $referenceId: String!) {
|
|
165
150
|
transactions(
|
|
@@ -178,7 +163,9 @@ async function queryForMetadata(chainId, sender, referenceId) {
|
|
|
178
163
|
}
|
|
179
164
|
`;
|
|
180
165
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
181
|
-
const data = await (0, graphql_request_1.default)(
|
|
166
|
+
const data = await (0, graphql_request_1.default)(config.network === 'mainnet'
|
|
167
|
+
? 'https://arweave.mainnet.irys.xyz/graphql'
|
|
168
|
+
: 'https://arweave.devnet.irys.xyz/graphql', query, {
|
|
182
169
|
sender,
|
|
183
170
|
referenceId,
|
|
184
171
|
});
|
|
@@ -222,9 +209,9 @@ function getURIFromARWeaveId(arweaveId) {
|
|
|
222
209
|
exports.ARWeaveService = {
|
|
223
210
|
queryForMetadata,
|
|
224
211
|
storeData,
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
212
|
+
prefundIrys,
|
|
213
|
+
getIrysNetworkConfig,
|
|
214
|
+
getIrysInstance,
|
|
228
215
|
fetchMetadataFromUrl,
|
|
229
216
|
getURIFromARWeaveId,
|
|
230
217
|
};
|