@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.
- package/README.md +6 -6
- package/dist/accounts.cjs +22 -0
- package/dist/accounts.cjs.map +1 -1
- package/dist/accounts.js +22 -0
- package/dist/accounts.js.map +1 -1
- package/dist/client.cjs +340 -28
- package/dist/client.cjs.map +1 -1
- package/dist/client.d.cts +6 -2
- package/dist/client.d.ts +6 -2
- package/dist/client.js +341 -29
- package/dist/client.js.map +1 -1
- package/dist/constants.cjs +3 -1
- package/dist/constants.cjs.map +1 -1
- package/dist/constants.d.cts +5 -3
- package/dist/constants.d.ts +5 -3
- package/dist/constants.js +3 -2
- package/dist/constants.js.map +1 -1
- package/dist/events.cjs +333 -14
- package/dist/events.cjs.map +1 -1
- package/dist/events.d.cts +9 -0
- package/dist/events.d.ts +9 -0
- package/dist/events.js +334 -15
- package/dist/events.js.map +1 -1
- package/dist/index.cjs +375 -31
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +3 -3
- package/dist/index.d.ts +3 -3
- package/dist/index.js +375 -32
- package/dist/index.js.map +1 -1
- package/dist/instructions.cjs +22 -0
- package/dist/instructions.cjs.map +1 -1
- package/dist/instructions.js +22 -0
- package/dist/instructions.js.map +1 -1
- package/dist/math.cjs +33 -0
- package/dist/math.cjs.map +1 -1
- package/dist/math.d.cts +14 -4
- package/dist/math.d.ts +14 -4
- package/dist/math.js +33 -1
- package/dist/math.js.map +1 -1
- package/dist/pda.cjs +1 -0
- package/dist/pda.cjs.map +1 -1
- package/dist/pda.js +1 -0
- package/dist/pda.js.map +1 -1
- package/dist/transaction.cjs +0 -13
- package/dist/transaction.cjs.map +1 -1
- package/dist/transaction.d.cts +5 -3
- package/dist/transaction.d.ts +5 -3
- package/dist/transaction.js +1 -13
- package/dist/transaction.js.map +1 -1
- package/dist/types.d.cts +3 -0
- package/dist/types.d.ts +3 -0
- package/package.json +5 -3
package/dist/constants.cjs
CHANGED
|
@@ -40,9 +40,10 @@ var DEVNET_CONFIG = {
|
|
|
40
40
|
totalSupply: TOTAL_SUPPLY
|
|
41
41
|
};
|
|
42
42
|
var TRADE_FEE_BPS = 25;
|
|
43
|
+
var MIGRATION_SOL_THRESHOLD = new BN__default.default("85000000000");
|
|
43
44
|
var VEST_DURATION = {
|
|
44
45
|
ONE_MINUTE: 60,
|
|
45
|
-
|
|
46
|
+
THIRTY_MINUTES: 1800
|
|
46
47
|
};
|
|
47
48
|
var LIMITS = {
|
|
48
49
|
NAME: { min: 1, max: 32 },
|
|
@@ -56,6 +57,7 @@ exports.DECIMALS = DECIMALS;
|
|
|
56
57
|
exports.DEVNET_CONFIG = DEVNET_CONFIG;
|
|
57
58
|
exports.LIMITS = LIMITS;
|
|
58
59
|
exports.MAINNET_CONFIG = MAINNET_CONFIG;
|
|
60
|
+
exports.MIGRATION_SOL_THRESHOLD = MIGRATION_SOL_THRESHOLD;
|
|
59
61
|
exports.PROGRAM_ID = PROGRAM_ID;
|
|
60
62
|
exports.PROTOCOL_AUTHORITY = PROTOCOL_AUTHORITY;
|
|
61
63
|
exports.PROTOCOL_MINT_FEE = PROTOCOL_MINT_FEE;
|
package/dist/constants.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/constants.ts"],"names":["PublicKey","BN"],"mappings":";;;;;;;;;;AAGO,IAAM,eAAA,GAAkB;AAExB,IAAM,UAAA,GAAa,IAAIA,iBAAA,CAAU,6CAA6C;AAC9E,IAAM,kBAAA,GAAqB,IAAIA,iBAAA,CAAU,8CAA8C;AAEvF,IAAM,WAAA,GAAc,IAAIC,mBAAA,CAAG,aAAa;AACxC,IAAM,YAAA,GAAe,IAAIA,mBAAA,CAAG,kBAAkB;AAC9C,IAAM,iBAAA,GAAoB,IAAIA,mBAAA,CAAG,WAAW;AAC5C,IAAM,QAAA,GAAW;AAEjB,IAAM,KAAA,GAAQ;AAAA,EACnB,IAAA,EAAM,MAAA,CAAO,IAAA,CAAK,MAAM,CAAA;AAAA,EACxB,eAAA,EAAiB,MAAA,CAAO,IAAA,CAAK,iBAAiB,CAAA;AAAA,EAC9C,SAAA,EAAW,MAAA,CAAO,IAAA,CAAK,WAAW,CAAA;AAAA,EAClC,QAAA,EAAU,MAAA,CAAO,IAAA,CAAK,UAAU,CAAA;AAAA,EAChC,aAAA,EAAe,MAAA,CAAO,IAAA,CAAK,eAAe,CAAA;AAAA,EAC1C,eAAA,EAAiB,MAAA,CAAO,IAAA,CAAK,mBAAmB;AAClD;AAEO,IAAM,cAAA,GAAiB;AAAA,EAC5B,SAAA,EAAW,UAAA;AAAA,EACX,UAAA,EAAY,WAAA;AAAA,EACZ,iBAAA,EAAmB,kBAAA;AAAA,EACnB,eAAA,EAAiB,iBAAA;AAAA,EACjB,QAAA,EAAU,QAAA;AAAA,EACV,WAAA,EAAa;AACf;AAEO,IAAM,aAAA,GAAgB;AAAA,EAC3B,SAAA,EAAW,UAAA;AAAA,EACX,UAAA,EAAY,WAAA;AAAA,EACZ,iBAAA,EAAmB,kBAAA;AAAA,EACnB,eAAA,EAAiB,iBAAA;AAAA,EACjB,QAAA,EAAU,QAAA;AAAA,EACV,WAAA,EAAa;AACf;AAGO,IAAM,aAAA,GAAgB;AAGtB,IAAM,aAAA,GAAgB;AAAA,EAC3B,UAAA,EAAY,EAAA;AAAA,EACZ,
|
|
1
|
+
{"version":3,"sources":["../src/constants.ts"],"names":["PublicKey","BN"],"mappings":";;;;;;;;;;AAGO,IAAM,eAAA,GAAkB;AAExB,IAAM,UAAA,GAAa,IAAIA,iBAAA,CAAU,6CAA6C;AAC9E,IAAM,kBAAA,GAAqB,IAAIA,iBAAA,CAAU,8CAA8C;AAEvF,IAAM,WAAA,GAAc,IAAIC,mBAAA,CAAG,aAAa;AACxC,IAAM,YAAA,GAAe,IAAIA,mBAAA,CAAG,kBAAkB;AAC9C,IAAM,iBAAA,GAAoB,IAAIA,mBAAA,CAAG,WAAW;AAC5C,IAAM,QAAA,GAAW;AAEjB,IAAM,KAAA,GAAQ;AAAA,EACnB,IAAA,EAAM,MAAA,CAAO,IAAA,CAAK,MAAM,CAAA;AAAA,EACxB,eAAA,EAAiB,MAAA,CAAO,IAAA,CAAK,iBAAiB,CAAA;AAAA,EAC9C,SAAA,EAAW,MAAA,CAAO,IAAA,CAAK,WAAW,CAAA;AAAA,EAClC,QAAA,EAAU,MAAA,CAAO,IAAA,CAAK,UAAU,CAAA;AAAA,EAChC,aAAA,EAAe,MAAA,CAAO,IAAA,CAAK,eAAe,CAAA;AAAA,EAC1C,eAAA,EAAiB,MAAA,CAAO,IAAA,CAAK,mBAAmB;AAClD;AAEO,IAAM,cAAA,GAAiB;AAAA,EAC5B,SAAA,EAAW,UAAA;AAAA,EACX,UAAA,EAAY,WAAA;AAAA,EACZ,iBAAA,EAAmB,kBAAA;AAAA,EACnB,eAAA,EAAiB,iBAAA;AAAA,EACjB,QAAA,EAAU,QAAA;AAAA,EACV,WAAA,EAAa;AACf;AAEO,IAAM,aAAA,GAAgB;AAAA,EAC3B,SAAA,EAAW,UAAA;AAAA,EACX,UAAA,EAAY,WAAA;AAAA,EACZ,iBAAA,EAAmB,kBAAA;AAAA,EACnB,eAAA,EAAiB,iBAAA;AAAA,EACjB,QAAA,EAAU,QAAA;AAAA,EACV,WAAA,EAAa;AACf;AAGO,IAAM,aAAA,GAAgB;AAGtB,IAAM,uBAAA,GAA0B,IAAIA,mBAAA,CAAG,aAAa;AAGpD,IAAM,aAAA,GAAgB;AAAA,EAC3B,UAAA,EAAY,EAAA;AAAA,EACZ,cAAA,EAAgB;AAClB;AAIO,IAAM,MAAA,GAAS;AAAA,EACpB,IAAA,EAAM,EAAE,GAAA,EAAK,CAAA,EAAG,KAAK,EAAA,EAAG;AAAA,EACxB,MAAA,EAAQ,EAAE,GAAA,EAAK,CAAA,EAAG,KAAK,EAAA,EAAG;AAAA,EAC1B,GAAA,EAAK,EAAE,GAAA,EAAK,EAAA,EAAI,KAAK,GAAA,EAAI;AAAA,EACzB,WAAA,EAAa,EAAE,GAAA,EAAK,CAAA,EAAG,KAAK,GAAA;AAC9B","file":"constants.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"]}
|
package/dist/constants.d.cts
CHANGED
|
@@ -32,12 +32,14 @@ declare const DEVNET_CONFIG: {
|
|
|
32
32
|
readonly decimals: 6;
|
|
33
33
|
readonly totalSupply: BN;
|
|
34
34
|
};
|
|
35
|
-
/** Trade fee in basis points (25 bps = 0.25%). Only applies after
|
|
35
|
+
/** Trade fee in basis points (25 bps = 0.25%). Only applies after migration threshold (85 SOL). */
|
|
36
36
|
declare const TRADE_FEE_BPS = 25;
|
|
37
|
+
/** SOL threshold in lamports that triggers migration and fee activation (85 SOL). */
|
|
38
|
+
declare const MIGRATION_SOL_THRESHOLD: BN;
|
|
37
39
|
/** Allowed vest duration modes (in seconds). The program only accepts these values. */
|
|
38
40
|
declare const VEST_DURATION: {
|
|
39
41
|
readonly ONE_MINUTE: 60;
|
|
40
|
-
readonly
|
|
42
|
+
readonly THIRTY_MINUTES: 1800;
|
|
41
43
|
};
|
|
42
44
|
type VestDuration = typeof VEST_DURATION[keyof typeof VEST_DURATION];
|
|
43
45
|
declare const LIMITS: {
|
|
@@ -59,4 +61,4 @@ declare const LIMITS: {
|
|
|
59
61
|
};
|
|
60
62
|
};
|
|
61
63
|
|
|
62
|
-
export { BPS_DENOMINATOR, DECIMALS, DEVNET_CONFIG, LIMITS, MAINNET_CONFIG, PROGRAM_ID, PROTOCOL_AUTHORITY, PROTOCOL_MINT_FEE, SEEDS, TOTAL_SUPPLY, TRADE_FEE_BPS, VEST_DURATION, VIRTUAL_SOL, type VestDuration };
|
|
64
|
+
export { BPS_DENOMINATOR, DECIMALS, DEVNET_CONFIG, LIMITS, MAINNET_CONFIG, MIGRATION_SOL_THRESHOLD, PROGRAM_ID, PROTOCOL_AUTHORITY, PROTOCOL_MINT_FEE, SEEDS, TOTAL_SUPPLY, TRADE_FEE_BPS, VEST_DURATION, VIRTUAL_SOL, type VestDuration };
|
package/dist/constants.d.ts
CHANGED
|
@@ -32,12 +32,14 @@ declare const DEVNET_CONFIG: {
|
|
|
32
32
|
readonly decimals: 6;
|
|
33
33
|
readonly totalSupply: BN;
|
|
34
34
|
};
|
|
35
|
-
/** Trade fee in basis points (25 bps = 0.25%). Only applies after
|
|
35
|
+
/** Trade fee in basis points (25 bps = 0.25%). Only applies after migration threshold (85 SOL). */
|
|
36
36
|
declare const TRADE_FEE_BPS = 25;
|
|
37
|
+
/** SOL threshold in lamports that triggers migration and fee activation (85 SOL). */
|
|
38
|
+
declare const MIGRATION_SOL_THRESHOLD: BN;
|
|
37
39
|
/** Allowed vest duration modes (in seconds). The program only accepts these values. */
|
|
38
40
|
declare const VEST_DURATION: {
|
|
39
41
|
readonly ONE_MINUTE: 60;
|
|
40
|
-
readonly
|
|
42
|
+
readonly THIRTY_MINUTES: 1800;
|
|
41
43
|
};
|
|
42
44
|
type VestDuration = typeof VEST_DURATION[keyof typeof VEST_DURATION];
|
|
43
45
|
declare const LIMITS: {
|
|
@@ -59,4 +61,4 @@ declare const LIMITS: {
|
|
|
59
61
|
};
|
|
60
62
|
};
|
|
61
63
|
|
|
62
|
-
export { BPS_DENOMINATOR, DECIMALS, DEVNET_CONFIG, LIMITS, MAINNET_CONFIG, PROGRAM_ID, PROTOCOL_AUTHORITY, PROTOCOL_MINT_FEE, SEEDS, TOTAL_SUPPLY, TRADE_FEE_BPS, VEST_DURATION, VIRTUAL_SOL, type VestDuration };
|
|
64
|
+
export { BPS_DENOMINATOR, DECIMALS, DEVNET_CONFIG, LIMITS, MAINNET_CONFIG, MIGRATION_SOL_THRESHOLD, PROGRAM_ID, PROTOCOL_AUTHORITY, PROTOCOL_MINT_FEE, SEEDS, TOTAL_SUPPLY, TRADE_FEE_BPS, VEST_DURATION, VIRTUAL_SOL, type VestDuration };
|
package/dist/constants.js
CHANGED
|
@@ -34,9 +34,10 @@ var DEVNET_CONFIG = {
|
|
|
34
34
|
totalSupply: TOTAL_SUPPLY
|
|
35
35
|
};
|
|
36
36
|
var TRADE_FEE_BPS = 25;
|
|
37
|
+
var MIGRATION_SOL_THRESHOLD = new BN("85000000000");
|
|
37
38
|
var VEST_DURATION = {
|
|
38
39
|
ONE_MINUTE: 60,
|
|
39
|
-
|
|
40
|
+
THIRTY_MINUTES: 1800
|
|
40
41
|
};
|
|
41
42
|
var LIMITS = {
|
|
42
43
|
NAME: { min: 1, max: 32 },
|
|
@@ -45,6 +46,6 @@ var LIMITS = {
|
|
|
45
46
|
DESCRIPTION: { min: 0, max: 200 }
|
|
46
47
|
};
|
|
47
48
|
|
|
48
|
-
export { BPS_DENOMINATOR, DECIMALS, DEVNET_CONFIG, LIMITS, MAINNET_CONFIG, PROGRAM_ID, PROTOCOL_AUTHORITY, PROTOCOL_MINT_FEE, SEEDS, TOTAL_SUPPLY, TRADE_FEE_BPS, VEST_DURATION, VIRTUAL_SOL };
|
|
49
|
+
export { BPS_DENOMINATOR, DECIMALS, DEVNET_CONFIG, LIMITS, MAINNET_CONFIG, MIGRATION_SOL_THRESHOLD, PROGRAM_ID, PROTOCOL_AUTHORITY, PROTOCOL_MINT_FEE, SEEDS, TOTAL_SUPPLY, TRADE_FEE_BPS, VEST_DURATION, VIRTUAL_SOL };
|
|
49
50
|
//# sourceMappingURL=constants.js.map
|
|
50
51
|
//# sourceMappingURL=constants.js.map
|
package/dist/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/constants.ts"],"names":[],"mappings":";;;;AAGO,IAAM,eAAA,GAAkB;AAExB,IAAM,UAAA,GAAa,IAAI,SAAA,CAAU,6CAA6C;AAC9E,IAAM,kBAAA,GAAqB,IAAI,SAAA,CAAU,8CAA8C;AAEvF,IAAM,WAAA,GAAc,IAAI,EAAA,CAAG,aAAa;AACxC,IAAM,YAAA,GAAe,IAAI,EAAA,CAAG,kBAAkB;AAC9C,IAAM,iBAAA,GAAoB,IAAI,EAAA,CAAG,WAAW;AAC5C,IAAM,QAAA,GAAW;AAEjB,IAAM,KAAA,GAAQ;AAAA,EACnB,IAAA,EAAM,MAAA,CAAO,IAAA,CAAK,MAAM,CAAA;AAAA,EACxB,eAAA,EAAiB,MAAA,CAAO,IAAA,CAAK,iBAAiB,CAAA;AAAA,EAC9C,SAAA,EAAW,MAAA,CAAO,IAAA,CAAK,WAAW,CAAA;AAAA,EAClC,QAAA,EAAU,MAAA,CAAO,IAAA,CAAK,UAAU,CAAA;AAAA,EAChC,aAAA,EAAe,MAAA,CAAO,IAAA,CAAK,eAAe,CAAA;AAAA,EAC1C,eAAA,EAAiB,MAAA,CAAO,IAAA,CAAK,mBAAmB;AAClD;AAEO,IAAM,cAAA,GAAiB;AAAA,EAC5B,SAAA,EAAW,UAAA;AAAA,EACX,UAAA,EAAY,WAAA;AAAA,EACZ,iBAAA,EAAmB,kBAAA;AAAA,EACnB,eAAA,EAAiB,iBAAA;AAAA,EACjB,QAAA,EAAU,QAAA;AAAA,EACV,WAAA,EAAa;AACf;AAEO,IAAM,aAAA,GAAgB;AAAA,EAC3B,SAAA,EAAW,UAAA;AAAA,EACX,UAAA,EAAY,WAAA;AAAA,EACZ,iBAAA,EAAmB,kBAAA;AAAA,EACnB,eAAA,EAAiB,iBAAA;AAAA,EACjB,QAAA,EAAU,QAAA;AAAA,EACV,WAAA,EAAa;AACf;AAGO,IAAM,aAAA,GAAgB;AAGtB,IAAM,aAAA,GAAgB;AAAA,EAC3B,UAAA,EAAY,EAAA;AAAA,EACZ,
|
|
1
|
+
{"version":3,"sources":["../src/constants.ts"],"names":[],"mappings":";;;;AAGO,IAAM,eAAA,GAAkB;AAExB,IAAM,UAAA,GAAa,IAAI,SAAA,CAAU,6CAA6C;AAC9E,IAAM,kBAAA,GAAqB,IAAI,SAAA,CAAU,8CAA8C;AAEvF,IAAM,WAAA,GAAc,IAAI,EAAA,CAAG,aAAa;AACxC,IAAM,YAAA,GAAe,IAAI,EAAA,CAAG,kBAAkB;AAC9C,IAAM,iBAAA,GAAoB,IAAI,EAAA,CAAG,WAAW;AAC5C,IAAM,QAAA,GAAW;AAEjB,IAAM,KAAA,GAAQ;AAAA,EACnB,IAAA,EAAM,MAAA,CAAO,IAAA,CAAK,MAAM,CAAA;AAAA,EACxB,eAAA,EAAiB,MAAA,CAAO,IAAA,CAAK,iBAAiB,CAAA;AAAA,EAC9C,SAAA,EAAW,MAAA,CAAO,IAAA,CAAK,WAAW,CAAA;AAAA,EAClC,QAAA,EAAU,MAAA,CAAO,IAAA,CAAK,UAAU,CAAA;AAAA,EAChC,aAAA,EAAe,MAAA,CAAO,IAAA,CAAK,eAAe,CAAA;AAAA,EAC1C,eAAA,EAAiB,MAAA,CAAO,IAAA,CAAK,mBAAmB;AAClD;AAEO,IAAM,cAAA,GAAiB;AAAA,EAC5B,SAAA,EAAW,UAAA;AAAA,EACX,UAAA,EAAY,WAAA;AAAA,EACZ,iBAAA,EAAmB,kBAAA;AAAA,EACnB,eAAA,EAAiB,iBAAA;AAAA,EACjB,QAAA,EAAU,QAAA;AAAA,EACV,WAAA,EAAa;AACf;AAEO,IAAM,aAAA,GAAgB;AAAA,EAC3B,SAAA,EAAW,UAAA;AAAA,EACX,UAAA,EAAY,WAAA;AAAA,EACZ,iBAAA,EAAmB,kBAAA;AAAA,EACnB,eAAA,EAAiB,iBAAA;AAAA,EACjB,QAAA,EAAU,QAAA;AAAA,EACV,WAAA,EAAa;AACf;AAGO,IAAM,aAAA,GAAgB;AAGtB,IAAM,uBAAA,GAA0B,IAAI,EAAA,CAAG,aAAa;AAGpD,IAAM,aAAA,GAAgB;AAAA,EAC3B,UAAA,EAAY,EAAA;AAAA,EACZ,cAAA,EAAgB;AAClB;AAIO,IAAM,MAAA,GAAS;AAAA,EACpB,IAAA,EAAM,EAAE,GAAA,EAAK,CAAA,EAAG,KAAK,EAAA,EAAG;AAAA,EACxB,MAAA,EAAQ,EAAE,GAAA,EAAK,CAAA,EAAG,KAAK,EAAA,EAAG;AAAA,EAC1B,GAAA,EAAK,EAAE,GAAA,EAAK,EAAA,EAAI,KAAK,GAAA,EAAI;AAAA,EACzB,WAAA,EAAa,EAAE,GAAA,EAAK,CAAA,EAAG,KAAK,GAAA;AAC9B","file":"constants.js","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"]}
|
package/dist/events.cjs
CHANGED
|
@@ -2,7 +2,241 @@
|
|
|
2
2
|
|
|
3
3
|
var anchor = require('@coral-xyz/anchor');
|
|
4
4
|
|
|
5
|
+
var __create = Object.create;
|
|
6
|
+
var __defProp = Object.defineProperty;
|
|
7
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
8
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
9
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
10
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
11
|
+
var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
|
|
12
|
+
get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
|
|
13
|
+
}) : x)(function(x) {
|
|
14
|
+
if (typeof require !== "undefined") return require.apply(this, arguments);
|
|
15
|
+
throw Error('Dynamic require of "' + x + '" is not supported');
|
|
16
|
+
});
|
|
17
|
+
var __commonJS = (cb, mod) => function __require2() {
|
|
18
|
+
return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
|
|
19
|
+
};
|
|
20
|
+
var __copyProps = (to, from, except, desc) => {
|
|
21
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
22
|
+
for (let key of __getOwnPropNames(from))
|
|
23
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
24
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
25
|
+
}
|
|
26
|
+
return to;
|
|
27
|
+
};
|
|
28
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
29
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
30
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
31
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
32
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
33
|
+
__defProp(target, "default", { value: mod, enumerable: true }) ,
|
|
34
|
+
mod
|
|
35
|
+
));
|
|
36
|
+
|
|
37
|
+
// node_modules/safe-buffer/index.js
|
|
38
|
+
var require_safe_buffer = __commonJS({
|
|
39
|
+
"node_modules/safe-buffer/index.js"(exports$1, module) {
|
|
40
|
+
var buffer = __require("buffer");
|
|
41
|
+
var Buffer2 = buffer.Buffer;
|
|
42
|
+
function copyProps(src, dst) {
|
|
43
|
+
for (var key in src) {
|
|
44
|
+
dst[key] = src[key];
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
if (Buffer2.from && Buffer2.alloc && Buffer2.allocUnsafe && Buffer2.allocUnsafeSlow) {
|
|
48
|
+
module.exports = buffer;
|
|
49
|
+
} else {
|
|
50
|
+
copyProps(buffer, exports$1);
|
|
51
|
+
exports$1.Buffer = SafeBuffer;
|
|
52
|
+
}
|
|
53
|
+
function SafeBuffer(arg, encodingOrOffset, length) {
|
|
54
|
+
return Buffer2(arg, encodingOrOffset, length);
|
|
55
|
+
}
|
|
56
|
+
SafeBuffer.prototype = Object.create(Buffer2.prototype);
|
|
57
|
+
copyProps(Buffer2, SafeBuffer);
|
|
58
|
+
SafeBuffer.from = function(arg, encodingOrOffset, length) {
|
|
59
|
+
if (typeof arg === "number") {
|
|
60
|
+
throw new TypeError("Argument must not be a number");
|
|
61
|
+
}
|
|
62
|
+
return Buffer2(arg, encodingOrOffset, length);
|
|
63
|
+
};
|
|
64
|
+
SafeBuffer.alloc = function(size, fill, encoding) {
|
|
65
|
+
if (typeof size !== "number") {
|
|
66
|
+
throw new TypeError("Argument must be a number");
|
|
67
|
+
}
|
|
68
|
+
var buf = Buffer2(size);
|
|
69
|
+
if (fill !== void 0) {
|
|
70
|
+
if (typeof encoding === "string") {
|
|
71
|
+
buf.fill(fill, encoding);
|
|
72
|
+
} else {
|
|
73
|
+
buf.fill(fill);
|
|
74
|
+
}
|
|
75
|
+
} else {
|
|
76
|
+
buf.fill(0);
|
|
77
|
+
}
|
|
78
|
+
return buf;
|
|
79
|
+
};
|
|
80
|
+
SafeBuffer.allocUnsafe = function(size) {
|
|
81
|
+
if (typeof size !== "number") {
|
|
82
|
+
throw new TypeError("Argument must be a number");
|
|
83
|
+
}
|
|
84
|
+
return Buffer2(size);
|
|
85
|
+
};
|
|
86
|
+
SafeBuffer.allocUnsafeSlow = function(size) {
|
|
87
|
+
if (typeof size !== "number") {
|
|
88
|
+
throw new TypeError("Argument must be a number");
|
|
89
|
+
}
|
|
90
|
+
return buffer.SlowBuffer(size);
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
|
|
95
|
+
// node_modules/base-x/src/index.js
|
|
96
|
+
var require_src = __commonJS({
|
|
97
|
+
"node_modules/base-x/src/index.js"(exports$1, module) {
|
|
98
|
+
var _Buffer = require_safe_buffer().Buffer;
|
|
99
|
+
function base(ALPHABET) {
|
|
100
|
+
if (ALPHABET.length >= 255) {
|
|
101
|
+
throw new TypeError("Alphabet too long");
|
|
102
|
+
}
|
|
103
|
+
var BASE_MAP = new Uint8Array(256);
|
|
104
|
+
for (var j = 0; j < BASE_MAP.length; j++) {
|
|
105
|
+
BASE_MAP[j] = 255;
|
|
106
|
+
}
|
|
107
|
+
for (var i = 0; i < ALPHABET.length; i++) {
|
|
108
|
+
var x = ALPHABET.charAt(i);
|
|
109
|
+
var xc = x.charCodeAt(0);
|
|
110
|
+
if (BASE_MAP[xc] !== 255) {
|
|
111
|
+
throw new TypeError(x + " is ambiguous");
|
|
112
|
+
}
|
|
113
|
+
BASE_MAP[xc] = i;
|
|
114
|
+
}
|
|
115
|
+
var BASE = ALPHABET.length;
|
|
116
|
+
var LEADER = ALPHABET.charAt(0);
|
|
117
|
+
var FACTOR = Math.log(BASE) / Math.log(256);
|
|
118
|
+
var iFACTOR = Math.log(256) / Math.log(BASE);
|
|
119
|
+
function encode(source) {
|
|
120
|
+
if (Array.isArray(source) || source instanceof Uint8Array) {
|
|
121
|
+
source = _Buffer.from(source);
|
|
122
|
+
}
|
|
123
|
+
if (!_Buffer.isBuffer(source)) {
|
|
124
|
+
throw new TypeError("Expected Buffer");
|
|
125
|
+
}
|
|
126
|
+
if (source.length === 0) {
|
|
127
|
+
return "";
|
|
128
|
+
}
|
|
129
|
+
var zeroes = 0;
|
|
130
|
+
var length = 0;
|
|
131
|
+
var pbegin = 0;
|
|
132
|
+
var pend = source.length;
|
|
133
|
+
while (pbegin !== pend && source[pbegin] === 0) {
|
|
134
|
+
pbegin++;
|
|
135
|
+
zeroes++;
|
|
136
|
+
}
|
|
137
|
+
var size = (pend - pbegin) * iFACTOR + 1 >>> 0;
|
|
138
|
+
var b58 = new Uint8Array(size);
|
|
139
|
+
while (pbegin !== pend) {
|
|
140
|
+
var carry = source[pbegin];
|
|
141
|
+
var i2 = 0;
|
|
142
|
+
for (var it1 = size - 1; (carry !== 0 || i2 < length) && it1 !== -1; it1--, i2++) {
|
|
143
|
+
carry += 256 * b58[it1] >>> 0;
|
|
144
|
+
b58[it1] = carry % BASE >>> 0;
|
|
145
|
+
carry = carry / BASE >>> 0;
|
|
146
|
+
}
|
|
147
|
+
if (carry !== 0) {
|
|
148
|
+
throw new Error("Non-zero carry");
|
|
149
|
+
}
|
|
150
|
+
length = i2;
|
|
151
|
+
pbegin++;
|
|
152
|
+
}
|
|
153
|
+
var it2 = size - length;
|
|
154
|
+
while (it2 !== size && b58[it2] === 0) {
|
|
155
|
+
it2++;
|
|
156
|
+
}
|
|
157
|
+
var str = LEADER.repeat(zeroes);
|
|
158
|
+
for (; it2 < size; ++it2) {
|
|
159
|
+
str += ALPHABET.charAt(b58[it2]);
|
|
160
|
+
}
|
|
161
|
+
return str;
|
|
162
|
+
}
|
|
163
|
+
function decodeUnsafe(source) {
|
|
164
|
+
if (typeof source !== "string") {
|
|
165
|
+
throw new TypeError("Expected String");
|
|
166
|
+
}
|
|
167
|
+
if (source.length === 0) {
|
|
168
|
+
return _Buffer.alloc(0);
|
|
169
|
+
}
|
|
170
|
+
var psz = 0;
|
|
171
|
+
var zeroes = 0;
|
|
172
|
+
var length = 0;
|
|
173
|
+
while (source[psz] === LEADER) {
|
|
174
|
+
zeroes++;
|
|
175
|
+
psz++;
|
|
176
|
+
}
|
|
177
|
+
var size = (source.length - psz) * FACTOR + 1 >>> 0;
|
|
178
|
+
var b256 = new Uint8Array(size);
|
|
179
|
+
while (psz < source.length) {
|
|
180
|
+
var charCode = source.charCodeAt(psz);
|
|
181
|
+
if (charCode > 255) {
|
|
182
|
+
return;
|
|
183
|
+
}
|
|
184
|
+
var carry = BASE_MAP[charCode];
|
|
185
|
+
if (carry === 255) {
|
|
186
|
+
return;
|
|
187
|
+
}
|
|
188
|
+
var i2 = 0;
|
|
189
|
+
for (var it3 = size - 1; (carry !== 0 || i2 < length) && it3 !== -1; it3--, i2++) {
|
|
190
|
+
carry += BASE * b256[it3] >>> 0;
|
|
191
|
+
b256[it3] = carry % 256 >>> 0;
|
|
192
|
+
carry = carry / 256 >>> 0;
|
|
193
|
+
}
|
|
194
|
+
if (carry !== 0) {
|
|
195
|
+
throw new Error("Non-zero carry");
|
|
196
|
+
}
|
|
197
|
+
length = i2;
|
|
198
|
+
psz++;
|
|
199
|
+
}
|
|
200
|
+
var it4 = size - length;
|
|
201
|
+
while (it4 !== size && b256[it4] === 0) {
|
|
202
|
+
it4++;
|
|
203
|
+
}
|
|
204
|
+
var vch = _Buffer.allocUnsafe(zeroes + (size - it4));
|
|
205
|
+
vch.fill(0, 0, zeroes);
|
|
206
|
+
var j2 = zeroes;
|
|
207
|
+
while (it4 !== size) {
|
|
208
|
+
vch[j2++] = b256[it4++];
|
|
209
|
+
}
|
|
210
|
+
return vch;
|
|
211
|
+
}
|
|
212
|
+
function decode(string) {
|
|
213
|
+
var buffer = decodeUnsafe(string);
|
|
214
|
+
if (buffer) {
|
|
215
|
+
return buffer;
|
|
216
|
+
}
|
|
217
|
+
throw new Error("Non-base" + BASE + " character");
|
|
218
|
+
}
|
|
219
|
+
return {
|
|
220
|
+
encode,
|
|
221
|
+
decodeUnsafe,
|
|
222
|
+
decode
|
|
223
|
+
};
|
|
224
|
+
}
|
|
225
|
+
module.exports = base;
|
|
226
|
+
}
|
|
227
|
+
});
|
|
228
|
+
|
|
229
|
+
// node_modules/bs58/index.js
|
|
230
|
+
var require_bs58 = __commonJS({
|
|
231
|
+
"node_modules/bs58/index.js"(exports$1, module) {
|
|
232
|
+
var basex = require_src();
|
|
233
|
+
var ALPHABET = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";
|
|
234
|
+
module.exports = basex(ALPHABET);
|
|
235
|
+
}
|
|
236
|
+
});
|
|
237
|
+
|
|
5
238
|
// src/events.ts
|
|
239
|
+
var import_bs58 = __toESM(require_bs58());
|
|
6
240
|
|
|
7
241
|
// src/idl/hodl.json
|
|
8
242
|
var hodl_default = {
|
|
@@ -1468,6 +1702,27 @@ var hodl_default = {
|
|
|
1468
1702
|
],
|
|
1469
1703
|
type: "u64"
|
|
1470
1704
|
},
|
|
1705
|
+
{
|
|
1706
|
+
name: "migration_complete",
|
|
1707
|
+
docs: [
|
|
1708
|
+
"One-way flag: set to true once vamm_real_sol >= MIGRATION_SOL_THRESHOLD, never reverts"
|
|
1709
|
+
],
|
|
1710
|
+
type: "bool"
|
|
1711
|
+
},
|
|
1712
|
+
{
|
|
1713
|
+
name: "total_fees_sol",
|
|
1714
|
+
docs: [
|
|
1715
|
+
"Cumulative SOL fees collected from buys (lamports)"
|
|
1716
|
+
],
|
|
1717
|
+
type: "u64"
|
|
1718
|
+
},
|
|
1719
|
+
{
|
|
1720
|
+
name: "total_fees_tokens",
|
|
1721
|
+
docs: [
|
|
1722
|
+
"Cumulative token fees collected from sells"
|
|
1723
|
+
],
|
|
1724
|
+
type: "u64"
|
|
1725
|
+
},
|
|
1471
1726
|
{
|
|
1472
1727
|
name: "bump_vault_auth",
|
|
1473
1728
|
docs: [
|
|
@@ -1833,18 +2088,77 @@ var hodl_default = {
|
|
|
1833
2088
|
};
|
|
1834
2089
|
|
|
1835
2090
|
// src/events.ts
|
|
2091
|
+
var PROGRAM_DATA_PREFIX = "Program data: ";
|
|
2092
|
+
function toCamelCase(name) {
|
|
2093
|
+
return name.charAt(0).toLowerCase() + name.slice(1);
|
|
2094
|
+
}
|
|
2095
|
+
function snakeToCamelKeys(obj) {
|
|
2096
|
+
const result = {};
|
|
2097
|
+
for (const [key, value] of Object.entries(obj)) {
|
|
2098
|
+
const camelKey = key.replace(/_([a-z])/g, (_, c) => c.toUpperCase());
|
|
2099
|
+
result[camelKey] = value;
|
|
2100
|
+
}
|
|
2101
|
+
return result;
|
|
2102
|
+
}
|
|
2103
|
+
function tryDecodeEvent(coder, data) {
|
|
2104
|
+
try {
|
|
2105
|
+
const event = coder.events.decode(data);
|
|
2106
|
+
if (event) {
|
|
2107
|
+
return {
|
|
2108
|
+
name: toCamelCase(event.name),
|
|
2109
|
+
data: snakeToCamelKeys(event.data)
|
|
2110
|
+
};
|
|
2111
|
+
}
|
|
2112
|
+
} catch {
|
|
2113
|
+
}
|
|
2114
|
+
return null;
|
|
2115
|
+
}
|
|
1836
2116
|
function parseTransactionEvents(input, config) {
|
|
1837
2117
|
if (!input) return [];
|
|
1838
|
-
const logs = Array.isArray(input) ? input : input.meta?.logMessages ?? [];
|
|
1839
|
-
if (logs.length === 0) return [];
|
|
1840
2118
|
const coder = new anchor.BorshCoder(hodl_default);
|
|
1841
|
-
const parser = new anchor.EventParser(config.programId, coder);
|
|
1842
2119
|
const events = [];
|
|
1843
|
-
|
|
1844
|
-
for (const
|
|
1845
|
-
|
|
2120
|
+
if (Array.isArray(input)) {
|
|
2121
|
+
for (const log of input) {
|
|
2122
|
+
if (!log.startsWith(PROGRAM_DATA_PREFIX)) continue;
|
|
2123
|
+
const b64 = log.slice(PROGRAM_DATA_PREFIX.length);
|
|
2124
|
+
const event = tryDecodeEvent(coder, b64);
|
|
2125
|
+
if (event) events.push(event);
|
|
2126
|
+
}
|
|
2127
|
+
return events;
|
|
2128
|
+
}
|
|
2129
|
+
const tx = input;
|
|
2130
|
+
const logs = tx.meta?.logMessages ?? [];
|
|
2131
|
+
for (const log of logs) {
|
|
2132
|
+
if (!log.startsWith(PROGRAM_DATA_PREFIX)) continue;
|
|
2133
|
+
const b64 = log.slice(PROGRAM_DATA_PREFIX.length);
|
|
2134
|
+
const event = tryDecodeEvent(coder, b64);
|
|
2135
|
+
if (event) events.push(event);
|
|
2136
|
+
}
|
|
2137
|
+
const programId = config.programId.toBase58();
|
|
2138
|
+
const staticKeys = tx.transaction.message.staticAccountKeys;
|
|
2139
|
+
const loadedWritable = tx.meta?.loadedAddresses?.writable ?? [];
|
|
2140
|
+
const loadedReadonly = tx.meta?.loadedAddresses?.readonly ?? [];
|
|
2141
|
+
const allKeys = [...staticKeys, ...loadedWritable, ...loadedReadonly];
|
|
2142
|
+
for (const inner of tx.meta?.innerInstructions ?? []) {
|
|
2143
|
+
for (const ix of inner.instructions) {
|
|
2144
|
+
const ixProgramKey = allKeys[ix.programIdIndex];
|
|
2145
|
+
if (!ixProgramKey || ixProgramKey.toBase58() !== programId) continue;
|
|
2146
|
+
try {
|
|
2147
|
+
const bytes = import_bs58.default.decode(ix.data);
|
|
2148
|
+
const b64Full = anchor.utils.bytes.base64.encode(Buffer.from(bytes));
|
|
2149
|
+
const eventFull = tryDecodeEvent(coder, b64Full);
|
|
2150
|
+
if (eventFull) {
|
|
2151
|
+
events.push(eventFull);
|
|
2152
|
+
continue;
|
|
2153
|
+
}
|
|
2154
|
+
if (bytes.length > 8) {
|
|
2155
|
+
const b64Skip = anchor.utils.bytes.base64.encode(Buffer.from(bytes.slice(8)));
|
|
2156
|
+
const eventSkip = tryDecodeEvent(coder, b64Skip);
|
|
2157
|
+
if (eventSkip) events.push(eventSkip);
|
|
2158
|
+
}
|
|
2159
|
+
} catch {
|
|
2160
|
+
}
|
|
1846
2161
|
}
|
|
1847
|
-
} catch {
|
|
1848
2162
|
}
|
|
1849
2163
|
return events;
|
|
1850
2164
|
}
|
|
@@ -1858,7 +2172,6 @@ async function fetchAndParseTransaction(connection, signature, config) {
|
|
|
1858
2172
|
function subscribeToEvents(connection, config, onEvent, opts = {}) {
|
|
1859
2173
|
const commitment = opts.commitment ?? "confirmed";
|
|
1860
2174
|
const coder = new anchor.BorshCoder(hodl_default);
|
|
1861
|
-
const parser = new anchor.EventParser(config.programId, coder);
|
|
1862
2175
|
return connection.onLogs(
|
|
1863
2176
|
config.programId,
|
|
1864
2177
|
({ logs, err, signature }, context) => {
|
|
@@ -1867,12 +2180,13 @@ function subscribeToEvents(connection, config, onEvent, opts = {}) {
|
|
|
1867
2180
|
return;
|
|
1868
2181
|
}
|
|
1869
2182
|
try {
|
|
1870
|
-
for (const
|
|
1871
|
-
|
|
1872
|
-
|
|
1873
|
-
|
|
1874
|
-
|
|
1875
|
-
|
|
2183
|
+
for (const log of logs) {
|
|
2184
|
+
if (!log.startsWith(PROGRAM_DATA_PREFIX)) continue;
|
|
2185
|
+
const b64 = log.slice(PROGRAM_DATA_PREFIX.length);
|
|
2186
|
+
const event = tryDecodeEvent(coder, b64);
|
|
2187
|
+
if (event) {
|
|
2188
|
+
onEvent(event, context.slot, signature);
|
|
2189
|
+
}
|
|
1876
2190
|
}
|
|
1877
2191
|
} catch (e) {
|
|
1878
2192
|
opts.onError?.(e instanceof Error ? e : new Error(String(e)));
|
|
@@ -1909,6 +2223,11 @@ function subscribeToPositionClosed(connection, config, onEvent, opts) {
|
|
|
1909
2223
|
if (event.name === "positionClosed") onEvent(event.data, slot, sig);
|
|
1910
2224
|
}, opts);
|
|
1911
2225
|
}
|
|
2226
|
+
/*! Bundled license information:
|
|
2227
|
+
|
|
2228
|
+
safe-buffer/index.js:
|
|
2229
|
+
(*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> *)
|
|
2230
|
+
*/
|
|
1912
2231
|
|
|
1913
2232
|
exports.fetchAndParseTransaction = fetchAndParseTransaction;
|
|
1914
2233
|
exports.parseTransactionEvents = parseTransactionEvents;
|