@flipflop-sdk/cli-v2 1.0.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 (68) hide show
  1. package/README.md +150 -0
  2. package/dist/cli.d.ts +2 -0
  3. package/dist/cli.js +187 -0
  4. package/dist/cli.js.map +1 -0
  5. package/dist/display-mint.d.ts +1 -0
  6. package/dist/display-mint.js +68 -0
  7. package/dist/display-mint.js.map +1 -0
  8. package/dist/display-token-params.d.ts +4 -0
  9. package/dist/display-token-params.js +38 -0
  10. package/dist/display-token-params.js.map +1 -0
  11. package/dist/display-urc.d.ts +1 -0
  12. package/dist/display-urc.js +40 -0
  13. package/dist/display-urc.js.map +1 -0
  14. package/dist/init.d.ts +7 -0
  15. package/dist/init.js +34 -0
  16. package/dist/init.js.map +1 -0
  17. package/dist/launch.d.ts +11 -0
  18. package/dist/launch.js +63 -0
  19. package/dist/launch.js.map +1 -0
  20. package/dist/metadata.d.ts +9 -0
  21. package/dist/metadata.js +39 -0
  22. package/dist/metadata.js.map +1 -0
  23. package/dist/mint.d.ts +11 -0
  24. package/dist/mint.js +60 -0
  25. package/dist/mint.js.map +1 -0
  26. package/dist/raydium/add-liquidity.d.ts +10 -0
  27. package/dist/raydium/add-liquidity.js +56 -0
  28. package/dist/raydium/add-liquidity.js.map +1 -0
  29. package/dist/raydium/burn-liquidity.d.ts +9 -0
  30. package/dist/raydium/burn-liquidity.js +50 -0
  31. package/dist/raydium/burn-liquidity.js.map +1 -0
  32. package/dist/raydium/buy-token.d.ts +11 -0
  33. package/dist/raydium/buy-token.js +56 -0
  34. package/dist/raydium/buy-token.js.map +1 -0
  35. package/dist/raydium/create-pool.d.ts +11 -0
  36. package/dist/raydium/create-pool.js +62 -0
  37. package/dist/raydium/create-pool.js.map +1 -0
  38. package/dist/raydium/display-lp.d.ts +7 -0
  39. package/dist/raydium/display-lp.js +48 -0
  40. package/dist/raydium/display-lp.js.map +1 -0
  41. package/dist/raydium/display-pool.d.ts +6 -0
  42. package/dist/raydium/display-pool.js +51 -0
  43. package/dist/raydium/display-pool.js.map +1 -0
  44. package/dist/raydium/estimate-slippage.d.ts +6 -0
  45. package/dist/raydium/estimate-slippage.js +58 -0
  46. package/dist/raydium/estimate-slippage.js.map +1 -0
  47. package/dist/raydium/estimate-volume.d.ts +6 -0
  48. package/dist/raydium/estimate-volume.js +58 -0
  49. package/dist/raydium/estimate-volume.js.map +1 -0
  50. package/dist/raydium/remove-liquidity.d.ts +10 -0
  51. package/dist/raydium/remove-liquidity.js +53 -0
  52. package/dist/raydium/remove-liquidity.js.map +1 -0
  53. package/dist/raydium/sell-token.d.ts +11 -0
  54. package/dist/raydium/sell-token.js +54 -0
  55. package/dist/raydium/sell-token.js.map +1 -0
  56. package/dist/refund.d.ts +8 -0
  57. package/dist/refund.js +50 -0
  58. package/dist/refund.js.map +1 -0
  59. package/dist/set-urc.d.ts +9 -0
  60. package/dist/set-urc.js +41 -0
  61. package/dist/set-urc.js.map +1 -0
  62. package/dist/system-config.d.ts +5 -0
  63. package/dist/system-config.js +39 -0
  64. package/dist/system-config.js.map +1 -0
  65. package/dist/utils.d.ts +3 -0
  66. package/dist/utils.js +35 -0
  67. package/dist/utils.js.map +1 -0
  68. package/package.json +59 -0
