@hodlmarkets/sdk 0.1.0 → 0.1.2

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/README.md +6 -6
  2. package/dist/accounts.cjs +22 -0
  3. package/dist/accounts.cjs.map +1 -1
  4. package/dist/accounts.js +22 -0
  5. package/dist/accounts.js.map +1 -1
  6. package/dist/client.cjs +340 -28
  7. package/dist/client.cjs.map +1 -1
  8. package/dist/client.d.cts +6 -2
  9. package/dist/client.d.ts +6 -2
  10. package/dist/client.js +341 -29
  11. package/dist/client.js.map +1 -1
  12. package/dist/constants.cjs +3 -1
  13. package/dist/constants.cjs.map +1 -1
  14. package/dist/constants.d.cts +5 -3
  15. package/dist/constants.d.ts +5 -3
  16. package/dist/constants.js +3 -2
  17. package/dist/constants.js.map +1 -1
  18. package/dist/events.cjs +333 -14
  19. package/dist/events.cjs.map +1 -1
  20. package/dist/events.d.cts +9 -0
  21. package/dist/events.d.ts +9 -0
  22. package/dist/events.js +334 -15
  23. package/dist/events.js.map +1 -1
  24. package/dist/index.cjs +375 -31
  25. package/dist/index.cjs.map +1 -1
  26. package/dist/index.d.cts +3 -3
  27. package/dist/index.d.ts +3 -3
  28. package/dist/index.js +375 -32
  29. package/dist/index.js.map +1 -1
  30. package/dist/instructions.cjs +22 -0
  31. package/dist/instructions.cjs.map +1 -1
  32. package/dist/instructions.js +22 -0
  33. package/dist/instructions.js.map +1 -1
  34. package/dist/math.cjs +33 -0
  35. package/dist/math.cjs.map +1 -1
  36. package/dist/math.d.cts +14 -4
  37. package/dist/math.d.ts +14 -4
  38. package/dist/math.js +33 -1
  39. package/dist/math.js.map +1 -1
  40. package/dist/pda.cjs +1 -0
  41. package/dist/pda.cjs.map +1 -1
  42. package/dist/pda.js +1 -0
  43. package/dist/pda.js.map +1 -1
  44. package/dist/transaction.cjs +0 -13
  45. package/dist/transaction.cjs.map +1 -1
  46. package/dist/transaction.d.cts +5 -3
  47. package/dist/transaction.d.ts +5 -3
  48. package/dist/transaction.js +1 -13
  49. package/dist/transaction.js.map +1 -1
  50. package/dist/types.d.cts +3 -0
  51. package/dist/types.d.ts +3 -0
  52. package/package.json +5 -3
package/README.md CHANGED
@@ -34,7 +34,7 @@ const minTokensOut = applySlippage(expectedTokens, 100) // 1% slippage
34
34
 
35
35
  const tx = await client.buy({ buyer: wallet.publicKey, mint, solAmount, minTokensOut })
36
36
  tx.sign([wallet])
37
- const signature = await client.send(tx)
37
+ const sig = await connection.sendRawTransaction(tx.serialize())
38
38
  ```
39
39
 
40
40
  ## Sell
@@ -55,7 +55,7 @@ const tx = await client.sell({
55
55
  minSolOut: applySlippage(expectedSol, 100),
56
56
  })
57
57
  tx.sign([wallet])
58
- await client.send(tx)
58
+ await connection.sendRawTransaction(tx.serialize())
59
59
  ```
60
60
 
61
61
  ## Create Token
@@ -73,10 +73,10 @@ const tx = await client.createToken({
73
73
  symbol: 'MTK',
74
74
  uri: 'https://arweave.net/metadata.json',
75
75
  poolDescription: 'A community token',
76
- vestDuration: new BN(60), // 1 minute (only 60 or 600 allowed)
76
+ vestDuration: new BN(60), // 1 minute (only 60 or 1800 allowed)
77
77
  })
78
78
  tx.sign([wallet, mint]) // both creator and mint must sign
79
- await client.send(tx)
79
+ await connection.sendRawTransaction(tx.serialize())
80
80
  ```
81
81
 
82
82
  ## Claim Accrued Tokens
@@ -85,7 +85,7 @@ await client.send(tx)
85
85
  const [poolState] = getPoolStatePDA(mint, PROGRAM_ID)
86
86
  const tx = await client.claimAccrued({ owner: wallet.publicKey, poolState })
87
87
  tx.sign([wallet])
88
- await client.send(tx)
88
+ await connection.sendRawTransaction(tx.serialize())
89
89
  ```
90
90
 
91
91
  ## Events
@@ -109,7 +109,7 @@ const events = await client.fetchAndParseTransaction(signature)
109
109
  import { parseHodlError } from '@hodlmarkets/sdk'
110
110
 
