@metadaoproject/futarchy 0.4.0-alpha.0 → 0.4.0-alpha.10
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/package.json +5 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.js +0 -16
- package/dist/index.js.map +0 -1
- package/dist/v0.4/AmmClient.d.ts +0 -246
- package/dist/v0.4/AmmClient.js +0 -272
- package/dist/v0.4/AmmClient.js.map +0 -1
- package/dist/v0.4/AutocratClient.d.ts +0 -225
- package/dist/v0.4/AutocratClient.js +0 -361
- package/dist/v0.4/AutocratClient.js.map +0 -1
- package/dist/v0.4/ConditionalVaultClient.d.ts +0 -275
- package/dist/v0.4/ConditionalVaultClient.js +0 -222
- package/dist/v0.4/ConditionalVaultClient.js.map +0 -1
- package/dist/v0.4/constants.d.ts +0 -9
- package/dist/v0.4/constants.js +0 -10
- package/dist/v0.4/constants.js.map +0 -1
- package/dist/v0.4/index.d.ts +0 -6
- package/dist/v0.4/index.js +0 -7
- package/dist/v0.4/index.js.map +0 -1
- package/dist/v0.4/types/amm.d.ts +0 -542
- package/dist/v0.4/types/amm.js +0 -542
- package/dist/v0.4/types/amm.js.map +0 -1
- package/dist/v0.4/types/autocrat.d.ts +0 -636
- package/dist/v0.4/types/autocrat.js +0 -636
- package/dist/v0.4/types/autocrat.js.map +0 -1
- package/dist/v0.4/types/conditional_vault.d.ts +0 -503
- package/dist/v0.4/types/conditional_vault.js +0 -503
- package/dist/v0.4/types/conditional_vault.js.map +0 -1
- package/dist/v0.4/types/index.d.ts +0 -21
- package/dist/v0.4/types/index.js +0 -4
- package/dist/v0.4/types/index.js.map +0 -1
- package/dist/v0.4/types/utils.d.ts +0 -3
- package/dist/v0.4/types/utils.js +0 -2
- package/dist/v0.4/types/utils.js.map +0 -1
- package/dist/v0.4/utils/cu.d.ts +0 -10
- package/dist/v0.4/utils/cu.js +0 -11
- package/dist/v0.4/utils/cu.js.map +0 -1
- package/dist/v0.4/utils/filters.d.ts +0 -3
- package/dist/v0.4/utils/filters.js +0 -14
- package/dist/v0.4/utils/filters.js.map +0 -1
- package/dist/v0.4/utils/index.d.ts +0 -16
- package/dist/v0.4/utils/index.js +0 -30
- package/dist/v0.4/utils/index.js.map +0 -1
- package/dist/v0.4/utils/instruction.d.ts +0 -4
- package/dist/v0.4/utils/instruction.js +0 -10
- package/dist/v0.4/utils/instruction.js.map +0 -1
- package/dist/v0.4/utils/metadata.d.ts +0 -4
- package/dist/v0.4/utils/metadata.js +0 -26
- package/dist/v0.4/utils/metadata.js.map +0 -1
- package/dist/v0.4/utils/pda.d.ts +0 -12
- package/dist/v0.4/utils/pda.js +0 -66
- package/dist/v0.4/utils/pda.js.map +0 -1
- package/dist/v0.4/utils/priceMath.d.ts +0 -12
- package/dist/v0.4/utils/priceMath.js +0 -52
- package/dist/v0.4/utils/priceMath.js.map +0 -1
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export class InstructionUtils {
|
|
2
|
-
static async getInstructions(...methodBuilders) {
|
|
3
|
-
let instructions = [];
|
|
4
|
-
for (const methodBuilder of methodBuilders) {
|
|
5
|
-
instructions.push(...(await methodBuilder.transaction()).instructions);
|
|
6
|
-
}
|
|
7
|
-
return instructions;
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
//# sourceMappingURL=instruction.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"instruction.js","sourceRoot":"","sources":["../../../src/v0.4/utils/instruction.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,gBAAgB;IACpB,MAAM,CAAC,KAAK,CAAC,eAAe,CACjC,GAAG,cAAqB;QAExB,IAAI,YAAY,GAA6B,EAAE,CAAC;QAEhD,KAAK,MAAM,aAAa,IAAI,cAAc,EAAE;YAC1C,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,aAAa,CAAC,WAAW,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC;SACxE;QAED,OAAO,YAAY,CAAC;IACtB,CAAC;CACF"}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import { Connection } from "@solana/web3.js";
|
|
2
|
-
import { UmiPlugin } from "@metaplex-foundation/umi";
|
|
3
|
-
export declare const assetImageMap: Record<string, string>;
|
|
4
|
-
export declare const uploadConditionalTokenMetadataJson: (connection: Connection, identityPlugin: UmiPlugin, proposalNumber: number, symbol: string) => Promise<string>;
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { createUmi } from "@metaplex-foundation/umi-bundle-defaults";
|
|
2
|
-
import { bundlrUploader } from "@metaplex-foundation/umi-uploader-bundlr";
|
|
3
|
-
export const assetImageMap = {
|
|
4
|
-
fMETA: "https://arweave.net/tGxvOjMZw7B0qHsdCcIMO57oH5g5OaItOZdXo3BXKz8",
|
|
5
|
-
fUSDC: "https://arweave.net/DpvxeAyVbaoivhIVCLjdf566k2SwVn0YVBL0sTOezWk",
|
|
6
|
-
pMETA: "https://arweave.net/iuqi7PRRESdDxj1oRyk2WzR90_zdFcmZsuWicv3XGfs",
|
|
7
|
-
pUSDC: "https://arweave.net/e4IO7F59F_RKCiuB--_ABPot7Qh1yFsGkWzVhcXuKDU",
|
|
8
|
-
};
|
|
9
|
-
// Upload some JSON, returning its URL
|
|
10
|
-
export const uploadConditionalTokenMetadataJson = async (connection, identityPlugin, proposalNumber, symbol
|
|
11
|
-
// proposal: BN,
|
|
12
|
-
// conditionalToken: string,
|
|
13
|
-
// image: string
|
|
14
|
-
) => {
|
|
15
|
-
// use bundlr, targeting arweave
|
|
16
|
-
const umi = createUmi(connection);
|
|
17
|
-
umi.use(bundlrUploader());
|
|
18
|
-
umi.use(identityPlugin);
|
|
19
|
-
return umi.uploader.uploadJson({
|
|
20
|
-
name: `Proposal ${proposalNumber}: ${symbol}`,
|
|
21
|
-
image: assetImageMap[symbol],
|
|
22
|
-
symbol,
|
|
23
|
-
description: "A conditional token for use in futarchy.",
|
|
24
|
-
});
|
|
25
|
-
};
|
|
26
|
-
//# sourceMappingURL=metadata.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../../src/v0.4/utils/metadata.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,0CAA0C,CAAC;AAErE,OAAO,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAG1E,MAAM,CAAC,MAAM,aAAa,GAA2B;IACnD,KAAK,EAAE,iEAAiE;IACxE,KAAK,EAAE,iEAAiE;IACxE,KAAK,EAAE,iEAAiE;IACxE,KAAK,EAAE,iEAAiE;CACzE,CAAC;AAEF,sCAAsC;AACtC,MAAM,CAAC,MAAM,kCAAkC,GAAG,KAAK,EACrD,UAAsB,EACtB,cAAyB,EACzB,cAAsB,EACtB,MAAc;AACd,kBAAkB;AAClB,8BAA8B;AAC9B,kBAAkB;EACD,EAAE;IACnB,gCAAgC;IAChC,MAAM,GAAG,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC;IAClC,GAAG,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC,CAAC;IAC1B,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAExB,OAAO,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC;QAC7B,IAAI,EAAE,YAAY,cAAc,KAAK,MAAM,EAAE;QAC7C,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC;QAC5B,MAAM;QACN,WAAW,EAAE,0CAA0C;KACxD,CAAC,CAAC;AACL,CAAC,CAAC"}
|
package/dist/v0.4/utils/pda.d.ts
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { PublicKey } from "@solana/web3.js";
|
|
2
|
-
import BN from "bn.js";
|
|
3
|
-
export declare const getQuestionAddr: (programId: PublicKey, questionId: Uint8Array, oracle: PublicKey, numConditions: number) => [PublicKey, number];
|
|
4
|
-
export declare const getVaultAddr: (programId: PublicKey, question: PublicKey, underlyingTokenMint: PublicKey) => [PublicKey, number];
|
|
5
|
-
export declare const getConditionalTokenMintAddr: (programId: PublicKey, vault: PublicKey, index: number) => [PublicKey, number];
|
|
6
|
-
export declare const getVaultFinalizeMintAddr: (programId: PublicKey, vault: PublicKey) => [PublicKey, number];
|
|
7
|
-
export declare const getMetadataAddr: (mint: PublicKey) => [PublicKey, number];
|
|
8
|
-
export declare const getVaultRevertMintAddr: (programId: PublicKey, vault: PublicKey) => [PublicKey, number];
|
|
9
|
-
export declare const getDaoTreasuryAddr: (programId: PublicKey, dao: PublicKey) => [PublicKey, number];
|
|
10
|
-
export declare const getProposalAddr: (programId: PublicKey, proposer: PublicKey, nonce: BN) => [PublicKey, number];
|
|
11
|
-
export declare const getAmmAddr: (programId: PublicKey, baseMint: PublicKey, quoteMint: PublicKey) => [PublicKey, number];
|
|
12
|
-
export declare const getAmmLpMintAddr: (programId: PublicKey, amm: PublicKey) => [PublicKey, number];
|
package/dist/v0.4/utils/pda.js
DELETED
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
import { PublicKey } from "@solana/web3.js";
|
|
2
|
-
import { utils } from "@coral-xyz/anchor";
|
|
3
|
-
import BN from "bn.js";
|
|
4
|
-
import { MPL_TOKEN_METADATA_PROGRAM_ID } from "../constants.js";
|
|
5
|
-
export const getQuestionAddr = (programId, questionId, oracle, numConditions) => {
|
|
6
|
-
if (questionId.length != 32) {
|
|
7
|
-
throw new Error("questionId must be 32 bytes");
|
|
8
|
-
}
|
|
9
|
-
return PublicKey.findProgramAddressSync([
|
|
10
|
-
utils.bytes.utf8.encode("question"),
|
|
11
|
-
Buffer.from(questionId),
|
|
12
|
-
oracle.toBuffer(),
|
|
13
|
-
new BN(numConditions).toBuffer("le", 1),
|
|
14
|
-
], programId);
|
|
15
|
-
};
|
|
16
|
-
export const getVaultAddr = (programId, question, underlyingTokenMint) => {
|
|
17
|
-
return PublicKey.findProgramAddressSync([
|
|
18
|
-
utils.bytes.utf8.encode("conditional_vault"),
|
|
19
|
-
question.toBuffer(),
|
|
20
|
-
underlyingTokenMint.toBuffer(),
|
|
21
|
-
], programId);
|
|
22
|
-
};
|
|
23
|
-
export const getConditionalTokenMintAddr = (programId, vault, index) => {
|
|
24
|
-
return PublicKey.findProgramAddressSync([
|
|
25
|
-
utils.bytes.utf8.encode("conditional_token"),
|
|
26
|
-
vault.toBuffer(),
|
|
27
|
-
new BN(index).toBuffer("le", 1),
|
|
28
|
-
], programId);
|
|
29
|
-
};
|
|
30
|
-
export const getVaultFinalizeMintAddr = (programId, vault) => {
|
|
31
|
-
return getVaultMintAddr(programId, vault, "conditional_on_finalize_mint");
|
|
32
|
-
};
|
|
33
|
-
export const getMetadataAddr = (mint) => {
|
|
34
|
-
return PublicKey.findProgramAddressSync([
|
|
35
|
-
utils.bytes.utf8.encode("metadata"),
|
|
36
|
-
MPL_TOKEN_METADATA_PROGRAM_ID.toBuffer(),
|
|
37
|
-
mint.toBuffer(),
|
|
38
|
-
], MPL_TOKEN_METADATA_PROGRAM_ID);
|
|
39
|
-
};
|
|
40
|
-
export const getVaultRevertMintAddr = (programId, vault) => {
|
|
41
|
-
return getVaultMintAddr(programId, vault, "conditional_on_revert_mint");
|
|
42
|
-
};
|
|
43
|
-
const getVaultMintAddr = (programId, vault, seed) => {
|
|
44
|
-
return PublicKey.findProgramAddressSync([utils.bytes.utf8.encode(seed), vault.toBuffer()], programId);
|
|
45
|
-
};
|
|
46
|
-
export const getDaoTreasuryAddr = (programId, dao) => {
|
|
47
|
-
return PublicKey.findProgramAddressSync([dao.toBuffer()], programId);
|
|
48
|
-
};
|
|
49
|
-
export const getProposalAddr = (programId, proposer, nonce) => {
|
|
50
|
-
return PublicKey.findProgramAddressSync([
|
|
51
|
-
utils.bytes.utf8.encode("proposal"),
|
|
52
|
-
proposer.toBuffer(),
|
|
53
|
-
nonce.toArrayLike(Buffer, "le", 8),
|
|
54
|
-
], programId);
|
|
55
|
-
};
|
|
56
|
-
export const getAmmAddr = (programId, baseMint, quoteMint) => {
|
|
57
|
-
return PublicKey.findProgramAddressSync([
|
|
58
|
-
utils.bytes.utf8.encode("amm__"),
|
|
59
|
-
baseMint.toBuffer(),
|
|
60
|
-
quoteMint.toBuffer(),
|
|
61
|
-
], programId);
|
|
62
|
-
};
|
|
63
|
-
export const getAmmLpMintAddr = (programId, amm) => {
|
|
64
|
-
return PublicKey.findProgramAddressSync([utils.bytes.utf8.encode("amm_lp_mint"), amm.toBuffer()], programId);
|
|
65
|
-
};
|
|
66
|
-
//# sourceMappingURL=pda.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pda.js","sourceRoot":"","sources":["../../../src/v0.4/utils/pda.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import BN from "bn.js";
|
|
2
|
-
export declare class PriceMath {
|
|
3
|
-
static getAmmPriceFromReserves(baseReserves: BN, quoteReserves: BN): BN;
|
|
4
|
-
static getChainAmount(humanAmount: number, decimals: number): BN;
|
|
5
|
-
static getHumanAmount(chainAmount: BN, decimals: number): number;
|
|
6
|
-
static getHumanPrice(ammPrice: BN, baseDecimals: number, quoteDecimals: number): number;
|
|
7
|
-
static getAmmPrice(humanPrice: number, baseDecimals: number, quoteDecimals: number): BN;
|
|
8
|
-
static getAmmPrices(baseDecimals: number, quoteDecimals: number, ...prices: number[]): BN[];
|
|
9
|
-
static scale(number: number, decimals: number): BN;
|
|
10
|
-
static addSlippage(chainAmount: BN, slippageBps: BN): BN;
|
|
11
|
-
static subtractSlippage(chainAmount: BN, slippageBps: BN): BN;
|
|
12
|
-
}
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
import BN from "bn.js";
|
|
2
|
-
const BN_TEN = new BN(10);
|
|
3
|
-
const PRICE_SCALE = BN_TEN.pow(new BN(12));
|
|
4
|
-
const PRICE_SCALE_NUMBER = 1e12;
|
|
5
|
-
export class PriceMath {
|
|
6
|
-
static getAmmPriceFromReserves(baseReserves, quoteReserves) {
|
|
7
|
-
return quoteReserves.mul(PRICE_SCALE).div(baseReserves);
|
|
8
|
-
}
|
|
9
|
-
static getChainAmount(humanAmount, decimals) {
|
|
10
|
-
// you have to do it this weird way because BN can't be constructed with
|
|
11
|
-
// numbers larger than 2**50
|
|
12
|
-
const [integerPart, fractionalPart = ""] = humanAmount
|
|
13
|
-
.toString()
|
|
14
|
-
.split(".");
|
|
15
|
-
return new BN(integerPart + fractionalPart)
|
|
16
|
-
.mul(new BN(10).pow(new BN(decimals)))
|
|
17
|
-
.div(new BN(10).pow(new BN(fractionalPart.length)));
|
|
18
|
-
}
|
|
19
|
-
static getHumanAmount(chainAmount, decimals) {
|
|
20
|
-
return chainAmount.toNumber() / 10 ** decimals;
|
|
21
|
-
}
|
|
22
|
-
static getHumanPrice(ammPrice, baseDecimals, quoteDecimals) {
|
|
23
|
-
let decimalScalar = BN_TEN.pow(new BN(quoteDecimals - baseDecimals).abs());
|
|
24
|
-
let price1e12 = quoteDecimals > baseDecimals
|
|
25
|
-
? ammPrice.div(decimalScalar)
|
|
26
|
-
: ammPrice.mul(decimalScalar);
|
|
27
|
-
return price1e12.toNumber() / 1e12;
|
|
28
|
-
}
|
|
29
|
-
static getAmmPrice(humanPrice, baseDecimals, quoteDecimals) {
|
|
30
|
-
let price1e12 = new BN(humanPrice * PRICE_SCALE_NUMBER);
|
|
31
|
-
let decimalScalar = BN_TEN.pow(new BN(quoteDecimals - baseDecimals).abs());
|
|
32
|
-
let scaledPrice = quoteDecimals > baseDecimals
|
|
33
|
-
? price1e12.mul(decimalScalar)
|
|
34
|
-
: price1e12.div(decimalScalar);
|
|
35
|
-
return scaledPrice;
|
|
36
|
-
}
|
|
37
|
-
static getAmmPrices(baseDecimals, quoteDecimals, ...prices) {
|
|
38
|
-
// Map through each price, scaling it using the scalePrice method
|
|
39
|
-
return prices.map((price) => this.getAmmPrice(price, baseDecimals, quoteDecimals));
|
|
40
|
-
}
|
|
41
|
-
static scale(number, decimals) {
|
|
42
|
-
return new BN(number * 10 ** decimals);
|
|
43
|
-
// return new BN(number).mul(new BN(10).pow(new BN(decimals)));
|
|
44
|
-
}
|
|
45
|
-
static addSlippage(chainAmount, slippageBps) {
|
|
46
|
-
return chainAmount.mul(slippageBps.addn(10_000)).divn(10_000);
|
|
47
|
-
}
|
|
48
|
-
static subtractSlippage(chainAmount, slippageBps) {
|
|
49
|
-
return chainAmount.mul(new BN(10_000).sub(slippageBps)).divn(10_000);
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
//# sourceMappingURL=priceMath.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"priceMath.js","sourceRoot":"","sources":["../../../src/v0.4/utils/priceMath.ts"],"names":[],"mappings":"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"}
|