package/README.md ADDED
@@ -0,0 +1,150 @@
1
+ # FlipFlop CLI ✨
2
+
3
+ A command-line interface for Flipflop token operations.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ npm install -g @flipflop-sdk/cli
9
+ ```
10
+
11
+ ## Usage
12
+
13
+ ### Authentication
14
+
15
+ The CLI supports two ways to provide your keypair:
16
+
17
+ 1. **Base58 format**: Use `--keypair-bs58` with your private key in base58 format
18
+ 2. **File format**: Use `--keypair-file` with path to a JSON file containing your private key as an array of 64 numbers
19
+
20
+ **Note**: If both parameters are provided, `--keypair-file` takes priority.
21
+
22
+ ### Commands
23
+
24
+ #### Launch a new token
25
+
26
+ ```bash
27
+ flipflop2 launch --name "MyToken" --symbol "MTK" --keypair-file ./keypair.json --rpc <your_rpc_url>
28
+ # or
29
+ flipflop2 launch --name "MyToken" --symbol "MTK" --keypair-bs58 "your_base58_private_key" --rpc <your_rpc_url>
30
+ ```
31
+
32
+ #### Set URC code
33
+
34
+ ```bash
35
+ flipflop2 set-urc --mint <mint_address> --urc "mycode" --keypair-file ./keypair.json --rpc <your_rpc_url>
36
+ # or
37
+ flipflop2 set-urc --mint <mint_address> --urc "mycode" --keypair-bs58 "your_base58_private_key" --rpc <your_rpc_url>
38
+ ```
39
+
40
+ #### Mint tokens
41
+
42
+ ```bash
43
+ flipflop2 mint --mint <mint_address> --urc "mycode" --keypair-file ./keypair.json --rpc <your_rpc_url>
44
+ # or
45
+ flipflop2 mint --mint <mint_address> --urc "mycode" --keypair-bs58 "your_base58_private_key" --rpc <your_rpc_url>
46
+ ```
47
+
48
+ #### Display mint information
49
+
50
+ ```bash
51
+ flipflop2 display-mint --mint <mint_address> --rpc <your_rpc_url>
52
+ ```
53
+
54
+ #### Display URC information
55
+
56
+ ```bash
57
+ flipflop2 display-urc --urc "mycode" --rpc <your_rpc_url>
58
+ ```
59
+
60
+ #### View system configuration
61
+
62
+ ```bash
63
+ flipflop2 system-config --rpc <your_rpc_url>
64
+ ```
65
+
66
+ Displays comprehensive system configuration including:
67
+ - System admin address
68
+ - Token count
69
+ - Fee rates and accounts
70
+ - Pool settings
71
+ - System status
72
+
73
+ #### Upload metadata and get URI
74
+
75
+ ```bash
76
+ flipflop2 metadata --name "MyToken" --symbol "MTK" --description "My awesome token" --image-path ./token-image.png --rpc <your_rpc_url>
77
+ ```
78
+
79
+ Uploads token metadata (including image) and returns the metadata URI for use in token creation.
80
+
81
+ ### Keypair File Format
82
+
83
+ The keypair file should be a JSON file containing an array of 64 numbers representing your private key:
84
+
85
+ ```json
86
+ [174, 47, ..., 238, 135]
87
+ ```
88
+
89
+ ### Global Options
90
+
91
+ - `--rpc <url>`: RPC endpoint (default: https://api.mainnet-beta.solana.com)
92
+ - `--keypair-bs58 <bs58>`: Keypair in base58 format
93
+ - `--keypair-file <path>`: Path to keypair file (JSON array format)
94
+
95
+ ### Command-specific Options
96
+
97
+ #### Launch Command
98
+ - `--name <name>`: Token name (required)
99
+ - `--symbol <symbol>`: Token symbol (required)
100
+ - `--uri <uri>`: Token metadata URI (optional)
101
+ - `--token-type <type>`: Token type - meme or standard (default: meme)
102
+
103
+ #### Set URC Command
104
+ - `--mint <address>`: Mint account address (required)
105
+ - `--urc <code>`: URC referral code (required)
106
+
107
+ #### Mint Command
108
+ - `--mint <address>`: Mint account address (required)
109
+ - `--urc <code>`: URC referral code (required)
110
+
111
+ #### Display Commands
112
+ - `--mint <address>`: Mint account address (for display-mint)
113
+ - `--urc <code>`: URC code (for display-urc)
114
+
115
+ #### Metadata Command
116
+ - `--name <name>`: Token name (required)
117
+ - `--symbol <symbol>`: Token symbol (required)
118
+ - `--description <description>`: Token description (required)
119
+ - `--image-path <path>`: Path to image file (required)
120
+
121
+ ## Features
122
+
123
+ - šŸš€ **Token Launch**: Create new tokens with customizable metadata
124
+ - šŸŽÆ **URC Management**: Set and manage referral codes
125
+ - šŸ’° **Token Minting**: Mint tokens using URC codes
126
+ - šŸ“Š **Information Display**: View mint and URC details
127
+ - āš™ļø **System Configuration**: Check current system settings
128
+ - šŸ–¼ļø **Metadata Upload**: Upload token images and metadata
129
+ - šŸ” **Flexible Authentication**: Support for both file and base58 keypairs
130
+ - 🌐 **Multi-network Support**: Configurable RPC endpoints
131
+
132
+ ## Dependencies
133
+
134
+ This CLI tool uses the following key libraries:
135
+
136
+ - `@flipflop-sdk/node-v2`: Core FlipFlop SDK functionality
137
+ - `@solana/web3.js`: Solana blockchain interaction
138
+ - `@coral-xyz/anchor`: Solana program framework
139
+ - `commander`: Command-line interface framework
140
+ - `decimal.js`: Precise decimal arithmetic
141
+ - `bs58`: Base58 encoding/decoding
142
+
143
+ ## Requirements
144
+
145
+ - Node.js >= 16.0.0
146
+ - npm or yarn package manager
147
+
148
+ ## Support
149
+
150
+ For issues and questions, please visit our [GitHub repository](https://github.com/flipflop-fun/sdk).
package/dist/cli.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ export {};
package/dist/cli.js ADDED
@@ -0,0 +1,187 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ const commander_1 = require("commander");
5
+ // import { initCommand } from './init';
6
+ const launch_1 = require("./launch");
7
+ const set_urc_1 = require("./set-urc");
8
+ const display_mint_1 = require("./display-mint");
9
+ const mint_1 = require("./mint");
10
+ const display_urc_1 = require("./display-urc");
11
+ const system_config_1 = require("./system-config");
12
+ const metadata_1 = require("./metadata");
13
+ const display_token_params_1 = require("./display-token-params");
14
+ const buy_token_1 = require("./raydium/buy-token");
15
+ const sell_token_1 = require("./raydium/sell-token");
16
+ const add_liquidity_1 = require("./raydium/add-liquidity");
17
+ const remove_liquidity_1 = require("./raydium/remove-liquidity");
18
+ const burn_liquidity_1 = require("./raydium/burn-liquidity");
19
+ const display_pool_1 = require("./raydium/display-pool");
20
+ const display_lp_1 = require("./raydium/display-lp");
21
+ const create_pool_1 = require("./raydium/create-pool");
22
+ const estimate_slippage_1 = require("./raydium/estimate-slippage");
23
+ const estimate_volume_1 = require("./raydium/estimate-volume");
24
+ const refund_1 = require("./refund");
25
+ // Create the main program
26
+ const program = new commander_1.Command();
27
+ program
28
+ .name('flipflop2')
29
+ .description('A CLI tool v2 for Flipflop token operations')
30
+ .version('1.0.0');
31
+ // Add launch subcommand
32
+ program.command('launch')
33
+ .description('Launch a new token')
34
+ .option('--rpc <url>', 'RPC endpoint', 'https://api.mainnet-beta.solana.com')
35
+ .option('--name <name>', 'Token name')
36
+ .option('--symbol <symbol>', 'Token symbol')
37
+ .option('--uri <uri>', 'Token URI')
38
+ .option('--token-type <type>', 'Token type (meme, standard or test)', 'meme')
39
+ .option('--keypair-bs58 <bs58>', 'Keypair in BS58 format')
40
+ .option('--keypair-file <pathfile>', 'Path to keypair file (Array format)')
41
+ .action(launch_1.launchCommand);
42
+ program.command('display-mint')
43
+ .description('Display mint details')
44
+ .option('--rpc <url>', 'RPC endpoint', 'https://api.mainnet-beta.solana.com')
45
+ .option('--mint <address>', 'Mint account address')
46
+ .action(display_mint_1.displayMintCommand);
47
+ // Add urc subcommand
48
+ program.command('set-urc')
49
+ .description('Create or update URC code')
50
+ .option('--rpc <url>', 'RPC endpoint', 'https://api.mainnet-beta.solana.com')
51
+ .option('--mint <address>', 'Mint account address')
52
+ .option('--urc <code>', 'URC code')
53
+ .option('--keypair-bs58 <bs58>', 'Keypair in BS58 format')
54
+ .option('--keypair-file <pathfile>', 'Path to keypair file (Array format)')
55
+ .action(set_urc_1.setUrcCommand);
56
+ program.command('display-urc')
57
+ .description('Display URC details')
58
+ .option('--rpc <url>', 'RPC endpoint', 'https://api.mainnet-beta.solana.com')
59
+ .option('--urc <code>', 'URC code')
60
+ .action(display_urc_1.displayUrcCommand);
61
+ program.command('display-token-params')
62
+ .description('Display token params')
63
+ .option('--rpc <url>', 'RPC endpoint', 'https://api.mainnet-beta.solana.com')
64
+ .option('--token-type <type>', 'Token type (meme, standard or test)', 'meme')
65
+ .action(display_token_params_1.displayTokenParamsCommand);
66
+ // Add mint subcommand
67
+ program.command('mint')
68
+ .description('Mint tokens')
69
+ .option('--rpc <url>', 'RPC endpoint', 'https://api.mainnet-beta.solana.com')
70
+ .option('--mint <address>', 'Mint account address')
71
+ .option('--urc <code>', 'URC code')
72
+ .option('--keypair-bs58 <bs58>', 'Keypair in BS58 format')
73
+ .option('--keypair-file <pathfile>', 'Path to keypair file (Array format)')
74
+ .option('--lut <address>', 'LookupTableAddress of common addresses')
75
+ .option('--skip-preflight', 'Skip preflight checks', false)
76
+ .action(mint_1.mintCommand);
77
+ // Add refund subcommand
78
+ program.command('refund')
79
+ .description('Refund tokens')
80
+ .option('--rpc <url>', 'RPC endpoint', 'https://api.mainnet-beta.solana.com')
81
+ .option('--mint <address>', 'Mint account address')
82
+ .option('--keypair-bs58 <bs58>', 'Keypair in BS58 format')
83
+ .option('--keypair-file <pathfile>', 'Path to keypair file (Array format)')
84
+ .action(refund_1.refundCommand);
85
+ // Add show system config
86
+ program.command('system-config')
87
+ .description('Get system config')
88
+ .option('--rpc <url>', 'RPC endpoint', 'https://api.mainnet-beta.solana.com')
89
+ .action(system_config_1.systemConfigCommand);
90
+ // Add upload metadata and get uri
91
+ program.command('metadata')
92
+ .description('Upload metadata and get uri')
93
+ .option('--rpc <url>', 'RPC endpoint', 'https://api.mainnet-beta.solana.com')
94
+ .option('--name <name>', 'Token name')
95
+ .option('--symbol <symbol>', 'Token symbol')
96
+ .option('--description <description>', 'Token description')
97
+ .option('--image-path <path>', 'Path to image file')
98
+ .action(metadata_1.metadataCommand);
99
+ // Raydium CPMM Commands
100
+ program.command('raydium-buy')
101
+ .description('Buy tokens from Raydium CPMM pool')
102
+ .option('--rpc <url>', 'RPC endpoint', 'https://api.mainnet-beta.solana.com')
103
+ .option('--mint <address>', 'Mint account address')
104
+ .option('--amount <amount>', 'Amount of tokens to buy')
105
+ .option('--slippage <percentage>', 'Slippage tolerance in percentage', '5')
106
+ .option('--keypair-bs58 <bs58>', 'Keypair in BS58 format')
107
+ .option('--keypair-file <pathfile>', 'Path to keypair file (Array format)')
108
+ .action(buy_token_1.buyTokenCommand);
109
+ program.command('raydium-sell')
110
+ .description('Sell tokens to Raydium CPMM pool')
111
+ .option('--rpc <url>', 'RPC endpoint', 'https://api.mainnet-beta.solana.com')
112
+ .option('--mint <address>', 'Mint account address')
113
+ .option('--amount <amount>', 'Amount of tokens to sell')
114
+ .option('--slippage <percentage>', 'Slippage tolerance in percentage', '5')
115
+ .option('--keypair-bs58 <bs58>', 'Keypair in BS58 format')
116
+ .option('--keypair-file <pathfile>', 'Path to keypair file (Array format)')
117
+ .action(sell_token_1.sellTokenCommand);
118
+ program.command('raydium-add-liquidity')
119
+ .description('Add liquidity to Raydium CPMM pool')
120
+ .option('--rpc <url>', 'RPC endpoint', 'https://api.mainnet-beta.solana.com')
121
+ .option('--mint <address>', 'Mint account address')
122
+ .option('--token-amount <amount>', 'Amount of tokens to add')
123
+ .option('--slippage <percentage>', 'Slippage tolerance in percentage', '1')
124
+ .option('--keypair-bs58 <bs58>', 'Keypair in BS58 format')
125
+ .option('--keypair-file <pathfile>', 'Path to keypair file (Array format)')
126
+ .action(add_liquidity_1.addLiquidityCommand);
127
+ program.command('raydium-remove-liquidity')
128
+ .description('Remove liquidity from Raydium CPMM pool')
129
+ .option('--rpc <url>', 'RPC endpoint', 'https://api.mainnet-beta.solana.com')
130
+ .option('--mint <address>', 'Mint account address')
131
+ .option('--remove-percentage <percentage>', 'Percentage of LP tokens to remove (0-100)')
132
+ .option('--slippage <percentage>', 'Slippage tolerance in percentage', '1')
133
+ .option('--keypair-bs58 <bs58>', 'Keypair in BS58 format')
134
+ .option('--keypair-file <pathfile>', 'Path to keypair file (Array format)')
135
+ .action(remove_liquidity_1.removeLiquidityCommand);
136
+ program.command('raydium-burn-liquidity')
137
+ .description('Burn liquidity tokens and receive underlying assets')
138
+ .option('--rpc <url>', 'RPC endpoint', 'https://api.mainnet-beta.solana.com')
139
+ .option('--mint <address>', 'Mint account address')
140
+ .option('--lp-token-amount <amount>', 'Amount of LP tokens to burn')
141
+ .option('--keypair-bs58 <bs58>', 'Keypair in BS58 format')
142
+ .option('--keypair-file <pathfile>', 'Path to keypair file (Array format)')
143
+ .action(burn_liquidity_1.burnLiquidityCommand);
144
+ program.command('raydium-display-pool')
145
+ .description('Display Raydium CPMM pool information')
146
+ .option('--rpc <url>', 'RPC endpoint', 'https://api.mainnet-beta.solana.com')
147
+ .option('--mint <address>', 'Mint account address')
148
+ .action(display_pool_1.displayPoolCommand);
149
+ program.command('raydium-display-lp')
150
+ .description('Display LP token information for user')
151
+ .option('--rpc <url>', 'RPC endpoint', 'https://api.mainnet-beta.solana.com')
152
+ .option('--mint <address>', 'Mint account address')
153
+ .option('--owner <address>', 'Owner address')
154
+ .action(display_lp_1.displayLPCommand);
155
+ program.command('raydium-create-pool')
156
+ .description('Create a new Raydium CPMM pool')
157
+ .option('--rpc <url>', 'RPC endpoint', 'https://api.mainnet-beta.solana.com')
158
+ .option('--mint-a <address>', 'Token A mint address')
159
+ .option('--mint-b <address>', 'Token B mint address')
160
+ .option('--amount-a <amount>', 'Amount of token A to deposit')
161
+ .option('--amount-b <amount>', 'Amount of token B to deposit')
162
+ .option('--keypair-bs58 <bs58>', 'Keypair in BS58 format')
163
+ .option('--keypair-file <pathfile>', 'Path to keypair file (Array format)')
164
+ .action(create_pool_1.createPoolCommand);
165
+ program.command('raydium-estimate-slippage')
166
+ .description('Estimate slippage for a Raydium CPMM transaction by amount')
167
+ .option('--rpc <url>', 'RPC endpoint', 'https://api.mainnet-beta.solana.com')
168
+ .option('--mint <address>', 'Mint account address')
169
+ .option('--action <action>', 'Action to perform (buy/sell)')
170
+ .option('--amount <amount>', 'Amount of tokens to trade')
171
+ .action(estimate_slippage_1.estimateSlippageCommand);
172
+ program.command('raydium-estimate-volume')
173
+ .description('Estimate volume for a Raydium CPMM transaction by max slippage')
174
+ .option('--rpc <url>', 'RPC endpoint', 'https://api.mainnet-beta.solana.com')
175
+ .option('--mint <address>', 'Mint account address')
176
+ .option('--action <action>', 'Action to perform (buy/sell)')
177
+ .option('--max-slippage <percentage>', 'Max slippage tolerance in percentage', '10')
178
+ .action(estimate_volume_1.estimateVolumeCommand);
179
+ // Add init subcommand
180
+ // program.command('init')
181
+ // .description('Initialize contracts including LUT and system config, only by Flipflop program deployer')
182
+ // .option('--rpc <url>', 'RPC endpoint', 'https://api.mainnet-beta.solana.com')
183
+ // .option('--keypair-bs58 <bs58>', 'Keypair in BS58 format')
184
+ // .option('--keypair-file <path>', 'Path to keypair file (Array format)')
185
+ // .action(initCommand);
186
+ program.parse();
187
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../cli/src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare function displayMintCommand(options: any): Promise<void>;
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.displayMintCommand = displayMintCommand;
4
+ const node_v2_1 = require("@flipflop-sdk/node-v2");
5
+ const web3_js_1 = require("@solana/web3.js");
6
+ // Display mint command handler
7
+ async function displayMintCommand(options) {
8
+ const rpcUrl = options.rpc;
9
+ const mintAccount = new web3_js_1.PublicKey(options.mint);
10
+ try {
11
+ // Get token metadata
12
+ const options = {
13
+ rpc: rpcUrl,
14
+ mint: mintAccount,
15
+ };
16
+ const mintData = await (0, node_v2_1.getMintData)(options);
17
+ if (!mintData.success || !mintData.data) {
18
+ console.log(mintData.message);
19
+ return;
20
+ }
21
+ // Display formatted token information
22
+ console.log('\nšŸ“Š Token Information');
23
+ console.log('━'.repeat(50));
24
+ console.log(`Mint Address: ${mintData.data.mint.toBase58()}`);
25
+ console.log(`Name: ${mintData.data.name}`);
26
+ console.log(`Symbol: ${mintData.data.symbol}`);
27
+ console.log(`Metadata URI: ${mintData.data.uri}`);
28
+ console.log(`Metadata Mutable: ${mintData.data.isMutable ? 'Yes' : 'No'}`);
29
+ console.log('\nāš™ļø Configuration Details');
30
+ console.log('━'.repeat(50));
31
+ console.log(`Config Account: ${mintData.data.configAccount.toBase58()}`);
32
+ console.log(`Admin: ${mintData.data.admin.toBase58()}`);
33
+ console.log(`Token Vault: ${mintData.data.tokenVault.toBase58()}`);
34
+ console.log(`WSOL Vault: ${mintData.data.baseVault.toBase58()}`);
35
+ console.log('');
36
+ console.log(`Fee Rate: ${(mintData.data.feeRate * 1).toFixed(2)} SOL`);
37
+ console.log(`Target Eras: ${mintData.data.targetEras}`);
38
+ console.log(`Initial Mint Size: ${mintData.data.initialMintSize.toLocaleString()}`);
39
+ console.log(`Initial Target Mint Size per Epoch: ${mintData.data.initialTargetMintSizePerEpoch.toLocaleString()}`);
40
+ console.log(`Target Mint Size per Epoch: ${mintData.data.targetMintSizeEpoch.toLocaleString()}`);
41
+ console.log(`Checkpoints per Milestone: ${mintData.data.epochesPerEra}`);
42
+ console.log(`Target Seconds per Checkpoint: ${mintData.data.targetSecondsPerEpoch.toLocaleString()}`);
43
+ console.log(`Reduce Ratio per Milestone: ${100 - mintData.data.reduceRatio * 100}%`);
44
+ console.log(`Max Supply: ${mintData.data.maxSupply.toLocaleString()}`);
45
+ console.log(`Liquidity Tokens Ratio: ${mintData.data.liquidityTokensRatio}%`);
46
+ console.log('\nšŸ“ˆ Mining Status');
47
+ console.log('━'.repeat(50));
48
+ console.log(`Current Supply: ${mintData.data.supply.toLocaleString()}`);
49
+ console.log(`Liquidity Tokens Supply: `, (mintData.data.supply * mintData.data.liquidityTokensRatio / 100).toLocaleString());
50
+ console.log(`Minter's Tokens Supply: `, (mintData.data.supply * (1 - mintData.data.liquidityTokensRatio / 100)).toLocaleString());
51
+ console.log(`WSOL Vault Balance: `, mintData.data.baseVaultBalance.toLocaleString() + " WSOL");
52
+ console.log('');
53
+ console.log(`Current Era: ${mintData.data.currentEra}`);
54
+ console.log(`Current Epoch: ${mintData.data.currentEpoch}`);
55
+ console.log(`Start Time of Current Checkpoint: ${new Date(mintData.data.startTimestampEpoch * 1000).toLocaleString()}`);
56
+ console.log(`Last Difficulty Coefficient: ${mintData.data.lastDifficultyCoefficient}`);
57
+ console.log(`Current Difficulty Coefficient: ${mintData.data.difficultyCoefficient}`);
58
+ console.log(`Mint Size (Current Epoch): ${mintData.data.mintSizeEpoch.toLocaleString()}`);
59
+ console.log(`Minted (Current Epoch): ${mintData.data.quantityMintedEpoch.toLocaleString()}`);
60
+ console.log(`Target Mint Size (Epoch): ${mintData.data.targetMintSizeEpoch.toLocaleString()}`);
61
+ const progress = (mintData.data.supply / mintData.data.maxSupply * 100).toFixed(2);
62
+ console.log(`\nšŸ“Š Overall Progress: ${progress}% (${mintData.data.supply.toLocaleString()}/${mintData.data.maxSupply.toLocaleString()})`);
63
+ }
64
+ catch (error) {
65
+ console.error('āŒ Error displaying mint information:', error instanceof Error ? error.message : 'Unknown error');
66
+ }
67
+ }
68
+ //# sourceMappingURL=display-mint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"display-mint.js","sourceRoot":"","sources":["../cli/src/display-mint.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare const displayTokenParamsCommand: (options: {
2
+ rpc: string;
3
+ tokenType: "meme" | "standard" | "test";
4
+ }) => Promise<void>;
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.displayTokenParamsCommand = void 0;
4
+ const anchor_1 = require("@coral-xyz/anchor");
5
+ const node_v2_1 = require("@flipflop-sdk/node-v2");
6
+ const displayTokenParamsCommand = async (options) => {
7
+ const { rpc, tokenType } = options;
8
+ try {
9
+ const result = (0, node_v2_1.displayTokenParams)({
10
+ rpc,
11
+ tokenType,
12
+ });
13
+ if (!result.success || !result.data) {
14
+ console.error('āŒ Error: ', result.message);
15
+ return;
16
+ }
17
+ // Display formatted token parameters
18
+ console.log('\nšŸŽÆ Token Parameters');
19
+ console.log('━'.repeat(50));
20
+ console.log(`Token Type: ${tokenType.toUpperCase()}`);
21
+ console.log('');
22
+ // Iterate through all properties of the result object
23
+ console.log(`Target Eras: ${result.data.targetEras}`);
24
+ console.log(`Fee Rate: ${result.data.feeRate.toNumber() / 1e9} SOL`);
25
+ console.log(`Max Checkpoints per Milestone: ${result.data.epochesPerEra}`);
26
+ console.log(`Target Seconds per Checkpoint: ${result.data.targetSecondsPerEpoch}`);
27
+ console.log(`Reduce Ratio: ${100 - result.data.reduceRatio.toNumber()}%`);
28
+ console.log(`Initial Mint Size: ${new anchor_1.BN(result.data.initialMintSize).div(new anchor_1.BN("1000000000")).toNumber()}`);
29
+ console.log(`Initial Target Mint Size Per Checkpoint: ${new anchor_1.BN(result.data.initialTargetMintSizePerEpoch).div(new anchor_1.BN("1000000000")).toNumber()}`);
30
+ console.log(`Liquidity Tokens Ratio: ${result.data.liquidityTokensRatio}`);
31
+ console.log('\nāœ… Token parameters displayed successfully');
32
+ }
33
+ catch (error) {
34
+ console.error('āŒ Error: ', error instanceof Error ? error.message : 'Unknown error');
35
+ }
36
+ };
37
+ exports.displayTokenParamsCommand = displayTokenParamsCommand;
38
+ //# sourceMappingURL=display-token-params.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"display-token-params.js","sourceRoot":"","sources":["../cli/src/display-token-params.ts"],"names":[],"mappings":";;;AAAA,8CAAuC;AACvC,mDAA2D;AAEpD,MAAM,yBAAyB,GAAG,KAAK,EAAE,OAG/C,EAAE,EAAE;IACH,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IAEnC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAA,4BAAkB,EAAC;YAChC,GAAG;YACH,SAAS;SACV,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACpC,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;YAC3C,OAAO;QACT,CAAC;QAED,qCAAqC;QACrC,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;QACrC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,eAAe,SAAS,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QACtD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,sDAAsD;QACtD,OAAO,CAAC,GAAG,CAAC,4CAA4C,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;QAClF,OAAO,CAAC,GAAG,CAAC,4CAA4C,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,GAAG,MAAM,CAAC,CAAC;QACpG,OAAO,CAAC,GAAG,CAAC,4CAA4C,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;QACrF,OAAO,CAAC,GAAG,CAAC,4CAA4C,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC;QAC7F,OAAO,CAAC,GAAG,CAAC,4CAA4C,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QACrG,OAAO,CAAC,GAAG,CAAC,4CAA4C,IAAI,WAAE,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,IAAI,WAAE,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QACpI,OAAO,CAAC,GAAG,CAAC,4CAA4C,IAAI,WAAE,CAAC,MAAM,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC,GAAG,CAAC,IAAI,WAAE,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAClJ,OAAO,CAAC,GAAG,CAAC,4CAA4C,MAAM,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC;QAE5F,OAAO,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;IAE7D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;IACvF,CAAC;AACH,CAAC,CAAC;AArCW,QAAA,yBAAyB,6BAqCpC"}
@@ -0,0 +1 @@
1
+ export declare function displayUrcCommand(options: any): Promise<void>;
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.displayUrcCommand = displayUrcCommand;
4
+ const node_v2_1 = require("@flipflop-sdk/node-v2");
5
+ // Display URC command handler
6
+ async function displayUrcCommand(options) {
7
+ const rpcUrl = options.rpc;
8
+ const urc = options.urc;
9
+ try {
10
+ const urcDetails = await (0, node_v2_1.getUrcData)({
11
+ rpc: rpcUrl,
12
+ urc,
13
+ });
14
+ if (!urcDetails.success || !urcDetails.data) {
15
+ console.log(urcDetails.message);
16
+ return;
17
+ }
18
+ // Display formatted URC information
19
+ console.log('\nšŸ”— URC (User Referral Code) Details');
20
+ console.log('━'.repeat(50));
21
+ console.log(`URC Code: ${urc}`);
22
+ console.log(`Code Hash: ${urcDetails.data.codeHash}`);
23
+ console.log(`Mint address: ${urcDetails.data.mint}`);
24
+ console.log('\nšŸ‘¤ Referrer Information');
25
+ console.log('━'.repeat(50));
26
+ console.log(`Referrer Address: ${urcDetails.data.referrerMain}`);
27
+ console.log(`Referrer Token Account: ${urcDetails.data.referrerAta}`);
28
+ console.log('\nšŸ“Š Usage Statistics');
29
+ console.log('━'.repeat(50));
30
+ console.log(`Usage Count: ${urcDetails.data.usageCount}`);
31
+ // Format and display activation timestamp
32
+ const activationDate = new Date(parseInt(urcDetails.data.activeTimestamp.toString()) * 1000);
33
+ console.log(`Activated: ${activationDate.toLocaleString()}`);
34
+ console.log('\nāœ… URC is valid and ready for use');
35
+ }
36
+ catch (error) {
37
+ console.error('āŒ Error displaying URC details:', error instanceof Error ? error.message : 'Unknown error');
38
+ }
39
+ }
40
+ //# sourceMappingURL=display-urc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"display-urc.js","sourceRoot":"","sources":["../cli/src/display-urc.ts"],"names":[],"mappings":";;AAGA,8CAyCC;AA5CD,mDAAmD;AAEnD,8BAA8B;AACvB,KAAK,UAAU,iBAAiB,CAAC,OAAY;IAClD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAC3B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAExB,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,MAAM,IAAA,oBAAU,EAAC;YAClC,GAAG,EAAE,MAAM;YACX,GAAG;SACJ,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;YAC5C,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAChC,OAAO;QACT,CAAC;QAED,oCAAoC;QACpC,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;QACrD,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QAE5B,OAAO,CAAC,GAAG,CAAC,aAAa,GAAG,EAAE,CAAC,CAAC;QAChC,OAAO,CAAC,GAAG,CAAC,cAAc,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QACtD,OAAO,CAAC,GAAG,CAAC,iBAAiB,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAErD,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;QACzC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,qBAAqB,UAAU,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QACjE,OAAO,CAAC,GAAG,CAAC,2BAA2B,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAEtE,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;QACrC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,gBAAgB,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;QAE1D,0CAA0C;QAC1C,MAAM,cAAc,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;QAC7F,OAAO,CAAC,GAAG,CAAC,cAAc,cAAc,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;QAE7D,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;IAEpD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;IAC7G,CAAC;AACH,CAAC"}
package/dist/init.d.ts ADDED
@@ -0,0 +1,7 @@
1
+ interface InitSystemConfigOptions {
2
+ rpc: string;
3
+ keypairBs58: string;
4
+ keypairFile: string;
5
+ }
6
+ export declare function initCommand(options: InitSystemConfigOptions): Promise<void>;
7
+ export {};
package/dist/init.js ADDED
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.initCommand = initCommand;
4
+ const utils_1 = require("./utils");
5
+ const node_v2_1 = require("@flipflop-sdk/node-v2");
6
+ // Init command handler
7
+ async function initCommand(options) {
8
+ const rpcUrl = options.rpc;
9
+ // Use keypair from command line argument
10
+ if (!options.keypairBs58 && !options.keypairFile) {
11
+ console.error('āŒ Error: Missing --keypair-bs58 or --keypair-file parameter');
12
+ console.log('šŸ’” Usage: flipflop init --keypair-bs58 <your_bs58_keypair>');
13
+ return;
14
+ }
15
+ const systemManager = options.keypairFile
16
+ ? (0, utils_1.loadKeypairFromFile)(options.keypairFile)
17
+ : (0, utils_1.loadKeypairFromBase58)(options.keypairBs58);
18
+ // await provider.connection.confirmTransaction(tx, "confirmed");
19
+ const result = await (0, node_v2_1.initializeSystemConfigAccount)({
20
+ rpc: rpcUrl,
21
+ systemManager,
22
+ });
23
+ if (!result.success || !result.data) {
24
+ console.error('āŒ Error: ', result.message);
25
+ return;
26
+ }
27
+ console.log('\nšŸŽ‰ System Initialization Completed Successfully!');
28
+ console.log('='.repeat(50));
29
+ console.log(`šŸ“ System Config Account: ${result.data.systemConfigAddress.toBase58()}`);
30
+ console.log(`šŸ‘¤ System Manager: ${result.data.systemManager.toBase58()}`);
31
+ console.log(`šŸ“ Lookup Table Address: ${result.data.lookupTableAddress.toBase58()}`);
32
+ console.log('\n✨ Your FlipFlop system is now ready for token operations!');
33
+ }
34
+ //# sourceMappingURL=init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../cli/src/init.ts"],"names":[],"mappings":";;AAUA,kCA6BC;AAvCD,mCAAqE;AACrE,mDAAsE;AAQtE,uBAAuB;AAChB,KAAK,UAAU,WAAW,CAAC,OAAgC;IAChE,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAE3B,yCAAyC;IACzC,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QACjD,OAAO,CAAC,KAAK,CAAC,6DAA6D,CAAC,CAAC;QAC7E,OAAO,CAAC,GAAG,CAAC,4DAA4D,CAAC,CAAC;QAC1E,OAAO;IACT,CAAC;IAED,MAAM,aAAa,GAAG,OAAO,CAAC,WAAW;QACrC,CAAC,CAAC,IAAA,2BAAmB,EAAC,OAAO,CAAC,WAAW,CAAC;QAC1C,CAAC,CAAC,IAAA,6BAAqB,EAAC,OAAO,CAAC,WAAY,CAAC,CAAC;IAElD,iEAAiE;IACjE,MAAM,MAAM,GAAG,MAAM,IAAA,uCAA6B,EAAC;QACjD,GAAG,EAAE,MAAM;QACX,aAAa;KACd,CAAC,CAAC;IACH,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACpC,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QAC3C,OAAO;IACT,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;IAClE,OAAO,CAAC,GAAG,CAAC,GAAG,CAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7B,OAAO,CAAC,GAAG,CAAC,6BAA6B,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IACvF,OAAO,CAAC,GAAG,CAAC,sBAAsB,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAC1E,OAAO,CAAC,GAAG,CAAC,4BAA4B,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IACrF,OAAO,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAC;AAC7E,CAAC"}
@@ -0,0 +1,11 @@
1
+ interface LaunchOptions {
2
+ tokenType?: string;
3
+ name: string;
4
+ symbol: string;
5
+ uri?: string;
6
+ rpc?: string;
7
+ keypairBs58?: string;
8
+ keypairFile?: string;
9
+ }
10
+ export declare function launchCommand(options: LaunchOptions): Promise<void>;
11
+ export {};