111
111
  try {
112
- await client.send(tx)
112
+ await connection.sendRawTransaction(tx.serialize())
113
113
  } catch (err) {
114
114
  const hodlErr = parseHodlError(err)
115
115
  if (hodlErr) console.error(`HODL error ${hodlErr.code}: ${hodlErr.message}`)
package/dist/accounts.cjs CHANGED
@@ -22,6 +22,7 @@ var SEEDS = {
22
22
  PROTOCOL_FEES: Buffer.from("protocol_fees"),
23
23
  EVENT_AUTHORITY: Buffer.from("__event_authority")
24
24
  };
25
+ new BN__default.default("85000000000");
25
26
 
26
27
  // src/pda.ts
27
28
  function getPoolStatePDA(mint, programId) {
@@ -1495,6 +1496,27 @@ var hodl_default = {
1495
1496
  ],
1496
1497
  type: "u64"
1497
1498
  },
1499
+ {
1500
+ name: "migration_complete",
1501
+ docs: [
1502
+ "One-way flag: set to true once vamm_real_sol >= MIGRATION_SOL_THRESHOLD, never reverts"
1503
+ ],
1504
+ type: "bool"
1505
+ },
1506
+ {
1507
+ name: "total_fees_sol",
1508
+ docs: [
1509
+ "Cumulative SOL fees collected from buys (lamports)"
1510
+ ],
1511
+ type: "u64"
1512
+ },
1513
+ {
1514
+ name: "total_fees_tokens",
1515
+ docs: [
1516
+ "Cumulative token fees collected from sells"
1517
+ ],
1518
+ type: "u64"
1519
+ },
1498
1520
  {
1499
1521
  name: "bump_vault_auth",
1500
1522
  docs: [
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/constants.ts","../src/pda.ts","../src/idl/hodl.json","../src/program.ts","../src/accounts.ts"],"names":["PublicKey","BN","AnchorProvider","Program"],"mappings":"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","file":"accounts.cjs","sourcesContent":["import { PublicKey } from '@solana/web3.js'\nimport BN from 'bn.js'\n\nexport const BPS_DENOMINATOR = 10_000\n\nexport const PROGRAM_ID = new PublicKey('hodLrUfwyK3Z7Td5hdZhyojyznG1rqbHVex11y5s4yG')\nexport const PROTOCOL_AUTHORITY = new PublicKey('EFAquDGAHjkoPB6TGKVibD3BYhbFXNDjuXKpiBHdYzji')\n\nexport const VIRTUAL_SOL = new BN('30000000000')\nexport const TOTAL_SUPPLY = new BN('1000000000000000')\nexport const PROTOCOL_MINT_FEE = new BN('100000000')\nexport const DECIMALS = 6\n\nexport const SEEDS = {\n POOL: Buffer.from('pool'),\n VAULT_AUTHORITY: Buffer.from('vault_authority'),\n SOL_VAULT: Buffer.from('sol_vault'),\n POSITION: Buffer.from('position'),\n PROTOCOL_FEES: Buffer.from('protocol_fees'),\n EVENT_AUTHORITY: Buffer.from('__event_authority'),\n} as const\n\nexport const MAINNET_CONFIG = {\n programId: PROGRAM_ID,\n virtualSol: VIRTUAL_SOL,\n protocolAuthority: PROTOCOL_AUTHORITY,\n protocolMintFee: PROTOCOL_MINT_FEE,\n decimals: DECIMALS,\n totalSupply: TOTAL_SUPPLY,\n} as const\n\nexport const DEVNET_CONFIG = {\n programId: PROGRAM_ID,\n virtualSol: VIRTUAL_SOL,\n protocolAuthority: PROTOCOL_AUTHORITY,\n protocolMintFee: PROTOCOL_MINT_FEE,\n decimals: DECIMALS,\n totalSupply: TOTAL_SUPPLY,\n} as const\n\n/** Trade fee in basis points (25 bps = 0.25%). Only applies after vest_duration has passed. */\nexport const TRADE_FEE_BPS = 25\n\n/** Allowed vest duration modes (in seconds). The program only accepts these values. */\nexport const VEST_DURATION = {\n ONE_MINUTE: 60,\n TEN_MINUTES: 600,\n} as const\n\nexport type VestDuration = typeof VEST_DURATION[keyof typeof VEST_DURATION]\n\nexport const LIMITS = {\n NAME: { min: 1, max: 32 },\n SYMBOL: { min: 1, max: 16 },\n URI: { min: 10, max: 100 },\n DESCRIPTION: { min: 0, max: 200 },\n} as const\n","import { PublicKey } from '@solana/web3.js'\nimport { SEEDS } from './constants'\n\nexport function getPoolStatePDA(mint: PublicKey, programId: PublicKey): [PublicKey, number] {\n return PublicKey.findProgramAddressSync([SEEDS.POOL, mint.toBuffer()], programId)\n}\n\nexport function getVaultAuthorityPDA(poolState: PublicKey, programId: PublicKey): [PublicKey, number] {\n return PublicKey.findProgramAddressSync([SEEDS.VAULT_AUTHORITY, poolState.toBuffer()], programId)\n}\n\nexport function getSolVaultPDA(poolState: PublicKey, programId: PublicKey): [PublicKey, number] {\n return PublicKey.findProgramAddressSync([SEEDS.SOL_VAULT, poolState.toBuffer()], programId)\n}\n\nexport function getPositionPDA(poolState: PublicKey, owner: PublicKey, programId: PublicKey): [PublicKey, number] {\n return PublicKey.findProgramAddressSync([SEEDS.POSITION, poolState.toBuffer(), owner.toBuffer()], programId)\n}\n\nexport function getProtocolFeesPDA(programId: PublicKey): [PublicKey, number] {\n return PublicKey.findProgramAddressSync([SEEDS.PROTOCOL_FEES], programId)\n}\n\nexport function getEventAuthorityPDA(programId: PublicKey): [PublicKey, number] {\n return PublicKey.findProgramAddressSync([SEEDS.EVENT_AUTHORITY], programId)\n}\n","{\n \"address\": \"hodLrUfwyK3Z7Td5hdZhyojyznG1rqbHVex11y5s4yG\",\n \"metadata\": {\n \"name\": \"hodl\",\n \"version\": \"0.1.0\",\n \"spec\": \"0.1.0\"\n },\n \"instructions\": [\n {\n \"name\": \"buy\",\n \"docs\": [\n \"Buy tokens from the vAMM\",\n \"\",\n \"Tokens are split into tradable (immediate) and vaulted (accrue linearly).\",\n \"Allocation is based on token-amount range bands: 40/60 at 0-50M, +5% per 50M band, 100/0 at 600M+.\",\n \"After vest_duration passes, all buys are 100% tradable.\"\n ],\n \"discriminator\": [\n 102,\n 6,\n 61,\n 18,\n 1,\n 218,\n 235,\n 234\n ],\n \"accounts\": [\n {\n \"name\": \"buyer\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"pool_state\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 112,\n 111,\n 111,\n 108\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"mint\"\n }\n ]\n }\n },\n {\n \"name\": \"token_vault\",\n \"writable\": true\n },\n {\n \"name\": \"vault_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 118,\n 97,\n 117,\n 108,\n 116,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"pool_state\"\n }\n ]\n }\n },\n {\n \"name\": \"buyer_token_account\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"account\",\n \"path\": \"buyer\"\n },\n {\n \"kind\": \"const\",\n \"value\": [\n 6,\n 221,\n 246,\n 225,\n 215,\n 101,\n 161,\n 147,\n 217,\n 203,\n 225,\n 70,\n 206,\n 235,\n 121,\n 172,\n 28,\n 180,\n 133,\n 237,\n 95,\n 91,\n 55,\n 145,\n 58,\n 140,\n 245,\n 133,\n 126,\n 255,\n 0,\n 169\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"mint\"\n }\n ],\n \"program\": {\n \"kind\": \"const\",\n \"value\": [\n 140,\n 151,\n 37,\n 143,\n 78,\n 36,\n 137,\n 241,\n 187,\n 61,\n 16,\n 41,\n 20,\n 142,\n 13,\n 131,\n 11,\n 90,\n 19,\n 153,\n 218,\n 255,\n 16,\n 132,\n 4,\n 142,\n 123,\n 216,\n 219,\n 233,\n 248,\n 89\n ]\n }\n }\n },\n {\n \"name\": \"pool_sol_account\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 115,\n 111,\n 108,\n 95,\n 118,\n 97,\n 117,\n 108,\n 116\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"pool_state\"\n }\n ]\n }\n },\n {\n \"name\": \"mint\"\n },\n {\n \"name\": \"token_program\",\n \"address\": \"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\"\n },\n {\n \"name\": \"associated_token_program\",\n \"address\": \"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\"\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n },\n {\n \"name\": \"position\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 112,\n 111,\n 115,\n 105,\n 116,\n 105,\n 111,\n 110\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"pool_state\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"buyer\"\n }\n ]\n }\n },\n {\n \"name\": \"event_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 95,\n 95,\n 101,\n 118,\n 101,\n 110,\n 116,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"sol_amount\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"min_tokens_out\",\n \"type\": \"u64\"\n }\n ]\n },\n {\n \"name\": \"claim_accrued\",\n \"docs\": [\n \"Claim accrued tokens\",\n \"Transfers tokens that have accrued from vaulted to tradable from vault to wallet\"\n ],\n \"discriminator\": [\n 209,\n 92,\n 30,\n 216,\n 89,\n 249,\n 122,\n 243\n ],\n \"accounts\": [\n {\n \"name\": \"owner\",\n \"signer\": true\n },\n {\n \"name\": \"pool_state\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 112,\n 111,\n 111,\n 108\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"pool_state.mint\",\n \"account\": \"PoolState\"\n }\n ]\n }\n },\n {\n \"name\": \"position\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 112,\n 111,\n 115,\n 105,\n 116,\n 105,\n 111,\n 110\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"pool_state\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"owner\"\n }\n ]\n }\n },\n {\n \"name\": \"token_vault\",\n \"writable\": true\n },\n {\n \"name\": \"vault_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 118,\n 97,\n 117,\n 108,\n 116,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"pool_state\"\n }\n ]\n }\n },\n {\n \"name\": \"user_token_account\",\n \"writable\": true\n },\n {\n \"name\": \"token_program\",\n \"address\": \"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\"\n },\n {\n \"name\": \"event_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 95,\n 95,\n 101,\n 118,\n 101,\n 110,\n 116,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"program\"\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"close_position\",\n \"docs\": [\n \"Close an empty position account and reclaim rent\"\n ],\n \"discriminator\": [\n 123,\n 134,\n 81,\n 0,\n 49,\n 68,\n 98,\n 98\n ],\n \"accounts\": [\n {\n \"name\": \"owner\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"pool_state\",\n \"writable\": true\n },\n {\n \"name\": \"position\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 112,\n 111,\n 115,\n 105,\n 116,\n 105,\n 111,\n 110\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"pool_state\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"owner\"\n }\n ]\n }\n },\n {\n \"name\": \"user_token_account\",\n \"writable\": true\n },\n {\n \"name\": \"mint\"\n },\n {\n \"name\": \"token_program\",\n \"address\": \"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\"\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n },\n {\n \"name\": \"event_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 95,\n 95,\n 101,\n 118,\n 101,\n 110,\n 116,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"program\"\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"create_token\",\n \"docs\": [\n \"Create a new token and initialize vAMM pool\"\n ],\n \"discriminator\": [\n 84,\n 52,\n 204,\n 228,\n 24,\n 140,\n 234,\n 75\n ],\n \"accounts\": [\n {\n \"name\": \"creator\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"protocol_authority\"\n },\n {\n \"name\": \"mint\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"pool_state\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 112,\n 111,\n 111,\n 108\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"mint\"\n }\n ]\n }\n },\n {\n \"name\": \"token_vault\",\n \"writable\": true\n },\n {\n \"name\": \"vault_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 118,\n 97,\n 117,\n 108,\n 116,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"pool_state\"\n }\n ]\n }\n },\n {\n \"name\": \"metadata\",\n \"writable\": true\n },\n {\n \"name\": \"pool_sol_account\",\n \"writable\": true\n },\n {\n \"name\": \"protocol_fee_wallet\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 112,\n 114,\n 111,\n 116,\n 111,\n 99,\n 111,\n 108,\n 95,\n 102,\n 101,\n 101,\n 115\n ]\n }\n ]\n }\n },\n {\n \"name\": \"token_program\",\n \"address\": \"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\"\n },\n {\n \"name\": \"associated_token_program\",\n \"address\": \"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\"\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n },\n {\n \"name\": \"rent\",\n \"address\": \"SysvarRent111111111111111111111111111111111\"\n },\n {\n \"name\": \"metadata_program\"\n },\n {\n \"name\": \"sysvar_instructions\"\n },\n {\n \"name\": \"event_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 95,\n 95,\n 101,\n 118,\n 101,\n 110,\n 116,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"name\",\n \"type\": \"string\"\n },\n {\n \"name\": \"symbol\",\n \"type\": \"string\"\n },\n {\n \"name\": \"uri\",\n \"type\": \"string\"\n },\n {\n \"name\": \"pool_description\",\n \"type\": \"string\"\n },\n {\n \"name\": \"vest_duration\",\n \"type\": \"i64\"\n }\n ]\n },\n {\n \"name\": \"emergency_withdraw_sol\",\n \"docs\": [\n \"Emergency withdraw SOL from a pool's sol_vault\"\n ],\n \"discriminator\": [\n 219,\n 156,\n 123,\n 176,\n 91,\n 105,\n 30,\n 160\n ],\n \"accounts\": [\n {\n \"name\": \"authority\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"pool_state\"\n },\n {\n \"name\": \"sol_vault\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 115,\n 111,\n 108,\n 95,\n 118,\n 97,\n 117,\n 108,\n 116\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"pool_state\"\n }\n ]\n }\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n }\n ],\n \"args\": [\n {\n \"name\": \"amount\",\n \"type\": \"u64\"\n }\n ]\n },\n {\n \"name\": \"sell\",\n \"docs\": [\n \"Sell tokens back to the vAMM\",\n \"If sell_percentage is provided, it overrides token_amount\"\n ],\n \"discriminator\": [\n 51,\n 230,\n 133,\n 164,\n 1,\n 127,\n 131,\n 173\n ],\n \"accounts\": [\n {\n \"name\": \"seller\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"pool_state\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 112,\n 111,\n 111,\n 108\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"mint\"\n }\n ]\n }\n },\n {\n \"name\": \"position\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 112,\n 111,\n 115,\n 105,\n 116,\n 105,\n 111,\n 110\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"pool_state\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"seller\"\n }\n ]\n }\n },\n {\n \"name\": \"token_vault\",\n \"writable\": true\n },\n {\n \"name\": \"vault_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 118,\n 97,\n 117,\n 108,\n 116,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"pool_state\"\n }\n ]\n }\n },\n {\n \"name\": \"seller_token_account\",\n \"writable\": true\n },\n {\n \"name\": \"pool_sol_account\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 115,\n 111,\n 108,\n 95,\n 118,\n 97,\n 117,\n 108,\n 116\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"pool_state\"\n }\n ]\n }\n },\n {\n \"name\": \"mint\"\n },\n {\n \"name\": \"token_program\",\n \"address\": \"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\"\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n },\n {\n \"name\": \"event_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 95,\n 95,\n 101,\n 118,\n 101,\n 110,\n 116,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"token_amount\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"min_sol_out\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"sell_percentage\",\n \"type\": {\n \"option\": \"u8\"\n }\n }\n ]\n },\n {\n \"name\": \"withdraw_protocol_fees\",\n \"docs\": [\n \"Withdraw accumulated protocol fees\"\n ],\n \"discriminator\": [\n 11,\n 68,\n 165,\n 98,\n 18,\n 208,\n 134,\n 73\n ],\n \"accounts\": [\n {\n \"name\": \"authority\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"protocol_fee_wallet\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 112,\n 114,\n 111,\n 116,\n 111,\n 99,\n 111,\n 108,\n 95,\n 102,\n 101,\n 101,\n 115\n ]\n }\n ]\n }\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n }\n ],\n \"args\": [\n {\n \"name\": \"amount\",\n \"type\": \"u64\"\n }\n ]\n }\n ],\n \"accounts\": [\n {\n \"name\": \"PoolState\",\n \"discriminator\": [\n 247,\n 237,\n 227,\n 245,\n 215,\n 195,\n 222,\n 70\n ]\n },\n {\n \"name\": \"Position\",\n \"discriminator\": [\n 170,\n 188,\n 143,\n 228,\n 122,\n 64,\n 247,\n 208\n ]\n }\n ],\n \"events\": [\n {\n \"name\": \"AccrualClaimed\",\n \"discriminator\": [\n 86,\n 99,\n 51,\n 211,\n 226,\n 48,\n 235,\n 238\n ]\n },\n {\n \"name\": \"PositionClosed\",\n \"discriminator\": [\n 157,\n 163,\n 227,\n 228,\n 13,\n 97,\n 138,\n 121\n ]\n },\n {\n \"name\": \"TokenCreated\",\n \"discriminator\": [\n 236,\n 19,\n 41,\n 255,\n 130,\n 78,\n 147,\n 172\n ]\n },\n {\n \"name\": \"TokenPurchased\",\n \"discriminator\": [\n 3,\n 73,\n 186,\n 50,\n 15,\n 181,\n 213,\n 37\n ]\n },\n {\n \"name\": \"TokenSold\",\n \"discriminator\": [\n 88,\n 61,\n 1,\n 247,\n 185,\n 6,\n 252,\n 86\n ]\n }\n ],\n \"errors\": [\n {\n \"code\": 7005,\n \"name\": \"InsufficientTokens\",\n \"msg\": \"Insufficient token reserves in vault\"\n },\n {\n \"code\": 7100,\n \"name\": \"ArithmeticOverflow\",\n \"msg\": \"Arithmetic overflow\"\n },\n {\n \"code\": 7102,\n \"name\": \"DivisionError\",\n \"msg\": \"Division by zero or invalid division\"\n },\n {\n \"code\": 7104,\n \"name\": \"TokenOverflow\",\n \"msg\": \"Token calculation overflow\"\n },\n {\n \"code\": 7105,\n \"name\": \"TokenUnderflow\",\n \"msg\": \"Token calculation underflow\"\n },\n {\n \"code\": 7200,\n \"name\": \"SlippageExceeded\",\n \"msg\": \"Slippage exceeded: output below minimum threshold\"\n },\n {\n \"code\": 7312,\n \"name\": \"AccrualCalculationOverflow\",\n \"msg\": \"Accrual calculation overflow\"\n },\n {\n \"code\": 7315,\n \"name\": \"PositionNotEmpty\",\n \"msg\": \"Position is not empty, must sell all tokens first\"\n },\n {\n \"code\": 7319,\n \"name\": \"InvalidProtocolAuthority\",\n \"msg\": \"Invalid protocol authority - must match PROTOCOL_AUTHORITY constant\"\n },\n {\n \"code\": 7321,\n \"name\": \"MustHaveUnlockedPortion\",\n \"msg\": \"Position must have tokens to perform this operation\"\n },\n {\n \"code\": 7500,\n \"name\": \"PositionNotOwnedBySigner\",\n \"msg\": \"Position not owned by signer\"\n },\n {\n \"code\": 7505,\n \"name\": \"InvalidSolVaultPDA\",\n \"msg\": \"SOL vault PDA derivation mismatch\"\n },\n {\n \"code\": 7601,\n \"name\": \"InvalidVestingType\",\n \"msg\": \"Invalid vesting type\"\n },\n {\n \"code\": 7604,\n \"name\": \"InvalidPercentage\",\n \"msg\": \"Invalid percentage value (must be 0-100)\"\n },\n {\n \"code\": 7901,\n \"name\": \"NotAuthorized\",\n \"msg\": \"Not authorized\"\n },\n {\n \"code\": 8014,\n \"name\": \"InsufficientLiquidity\",\n \"msg\": \"Insufficient liquidity\"\n },\n {\n \"code\": 8018,\n \"name\": \"VammNotActive\",\n \"msg\": \"vAMM is not active\"\n },\n {\n \"code\": 8020,\n \"name\": \"InvalidAmount\",\n \"msg\": \"Invalid amount\"\n }\n ],\n \"types\": [\n {\n \"name\": \"AccrualClaimed\",\n \"docs\": [\n \"Event emitted when accrued tokens are claimed\"\n ],\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"owner\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"pool\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"position\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"tokens_claimed\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"new_tradable_tokens\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"remaining_vaulted_tokens\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"tokens_transferred\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"initial_vaulted\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"timestamp\",\n \"type\": \"i64\"\n }\n ]\n }\n },\n {\n \"name\": \"PoolMetadata\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"name\",\n \"docs\": [\n \"Optional pool name\"\n ],\n \"type\": \"string\"\n },\n {\n \"name\": \"description\",\n \"docs\": [\n \"Optional pool description\"\n ],\n \"type\": \"string\"\n },\n {\n \"name\": \"version\",\n \"docs\": [\n \"Pool version\"\n ],\n \"type\": \"u8\"\n }\n ]\n }\n },\n {\n \"name\": \"PoolState\",\n \"docs\": [\n \"Pool state account - main state for a vAMM pool\"\n ],\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"authority\",\n \"docs\": [\n \"Pool authority (creator)\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"mint\",\n \"docs\": [\n \"Token mint for this pool\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"token_vault\",\n \"docs\": [\n \"Token vault (holds unsold tokens)\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"vault_authority\",\n \"docs\": [\n \"Vault authority (PDA)\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"sol_vault\",\n \"docs\": [\n \"Pool SOL vault (holds raised SOL)\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"total_positions\",\n \"docs\": [\n \"Total number of positions in this pool\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"creation_timestamp\",\n \"docs\": [\n \"Pool creation timestamp (Unix timestamp)\"\n ],\n \"type\": \"i64\"\n },\n {\n \"name\": \"last_update_timestamp\",\n \"docs\": [\n \"Last update timestamp (Unix timestamp)\"\n ],\n \"type\": \"i64\"\n },\n {\n \"name\": \"metadata\",\n \"docs\": [\n \"Pool metadata\"\n ],\n \"type\": {\n \"defined\": {\n \"name\": \"PoolMetadata\"\n }\n }\n },\n {\n \"name\": \"vest_duration\",\n \"docs\": [\n \"=== ACCRUAL SYSTEM FIELDS ===\",\n \"Dev-set unlock duration in seconds (applies to all traders)\"\n ],\n \"type\": \"i64\"\n },\n {\n \"name\": \"next_position_number\",\n \"docs\": [\n \"Next position number to assign (sequential counter for display/identity)\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"vamm_active\",\n \"docs\": [\n \"=== VAMM STATE ===\",\n \"vAMM is active for trading\"\n ],\n \"type\": \"bool\"\n },\n {\n \"name\": \"vamm_real_sol\",\n \"docs\": [\n \"Real SOL in the vAMM\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"vamm_tokens\",\n \"docs\": [\n \"Real tokens in the vAMM\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"vamm_k\",\n \"docs\": [\n \"The invariant k (set at creation, never changes)\",\n \"k = (vamm_real_sol + VIRTUAL_SOL) * vamm_tokens\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"tokens_sold\",\n \"docs\": [\n \"Cumulative tokens bought from vAMM (increases on buy, decreases on sell)\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"tokens_reserved_for_claims\",\n \"docs\": [\n \"Vault tokens reserved for position claims (not available for vAMM liquidity)\",\n \"Incremented on buy (vaulted portion), decremented on claim_accrued\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"bump_vault_auth\",\n \"docs\": [\n \"Bump seeds for PDAs\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"bump_pool\",\n \"type\": \"u8\"\n }\n ]\n }\n },\n {\n \"name\": \"Position\",\n \"docs\": [\n \"Position in a vAMM pool\",\n \"Tokens split into tradable (immediate) and vaulted (accrue linearly over vest_duration)\"\n ],\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"owner\",\n \"docs\": [\n \"Owner's public key\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"pool\",\n \"docs\": [\n \"Pool this position belongs to\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"tradable_tokens\",\n \"docs\": [\n \"Tradable tokens (can be sold immediately)\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"vaulted_tokens\",\n \"docs\": [\n \"Vaulted tokens (accruing linearly to tradable)\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"sol_spent\",\n \"docs\": [\n \"SOL spent on this position\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"tokens_transferred\",\n \"docs\": [\n \"Cumulative tokens transferred to wallet (for claim_accrued tracking)\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"entry_timestamp\",\n \"docs\": [\n \"Entry timestamp (for accrual calculation)\"\n ],\n \"type\": \"i64\"\n },\n {\n \"name\": \"initial_vaulted\",\n \"docs\": [\n \"Cumulative initial vaulted tokens from all buys (for accrual calculation)\",\n \"This tracks the total vaulted amount at buy time, used to calculate accrual progress\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"position_number\",\n \"docs\": [\n \"Position number in the pool (sequential counter for display/identity)\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"last_update_timestamp\",\n \"docs\": [\n \"Last update timestamp\"\n ],\n \"type\": \"i64\"\n }\n ]\n }\n },\n {\n \"name\": \"PositionClosed\",\n \"docs\": [\n \"Event emitted when a position account is closed\"\n ],\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"owner\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"pool\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"position\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"rent_reclaimed\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"timestamp\",\n \"type\": \"i64\"\n }\n ]\n }\n },\n {\n \"name\": \"TokenCreated\",\n \"docs\": [\n \"Event emitted when a new token and vAMM pool is created\"\n ],\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"mint\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"pool\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"creator\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"name\",\n \"type\": \"string\"\n },\n {\n \"name\": \"symbol\",\n \"type\": \"string\"\n },\n {\n \"name\": \"total_supply\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"initial_k\",\n \"type\": \"u128\"\n },\n {\n \"name\": \"vamm_tokens\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"vest_duration\",\n \"type\": \"i64\"\n },\n {\n \"name\": \"creation_timestamp\",\n \"type\": \"i64\"\n }\n ]\n }\n },\n {\n \"name\": \"TokenPurchased\",\n \"docs\": [\n \"Event emitted when tokens are bought\"\n ],\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"buyer\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"pool\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"mint\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"sol_amount\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"tokens_received\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"vamm_real_sol\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"vamm_tokens\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"tokens_sold\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"position\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"position_number\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"vest_duration\",\n \"type\": \"i64\"\n },\n {\n \"name\": \"unlock_time_seconds\",\n \"type\": \"i64\"\n },\n {\n \"name\": \"tradable_tokens\",\n \"docs\": [\n \"Position state after buy\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"vaulted_tokens\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"sol_spent\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"tokens_transferred\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"initial_vaulted\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"timestamp\",\n \"type\": \"i64\"\n }\n ]\n }\n },\n {\n \"name\": \"TokenSold\",\n \"docs\": [\n \"Event emitted when tokens are sold\"\n ],\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"seller\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"pool\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"mint\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"token_amount\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"sol_received\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"vamm_real_sol\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"vamm_tokens\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"tokens_sold\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"position\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"position_number\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"vest_duration\",\n \"type\": \"i64\"\n },\n {\n \"name\": \"unlock_time_seconds\",\n \"type\": \"i64\"\n },\n {\n \"name\": \"tradable_tokens\",\n \"docs\": [\n \"Position state after sell\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"vaulted_tokens\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"sol_spent\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"tokens_transferred\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"initial_vaulted\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"timestamp\",\n \"type\": \"i64\"\n }\n ]\n }\n }\n ]\n}","import { Connection, PublicKey } from '@solana/web3.js'\nimport { Program, AnchorProvider } from '@coral-xyz/anchor'\nimport type { Hodl } from './idl/hodl'\nimport IDL from './idl/hodl.json'\n\nconst DUMMY_WALLET = {\n publicKey: PublicKey.default,\n signTransaction: async <T>(tx: T): Promise<T> => tx,\n signAllTransactions: async <T>(txs: T[]): Promise<T[]> => txs,\n}\n\nexport function getProgram(connection: Connection): Program<Hodl> {\n const provider = new AnchorProvider(connection, DUMMY_WALLET as any, { commitment: 'confirmed' })\n return new Program<Hodl>(IDL as unknown as Hodl, provider)\n}\n","import { Connection, PublicKey } from '@solana/web3.js'\nimport type { PoolState, Position, SdkConfig } from './types'\nimport { getPoolStatePDA, getPositionPDA } from './pda'\nimport { getProgram } from './program'\n\nexport async function fetchPoolState(\n connection: Connection,\n mint: PublicKey,\n config: SdkConfig,\n): Promise<PoolState> {\n const program = getProgram(connection)\n const [poolStatePDA] = getPoolStatePDA(mint, config.programId)\n return program.account.poolState.fetch(poolStatePDA) as unknown as PoolState\n}\n\nexport async function fetchPosition(\n connection: Connection,\n poolState: PublicKey,\n owner: PublicKey,\n config: SdkConfig,\n): Promise<Position> {\n const program = getProgram(connection)\n const [positionPDA] = getPositionPDA(poolState, owner, config.programId)\n return program.account.position.fetch(positionPDA) as unknown as Position\n}\n\nexport async function fetchPoolStateByAddress(\n connection: Connection,\n poolStatePDA: PublicKey,\n): Promise<PoolState> {\n const program = getProgram(connection)\n return program.account.poolState.fetch(poolStatePDA) as unknown as PoolState\n}\n"]}
1
+ {"version":3,"sources":["../src/constants.ts","../src/pda.ts","../src/idl/hodl.json","../src/program.ts","../src/accounts.ts"],"names":["PublicKey","BN","AnchorProvider","Program"],"mappings":"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","file":"accounts.cjs","sourcesContent":["import { PublicKey } from '@solana/web3.js'\nimport BN from 'bn.js'\n\nexport const BPS_DENOMINATOR = 10_000\n\nexport const PROGRAM_ID = new PublicKey('hodLrUfwyK3Z7Td5hdZhyojyznG1rqbHVex11y5s4yG')\nexport const PROTOCOL_AUTHORITY = new PublicKey('EFAquDGAHjkoPB6TGKVibD3BYhbFXNDjuXKpiBHdYzji')\n\nexport const VIRTUAL_SOL = new BN('30000000000')\nexport const TOTAL_SUPPLY = new BN('1000000000000000')\nexport const PROTOCOL_MINT_FEE = new BN('100000000')\nexport const DECIMALS = 6\n\nexport const SEEDS = {\n POOL: Buffer.from('pool'),\n VAULT_AUTHORITY: Buffer.from('vault_authority'),\n SOL_VAULT: Buffer.from('sol_vault'),\n POSITION: Buffer.from('position'),\n PROTOCOL_FEES: Buffer.from('protocol_fees'),\n EVENT_AUTHORITY: Buffer.from('__event_authority'),\n} as const\n\nexport const MAINNET_CONFIG = {\n programId: PROGRAM_ID,\n virtualSol: VIRTUAL_SOL,\n protocolAuthority: PROTOCOL_AUTHORITY,\n protocolMintFee: PROTOCOL_MINT_FEE,\n decimals: DECIMALS,\n totalSupply: TOTAL_SUPPLY,\n} as const\n\nexport const DEVNET_CONFIG = {\n programId: PROGRAM_ID,\n virtualSol: VIRTUAL_SOL,\n protocolAuthority: PROTOCOL_AUTHORITY,\n protocolMintFee: PROTOCOL_MINT_FEE,\n decimals: DECIMALS,\n totalSupply: TOTAL_SUPPLY,\n} as const\n\n/** Trade fee in basis points (25 bps = 0.25%). Only applies after migration threshold (85 SOL). */\nexport const TRADE_FEE_BPS = 25\n\n/** SOL threshold in lamports that triggers migration and fee activation (85 SOL). */\nexport const MIGRATION_SOL_THRESHOLD = new BN('85000000000')\n\n/** Allowed vest duration modes (in seconds). The program only accepts these values. */\nexport const VEST_DURATION = {\n ONE_MINUTE: 60,\n THIRTY_MINUTES: 1800,\n} as const\n\nexport type VestDuration = typeof VEST_DURATION[keyof typeof VEST_DURATION]\n\nexport const LIMITS = {\n NAME: { min: 1, max: 32 },\n SYMBOL: { min: 1, max: 16 },\n URI: { min: 10, max: 100 },\n DESCRIPTION: { min: 0, max: 200 },\n} as const\n","import { PublicKey } from '@solana/web3.js'\nimport { SEEDS } from './constants'\n\nexport function getPoolStatePDA(mint: PublicKey, programId: PublicKey): [PublicKey, number] {\n return PublicKey.findProgramAddressSync([SEEDS.POOL, mint.toBuffer()], programId)\n}\n\nexport function getVaultAuthorityPDA(poolState: PublicKey, programId: PublicKey): [PublicKey, number] {\n return PublicKey.findProgramAddressSync([SEEDS.VAULT_AUTHORITY, poolState.toBuffer()], programId)\n}\n\nexport function getSolVaultPDA(poolState: PublicKey, programId: PublicKey): [PublicKey, number] {\n return PublicKey.findProgramAddressSync([SEEDS.SOL_VAULT, poolState.toBuffer()], programId)\n}\n\nexport function getPositionPDA(poolState: PublicKey, owner: PublicKey, programId: PublicKey): [PublicKey, number] {\n return PublicKey.findProgramAddressSync([SEEDS.POSITION, poolState.toBuffer(), owner.toBuffer()], programId)\n}\n\nexport function getProtocolFeesPDA(programId: PublicKey): [PublicKey, number] {\n return PublicKey.findProgramAddressSync([SEEDS.PROTOCOL_FEES], programId)\n}\n\nexport function getEventAuthorityPDA(programId: PublicKey): [PublicKey, number] {\n return PublicKey.findProgramAddressSync([SEEDS.EVENT_AUTHORITY], programId)\n}\n","{\n \"address\": \"hodLrUfwyK3Z7Td5hdZhyojyznG1rqbHVex11y5s4yG\",\n \"metadata\": {\n \"name\": \"hodl\",\n \"version\": \"0.1.0\",\n \"spec\": \"0.1.0\"\n },\n \"instructions\": [\n {\n \"name\": \"buy\",\n \"docs\": [\n \"Buy tokens from the vAMM\",\n \"\",\n \"Tokens are split into tradable (immediate) and vaulted (accrue linearly).\",\n \"Allocation is based on token-amount range bands: 40/60 at 0-50M, +5% per 50M band, 100/0 at 600M+.\",\n \"After vest_duration passes, all buys are 100% tradable.\"\n ],\n \"discriminator\": [\n 102,\n 6,\n 61,\n 18,\n 1,\n 218,\n 235,\n 234\n ],\n \"accounts\": [\n {\n \"name\": \"buyer\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"pool_state\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 112,\n 111,\n 111,\n 108\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"mint\"\n }\n ]\n }\n },\n {\n \"name\": \"token_vault\",\n \"writable\": true\n },\n {\n \"name\": \"vault_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 118,\n 97,\n 117,\n 108,\n 116,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"pool_state\"\n }\n ]\n }\n },\n {\n \"name\": \"buyer_token_account\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"account\",\n \"path\": \"buyer\"\n },\n {\n \"kind\": \"const\",\n \"value\": [\n 6,\n 221,\n 246,\n 225,\n 215,\n 101,\n 161,\n 147,\n 217,\n 203,\n 225,\n 70,\n 206,\n 235,\n 121,\n 172,\n 28,\n 180,\n 133,\n 237,\n 95,\n 91,\n 55,\n 145,\n 58,\n 140,\n 245,\n 133,\n 126,\n 255,\n 0,\n 169\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"mint\"\n }\n ],\n \"program\": {\n \"kind\": \"const\",\n \"value\": [\n 140,\n 151,\n 37,\n 143,\n 78,\n 36,\n 137,\n 241,\n 187,\n 61,\n 16,\n 41,\n 20,\n 142,\n 13,\n 131,\n 11,\n 90,\n 19,\n 153,\n 218,\n 255,\n 16,\n 132,\n 4,\n 142,\n 123,\n 216,\n 219,\n 233,\n 248,\n 89\n ]\n }\n }\n },\n {\n \"name\": \"pool_sol_account\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 115,\n 111,\n 108,\n 95,\n 118,\n 97,\n 117,\n 108,\n 116\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"pool_state\"\n }\n ]\n }\n },\n {\n \"name\": \"mint\"\n },\n {\n \"name\": \"token_program\",\n \"address\": \"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\"\n },\n {\n \"name\": \"associated_token_program\",\n \"address\": \"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\"\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n },\n {\n \"name\": \"position\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 112,\n 111,\n 115,\n 105,\n 116,\n 105,\n 111,\n 110\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"pool_state\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"buyer\"\n }\n ]\n }\n },\n {\n \"name\": \"event_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 95,\n 95,\n 101,\n 118,\n 101,\n 110,\n 116,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"sol_amount\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"min_tokens_out\",\n \"type\": \"u64\"\n }\n ]\n },\n {\n \"name\": \"claim_accrued\",\n \"docs\": [\n \"Claim accrued tokens\",\n \"Transfers tokens that have accrued from vaulted to tradable from vault to wallet\"\n ],\n \"discriminator\": [\n 209,\n 92,\n 30,\n 216,\n 89,\n 249,\n 122,\n 243\n ],\n \"accounts\": [\n {\n \"name\": \"owner\",\n \"signer\": true\n },\n {\n \"name\": \"pool_state\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 112,\n 111,\n 111,\n 108\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"pool_state.mint\",\n \"account\": \"PoolState\"\n }\n ]\n }\n },\n {\n \"name\": \"position\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 112,\n 111,\n 115,\n 105,\n 116,\n 105,\n 111,\n 110\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"pool_state\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"owner\"\n }\n ]\n }\n },\n {\n \"name\": \"token_vault\",\n \"writable\": true\n },\n {\n \"name\": \"vault_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 118,\n 97,\n 117,\n 108,\n 116,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"pool_state\"\n }\n ]\n }\n },\n {\n \"name\": \"user_token_account\",\n \"writable\": true\n },\n {\n \"name\": \"token_program\",\n \"address\": \"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\"\n },\n {\n \"name\": \"event_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 95,\n 95,\n 101,\n 118,\n 101,\n 110,\n 116,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"program\"\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"close_position\",\n \"docs\": [\n \"Close an empty position account and reclaim rent\"\n ],\n \"discriminator\": [\n 123,\n 134,\n 81,\n 0,\n 49,\n 68,\n 98,\n 98\n ],\n \"accounts\": [\n {\n \"name\": \"owner\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"pool_state\",\n \"writable\": true\n },\n {\n \"name\": \"position\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 112,\n 111,\n 115,\n 105,\n 116,\n 105,\n 111,\n 110\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"pool_state\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"owner\"\n }\n ]\n }\n },\n {\n \"name\": \"user_token_account\",\n \"writable\": true\n },\n {\n \"name\": \"mint\"\n },\n {\n \"name\": \"token_program\",\n \"address\": \"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\"\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n },\n {\n \"name\": \"event_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 95,\n 95,\n 101,\n 118,\n 101,\n 110,\n 116,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"program\"\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"create_token\",\n \"docs\": [\n \"Create a new token and initialize vAMM pool\"\n ],\n \"discriminator\": [\n 84,\n 52,\n 204,\n 228,\n 24,\n 140,\n 234,\n 75\n ],\n \"accounts\": [\n {\n \"name\": \"creator\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"protocol_authority\"\n },\n {\n \"name\": \"mint\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"pool_state\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 112,\n 111,\n 111,\n 108\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"mint\"\n }\n ]\n }\n },\n {\n \"name\": \"token_vault\",\n \"writable\": true\n },\n {\n \"name\": \"vault_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 118,\n 97,\n 117,\n 108,\n 116,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"pool_state\"\n }\n ]\n }\n },\n {\n \"name\": \"metadata\",\n \"writable\": true\n },\n {\n \"name\": \"pool_sol_account\",\n \"writable\": true\n },\n {\n \"name\": \"protocol_fee_wallet\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 112,\n 114,\n 111,\n 116,\n 111,\n 99,\n 111,\n 108,\n 95,\n 102,\n 101,\n 101,\n 115\n ]\n }\n ]\n }\n },\n {\n \"name\": \"token_program\",\n \"address\": \"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\"\n },\n {\n \"name\": \"associated_token_program\",\n \"address\": \"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\"\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n },\n {\n \"name\": \"rent\",\n \"address\": \"SysvarRent111111111111111111111111111111111\"\n },\n {\n \"name\": \"metadata_program\"\n },\n {\n \"name\": \"sysvar_instructions\"\n },\n {\n \"name\": \"event_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 95,\n 95,\n 101,\n 118,\n 101,\n 110,\n 116,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"name\",\n \"type\": \"string\"\n },\n {\n \"name\": \"symbol\",\n \"type\": \"string\"\n },\n {\n \"name\": \"uri\",\n \"type\": \"string\"\n },\n {\n \"name\": \"pool_description\",\n \"type\": \"string\"\n },\n {\n \"name\": \"vest_duration\",\n \"type\": \"i64\"\n }\n ]\n },\n {\n \"name\": \"emergency_withdraw_sol\",\n \"docs\": [\n \"Emergency withdraw SOL from a pool's sol_vault\"\n ],\n \"discriminator\": [\n 219,\n 156,\n 123,\n 176,\n 91,\n 105,\n 30,\n 160\n ],\n \"accounts\": [\n {\n \"name\": \"authority\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"pool_state\"\n },\n {\n \"name\": \"sol_vault\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 115,\n 111,\n 108,\n 95,\n 118,\n 97,\n 117,\n 108,\n 116\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"pool_state\"\n }\n ]\n }\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n }\n ],\n \"args\": [\n {\n \"name\": \"amount\",\n \"type\": \"u64\"\n }\n ]\n },\n {\n \"name\": \"sell\",\n \"docs\": [\n \"Sell tokens back to the vAMM\",\n \"If sell_percentage is provided, it overrides token_amount\"\n ],\n \"discriminator\": [\n 51,\n 230,\n 133,\n 164,\n 1,\n 127,\n 131,\n 173\n ],\n \"accounts\": [\n {\n \"name\": \"seller\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"pool_state\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 112,\n 111,\n 111,\n 108\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"mint\"\n }\n ]\n }\n },\n {\n \"name\": \"position\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 112,\n 111,\n 115,\n 105,\n 116,\n 105,\n 111,\n 110\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"pool_state\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"seller\"\n }\n ]\n }\n },\n {\n \"name\": \"token_vault\",\n \"writable\": true\n },\n {\n \"name\": \"vault_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 118,\n 97,\n 117,\n 108,\n 116,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"pool_state\"\n }\n ]\n }\n },\n {\n \"name\": \"seller_token_account\",\n \"writable\": true\n },\n {\n \"name\": \"pool_sol_account\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 115,\n 111,\n 108,\n 95,\n 118,\n 97,\n 117,\n 108,\n 116\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"pool_state\"\n }\n ]\n }\n },\n {\n \"name\": \"mint\"\n },\n {\n \"name\": \"token_program\",\n \"address\": \"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\"\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n },\n {\n \"name\": \"event_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 95,\n 95,\n 101,\n 118,\n 101,\n 110,\n 116,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"token_amount\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"min_sol_out\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"sell_percentage\",\n \"type\": {\n \"option\": \"u8\"\n }\n }\n ]\n },\n {\n \"name\": \"withdraw_protocol_fees\",\n \"docs\": [\n \"Withdraw accumulated protocol fees\"\n ],\n \"discriminator\": [\n 11,\n 68,\n 165,\n 98,\n 18,\n 208,\n 134,\n 73\n ],\n \"accounts\": [\n {\n \"name\": \"authority\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"protocol_fee_wallet\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 112,\n 114,\n 111,\n 116,\n 111,\n 99,\n 111,\n 108,\n 95,\n 102,\n 101,\n 101,\n 115\n ]\n }\n ]\n }\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n }\n ],\n \"args\": [\n {\n \"name\": \"amount\",\n \"type\": \"u64\"\n }\n ]\n }\n ],\n \"accounts\": [\n {\n \"name\": \"PoolState\",\n \"discriminator\": [\n 247,\n 237,\n 227,\n 245,\n 215,\n 195,\n 222,\n 70\n ]\n },\n {\n \"name\": \"Position\",\n \"discriminator\": [\n 170,\n 188,\n 143,\n 228,\n 122,\n 64,\n 247,\n 208\n ]\n }\n ],\n \"events\": [\n {\n \"name\": \"AccrualClaimed\",\n \"discriminator\": [\n 86,\n 99,\n 51,\n 211,\n 226,\n 48,\n 235,\n 238\n ]\n },\n {\n \"name\": \"PositionClosed\",\n \"discriminator\": [\n 157,\n 163,\n 227,\n 228,\n 13,\n 97,\n 138,\n 121\n ]\n },\n {\n \"name\": \"TokenCreated\",\n \"discriminator\": [\n 236,\n 19,\n 41,\n 255,\n 130,\n 78,\n 147,\n 172\n ]\n },\n {\n \"name\": \"TokenPurchased\",\n \"discriminator\": [\n 3,\n 73,\n 186,\n 50,\n 15,\n 181,\n 213,\n 37\n ]\n },\n {\n \"name\": \"TokenSold\",\n \"discriminator\": [\n 88,\n 61,\n 1,\n 247,\n 185,\n 6,\n 252,\n 86\n ]\n }\n ],\n \"errors\": [\n {\n \"code\": 7005,\n \"name\": \"InsufficientTokens\",\n \"msg\": \"Insufficient token reserves in vault\"\n },\n {\n \"code\": 7100,\n \"name\": \"ArithmeticOverflow\",\n \"msg\": \"Arithmetic overflow\"\n },\n {\n \"code\": 7102,\n \"name\": \"DivisionError\",\n \"msg\": \"Division by zero or invalid division\"\n },\n {\n \"code\": 7104,\n \"name\": \"TokenOverflow\",\n \"msg\": \"Token calculation overflow\"\n },\n {\n \"code\": 7105,\n \"name\": \"TokenUnderflow\",\n \"msg\": \"Token calculation underflow\"\n },\n {\n \"code\": 7200,\n \"name\": \"SlippageExceeded\",\n \"msg\": \"Slippage exceeded: output below minimum threshold\"\n },\n {\n \"code\": 7312,\n \"name\": \"AccrualCalculationOverflow\",\n \"msg\": \"Accrual calculation overflow\"\n },\n {\n \"code\": 7315,\n \"name\": \"PositionNotEmpty\",\n \"msg\": \"Position is not empty, must sell all tokens first\"\n },\n {\n \"code\": 7319,\n \"name\": \"InvalidProtocolAuthority\",\n \"msg\": \"Invalid protocol authority - must match PROTOCOL_AUTHORITY constant\"\n },\n {\n \"code\": 7321,\n \"name\": \"MustHaveUnlockedPortion\",\n \"msg\": \"Position must have tokens to perform this operation\"\n },\n {\n \"code\": 7500,\n \"name\": \"PositionNotOwnedBySigner\",\n \"msg\": \"Position not owned by signer\"\n },\n {\n \"code\": 7505,\n \"name\": \"InvalidSolVaultPDA\",\n \"msg\": \"SOL vault PDA derivation mismatch\"\n },\n {\n \"code\": 7601,\n \"name\": \"InvalidVestingType\",\n \"msg\": \"Invalid vesting type\"\n },\n {\n \"code\": 7604,\n \"name\": \"InvalidPercentage\",\n \"msg\": \"Invalid percentage value (must be 0-100)\"\n },\n {\n \"code\": 7901,\n \"name\": \"NotAuthorized\",\n \"msg\": \"Not authorized\"\n },\n {\n \"code\": 8014,\n \"name\": \"InsufficientLiquidity\",\n \"msg\": \"Insufficient liquidity\"\n },\n {\n \"code\": 8018,\n \"name\": \"VammNotActive\",\n \"msg\": \"vAMM is not active\"\n },\n {\n \"code\": 8020,\n \"name\": \"InvalidAmount\",\n \"msg\": \"Invalid amount\"\n }\n ],\n \"types\": [\n {\n \"name\": \"AccrualClaimed\",\n \"docs\": [\n \"Event emitted when accrued tokens are claimed\"\n ],\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"owner\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"pool\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"position\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"tokens_claimed\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"new_tradable_tokens\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"remaining_vaulted_tokens\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"tokens_transferred\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"initial_vaulted\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"timestamp\",\n \"type\": \"i64\"\n }\n ]\n }\n },\n {\n \"name\": \"PoolMetadata\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"name\",\n \"docs\": [\n \"Optional pool name\"\n ],\n \"type\": \"string\"\n },\n {\n \"name\": \"description\",\n \"docs\": [\n \"Optional pool description\"\n ],\n \"type\": \"string\"\n },\n {\n \"name\": \"version\",\n \"docs\": [\n \"Pool version\"\n ],\n \"type\": \"u8\"\n }\n ]\n }\n },\n {\n \"name\": \"PoolState\",\n \"docs\": [\n \"Pool state account - main state for a vAMM pool\"\n ],\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"authority\",\n \"docs\": [\n \"Pool authority (creator)\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"mint\",\n \"docs\": [\n \"Token mint for this pool\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"token_vault\",\n \"docs\": [\n \"Token vault (holds unsold tokens)\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"vault_authority\",\n \"docs\": [\n \"Vault authority (PDA)\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"sol_vault\",\n \"docs\": [\n \"Pool SOL vault (holds raised SOL)\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"total_positions\",\n \"docs\": [\n \"Total number of positions in this pool\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"creation_timestamp\",\n \"docs\": [\n \"Pool creation timestamp (Unix timestamp)\"\n ],\n \"type\": \"i64\"\n },\n {\n \"name\": \"last_update_timestamp\",\n \"docs\": [\n \"Last update timestamp (Unix timestamp)\"\n ],\n \"type\": \"i64\"\n },\n {\n \"name\": \"metadata\",\n \"docs\": [\n \"Pool metadata\"\n ],\n \"type\": {\n \"defined\": {\n \"name\": \"PoolMetadata\"\n }\n }\n },\n {\n \"name\": \"vest_duration\",\n \"docs\": [\n \"=== ACCRUAL SYSTEM FIELDS ===\",\n \"Dev-set unlock duration in seconds (applies to all traders)\"\n ],\n \"type\": \"i64\"\n },\n {\n \"name\": \"next_position_number\",\n \"docs\": [\n \"Next position number to assign (sequential counter for display/identity)\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"vamm_active\",\n \"docs\": [\n \"=== VAMM STATE ===\",\n \"vAMM is active for trading\"\n ],\n \"type\": \"bool\"\n },\n {\n \"name\": \"vamm_real_sol\",\n \"docs\": [\n \"Real SOL in the vAMM\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"vamm_tokens\",\n \"docs\": [\n \"Real tokens in the vAMM\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"vamm_k\",\n \"docs\": [\n \"The invariant k (set at creation, never changes)\",\n \"k = (vamm_real_sol + VIRTUAL_SOL) * vamm_tokens\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"tokens_sold\",\n \"docs\": [\n \"Cumulative tokens bought from vAMM (increases on buy, decreases on sell)\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"tokens_reserved_for_claims\",\n \"docs\": [\n \"Vault tokens reserved for position claims (not available for vAMM liquidity)\",\n \"Incremented on buy (vaulted portion), decremented on claim_accrued\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"migration_complete\",\n \"docs\": [\n \"One-way flag: set to true once vamm_real_sol >= MIGRATION_SOL_THRESHOLD, never reverts\"\n ],\n \"type\": \"bool\"\n },\n {\n \"name\": \"total_fees_sol\",\n \"docs\": [\n \"Cumulative SOL fees collected from buys (lamports)\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"total_fees_tokens\",\n \"docs\": [\n \"Cumulative token fees collected from sells\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"bump_vault_auth\",\n \"docs\": [\n \"Bump seeds for PDAs\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"bump_pool\",\n \"type\": \"u8\"\n }\n ]\n }\n },\n {\n \"name\": \"Position\",\n \"docs\": [\n \"Position in a vAMM pool\",\n \"Tokens split into tradable (immediate) and vaulted (accrue linearly over vest_duration)\"\n ],\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"owner\",\n \"docs\": [\n \"Owner's public key\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"pool\",\n \"docs\": [\n \"Pool this position belongs to\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"tradable_tokens\",\n \"docs\": [\n \"Tradable tokens (can be sold immediately)\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"vaulted_tokens\",\n \"docs\": [\n \"Vaulted tokens (accruing linearly to tradable)\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"sol_spent\",\n \"docs\": [\n \"SOL spent on this position\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"tokens_transferred\",\n \"docs\": [\n \"Cumulative tokens transferred to wallet (for claim_accrued tracking)\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"entry_timestamp\",\n \"docs\": [\n \"Entry timestamp (for accrual calculation)\"\n ],\n \"type\": \"i64\"\n },\n {\n \"name\": \"initial_vaulted\",\n \"docs\": [\n \"Cumulative initial vaulted tokens from all buys (for accrual calculation)\",\n \"This tracks the total vaulted amount at buy time, used to calculate accrual progress\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"position_number\",\n \"docs\": [\n \"Position number in the pool (sequential counter for display/identity)\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"last_update_timestamp\",\n \"docs\": [\n \"Last update timestamp\"\n ],\n \"type\": \"i64\"\n }\n ]\n }\n },\n {\n \"name\": \"PositionClosed\",\n \"docs\": [\n \"Event emitted when a position account is closed\"\n ],\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"owner\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"pool\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"position\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"rent_reclaimed\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"timestamp\",\n \"type\": \"i64\"\n }\n ]\n }\n },\n {\n \"name\": \"TokenCreated\",\n \"docs\": [\n \"Event emitted when a new token and vAMM pool is created\"\n ],\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"mint\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"pool\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"creator\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"name\",\n \"type\": \"string\"\n },\n {\n \"name\": \"symbol\",\n \"type\": \"string\"\n },\n {\n \"name\": \"total_supply\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"initial_k\",\n \"type\": \"u128\"\n },\n {\n \"name\": \"vamm_tokens\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"vest_duration\",\n \"type\": \"i64\"\n },\n {\n \"name\": \"creation_timestamp\",\n \"type\": \"i64\"\n }\n ]\n }\n },\n {\n \"name\": \"TokenPurchased\",\n \"docs\": [\n \"Event emitted when tokens are bought\"\n ],\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"buyer\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"pool\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"mint\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"sol_amount\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"tokens_received\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"vamm_real_sol\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"vamm_tokens\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"tokens_sold\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"position\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"position_number\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"vest_duration\",\n \"type\": \"i64\"\n },\n {\n \"name\": \"unlock_time_seconds\",\n \"type\": \"i64\"\n },\n {\n \"name\": \"tradable_tokens\",\n \"docs\": [\n \"Position state after buy\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"vaulted_tokens\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"sol_spent\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"tokens_transferred\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"initial_vaulted\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"timestamp\",\n \"type\": \"i64\"\n }\n ]\n }\n },\n {\n \"name\": \"TokenSold\",\n \"docs\": [\n \"Event emitted when tokens are sold\"\n ],\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"seller\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"pool\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"mint\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"token_amount\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"sol_received\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"vamm_real_sol\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"vamm_tokens\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"tokens_sold\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"position\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"position_number\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"vest_duration\",\n \"type\": \"i64\"\n },\n {\n \"name\": \"unlock_time_seconds\",\n \"type\": \"i64\"\n },\n {\n \"name\": \"tradable_tokens\",\n \"docs\": [\n \"Position state after sell\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"vaulted_tokens\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"sol_spent\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"tokens_transferred\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"initial_vaulted\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"timestamp\",\n \"type\": \"i64\"\n }\n ]\n }\n }\n ]\n}","import { Connection, PublicKey } from '@solana/web3.js'\nimport { Program, AnchorProvider } from '@coral-xyz/anchor'\nimport type { Hodl } from './idl/hodl'\nimport IDL from './idl/hodl.json'\n\nconst DUMMY_WALLET = {\n publicKey: PublicKey.default,\n signTransaction: async <T>(tx: T): Promise<T> => tx,\n signAllTransactions: async <T>(txs: T[]): Promise<T[]> => txs,\n}\n\nexport function getProgram(connection: Connection): Program<Hodl> {\n const provider = new AnchorProvider(connection, DUMMY_WALLET as any, { commitment: 'confirmed' })\n return new Program<Hodl>(IDL as unknown as Hodl, provider)\n}\n","import { Connection, PublicKey } from '@solana/web3.js'\nimport type { PoolState, Position, SdkConfig } from './types'\nimport { getPoolStatePDA, getPositionPDA } from './pda'\nimport { getProgram } from './program'\n\nexport async function fetchPoolState(\n connection: Connection,\n mint: PublicKey,\n config: SdkConfig,\n): Promise<PoolState> {\n const program = getProgram(connection)\n const [poolStatePDA] = getPoolStatePDA(mint, config.programId)\n return program.account.poolState.fetch(poolStatePDA) as unknown as PoolState\n}\n\nexport async function fetchPosition(\n connection: Connection,\n poolState: PublicKey,\n owner: PublicKey,\n config: SdkConfig,\n): Promise<Position> {\n const program = getProgram(connection)\n const [positionPDA] = getPositionPDA(poolState, owner, config.programId)\n return program.account.position.fetch(positionPDA) as unknown as Position\n}\n\nexport async function fetchPoolStateByAddress(\n connection: Connection,\n poolStatePDA: PublicKey,\n): Promise<PoolState> {\n const program = getProgram(connection)\n return program.account.poolState.fetch(poolStatePDA) as unknown as PoolState\n}\n"]}
package/dist/accounts.js CHANGED
@@ -16,6 +16,7 @@ var SEEDS = {
16
16
  PROTOCOL_FEES: Buffer.from("protocol_fees"),
17
17
  EVENT_AUTHORITY: Buffer.from("__event_authority")
18
18
  };
19
+ new BN("85000000000");
19
20
 
20
21
  // src/pda.ts
21
22
  function getPoolStatePDA(mint, programId) {
@@ -1489,6 +1490,27 @@ var hodl_default = {
1489
1490
  ],
1490
1491
  type: "u64"
1491
1492
  },
1493
+ {
1494
+ name: "migration_complete",
1495
+ docs: [
1496
+ "One-way flag: set to true once vamm_real_sol >= MIGRATION_SOL_THRESHOLD, never reverts"
1497
+ ],
1498
+ type: "bool"
1499
+ },
1500
+ {
1501
+ name: "total_fees_sol",
1502
+ docs: [
1503
+ "Cumulative SOL fees collected from buys (lamports)"
1504
+ ],
1505
+ type: "u64"
1506
+ },
1507
+ {
1508
+ name: "total_fees_tokens",
1509
+ docs: [
1510
+ "Cumulative token fees collected from sells"
1511
+ ],
1512
+ type: "u64"
1513
+ },
1492
1514
  {
1493
1515
  name: "bump_vault_auth",
1494
1516
  docs: [