@metadaoproject/futarchy 0.3.0-alpha.0

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.
Files changed (52) hide show
  1. package/dist/AmmClient.d.ts +191 -0
  2. package/dist/AmmClient.js +278 -0
  3. package/dist/AmmClient.js.map +1 -0
  4. package/dist/AutocratClient.d.ts +284 -0
  5. package/dist/AutocratClient.js +229 -0
  6. package/dist/AutocratClient.js.map +1 -0
  7. package/dist/ConditionalVaultClient.d.ts +146 -0
  8. package/dist/ConditionalVaultClient.js +124 -0
  9. package/dist/ConditionalVaultClient.js.map +1 -0
  10. package/dist/InstructionHandler.d.ts +27 -0
  11. package/dist/InstructionHandler.js +95 -0
  12. package/dist/InstructionHandler.js.map +1 -0
  13. package/dist/constants.d.ts +9 -0
  14. package/dist/constants.js +13 -0
  15. package/dist/constants.js.map +1 -0
  16. package/dist/index.d.ts +6 -0
  17. package/dist/index.js +23 -0
  18. package/dist/index.js.map +1 -0
  19. package/dist/types/amm.d.ts +542 -0
  20. package/dist/types/amm.js +545 -0
  21. package/dist/types/amm.js.map +1 -0
  22. package/dist/types/autocrat.d.ts +632 -0
  23. package/dist/types/autocrat.js +635 -0
  24. package/dist/types/autocrat.js.map +1 -0
  25. package/dist/types/conditional_vault.d.ts +448 -0
  26. package/dist/types/conditional_vault.js +451 -0
  27. package/dist/types/conditional_vault.js.map +1 -0
  28. package/dist/types/index.d.ts +20 -0
  29. package/dist/types/index.js +10 -0
  30. package/dist/types/index.js.map +1 -0
  31. package/dist/utils/cu.d.ts +8 -0
  32. package/dist/utils/cu.js +12 -0
  33. package/dist/utils/cu.js.map +1 -0
  34. package/dist/utils/filters.d.ts +3 -0
  35. package/dist/utils/filters.js +19 -0
  36. package/dist/utils/filters.js.map +1 -0
  37. package/dist/utils/index.d.ts +17 -0
  38. package/dist/utils/index.js +51 -0
  39. package/dist/utils/index.js.map +1 -0
  40. package/dist/utils/instruction.d.ts +4 -0
  41. package/dist/utils/instruction.js +14 -0
  42. package/dist/utils/instruction.js.map +1 -0
  43. package/dist/utils/metadata.d.ts +4 -0
  44. package/dist/utils/metadata.js +30 -0
  45. package/dist/utils/metadata.js.map +1 -0
  46. package/dist/utils/pda.d.ts +10 -0
  47. package/dist/utils/pda.js +58 -0
  48. package/dist/utils/pda.js.map +1 -0
  49. package/dist/utils/priceMath.d.ts +9 -0
  50. package/dist/utils/priceMath.js +42 -0
  51. package/dist/utils/priceMath.js.map +1 -0
  52. package/package.json +35 -0
