rubic-sdk 5.50.5-alpha.solana.32 → 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,54 +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 = web3_js_1.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
- txMessage.instructions.push(computePriceIx, computeLimitIx);
37
- txMessage.recentBlockhash = blockhash;
38
- // const swapIx = tx.message.compiledInstructions.map((ci: MessageCompiledInstruction) => {
39
- // const programId = tx.message.staticAccountKeys[ci.programIdIndex]!;
40
- // const keys = ci.accountKeyIndexes.map(index => ({
41
- // pubkey: tx.message.staticAccountKeys[index]!,
42
- // isSigner: tx.message.isAccountSigner(index),
43
- // isWritable: tx.message.isAccountWritable(index)
44
- // }));
45
- // return new TransactionInstruction({
46
- // programId,
47
- // keys,
48
- // data: Buffer.from(ci.data)
49
- // });
28
+ // const computePriceIx = ComputeBudgetProgram.setComputeUnitPrice({
29
+ // microLamports: 1
50
30
  // });
51
- // const swapIx = new TransactionInstruction({
52
- // data: decodedData,
53
- // programId: SWAP_PROGRAM_ID
31
+ // const computeLimitIx = ComputeBudgetProgram.setComputeUnitLimit({
32
+ // units: computeUnitLimit
54
33
  // });
55
- // tx.message.recentBlockhash = blockhash;
56
- // const instructions: TransactionInstruction[] = [
57
- // computePriceIx,
58
- // computeLimitIx,
59
- // ...swapIx
60
- // ];
61
- // txMessage.instructions.push(computePriceIx, computeLimitIx);
62
- // const msgWithGas = new TransactionMessage({
63
- // payerKey: new PublicKey(options.fromAddress),
64
- // recentBlockhash: blockhash,
65
- // instructions
66
- // }).compileToV0Message();
67
- const txWithGas = new web3_js_1.VersionedTransaction(txMessage.compileToV0Message());
68
- const { signature } = await this.solanaWeb3.signAndSendTransaction(txWithGas);
34
+ this.updatePriorityFee(tx, 1, computeUnitLimit);
35
+ const { signature } = await this.solanaWeb3.signAndSendTransaction(tx);
69
36
  options.onTransactionHash?.(signature);
70
37
  return signature;
71
38
  }
@@ -74,6 +41,29 @@ class SolanaWeb3Private extends web3_private_1.Web3Private {
74
41
  throw evm_web3_private_1.EvmWeb3Private.parseError(err);
75
42
  }
76
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
+ }
77
67
  constructor(solanaWeb3) {
78
68
  super(solanaWeb3.publicKey?.toString() || '');
79
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":";;;AAAA,6CAAiG;AACjG,4CAA0C;AAC1C,gFAA6F;AAC7F,8HAAyH;AAGzH,qGAAiG;AACjG,sHAAiH;AACjH,yDAAsD;AAGtD,MAAa,iBAAkB,SAAQ,0BAAW;IAGvC,KAAK,CAAC,iBAAiB;QAC1B,OAAO,iCAAe,CAAC,MAAM,CAAC;IAClC,CAAC;IAEM,KAAK,CAAC,eAAe,CAAC,OAAiC;QAC1D,IAAI,CAAC;YACD,MAAM,UAAU,GAAG,mBAAQ,CAAC,iBAAiB,CAAC,aAAa,CAAC,iCAAe,CAAC,MAAM,CAAC,CAAC;YACpF,MAAM,WAAW,GAAG,OAAO,CAAC,IAAK,CAAC,UAAU,CAAC,IAAI,CAAC;gBAC9C,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;gBAC5C,CAAC,CAAC,cAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAK,CAAC,CAAC;YAEnC,MAAM,EAAE,GAAG,8BAAoB,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YACzD,MAAM,SAAS,GAAG,4BAAkB,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;YAE3D,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,UAAU,CAAC,kBAAkB,EAAE,CAAC;YAC5D,MAAM,MAAM,GAAG,MAAM,mBAAQ,CAAC,iBAAiB;iBAC1C,aAAa,CAAC,QAAQ,CAAC;iBACvB,mBAAmB,EAAE,CAAC;YAC3B,0CAA0C;YAE1C,uCAAuC;YACvC,MAAM,gBAAgB,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;YAC7D,MAAM,cAAc,GAAG,8BAAoB,CAAC,mBAAmB,CAAC;gBAC5D,aAAa,EAAE,CAAC;aACnB,CAAC,CAAC;YACH,MAAM,cAAc,GAAG,8BAAoB,CAAC,mBAAmB,CAAC;gBAC5D,KAAK,EAAE,gBAAgB;aAC1B,CAAC,CAAC;YACH,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;YAC5D,SAAS,CAAC,eAAe,GAAG,SAAS,CAAC;YAEtC,2FAA2F;YAC3F,0EAA0E;YAC1E,wDAAwD;YACxD,wDAAwD;YACxD,uDAAuD;YACvD,0DAA0D;YAC1D,WAAW;YACX,0CAA0C;YAC1C,qBAAqB;YACrB,gBAAgB;YAChB,qCAAqC;YACrC,UAAU;YACV,MAAM;YAEN,8CAA8C;YAC9C,yBAAyB;YACzB,iCAAiC;YACjC,MAAM;YAEN,0CAA0C;YAC1C,mDAAmD;YACnD,sBAAsB;YACtB,sBAAsB;YACtB,gBAAgB;YAChB,KAAK;YACL,+DAA+D;YAE/D,8CAA8C;YAC9C,oDAAoD;YACpD,kCAAkC;YAClC,mBAAmB;YACnB,2BAA2B;YAC3B,MAAM,SAAS,GAAG,IAAI,8BAAoB,CAAC,SAAS,CAAC,kBAAkB,EAAE,CAAC,CAAC;YAE3E,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;YAC9E,OAAO,CAAC,iBAAiB,EAAE,CAAC,SAAS,CAAC,CAAC;YAEvC,OAAO,SAAS,CAAC;QACrB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CAAC,2BAA2B,GAAG,EAAE,CAAC,CAAC;YAChD,MAAM,iCAAc,CAAC,UAAU,CAAC,GAAgB,CAAC,CAAC;QACtD,CAAC;IACL,CAAC;IAED,YAA6B,UAAsB;QAC/C,KAAK,CAAC,UAAU,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QADrB,eAAU,GAAV,UAAU,CAAY;QA7EhC,aAAQ,GAAG,iCAAc,CAAC;IA+E7C,CAAC;CACJ;AAjFD,8CAiFC"}
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.32",
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",