@reflectmoney/oracle.ts 2.1.0 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -77,10 +77,14 @@ export declare class Doppler {
77
77
  * Deserialize oracle data from a buffer
78
78
  */
79
79
  deserializeOracle<T>(data: Buffer, serializer: PayloadSerializer<T>): Oracle<T>;
80
+ /**
81
+ * Create an oracle account from a keypair
82
+ */
83
+ createOracleAccount<T>(oracleKeypair: Keypair, serializer: PayloadSerializer<T>): Promise<PublicKey>;
80
84
  /**
81
85
  * Create an oracle account with a seed
82
86
  */
83
- createOracleAccount<T>(seed: string, serializer: PayloadSerializer<T>): Promise<PublicKey>;
87
+ createOracleAccountWithSeed<T>(seed: string, serializer: PayloadSerializer<T>): Promise<PublicKey>;
84
88
  /**
85
89
  * Update a single oracle account
86
90
  */
package/dist/index.js CHANGED
@@ -93,7 +93,8 @@ class TransactionBuilder {
93
93
  SEQUENCE_CHECK_CU +
94
94
  ADMIN_VERIFICATION_CU +
95
95
  PAYLOAD_WRITE_CU +
96
- Math.floor(oracleSize / 4);
96
+ Math.floor(oracleSize / 4) +
97
+ 500;
97
98
  this.loadedAccountDataSize += oracleSize * 2;
98
99
  this.oracleUpdateInstructions.push(instruction);
99
100
  return this;
@@ -210,10 +211,38 @@ class Doppler {
210
211
  const payload = serializer.deserialize(payloadBuffer);
211
212
  return { slot, payload };
212
213
  }
214
+ /**
215
+ * Create an oracle account from a keypair
216
+ */
217
+ createOracleAccount(oracleKeypair, serializer) {
218
+ return __awaiter(this, void 0, void 0, function* () {
219
+ const oracleSize = 8 + serializer.size();
220
+ const lamports = yield this.connection.getMinimumBalanceForRentExemption(oracleSize);
221
+ const createAccountInstruction = web3_js_1.SystemProgram.createAccount({
222
+ fromPubkey: this.admin.publicKey,
223
+ newAccountPubkey: oracleKeypair.publicKey,
224
+ lamports,
225
+ space: oracleSize,
226
+ programId: exports.DOPPLER_PROGRAM_ID,
227
+ });
228
+ const recentBlockhash = yield this.connection.getLatestBlockhash();
229
+ const transaction = new web3_js_1.Transaction({
230
+ feePayer: this.admin.publicKey,
231
+ recentBlockhash: recentBlockhash.blockhash,
232
+ });
233
+ transaction.add(createAccountInstruction);
234
+ transaction.sign(this.admin, oracleKeypair);
235
+ yield (0, web3_js_1.sendAndConfirmTransaction)(this.connection, transaction, [
236
+ this.admin,
237
+ oracleKeypair,
238
+ ]);
239
+ return oracleKeypair.publicKey;
240
+ });
241
+ }
213
242
  /**
214
243
  * Create an oracle account with a seed
215
244
  */
216
- createOracleAccount(seed, serializer) {
245
+ createOracleAccountWithSeed(seed, serializer) {
217
246
  return __awaiter(this, void 0, void 0, function* () {
218
247
  const oracleSize = 8 + serializer.size();
219
248
  const lamports = yield this.connection.getMinimumBalanceForRentExemption(oracleSize);
package/package.json CHANGED
@@ -1,12 +1,16 @@
1
1
  {
2
2
  "name": "@reflectmoney/oracle.ts",
3
- "version": "2.1.0",
3
+ "version": "2.2.0",
4
4
  "type": "commonjs",
5
5
  "author": "L0STE, stablecoinjesus @ Palindrome Engineering",
6
6
  "repository": {
7
7
  "type": "git",
8
8
  "url": "https://github.com/palindrome-eng/doppler.git"
9
9
  },
10
+ "scripts": {
11
+ "cli": "tsx src/cli.ts",
12
+ "build": "tsc"
13
+ },
10
14
  "dependencies": {
11
15
  "@solana-program/compute-budget": "^0.9.0",
12
16
  "@solana-program/token": "^0.6.0",
@@ -20,10 +24,13 @@
20
24
  "@types/bn.js": "5.1.6",
21
25
  "@types/chai": "^4.3.11",
22
26
  "@types/mocha": "^10.0.6",
27
+ "@types/node": "^24.7.2",
23
28
  "bs58": "^6.0.0",
24
29
  "chai": "^4.3.10",
30
+ "commander": "^14.0.1",
25
31
  "mocha": "^10.2.0",
26
- "ts-node": "^10.9.2"
32
+ "ts-node": "^10.9.2",
33
+ "tsx": "^4.20.6"
27
34
  },
28
35
  "license": "MIT",
29
36
  "main": "./dist/index.js",