@@ -0,0 +1,124 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ConditionalVaultClient = void 0;
7
+ const anchor_1 = require("@coral-xyz/anchor");
8
+ const web3_js_1 = require("@solana/web3.js");
9
+ const conditional_vault_1 = require("./types/conditional_vault");
10
+ const bn_js_1 = __importDefault(require("bn.js"));
11
+ const constants_1 = require("./constants");
12
+ const utils_1 = require("./utils");
13
+ const spl_token_1 = require("@solana/spl-token");
14
+ class ConditionalVaultClient {
15
+ provider;
16
+ vaultProgram;
17
+ luts;
18
+ constructor(provider, conditionalVaultProgramId, luts) {
19
+ this.provider = provider;
20
+ this.vaultProgram = new anchor_1.Program(conditional_vault_1.IDL, conditionalVaultProgramId, provider);
21
+ this.luts = luts;
22
+ }
23
+ static createClient(createVaultClientParams) {
24
+ let { provider, conditionalVaultProgramId } = createVaultClientParams;
25
+ const luts = [];
26
+ return new ConditionalVaultClient(provider, conditionalVaultProgramId || constants_1.CONDITIONAL_VAULT_PROGRAM_ID, luts);
27
+ }
28
+ async getVault(vault) {
29
+ return this.vaultProgram.account.conditionalVault.fetch(vault);
30
+ }
31
+ async mintConditionalTokens(vault, uiAmount, user) {
32
+ const storedVault = await this.getVault(vault);
33
+ return (this.mintConditionalTokensIx(vault, storedVault.underlyingTokenMint, new bn_js_1.default(uiAmount).mul(new bn_js_1.default(10).pow(new bn_js_1.default(storedVault.decimals))), user)
34
+ // .preInstructions([
35
+ // createAssociatedTokenAccountIdempotentInstruction(this.provider.publicKey, )
36
+ // ])
37
+ .rpc());
38
+ }
39
+ mintConditionalTokensIx(vault, underlyingTokenMint, amount, user) {
40
+ let userPubkey;
41
+ if (!user) {
42
+ userPubkey = this.provider.publicKey;
43
+ }
44
+ else if (user instanceof web3_js_1.Keypair) {
45
+ userPubkey = user.publicKey;
46
+ }
47
+ else {
48
+ userPubkey = user;
49
+ }
50
+ const [conditionalOnFinalizeTokenMint] = (0, utils_1.getVaultFinalizeMintAddr)(this.vaultProgram.programId, vault);
51
+ const [conditionalOnRevertTokenMint] = (0, utils_1.getVaultRevertMintAddr)(this.vaultProgram.programId, vault);
52
+ let userConditionalOnFinalizeTokenAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(conditionalOnFinalizeTokenMint, userPubkey);
53
+ let userConditionalOnRevertTokenAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(conditionalOnRevertTokenMint, userPubkey);
54
+ let ix = this.vaultProgram.methods
55
+ .mintConditionalTokens(amount)
56
+ .accounts({
57
+ authority: userPubkey,
58
+ vault,
59
+ vaultUnderlyingTokenAccount: (0, spl_token_1.getAssociatedTokenAddressSync)(underlyingTokenMint, vault, true),
60
+ userUnderlyingTokenAccount: (0, spl_token_1.getAssociatedTokenAddressSync)(underlyingTokenMint, userPubkey, true),
61
+ conditionalOnFinalizeTokenMint,
62
+ userConditionalOnFinalizeTokenAccount,
63
+ conditionalOnRevertTokenMint,
64
+ userConditionalOnRevertTokenAccount,
65
+ })
66
+ .preInstructions([
67
+ (0, spl_token_1.createAssociatedTokenAccountIdempotentInstruction)(userPubkey, userConditionalOnFinalizeTokenAccount, userPubkey, conditionalOnFinalizeTokenMint),
68
+ (0, spl_token_1.createAssociatedTokenAccountIdempotentInstruction)(userPubkey, userConditionalOnRevertTokenAccount, userPubkey, conditionalOnRevertTokenMint),
69
+ ]);
70
+ if (user instanceof web3_js_1.Keypair) {
71
+ ix = ix.signers([user]);
72
+ }
73
+ return ix;
74
+ }
75
+ initializeVaultIx(settlementAuthority, underlyingTokenMint) {
76
+ const [vault] = (0, utils_1.getVaultAddr)(this.vaultProgram.programId, settlementAuthority, underlyingTokenMint);
77
+ const [conditionalOnFinalizeTokenMint] = (0, utils_1.getVaultFinalizeMintAddr)(this.vaultProgram.programId, vault);
78
+ const [conditionalOnRevertTokenMint] = (0, utils_1.getVaultRevertMintAddr)(this.vaultProgram.programId, vault);
79
+ const vaultUnderlyingTokenAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(underlyingTokenMint, vault, true);
80
+ return this.vaultProgram.methods
81
+ .initializeConditionalVault({ settlementAuthority })
82
+ .accounts({
83
+ vault,
84
+ underlyingTokenMint,
85
+ vaultUnderlyingTokenAccount,
86
+ conditionalOnFinalizeTokenMint,
87
+ conditionalOnRevertTokenMint,
88
+ })
89
+ .preInstructions([
90
+ (0, spl_token_1.createAssociatedTokenAccountIdempotentInstruction)(this.provider.publicKey, vaultUnderlyingTokenAccount, vault, underlyingTokenMint),
91
+ ]);
92
+ }
93
+ addMetadataToConditionalTokensIx(vault, underlyingTokenMint, proposalNumber, onFinalizeUri, onRevertUri) {
94
+ const [underlyingTokenMetadata] = (0, utils_1.getMetadataAddr)(underlyingTokenMint);
95
+ const [conditionalOnFinalizeTokenMint] = (0, utils_1.getVaultFinalizeMintAddr)(this.vaultProgram.programId, vault);
96
+ const [conditionalOnRevertTokenMint] = (0, utils_1.getVaultRevertMintAddr)(this.vaultProgram.programId, vault);
97
+ const [conditionalOnFinalizeTokenMetadata] = (0, utils_1.getMetadataAddr)(conditionalOnFinalizeTokenMint);
98
+ const [conditionalOnRevertTokenMetadata] = (0, utils_1.getMetadataAddr)(conditionalOnRevertTokenMint);
99
+ return this.vaultProgram.methods
100
+ .addMetadataToConditionalTokens({
101
+ proposalNumber: new bn_js_1.default(proposalNumber),
102
+ onFinalizeUri,
103
+ onRevertUri,
104
+ })
105
+ .accounts({
106
+ payer: this.provider.publicKey,
107
+ vault,
108
+ underlyingTokenMint,
109
+ underlyingTokenMetadata,
110
+ conditionalOnFinalizeTokenMint,
111
+ conditionalOnRevertTokenMint,
112
+ conditionalOnFinalizeTokenMetadata,
113
+ conditionalOnRevertTokenMetadata,
114
+ tokenMetadataProgram: constants_1.MPL_TOKEN_METADATA_PROGRAM_ID,
115
+ });
116
+ }
117
+ async initializeVault(settlementAuthority, underlyingTokenMint) {
118
+ const [vault] = (0, utils_1.getVaultAddr)(this.vaultProgram.programId, settlementAuthority, underlyingTokenMint);
119
+ await this.initializeVaultIx(settlementAuthority, underlyingTokenMint).rpc();
120
+ return vault;
121
+ }
122
+ }
123
+ exports.ConditionalVaultClient = ConditionalVaultClient;
124
+ //# sourceMappingURL=ConditionalVaultClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConditionalVaultClient.js","sourceRoot":"","sources":["../src/ConditionalVaultClient.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import { AddressLookupTableAccount, Blockhash, ConfirmOptions, Keypair, Signer, TransactionInstruction, VersionedTransaction } from "@solana/web3.js";
2
+ import { BanksClient } from "solana-bankrun";
3
+ import { AnchorProvider } from "@coral-xyz/anchor";
4
+ export type SignerOrKeypair = Signer | Keypair;
5
+ interface Client<ProgramType> {
6
+ provider: AnchorProvider;
7
+ program: ProgramType;
8
+ luts: AddressLookupTableAccount[];
9
+ }
10
+ export declare class InstructionHandler<ProgramType, Type extends Client<ProgramType> = Client<ProgramType>> {
11
+ instructions: TransactionInstruction[];
12
+ signers: Set<SignerOrKeypair>;
13
+ client: Type;
14
+ computeUnits: number;
15
+ microLamportsPerComputeUnit: number;
16
+ preInstructions: TransactionInstruction[];
17
+ postInstructions: TransactionInstruction[];
18
+ constructor(instructions: TransactionInstruction[], signers: SignerOrKeypair[], client: Type);
19
+ addPreInstructions(instructions: TransactionInstruction[], signers?: SignerOrKeypair[]): InstructionHandler<ProgramType, Type>;
20
+ addPostInstructions(instructions: TransactionInstruction[], signers?: SignerOrKeypair[]): InstructionHandler<ProgramType, Type>;
21
+ getVersionedTransaction(blockhash: Blockhash): Promise<VersionedTransaction>;
22
+ setComputeUnits(computeUnits: number): InstructionHandler<ProgramType, Type>;
23
+ setPriorityFee(microLamportsPerComputeUnit: number): InstructionHandler<ProgramType, Type>;
24
+ bankrun(banksClient: BanksClient): Promise<import("solana-bankrun").BanksTransactionMeta>;
25
+ rpc(opts?: ConfirmOptions): Promise<string>;
26
+ }
27
+ export {};
@@ -0,0 +1,95 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.InstructionHandler = void 0;
4
+ const web3_js_1 = require("@solana/web3.js");
5
+ const utils_1 = require("./utils");
6
+ class InstructionHandler {
7
+ instructions;
8
+ signers;
9
+ client;
10
+ computeUnits = 200_000;
11
+ microLamportsPerComputeUnit = 0;
12
+ preInstructions;
13
+ postInstructions;
14
+ constructor(instructions, signers, client) {
15
+ this.instructions = instructions;
16
+ this.signers = new Set();
17
+ signers.forEach((s) => this.signers.add(s));
18
+ this.client = client;
19
+ this.preInstructions = [];
20
+ this.postInstructions = [];
21
+ }
22
+ addPreInstructions(instructions, signers = []) {
23
+ this.preInstructions = [...instructions, ...this.preInstructions];
24
+ signers.forEach((s) => this.signers.add(s));
25
+ return this;
26
+ }
27
+ addPostInstructions(instructions, signers = []) {
28
+ this.postInstructions = [...instructions, ...this.postInstructions];
29
+ signers.forEach((s) => this.signers.add(s));
30
+ return this;
31
+ }
32
+ async getVersionedTransaction(blockhash) {
33
+ this.instructions = [
34
+ ...this.preInstructions,
35
+ ...this.instructions,
36
+ ...this.postInstructions,
37
+ ];
38
+ if (this.microLamportsPerComputeUnit != 0) {
39
+ this.instructions = [
40
+ (0, utils_1.addPriorityFee)(this.microLamportsPerComputeUnit),
41
+ ...this.instructions,
42
+ ];
43
+ }
44
+ if (this.computeUnits != 200_000) {
45
+ this.instructions = [
46
+ (0, utils_1.addComputeUnits)(this.computeUnits),
47
+ ...this.instructions,
48
+ ];
49
+ }
50
+ const message = new web3_js_1.TransactionMessage({
51
+ payerKey: this.client.provider.wallet.publicKey,
52
+ recentBlockhash: blockhash,
53
+ instructions: this.instructions,
54
+ }).compileToV0Message(this.client.luts);
55
+ let tx = new web3_js_1.VersionedTransaction(message);
56
+ let signersArray = Array.from(this.signers);
57
+ if (this.signers.size) {
58
+ tx.sign(signersArray);
59
+ }
60
+ return tx;
61
+ }
62
+ setComputeUnits(computeUnits) {
63
+ this.computeUnits = computeUnits;
64
+ return this;
65
+ }
66
+ setPriorityFee(microLamportsPerComputeUnit) {
67
+ this.microLamportsPerComputeUnit = microLamportsPerComputeUnit;
68
+ return this;
69
+ }
70
+ async bankrun(banksClient) {
71
+ try {
72
+ let [blockhash] = (await banksClient.getLatestBlockhash());
73
+ const tx = await this.getVersionedTransaction(blockhash);
74
+ return await banksClient.processTransaction(tx);
75
+ }
76
+ catch (e) {
77
+ console.log(e);
78
+ throw e;
79
+ }
80
+ }
81
+ async rpc(opts = { skipPreflight: true }) {
82
+ try {
83
+ let blockhash = (await this.client.provider.connection.getLatestBlockhash()).blockhash;
84
+ let tx = await this.getVersionedTransaction(blockhash);
85
+ tx = await this.client.provider.wallet.signTransaction(tx);
86
+ return await this.client.provider.connection.sendRawTransaction(tx.serialize(), opts);
87
+ }
88
+ catch (e) {
89
+ console.log(e);
90
+ throw e;
91
+ }
92
+ }
93
+ }
94
+ exports.InstructionHandler = InstructionHandler;
95
+ //# sourceMappingURL=InstructionHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InstructionHandler.js","sourceRoot":"","sources":["../src/InstructionHandler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { PublicKey } from "@solana/web3.js";
2
+ export declare const AUTOCRAT_PROGRAM_ID: PublicKey;
3
+ export declare const AMM_PROGRAM_ID: PublicKey;
4
+ export declare const CONDITIONAL_VAULT_PROGRAM_ID: PublicKey;
5
+ export declare const MPL_TOKEN_METADATA_PROGRAM_ID: PublicKey;
6
+ export declare const META_MINT: PublicKey;
7
+ export declare const MAINNET_USDC: PublicKey;
8
+ export declare const USDC_DECIMALS = 6;
9
+ export declare const AUTOCRAT_LUTS: PublicKey[];
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AUTOCRAT_LUTS = exports.USDC_DECIMALS = exports.MAINNET_USDC = exports.META_MINT = exports.MPL_TOKEN_METADATA_PROGRAM_ID = exports.CONDITIONAL_VAULT_PROGRAM_ID = exports.AMM_PROGRAM_ID = exports.AUTOCRAT_PROGRAM_ID = void 0;
4
+ const web3_js_1 = require("@solana/web3.js");
5
+ exports.AUTOCRAT_PROGRAM_ID = new web3_js_1.PublicKey("autoQP9RmUNkzzKRXsMkWicDVZ3h29vvyMDcAYjCxxg");
6
+ exports.AMM_PROGRAM_ID = new web3_js_1.PublicKey("AMM5G2nxuKUwCLRYTW7qqEwuoqCtNSjtbipwEmm2g8bH");
7
+ exports.CONDITIONAL_VAULT_PROGRAM_ID = new web3_js_1.PublicKey("VAU1T7S5UuEHmMvXtXMVmpEoQtZ2ya7eRb7gcN47wDp");
8
+ exports.MPL_TOKEN_METADATA_PROGRAM_ID = new web3_js_1.PublicKey("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s");
9
+ exports.META_MINT = new web3_js_1.PublicKey("3gN1WVEJwSHNWjo7hr87DgZp6zkf8kWgAJD29DmfE2Gr");
10
+ exports.MAINNET_USDC = new web3_js_1.PublicKey("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v");
11
+ exports.USDC_DECIMALS = 6;
12
+ exports.AUTOCRAT_LUTS = [];
13
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;;AAAA,6CAA4C;AAE/B,QAAA,mBAAmB,GAAG,IAAI,mBAAS,CAC9C,6CAA6C,CAC9C,CAAC;AACW,QAAA,cAAc,GAAG,IAAI,mBAAS,CACzC,8CAA8C,CAC/C,CAAC;AACW,QAAA,4BAA4B,GAAG,IAAI,mBAAS,CACvD,6CAA6C,CAC9C,CAAC;AAEW,QAAA,6BAA6B,GAAG,IAAI,mBAAS,CACxD,6CAA6C,CAC9C,CAAC;AAEW,QAAA,SAAS,GAAG,IAAI,mBAAS,CACpC,8CAA8C,CAC/C,CAAC;AACW,QAAA,YAAY,GAAG,IAAI,mBAAS,CACvC,8CAA8C,CAC/C,CAAC;AAEW,QAAA,aAAa,GAAG,CAAC,CAAC;AAElB,QAAA,aAAa,GAAgB,EAAE,CAAC"}
@@ -0,0 +1,6 @@
1
+ export * from "./types";
2
+ export * from "./utils";
3
+ export * from "./constants";
4
+ export * from "./AmmClient";
5
+ export * from "./AutocratClient";
6
+ export * from "./ConditionalVaultClient";
package/dist/index.js ADDED
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./types"), exports);
18
+ __exportStar(require("./utils"), exports);
19
+ __exportStar(require("./constants"), exports);
20
+ __exportStar(require("./AmmClient"), exports);
21
+ __exportStar(require("./AutocratClient"), exports);
22
+ __exportStar(require("./ConditionalVaultClient"), exports);
23
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,0CAAwB;AACxB,8CAA4B;AAC5B,8CAA4B;AAC5B,mDAAiC;AACjC,2DAAyC"}