rubic-sdk 5.50.5-alpha.solana.31 → 5.50.5-alpha.solana.33

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.
@@ -8,5 +8,7 @@ export declare class SolanaWeb3Private extends Web3Private {
8
8
  protected readonly Web3Pure: typeof SolanaWeb3Pure;
9
9
  getBlockchainName(): Promise<BlockchainName | undefined>;
10
10
  sendTransaction(options: SolanaTransactionOptions): Promise<string>;
11
+ private updatePriorityFee;
12
+ private encodeNumberToArrayLE;
11
13
  constructor(solanaWeb3: SolanaWeb3);
12
14
  }
@@ -18,49 +18,21 @@ class SolanaWeb3Private extends web3_private_1.Web3Private {
18
18
  const decodedData = options.data.startsWith('0x')
19
19
  ? Buffer.from(options.data.slice(2), 'hex')
20
20
  : utils_1.base64.decode(options.data);
21
- const tx = web3_js_1.VersionedTransaction.deserialize(decodedData);
22
- // const txMessage = TransactionMessage.decompile(tx.message);
23
21
  const { blockhash } = await web3Public.getRecentBlockhash();
22
+ const tx = web3_js_1.VersionedTransaction.deserialize(decodedData);
23
+ tx.message.recentBlockhash = blockhash;
24
24
  const avgGas = await injector_1.Injector.web3PublicService
25
25
  .getWeb3Public('SOLANA')
26
26
  .getLastComputeUnits();
27
- // tx.message.recentBlockhash = blockhash;
28
- // Create the priority fee instructions
29
27
  const computeUnitLimit = avgGas.multipliedBy(1.2).toNumber();
30
- const computePriceIx = web3_js_1.ComputeBudgetProgram.setComputeUnitPrice({
31
- microLamports: 1
32
- });
33
- const computeLimitIx = web3_js_1.ComputeBudgetProgram.setComputeUnitLimit({
34
- units: computeUnitLimit
35
- });
36
- const swapIx = tx.message.compiledInstructions.map((ci) => {
37
- const programId = tx.message.staticAccountKeys[ci.programIdIndex];
38
- const keys = ci.accountKeyIndexes.map(index => ({
39
- pubkey: tx.message.staticAccountKeys[index],
40
- isSigner: tx.message.isAccountSigner(index),
41
- isWritable: tx.message.isAccountWritable(index)
42
- }));
43
- return new web3_js_1.TransactionInstruction({
44
- programId,
45
- keys,
46
- data: Buffer.from(ci.data)
47
- });
48
- });
49
- tx.message.recentBlockhash = blockhash;
50
- const instructions = [
51
- computePriceIx,
52
- computeLimitIx,
53
- ...swapIx
54
- ];
55
- // txMessage.instructions.push(computePriceIx, computeLimitIx);
56
- // const msgWithGas = txMessage.compileToV0Message();
57
- const msgWithGas = new web3_js_1.TransactionMessage({
58
- instructions,
59
- payerKey: new web3_js_1.PublicKey(options.fromAddress),
60
- recentBlockhash: blockhash
61
- }).compileToV0Message();
62
- const txWithGas = new web3_js_1.VersionedTransaction(msgWithGas);
63
- const { signature } = await this.solanaWeb3.signAndSendTransaction(txWithGas);
28
+ // const computePriceIx = ComputeBudgetProgram.setComputeUnitPrice({
29
+ // microLamports: 1
30
+ // });
31
+ // const computeLimitIx = ComputeBudgetProgram.setComputeUnitLimit({
32
+ // units: computeUnitLimit
33
+ // });
34
+ this.updatePriorityFee(tx, 1, computeUnitLimit);
35
+ const { signature } = await this.solanaWeb3.signAndSendTransaction(tx);
64
36
  options.onTransactionHash?.(signature);
65
37
  return signature;
66
38
  }
@@ -69,6 +41,29 @@ class SolanaWeb3Private extends web3_private_1.Web3Private {
69
41
  throw evm_web3_private_1.EvmWeb3Private.parseError(err);
70
42
  }
71
43
  }
44
+ updatePriorityFee(tx, computeUnitPrice, computeUnitLimit) {
45
+ const computeBudgetOfset = 1;
46
+ const computeUnitPriceData = tx.message.compiledInstructions[1].data;
47
+ const encodedPrice = this.encodeNumberToArrayLE(computeUnitPrice, 8);
48
+ for (let i = 0; i < encodedPrice.length; i++) {
49
+ computeUnitPriceData[i + computeBudgetOfset] = encodedPrice[i];
50
+ }
51
+ if (computeUnitLimit) {
52
+ const computeUnitLimitData = tx.message.compiledInstructions[0].data;
53
+ const encodedLimit = this.encodeNumberToArrayLE(computeUnitLimit, 4);
54
+ for (let i = 0; i < encodedLimit.length; i++) {
55
+ computeUnitLimitData[i + computeBudgetOfset] = encodedLimit[i];
56
+ }
57
+ }
58
+ }
59
+ encodeNumberToArrayLE(num, arraySize) {
60
+ const result = new Uint8Array(arraySize);
61
+ for (let i = 0; i < arraySize; i++) {
62
+ result[i] = Number(num & 0xff);
63
+ num >>= 8;
64
+ }
65
+ return result;
66
+ }
72
67
  constructor(solanaWeb3) {
73
68
  super(solanaWeb3.publicKey?.toString() || '');
74
69
  this.solanaWeb3 = solanaWeb3;
@@ -1 +1 @@
1
- {"version":3,"file":"solana-web3-private.js","sourceRoot":"","sources":["../../../../../../src/core/blockchain/web3-private-service/web3-private/solana-web3-private/solana-web3-private.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"solana-web3-private.js","sourceRoot":"","sources":["../../../../../../src/core/blockchain/web3-private-service/web3-private/solana-web3-private/solana-web3-private.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rubic-sdk",
3
- "version": "5.50.5-alpha.solana.31",
3
+ "version": "5.50.5-alpha.solana.33",
4
4
  "description": "Simplify dApp creation",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",