@render-foundation/utils 0.0.2 → 0.0.5

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.
@@ -0,0 +1,51 @@
1
+ export const renderClient = (authToken) => {
2
+ const host = `rndr.x.io`;
3
+ return {
4
+ async fetchNodeOperatorRewards(startTime, endTime) {
5
+ const startTimeStr = startTime.toISOString().split('T')[0];
6
+ const endTimeStr = endTime.toISOString().split('T')[0];
7
+ const url = `https://${host}/api/v3/services/solana/payments?finished_after=${startTimeStr}&finished_before=${endTimeStr}`;
8
+ console.log(`fetching ${url}`);
9
+ const res = await fetch(url, { headers: { Authorization: `${authToken}` } }).then(async (res) => {
10
+ if (res.status != 200) {
11
+ throw new Error(`failed fetching node operator rewards. code: ${res.status} body: ${JSON.stringify(await res.text())}`);
12
+ }
13
+ return (await res.json());
14
+ });
15
+ const solKeyToDue = {};
16
+ for (const r of res.data.attributes.paymentsOwned) {
17
+ const [addr, amt] = Object.entries(r)[0];
18
+ solKeyToDue[addr] = amt;
19
+ }
20
+ return { solKeyToDue, jobIds: res.meta.jobIds };
21
+ },
22
+ async markJobsPayed(ids, finishedAfter, finishedBefore, totalDistributed) {
23
+ const payload = {
24
+ data: {
25
+ attributes: {
26
+ finished_after: finishedAfter.toISOString().split('T')[0],
27
+ finished_before: finishedBefore.toISOString().split('T')[0],
28
+ job_ids: ids,
29
+ total_distributed: totalDistributed
30
+ }
31
+ }
32
+ };
33
+ const res = await fetch(`https://${host}/api/v3/services/solana/payments`, {
34
+ method: 'POST',
35
+ headers: {
36
+ 'Authorization': `${authToken}`,
37
+ 'Content-Type': `application/json`
38
+ },
39
+ body: JSON.stringify(payload)
40
+ }).then(async (res) => {
41
+ if (res.status != 201) {
42
+ throw new Error(`failed posting node operator rewards. code: ${res.status} body: ${JSON.stringify(await res.text())}`);
43
+ }
44
+ return (await res.text());
45
+ });
46
+ console.log(`markJobsPayed ${res}`);
47
+ return;
48
+ }
49
+ };
50
+ };
51
+ //# sourceMappingURL=renderClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderClient.js","sourceRoot":"","sources":["../../../src/renderClient.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ import { DEFAULT_MULTISIG_PROGRAM_ID, getAuthorityPDA, getTxPDA } from "@sqds/sdk";
2
+ import BN from "bn.js";
3
+ import { Transaction } from "@solana/web3.js";
4
+ import { sendAndConfirmWithRetry } from "@render-foundation/spl-utils";
5
+ export const executeSqV3Transaction = async (connection, squadsMsKey, clients, instrs) => {
6
+ const msAuthorityK = getAuthorityPDA(squadsMsKey, new BN(1), DEFAULT_MULTISIG_PROGRAM_ID)[0];
7
+ let txPDA;
8
+ const primClient = clients[0];
9
+ const txIdx = await primClient.getNextTransactionIndex(squadsMsKey);
10
+ txPDA = getTxPDA(squadsMsKey, new BN(txIdx), DEFAULT_MULTISIG_PROGRAM_ID)[0];
11
+ let createTx = new Transaction()
12
+ .add(await primClient.buildCreateTransaction(squadsMsKey, 1, txIdx));
13
+ let instrIdx = 1;
14
+ for (const i of instrs) {
15
+ createTx.add(await primClient.buildAddInstruction(squadsMsKey, txPDA, i, instrIdx));
16
+ instrIdx += 1;
17
+ }
18
+ createTx.add(await primClient.buildActivateTransaction(squadsMsKey, txPDA));
19
+ for (const c of clients) {
20
+ createTx.add(await c.buildApproveTransaction(squadsMsKey, txPDA));
21
+ }
22
+ createTx.recentBlockhash = (await connection.getLatestBlockhash()).blockhash;
23
+ createTx.feePayer = primClient.wallet.publicKey;
24
+ for (const c of clients) {
25
+ createTx = await c.wallet.signTransaction(createTx);
26
+ }
27
+ //createTx.sign(sharedMsKp, authorityKp)
28
+ await sendAndConfirmWithRetry(connection, createTx.serialize(), {
29
+ skipPreflight: true,
30
+ maxRetries: 10,
31
+ }, 'finalized');
32
+ console.log(`created tx ${txPDA}`);
33
+ console.log(`executing tx ${txPDA}`);
34
+ let execTx = new Transaction().add(await primClient.buildExecuteTransaction(txPDA, primClient.wallet.publicKey));
35
+ execTx.recentBlockhash = (await connection.getLatestBlockhash()).blockhash;
36
+ execTx.feePayer = primClient.wallet.publicKey;
37
+ execTx = await primClient.wallet.signTransaction(execTx);
38
+ //execTx.sign(args.solFeePayerKp)
39
+ const { txid } = await sendAndConfirmWithRetry(connection, execTx.serialize(), {
40
+ skipPreflight: true,
41
+ maxRetries: 10,
42
+ }, 'confirmed');
43
+ console.log(`executed ${txid}`);
44
+ return { txSig: txid, txPDA };
45
+ };
46
+ //# sourceMappingURL=squadsV3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"squadsV3.js","sourceRoot":"","sources":["../../../src/squadsV3.ts"],"names":[],"mappings":"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"}