@lifi/sdk-provider-solana 4.0.0-beta.2 → 4.0.0-beta.4
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/cjs/core/SolanaStepExecutor.d.ts +3 -3
- package/dist/cjs/core/SolanaStepExecutor.js +32 -33
- package/dist/cjs/core/SolanaStepExecutor.js.map +1 -1
- package/dist/cjs/utils/KeypairWalletAdapter.js +10 -7
- package/dist/cjs/utils/KeypairWalletAdapter.js.map +1 -1
- package/dist/cjs/version.d.ts +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/cjs/version.js.map +1 -1
- package/dist/esm/core/SolanaStepExecutor.d.ts +3 -3
- package/dist/esm/core/SolanaStepExecutor.d.ts.map +1 -1
- package/dist/esm/core/SolanaStepExecutor.js +32 -33
- package/dist/esm/core/SolanaStepExecutor.js.map +1 -1
- package/dist/esm/utils/KeypairWalletAdapter.js +10 -7
- package/dist/esm/utils/KeypairWalletAdapter.js.map +1 -1
- package/dist/esm/version.d.ts +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/esm/version.js.map +1 -1
- package/package.json +2 -2
- package/src/version.ts +1 -1
- package/dist/cjs/_virtual/_@oxc-project_runtime@0.115.0/helpers/defineProperty.js +0 -12
- package/dist/cjs/_virtual/_@oxc-project_runtime@0.115.0/helpers/toPrimitive.js +0 -14
- package/dist/cjs/_virtual/_@oxc-project_runtime@0.115.0/helpers/toPropertyKey.js +0 -9
- package/dist/cjs/_virtual/_@oxc-project_runtime@0.115.0/helpers/typeof.js +0 -16
- package/dist/esm/_virtual/_@oxc-project_runtime@0.115.0/helpers/defineProperty.js +0 -12
- package/dist/esm/_virtual/_@oxc-project_runtime@0.115.0/helpers/toPrimitive.js +0 -14
- package/dist/esm/_virtual/_@oxc-project_runtime@0.115.0/helpers/toPropertyKey.js +0 -9
- package/dist/esm/_virtual/_@oxc-project_runtime@0.115.0/helpers/typeof.js +0 -11
|
@@ -8,9 +8,9 @@ declare class SolanaStepExecutor extends BaseStepExecutor {
|
|
|
8
8
|
private skipSimulation;
|
|
9
9
|
constructor(options: SolanaStepExecutorOptions);
|
|
10
10
|
getWalletAccount: (step: LiFiStepExtended) => WalletAccount;
|
|
11
|
-
parseErrors: (error: Error, step?: LiFiStepExtended, action?: ExecutionAction) => Promise<SDKError>;
|
|
12
|
-
createContext: (baseContext: StepExecutorBaseContext) => Promise<SolanaStepExecutorContext>;
|
|
13
|
-
createPipeline: (context: SolanaStepExecutorContext) => TaskPipeline;
|
|
11
|
+
override parseErrors: (error: Error, step?: LiFiStepExtended, action?: ExecutionAction) => Promise<SDKError>;
|
|
12
|
+
override createContext: (baseContext: StepExecutorBaseContext) => Promise<SolanaStepExecutorContext>;
|
|
13
|
+
override createPipeline: (context: SolanaStepExecutorContext) => TaskPipeline;
|
|
14
14
|
}
|
|
15
15
|
//#endregion
|
|
16
16
|
export { SolanaStepExecutor };
|
|
@@ -2,47 +2,46 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
|
2
2
|
const require_errors_parseSolanaErrors = require("../errors/parseSolanaErrors.js");
|
|
3
3
|
const require_core_tasks_SolanaSignAndExecuteTask = require("./tasks/SolanaSignAndExecuteTask.js");
|
|
4
4
|
const require_core_tasks_SolanaWaitForTransactionTask = require("./tasks/SolanaWaitForTransactionTask.js");
|
|
5
|
-
const require_defineProperty = require("../_virtual/_@oxc-project_runtime@0.115.0/helpers/defineProperty.js");
|
|
6
5
|
let _lifi_sdk = require("@lifi/sdk");
|
|
7
6
|
//#region src/core/SolanaStepExecutor.ts
|
|
8
7
|
var SolanaStepExecutor = class extends _lifi_sdk.BaseStepExecutor {
|
|
8
|
+
wallet;
|
|
9
|
+
skipSimulation;
|
|
9
10
|
constructor(options) {
|
|
10
11
|
super(options);
|
|
11
|
-
require_defineProperty._defineProperty(this, "wallet", void 0);
|
|
12
|
-
require_defineProperty._defineProperty(this, "skipSimulation", void 0);
|
|
13
|
-
require_defineProperty._defineProperty(this, "getWalletAccount", (step) => {
|
|
14
|
-
const account = this.wallet.accounts.find((account) => account.address === step.action.fromAddress);
|
|
15
|
-
if (!account) throw new _lifi_sdk.TransactionError(_lifi_sdk.LiFiErrorCode.WalletChangedDuringExecution, "The wallet address that requested the quote does not match the wallet address attempting to sign the transaction.");
|
|
16
|
-
return account;
|
|
17
|
-
});
|
|
18
|
-
require_defineProperty._defineProperty(this, "parseErrors", (error, step, action) => require_errors_parseSolanaErrors.parseSolanaErrors(error, step, action));
|
|
19
|
-
require_defineProperty._defineProperty(this, "createContext", async (baseContext) => {
|
|
20
|
-
const { step } = baseContext;
|
|
21
|
-
const walletAccount = this.getWalletAccount(step);
|
|
22
|
-
return {
|
|
23
|
-
...baseContext,
|
|
24
|
-
wallet: this.wallet,
|
|
25
|
-
walletAccount,
|
|
26
|
-
skipSimulation: this.skipSimulation
|
|
27
|
-
};
|
|
28
|
-
});
|
|
29
|
-
require_defineProperty._defineProperty(this, "createPipeline", (context) => {
|
|
30
|
-
const { step, isBridgeExecution } = context;
|
|
31
|
-
const tasks = [
|
|
32
|
-
new _lifi_sdk.CheckBalanceTask(),
|
|
33
|
-
new _lifi_sdk.PrepareTransactionTask(),
|
|
34
|
-
new require_core_tasks_SolanaSignAndExecuteTask.SolanaSignAndExecuteTask(),
|
|
35
|
-
new require_core_tasks_SolanaWaitForTransactionTask.SolanaWaitForTransactionTask(),
|
|
36
|
-
new _lifi_sdk.WaitForTransactionStatusTask(isBridgeExecution ? "RECEIVING_CHAIN" : "SWAP")
|
|
37
|
-
];
|
|
38
|
-
const swapOrBridgeAction = this.statusManager.findAction(step, isBridgeExecution ? "CROSS_CHAIN" : "SWAP");
|
|
39
|
-
const taskName = swapOrBridgeAction?.txHash && swapOrBridgeAction?.status === "DONE" ? _lifi_sdk.WaitForTransactionStatusTask.name : _lifi_sdk.CheckBalanceTask.name;
|
|
40
|
-
const firstTaskIndex = tasks.findIndex((task) => task.constructor.name === taskName);
|
|
41
|
-
return new _lifi_sdk.TaskPipeline(tasks.slice(firstTaskIndex));
|
|
42
|
-
});
|
|
43
12
|
this.wallet = options.wallet;
|
|
44
13
|
this.skipSimulation = options.skipSimulation ?? false;
|
|
45
14
|
}
|
|
15
|
+
getWalletAccount = (step) => {
|
|
16
|
+
const account = this.wallet.accounts.find((account) => account.address === step.action.fromAddress);
|
|
17
|
+
if (!account) throw new _lifi_sdk.TransactionError(_lifi_sdk.LiFiErrorCode.WalletChangedDuringExecution, "The wallet address that requested the quote does not match the wallet address attempting to sign the transaction.");
|
|
18
|
+
return account;
|
|
19
|
+
};
|
|
20
|
+
parseErrors = (error, step, action) => require_errors_parseSolanaErrors.parseSolanaErrors(error, step, action);
|
|
21
|
+
createContext = async (baseContext) => {
|
|
22
|
+
const { step } = baseContext;
|
|
23
|
+
const walletAccount = this.getWalletAccount(step);
|
|
24
|
+
return {
|
|
25
|
+
...baseContext,
|
|
26
|
+
wallet: this.wallet,
|
|
27
|
+
walletAccount,
|
|
28
|
+
skipSimulation: this.skipSimulation
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
createPipeline = (context) => {
|
|
32
|
+
const { step, isBridgeExecution } = context;
|
|
33
|
+
const tasks = [
|
|
34
|
+
new _lifi_sdk.CheckBalanceTask(),
|
|
35
|
+
new _lifi_sdk.PrepareTransactionTask(),
|
|
36
|
+
new require_core_tasks_SolanaSignAndExecuteTask.SolanaSignAndExecuteTask(),
|
|
37
|
+
new require_core_tasks_SolanaWaitForTransactionTask.SolanaWaitForTransactionTask(),
|
|
38
|
+
new _lifi_sdk.WaitForTransactionStatusTask(isBridgeExecution ? "RECEIVING_CHAIN" : "SWAP")
|
|
39
|
+
];
|
|
40
|
+
const swapOrBridgeAction = this.statusManager.findAction(step, isBridgeExecution ? "CROSS_CHAIN" : "SWAP");
|
|
41
|
+
const taskName = swapOrBridgeAction?.txHash && swapOrBridgeAction?.status === "DONE" ? _lifi_sdk.WaitForTransactionStatusTask.name : _lifi_sdk.CheckBalanceTask.name;
|
|
42
|
+
const firstTaskIndex = tasks.findIndex((task) => task.constructor.name === taskName);
|
|
43
|
+
return new _lifi_sdk.TaskPipeline(tasks.slice(firstTaskIndex));
|
|
44
|
+
};
|
|
46
45
|
};
|
|
47
46
|
//#endregion
|
|
48
47
|
exports.SolanaStepExecutor = SolanaStepExecutor;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SolanaStepExecutor.js","names":["BaseStepExecutor","TransactionError","LiFiErrorCode","parseSolanaErrors","CheckBalanceTask","PrepareTransactionTask","SolanaSignAndExecuteTask","SolanaWaitForTransactionTask","WaitForTransactionStatusTask","TaskPipeline"],"sources":["../../../src/core/SolanaStepExecutor.ts"],"sourcesContent":["import {\n BaseStepExecutor,\n CheckBalanceTask,\n type ExecutionAction,\n LiFiErrorCode,\n type LiFiStepExtended,\n PrepareTransactionTask,\n type SDKError,\n type StepExecutorBaseContext,\n TaskPipeline,\n TransactionError,\n WaitForTransactionStatusTask,\n} from '@lifi/sdk'\nimport type { Wallet, WalletAccount } from '@wallet-standard/base'\nimport { parseSolanaErrors } from '../errors/parseSolanaErrors.js'\nimport type {\n SolanaStepExecutorContext,\n SolanaStepExecutorOptions,\n} from '../types.js'\nimport { SolanaSignAndExecuteTask } from './tasks/SolanaSignAndExecuteTask.js'\nimport { SolanaWaitForTransactionTask } from './tasks/SolanaWaitForTransactionTask.js'\n\nexport class SolanaStepExecutor extends BaseStepExecutor {\n private wallet: Wallet\n private skipSimulation: boolean\n\n constructor(options: SolanaStepExecutorOptions) {\n super(options)\n this.wallet = options.wallet\n this.skipSimulation = options.skipSimulation ?? false\n }\n\n getWalletAccount = (step: LiFiStepExtended): WalletAccount => {\n const account = this.wallet.accounts.find(\n (account) => account.address === step.action.fromAddress\n )\n\n if (!account) {\n throw new TransactionError(\n LiFiErrorCode.WalletChangedDuringExecution,\n 'The wallet address that requested the quote does not match the wallet address attempting to sign the transaction.'\n )\n }\n\n return account\n }\n\n override parseErrors = (\n error: Error,\n step?: LiFiStepExtended,\n action?: ExecutionAction\n ): Promise<SDKError> => parseSolanaErrors(error, step, action)\n\n override createContext = async (\n baseContext: StepExecutorBaseContext\n ): Promise<SolanaStepExecutorContext> => {\n const { step } = baseContext\n\n const walletAccount = this.getWalletAccount(step)\n\n return {\n ...baseContext,\n wallet: this.wallet,\n walletAccount,\n skipSimulation: this.skipSimulation,\n }\n }\n\n override createPipeline = (\n context: SolanaStepExecutorContext\n ): TaskPipeline => {\n const { step, isBridgeExecution } = context\n\n const tasks = [\n new CheckBalanceTask(),\n new PrepareTransactionTask(),\n new SolanaSignAndExecuteTask(),\n new SolanaWaitForTransactionTask(),\n new WaitForTransactionStatusTask(\n isBridgeExecution ? 'RECEIVING_CHAIN' : 'SWAP'\n ),\n ]\n\n const swapOrBridgeAction = this.statusManager.findAction(\n step,\n isBridgeExecution ? 'CROSS_CHAIN' : 'SWAP'\n )\n\n const taskName =\n swapOrBridgeAction?.txHash && swapOrBridgeAction?.status === 'DONE'\n ? WaitForTransactionStatusTask.name\n : CheckBalanceTask.name\n\n const firstTaskIndex = tasks.findIndex(\n (task) => task.constructor.name === taskName\n )\n\n const tasksToRun = tasks.slice(firstTaskIndex)\n\n return new TaskPipeline(tasksToRun)\n }\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"SolanaStepExecutor.js","names":["BaseStepExecutor","TransactionError","LiFiErrorCode","parseSolanaErrors","CheckBalanceTask","PrepareTransactionTask","SolanaSignAndExecuteTask","SolanaWaitForTransactionTask","WaitForTransactionStatusTask","TaskPipeline"],"sources":["../../../src/core/SolanaStepExecutor.ts"],"sourcesContent":["import {\n BaseStepExecutor,\n CheckBalanceTask,\n type ExecutionAction,\n LiFiErrorCode,\n type LiFiStepExtended,\n PrepareTransactionTask,\n type SDKError,\n type StepExecutorBaseContext,\n TaskPipeline,\n TransactionError,\n WaitForTransactionStatusTask,\n} from '@lifi/sdk'\nimport type { Wallet, WalletAccount } from '@wallet-standard/base'\nimport { parseSolanaErrors } from '../errors/parseSolanaErrors.js'\nimport type {\n SolanaStepExecutorContext,\n SolanaStepExecutorOptions,\n} from '../types.js'\nimport { SolanaSignAndExecuteTask } from './tasks/SolanaSignAndExecuteTask.js'\nimport { SolanaWaitForTransactionTask } from './tasks/SolanaWaitForTransactionTask.js'\n\nexport class SolanaStepExecutor extends BaseStepExecutor {\n private wallet: Wallet\n private skipSimulation: boolean\n\n constructor(options: SolanaStepExecutorOptions) {\n super(options)\n this.wallet = options.wallet\n this.skipSimulation = options.skipSimulation ?? false\n }\n\n getWalletAccount = (step: LiFiStepExtended): WalletAccount => {\n const account = this.wallet.accounts.find(\n (account) => account.address === step.action.fromAddress\n )\n\n if (!account) {\n throw new TransactionError(\n LiFiErrorCode.WalletChangedDuringExecution,\n 'The wallet address that requested the quote does not match the wallet address attempting to sign the transaction.'\n )\n }\n\n return account\n }\n\n override parseErrors = (\n error: Error,\n step?: LiFiStepExtended,\n action?: ExecutionAction\n ): Promise<SDKError> => parseSolanaErrors(error, step, action)\n\n override createContext = async (\n baseContext: StepExecutorBaseContext\n ): Promise<SolanaStepExecutorContext> => {\n const { step } = baseContext\n\n const walletAccount = this.getWalletAccount(step)\n\n return {\n ...baseContext,\n wallet: this.wallet,\n walletAccount,\n skipSimulation: this.skipSimulation,\n }\n }\n\n override createPipeline = (\n context: SolanaStepExecutorContext\n ): TaskPipeline => {\n const { step, isBridgeExecution } = context\n\n const tasks = [\n new CheckBalanceTask(),\n new PrepareTransactionTask(),\n new SolanaSignAndExecuteTask(),\n new SolanaWaitForTransactionTask(),\n new WaitForTransactionStatusTask(\n isBridgeExecution ? 'RECEIVING_CHAIN' : 'SWAP'\n ),\n ]\n\n const swapOrBridgeAction = this.statusManager.findAction(\n step,\n isBridgeExecution ? 'CROSS_CHAIN' : 'SWAP'\n )\n\n const taskName =\n swapOrBridgeAction?.txHash && swapOrBridgeAction?.status === 'DONE'\n ? WaitForTransactionStatusTask.name\n : CheckBalanceTask.name\n\n const firstTaskIndex = tasks.findIndex(\n (task) => task.constructor.name === taskName\n )\n\n const tasksToRun = tasks.slice(firstTaskIndex)\n\n return new TaskPipeline(tasksToRun)\n }\n}\n"],"mappings":";;;;;;AAsBA,IAAa,qBAAb,cAAwCA,UAAAA,iBAAiB;CACvD;CACA;CAEA,YAAY,SAAoC;AAC9C,QAAM,QAAQ;AACd,OAAK,SAAS,QAAQ;AACtB,OAAK,iBAAiB,QAAQ,kBAAkB;;CAGlD,oBAAoB,SAA0C;EAC5D,MAAM,UAAU,KAAK,OAAO,SAAS,MAClC,YAAY,QAAQ,YAAY,KAAK,OAAO,YAC9C;AAED,MAAI,CAAC,QACH,OAAM,IAAIC,UAAAA,iBACRC,UAAAA,cAAc,8BACd,oHACD;AAGH,SAAO;;CAGT,eACE,OACA,MACA,WACsBC,iCAAAA,kBAAkB,OAAO,MAAM,OAAO;CAE9D,gBAAyB,OACvB,gBACuC;EACvC,MAAM,EAAE,SAAS;EAEjB,MAAM,gBAAgB,KAAK,iBAAiB,KAAK;AAEjD,SAAO;GACL,GAAG;GACH,QAAQ,KAAK;GACb;GACA,gBAAgB,KAAK;GACtB;;CAGH,kBACE,YACiB;EACjB,MAAM,EAAE,MAAM,sBAAsB;EAEpC,MAAM,QAAQ;GACZ,IAAIC,UAAAA,kBAAkB;GACtB,IAAIC,UAAAA,wBAAwB;GAC5B,IAAIC,4CAAAA,0BAA0B;GAC9B,IAAIC,gDAAAA,8BAA8B;GAClC,IAAIC,UAAAA,6BACF,oBAAoB,oBAAoB,OACzC;GACF;EAED,MAAM,qBAAqB,KAAK,cAAc,WAC5C,MACA,oBAAoB,gBAAgB,OACrC;EAED,MAAM,WACJ,oBAAoB,UAAU,oBAAoB,WAAW,SACzDA,UAAAA,6BAA6B,OAC7BJ,UAAAA,iBAAiB;EAEvB,MAAM,iBAAiB,MAAM,WAC1B,SAAS,KAAK,YAAY,SAAS,SACrC;AAID,SAAO,IAAIK,UAAAA,aAFQ,MAAM,MAAM,eAAe,CAEX"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
const require_utils_base64ToUint8Array = require("./base64ToUint8Array.js");
|
|
3
|
-
const require_defineProperty = require("../_virtual/_@oxc-project_runtime@0.115.0/helpers/defineProperty.js");
|
|
4
3
|
let _solana_kit = require("@solana/kit");
|
|
5
4
|
let _solana_wallet_standard_features = require("@solana/wallet-standard-features");
|
|
6
5
|
//#region src/utils/KeypairWalletAdapter.ts
|
|
@@ -9,13 +8,17 @@ let _solana_wallet_standard_features = require("@solana/wallet-standard-features
|
|
|
9
8
|
* Wallet Adapter without using a third-party wallet.
|
|
10
9
|
*/
|
|
11
10
|
var KeypairWalletAdapter = class {
|
|
11
|
+
/**
|
|
12
|
+
* Storing a keypair locally like this is not safe because any application using this adapter could retrieve the
|
|
13
|
+
* secret key, and because the keypair will be lost any time the wallet is disconnected or the window is refreshed.
|
|
14
|
+
*/
|
|
15
|
+
_signer;
|
|
16
|
+
_account;
|
|
17
|
+
_secretKeyBytes;
|
|
18
|
+
version = "1.0.0";
|
|
19
|
+
name = "Keypair Wallet";
|
|
20
|
+
icon = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHZpZXdCb3g9IjAgMCAzMiAzMiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48L3N2Zz4=";
|
|
12
21
|
constructor(secretKeyBase58) {
|
|
13
|
-
require_defineProperty._defineProperty(this, "_signer", void 0);
|
|
14
|
-
require_defineProperty._defineProperty(this, "_account", void 0);
|
|
15
|
-
require_defineProperty._defineProperty(this, "_secretKeyBytes", void 0);
|
|
16
|
-
require_defineProperty._defineProperty(this, "version", "1.0.0");
|
|
17
|
-
require_defineProperty._defineProperty(this, "name", "Keypair Wallet");
|
|
18
|
-
require_defineProperty._defineProperty(this, "icon", "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHZpZXdCb3g9IjAgMCAzMiAzMiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48L3N2Zz4=");
|
|
19
22
|
if (!secretKeyBase58) throw new Error("Private key is required");
|
|
20
23
|
const base58Codec = (0, _solana_kit.getBase58Codec)();
|
|
21
24
|
let encoded;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KeypairWalletAdapter.js","names":["SolanaSignTransaction","base64ToUint8Array"],"sources":["../../../src/utils/KeypairWalletAdapter.ts"],"sourcesContent":["import {\n assertIsTransactionWithBlockhashLifetime,\n assertIsTransactionWithinSizeLimit,\n createKeyPairSignerFromBytes,\n getBase58Codec,\n getBase64EncodedWireTransaction,\n getTransactionCodec,\n type KeyPairSigner,\n type ReadonlyUint8Array,\n} from '@solana/kit'\nimport {\n SolanaSignTransaction,\n type SolanaSignTransactionFeature,\n type SolanaSignTransactionInput,\n type SolanaSignTransactionOutput,\n} from '@solana/wallet-standard-features'\nimport type { Wallet, WalletAccount } from '@wallet-standard/base'\nimport { base64ToUint8Array } from './base64ToUint8Array.js'\n\n/**\n * This keypair wallet adapter is unsafe to use on the frontend and is only included to provide an easy way for applications to test\n * Wallet Adapter without using a third-party wallet.\n */\nexport class KeypairWalletAdapter implements Wallet {\n /**\n * Storing a keypair locally like this is not safe because any application using this adapter could retrieve the\n * secret key, and because the keypair will be lost any time the wallet is disconnected or the window is refreshed.\n */\n private _signer: KeyPairSigner | undefined\n private _account: WalletAccount | undefined\n private readonly _secretKeyBytes: ReadonlyUint8Array\n\n readonly version = '1.0.0' as const\n readonly name = 'Keypair Wallet' as const\n readonly icon =\n 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHZpZXdCb3g9IjAgMCAzMiAzMiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48L3N2Zz4=' as const\n\n constructor(secretKeyBase58: string) {\n if (!secretKeyBase58) {\n throw new Error('Private key is required')\n }\n\n const base58Codec = getBase58Codec()\n let encoded: ReadonlyUint8Array\n try {\n encoded = base58Codec.encode(secretKeyBase58)\n } catch {\n throw new Error('Invalid private key format')\n }\n\n if (encoded.length !== 64) {\n throw new Error('Invalid private key length. Expected 64 bytes.')\n }\n\n this._secretKeyBytes = encoded\n }\n\n // Wallet Standard interface properties\n get chains() {\n return ['solana:mainnet', 'solana:devnet', 'solana:testnet'] as const\n }\n\n get accounts(): readonly WalletAccount[] {\n return this._account ? [this._account] : []\n }\n\n get features(): SolanaSignTransactionFeature {\n return {\n [SolanaSignTransaction]: {\n version: '1.0.0' as const,\n supportedTransactionVersions: ['legacy', 0] as const,\n signTransaction: this._signTransactionFeature.bind(this),\n },\n }\n }\n\n async connect(): Promise<void> {\n this._signer = await createKeyPairSignerFromBytes(this._secretKeyBytes)\n\n const publicKeyBytes = new Uint8Array(\n await crypto.subtle.exportKey('raw', this._signer.keyPair.publicKey)\n )\n\n this._account = {\n address: this._signer.address,\n publicKey: publicKeyBytes,\n chains: this.chains,\n features: [SolanaSignTransaction],\n }\n }\n\n async disconnect(): Promise<void> {\n this._signer = undefined\n this._account = undefined\n }\n\n // Wallet Standard feature implementations\n private async _signTransactionFeature(\n ...inputs: readonly SolanaSignTransactionInput[]\n ): Promise<readonly SolanaSignTransactionOutput[]> {\n if (!this._signer) {\n throw new Error('Wallet is not connected')\n }\n\n const results: SolanaSignTransactionOutput[] = []\n\n for (const input of inputs) {\n const transaction = getTransactionCodec().decode(input.transaction)\n\n assertIsTransactionWithinSizeLimit(transaction)\n assertIsTransactionWithBlockhashLifetime(transaction)\n\n const signatureDictionaries = await this._signer.signTransactions([\n transaction,\n ])\n\n if (\n signatureDictionaries.length === 0 ||\n !signatureDictionaries[0][this._signer.address]\n ) {\n throw new Error('Failed to sign transaction')\n }\n\n const signedTransaction = getBase64EncodedWireTransaction(transaction)\n\n results.push({\n signedTransaction: base64ToUint8Array(signedTransaction),\n })\n }\n\n return results\n }\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"KeypairWalletAdapter.js","names":["SolanaSignTransaction","base64ToUint8Array"],"sources":["../../../src/utils/KeypairWalletAdapter.ts"],"sourcesContent":["import {\n assertIsTransactionWithBlockhashLifetime,\n assertIsTransactionWithinSizeLimit,\n createKeyPairSignerFromBytes,\n getBase58Codec,\n getBase64EncodedWireTransaction,\n getTransactionCodec,\n type KeyPairSigner,\n type ReadonlyUint8Array,\n} from '@solana/kit'\nimport {\n SolanaSignTransaction,\n type SolanaSignTransactionFeature,\n type SolanaSignTransactionInput,\n type SolanaSignTransactionOutput,\n} from '@solana/wallet-standard-features'\nimport type { Wallet, WalletAccount } from '@wallet-standard/base'\nimport { base64ToUint8Array } from './base64ToUint8Array.js'\n\n/**\n * This keypair wallet adapter is unsafe to use on the frontend and is only included to provide an easy way for applications to test\n * Wallet Adapter without using a third-party wallet.\n */\nexport class KeypairWalletAdapter implements Wallet {\n /**\n * Storing a keypair locally like this is not safe because any application using this adapter could retrieve the\n * secret key, and because the keypair will be lost any time the wallet is disconnected or the window is refreshed.\n */\n private _signer: KeyPairSigner | undefined\n private _account: WalletAccount | undefined\n private readonly _secretKeyBytes: ReadonlyUint8Array\n\n readonly version = '1.0.0' as const\n readonly name = 'Keypair Wallet' as const\n readonly icon =\n 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHZpZXdCb3g9IjAgMCAzMiAzMiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48L3N2Zz4=' as const\n\n constructor(secretKeyBase58: string) {\n if (!secretKeyBase58) {\n throw new Error('Private key is required')\n }\n\n const base58Codec = getBase58Codec()\n let encoded: ReadonlyUint8Array\n try {\n encoded = base58Codec.encode(secretKeyBase58)\n } catch {\n throw new Error('Invalid private key format')\n }\n\n if (encoded.length !== 64) {\n throw new Error('Invalid private key length. Expected 64 bytes.')\n }\n\n this._secretKeyBytes = encoded\n }\n\n // Wallet Standard interface properties\n get chains() {\n return ['solana:mainnet', 'solana:devnet', 'solana:testnet'] as const\n }\n\n get accounts(): readonly WalletAccount[] {\n return this._account ? [this._account] : []\n }\n\n get features(): SolanaSignTransactionFeature {\n return {\n [SolanaSignTransaction]: {\n version: '1.0.0' as const,\n supportedTransactionVersions: ['legacy', 0] as const,\n signTransaction: this._signTransactionFeature.bind(this),\n },\n }\n }\n\n async connect(): Promise<void> {\n this._signer = await createKeyPairSignerFromBytes(this._secretKeyBytes)\n\n const publicKeyBytes = new Uint8Array(\n await crypto.subtle.exportKey('raw', this._signer.keyPair.publicKey)\n )\n\n this._account = {\n address: this._signer.address,\n publicKey: publicKeyBytes,\n chains: this.chains,\n features: [SolanaSignTransaction],\n }\n }\n\n async disconnect(): Promise<void> {\n this._signer = undefined\n this._account = undefined\n }\n\n // Wallet Standard feature implementations\n private async _signTransactionFeature(\n ...inputs: readonly SolanaSignTransactionInput[]\n ): Promise<readonly SolanaSignTransactionOutput[]> {\n if (!this._signer) {\n throw new Error('Wallet is not connected')\n }\n\n const results: SolanaSignTransactionOutput[] = []\n\n for (const input of inputs) {\n const transaction = getTransactionCodec().decode(input.transaction)\n\n assertIsTransactionWithinSizeLimit(transaction)\n assertIsTransactionWithBlockhashLifetime(transaction)\n\n const signatureDictionaries = await this._signer.signTransactions([\n transaction,\n ])\n\n if (\n signatureDictionaries.length === 0 ||\n !signatureDictionaries[0][this._signer.address]\n ) {\n throw new Error('Failed to sign transaction')\n }\n\n const signedTransaction = getBase64EncodedWireTransaction(transaction)\n\n results.push({\n signedTransaction: base64ToUint8Array(signedTransaction),\n })\n }\n\n return results\n }\n}\n"],"mappings":";;;;;;;;;AAuBA,IAAa,uBAAb,MAAoD;;;;;CAKlD;CACA;CACA;CAEA,UAAmB;CACnB,OAAgB;CAChB,OACE;CAEF,YAAY,iBAAyB;AACnC,MAAI,CAAC,gBACH,OAAM,IAAI,MAAM,0BAA0B;EAG5C,MAAM,eAAA,GAAA,YAAA,iBAA8B;EACpC,IAAI;AACJ,MAAI;AACF,aAAU,YAAY,OAAO,gBAAgB;UACvC;AACN,SAAM,IAAI,MAAM,6BAA6B;;AAG/C,MAAI,QAAQ,WAAW,GACrB,OAAM,IAAI,MAAM,iDAAiD;AAGnE,OAAK,kBAAkB;;CAIzB,IAAI,SAAS;AACX,SAAO;GAAC;GAAkB;GAAiB;GAAiB;;CAG9D,IAAI,WAAqC;AACvC,SAAO,KAAK,WAAW,CAAC,KAAK,SAAS,GAAG,EAAE;;CAG7C,IAAI,WAAyC;AAC3C,SAAO,GACJA,iCAAAA,wBAAwB;GACvB,SAAS;GACT,8BAA8B,CAAC,UAAU,EAAE;GAC3C,iBAAiB,KAAK,wBAAwB,KAAK,KAAK;GACzD,EACF;;CAGH,MAAM,UAAyB;AAC7B,OAAK,UAAU,OAAA,GAAA,YAAA,8BAAmC,KAAK,gBAAgB;EAEvE,MAAM,iBAAiB,IAAI,WACzB,MAAM,OAAO,OAAO,UAAU,OAAO,KAAK,QAAQ,QAAQ,UAAU,CACrE;AAED,OAAK,WAAW;GACd,SAAS,KAAK,QAAQ;GACtB,WAAW;GACX,QAAQ,KAAK;GACb,UAAU,CAACA,iCAAAA,sBAAsB;GAClC;;CAGH,MAAM,aAA4B;AAChC,OAAK,UAAU,KAAA;AACf,OAAK,WAAW,KAAA;;CAIlB,MAAc,wBACZ,GAAG,QAC8C;AACjD,MAAI,CAAC,KAAK,QACR,OAAM,IAAI,MAAM,0BAA0B;EAG5C,MAAM,UAAyC,EAAE;AAEjD,OAAK,MAAM,SAAS,QAAQ;GAC1B,MAAM,eAAA,GAAA,YAAA,sBAAmC,CAAC,OAAO,MAAM,YAAY;AAEnE,IAAA,GAAA,YAAA,oCAAmC,YAAY;AAC/C,IAAA,GAAA,YAAA,0CAAyC,YAAY;GAErD,MAAM,wBAAwB,MAAM,KAAK,QAAQ,iBAAiB,CAChE,YACD,CAAC;AAEF,OACE,sBAAsB,WAAW,KACjC,CAAC,sBAAsB,GAAG,KAAK,QAAQ,SAEvC,OAAM,IAAI,MAAM,6BAA6B;GAG/C,MAAM,qBAAA,GAAA,YAAA,iCAAoD,YAAY;AAEtE,WAAQ,KAAK,EACX,mBAAmBC,iCAAAA,mBAAmB,kBAAkB,EACzD,CAAC;;AAGJ,SAAO"}
|
package/dist/cjs/version.d.ts
CHANGED
package/dist/cjs/version.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
//#region src/version.ts
|
|
3
3
|
const name = "@lifi/sdk-provider-solana";
|
|
4
|
-
const version = "4.0.0-beta.
|
|
4
|
+
const version = "4.0.0-beta.4";
|
|
5
5
|
//#endregion
|
|
6
6
|
exports.name = name;
|
|
7
7
|
exports.version = version;
|
package/dist/cjs/version.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","names":[],"sources":["../../src/version.ts"],"sourcesContent":["export const name = '@lifi/sdk-provider-solana'\nexport const version = '4.0.0-beta.
|
|
1
|
+
{"version":3,"file":"version.js","names":[],"sources":["../../src/version.ts"],"sourcesContent":["export const name = '@lifi/sdk-provider-solana'\nexport const version = '4.0.0-beta.4'\n"],"mappings":";;AAAA,MAAa,OAAO;AACpB,MAAa,UAAU"}
|
|
@@ -8,9 +8,9 @@ declare class SolanaStepExecutor extends BaseStepExecutor {
|
|
|
8
8
|
private skipSimulation;
|
|
9
9
|
constructor(options: SolanaStepExecutorOptions);
|
|
10
10
|
getWalletAccount: (step: LiFiStepExtended) => WalletAccount;
|
|
11
|
-
parseErrors: (error: Error, step?: LiFiStepExtended, action?: ExecutionAction) => Promise<SDKError>;
|
|
12
|
-
createContext: (baseContext: StepExecutorBaseContext) => Promise<SolanaStepExecutorContext>;
|
|
13
|
-
createPipeline: (context: SolanaStepExecutorContext) => TaskPipeline;
|
|
11
|
+
override parseErrors: (error: Error, step?: LiFiStepExtended, action?: ExecutionAction) => Promise<SDKError>;
|
|
12
|
+
override createContext: (baseContext: StepExecutorBaseContext) => Promise<SolanaStepExecutorContext>;
|
|
13
|
+
override createPipeline: (context: SolanaStepExecutorContext) => TaskPipeline;
|
|
14
14
|
}
|
|
15
15
|
//#endregion
|
|
16
16
|
export { SolanaStepExecutor };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SolanaStepExecutor.d.ts","names":[],"sources":["../../../src/core/SolanaStepExecutor.ts"],"mappings":";;;;;cAsBa,kBAAA,SAA2B,gBAAA;EAAA,QAC9B,MAAA;EAAA,QACA,cAAA;EAER,WAAA,CAAY,OAAA,EAAS,yBAAA;EAMrB,gBAAA,GAAoB,IAAA,EAAM,gBAAA,KAAmB,aAAA;
|
|
1
|
+
{"version":3,"file":"SolanaStepExecutor.d.ts","names":[],"sources":["../../../src/core/SolanaStepExecutor.ts"],"mappings":";;;;;cAsBa,kBAAA,SAA2B,gBAAA;EAAA,QAC9B,MAAA;EAAA,QACA,cAAA;EAER,WAAA,CAAY,OAAA,EAAS,yBAAA;EAMrB,gBAAA,GAAoB,IAAA,EAAM,gBAAA,KAAmB,aAAA;EAAA,SAepC,WAAA,GACP,KAAA,EAAO,KAAA,EACP,IAAA,GAAO,gBAAA,EACP,MAAA,GAAS,eAAA,KACR,OAAA,CAAQ,QAAA;EAAA,SAEF,aAAA,GACP,WAAA,EAAa,uBAAA,KACZ,OAAA,CAAQ,yBAAA;EAAA,SAaF,cAAA,GACP,OAAA,EAAS,yBAAA,KACR,YAAA;AAAA"}
|
|
@@ -1,47 +1,46 @@
|
|
|
1
1
|
import { parseSolanaErrors } from "../errors/parseSolanaErrors.js";
|
|
2
2
|
import { SolanaSignAndExecuteTask } from "./tasks/SolanaSignAndExecuteTask.js";
|
|
3
3
|
import { SolanaWaitForTransactionTask } from "./tasks/SolanaWaitForTransactionTask.js";
|
|
4
|
-
import { _defineProperty } from "../_virtual/_@oxc-project_runtime@0.115.0/helpers/defineProperty.js";
|
|
5
4
|
import { BaseStepExecutor, CheckBalanceTask, LiFiErrorCode, PrepareTransactionTask, TaskPipeline, TransactionError, WaitForTransactionStatusTask } from "@lifi/sdk";
|
|
6
5
|
//#region src/core/SolanaStepExecutor.ts
|
|
7
6
|
var SolanaStepExecutor = class extends BaseStepExecutor {
|
|
7
|
+
wallet;
|
|
8
|
+
skipSimulation;
|
|
8
9
|
constructor(options) {
|
|
9
10
|
super(options);
|
|
10
|
-
_defineProperty(this, "wallet", void 0);
|
|
11
|
-
_defineProperty(this, "skipSimulation", void 0);
|
|
12
|
-
_defineProperty(this, "getWalletAccount", (step) => {
|
|
13
|
-
const account = this.wallet.accounts.find((account) => account.address === step.action.fromAddress);
|
|
14
|
-
if (!account) throw new TransactionError(LiFiErrorCode.WalletChangedDuringExecution, "The wallet address that requested the quote does not match the wallet address attempting to sign the transaction.");
|
|
15
|
-
return account;
|
|
16
|
-
});
|
|
17
|
-
_defineProperty(this, "parseErrors", (error, step, action) => parseSolanaErrors(error, step, action));
|
|
18
|
-
_defineProperty(this, "createContext", async (baseContext) => {
|
|
19
|
-
const { step } = baseContext;
|
|
20
|
-
const walletAccount = this.getWalletAccount(step);
|
|
21
|
-
return {
|
|
22
|
-
...baseContext,
|
|
23
|
-
wallet: this.wallet,
|
|
24
|
-
walletAccount,
|
|
25
|
-
skipSimulation: this.skipSimulation
|
|
26
|
-
};
|
|
27
|
-
});
|
|
28
|
-
_defineProperty(this, "createPipeline", (context) => {
|
|
29
|
-
const { step, isBridgeExecution } = context;
|
|
30
|
-
const tasks = [
|
|
31
|
-
new CheckBalanceTask(),
|
|
32
|
-
new PrepareTransactionTask(),
|
|
33
|
-
new SolanaSignAndExecuteTask(),
|
|
34
|
-
new SolanaWaitForTransactionTask(),
|
|
35
|
-
new WaitForTransactionStatusTask(isBridgeExecution ? "RECEIVING_CHAIN" : "SWAP")
|
|
36
|
-
];
|
|
37
|
-
const swapOrBridgeAction = this.statusManager.findAction(step, isBridgeExecution ? "CROSS_CHAIN" : "SWAP");
|
|
38
|
-
const taskName = swapOrBridgeAction?.txHash && swapOrBridgeAction?.status === "DONE" ? WaitForTransactionStatusTask.name : CheckBalanceTask.name;
|
|
39
|
-
const firstTaskIndex = tasks.findIndex((task) => task.constructor.name === taskName);
|
|
40
|
-
return new TaskPipeline(tasks.slice(firstTaskIndex));
|
|
41
|
-
});
|
|
42
11
|
this.wallet = options.wallet;
|
|
43
12
|
this.skipSimulation = options.skipSimulation ?? false;
|
|
44
13
|
}
|
|
14
|
+
getWalletAccount = (step) => {
|
|
15
|
+
const account = this.wallet.accounts.find((account) => account.address === step.action.fromAddress);
|
|
16
|
+
if (!account) throw new TransactionError(LiFiErrorCode.WalletChangedDuringExecution, "The wallet address that requested the quote does not match the wallet address attempting to sign the transaction.");
|
|
17
|
+
return account;
|
|
18
|
+
};
|
|
19
|
+
parseErrors = (error, step, action) => parseSolanaErrors(error, step, action);
|
|
20
|
+
createContext = async (baseContext) => {
|
|
21
|
+
const { step } = baseContext;
|
|
22
|
+
const walletAccount = this.getWalletAccount(step);
|
|
23
|
+
return {
|
|
24
|
+
...baseContext,
|
|
25
|
+
wallet: this.wallet,
|
|
26
|
+
walletAccount,
|
|
27
|
+
skipSimulation: this.skipSimulation
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
createPipeline = (context) => {
|
|
31
|
+
const { step, isBridgeExecution } = context;
|
|
32
|
+
const tasks = [
|
|
33
|
+
new CheckBalanceTask(),
|
|
34
|
+
new PrepareTransactionTask(),
|
|
35
|
+
new SolanaSignAndExecuteTask(),
|
|
36
|
+
new SolanaWaitForTransactionTask(),
|
|
37
|
+
new WaitForTransactionStatusTask(isBridgeExecution ? "RECEIVING_CHAIN" : "SWAP")
|
|
38
|
+
];
|
|
39
|
+
const swapOrBridgeAction = this.statusManager.findAction(step, isBridgeExecution ? "CROSS_CHAIN" : "SWAP");
|
|
40
|
+
const taskName = swapOrBridgeAction?.txHash && swapOrBridgeAction?.status === "DONE" ? WaitForTransactionStatusTask.name : CheckBalanceTask.name;
|
|
41
|
+
const firstTaskIndex = tasks.findIndex((task) => task.constructor.name === taskName);
|
|
42
|
+
return new TaskPipeline(tasks.slice(firstTaskIndex));
|
|
43
|
+
};
|
|
45
44
|
};
|
|
46
45
|
//#endregion
|
|
47
46
|
export { SolanaStepExecutor };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SolanaStepExecutor.js","names":[],"sources":["../../../src/core/SolanaStepExecutor.ts"],"sourcesContent":["import {\n BaseStepExecutor,\n CheckBalanceTask,\n type ExecutionAction,\n LiFiErrorCode,\n type LiFiStepExtended,\n PrepareTransactionTask,\n type SDKError,\n type StepExecutorBaseContext,\n TaskPipeline,\n TransactionError,\n WaitForTransactionStatusTask,\n} from '@lifi/sdk'\nimport type { Wallet, WalletAccount } from '@wallet-standard/base'\nimport { parseSolanaErrors } from '../errors/parseSolanaErrors.js'\nimport type {\n SolanaStepExecutorContext,\n SolanaStepExecutorOptions,\n} from '../types.js'\nimport { SolanaSignAndExecuteTask } from './tasks/SolanaSignAndExecuteTask.js'\nimport { SolanaWaitForTransactionTask } from './tasks/SolanaWaitForTransactionTask.js'\n\nexport class SolanaStepExecutor extends BaseStepExecutor {\n private wallet: Wallet\n private skipSimulation: boolean\n\n constructor(options: SolanaStepExecutorOptions) {\n super(options)\n this.wallet = options.wallet\n this.skipSimulation = options.skipSimulation ?? false\n }\n\n getWalletAccount = (step: LiFiStepExtended): WalletAccount => {\n const account = this.wallet.accounts.find(\n (account) => account.address === step.action.fromAddress\n )\n\n if (!account) {\n throw new TransactionError(\n LiFiErrorCode.WalletChangedDuringExecution,\n 'The wallet address that requested the quote does not match the wallet address attempting to sign the transaction.'\n )\n }\n\n return account\n }\n\n override parseErrors = (\n error: Error,\n step?: LiFiStepExtended,\n action?: ExecutionAction\n ): Promise<SDKError> => parseSolanaErrors(error, step, action)\n\n override createContext = async (\n baseContext: StepExecutorBaseContext\n ): Promise<SolanaStepExecutorContext> => {\n const { step } = baseContext\n\n const walletAccount = this.getWalletAccount(step)\n\n return {\n ...baseContext,\n wallet: this.wallet,\n walletAccount,\n skipSimulation: this.skipSimulation,\n }\n }\n\n override createPipeline = (\n context: SolanaStepExecutorContext\n ): TaskPipeline => {\n const { step, isBridgeExecution } = context\n\n const tasks = [\n new CheckBalanceTask(),\n new PrepareTransactionTask(),\n new SolanaSignAndExecuteTask(),\n new SolanaWaitForTransactionTask(),\n new WaitForTransactionStatusTask(\n isBridgeExecution ? 'RECEIVING_CHAIN' : 'SWAP'\n ),\n ]\n\n const swapOrBridgeAction = this.statusManager.findAction(\n step,\n isBridgeExecution ? 'CROSS_CHAIN' : 'SWAP'\n )\n\n const taskName =\n swapOrBridgeAction?.txHash && swapOrBridgeAction?.status === 'DONE'\n ? WaitForTransactionStatusTask.name\n : CheckBalanceTask.name\n\n const firstTaskIndex = tasks.findIndex(\n (task) => task.constructor.name === taskName\n )\n\n const tasksToRun = tasks.slice(firstTaskIndex)\n\n return new TaskPipeline(tasksToRun)\n }\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"SolanaStepExecutor.js","names":[],"sources":["../../../src/core/SolanaStepExecutor.ts"],"sourcesContent":["import {\n BaseStepExecutor,\n CheckBalanceTask,\n type ExecutionAction,\n LiFiErrorCode,\n type LiFiStepExtended,\n PrepareTransactionTask,\n type SDKError,\n type StepExecutorBaseContext,\n TaskPipeline,\n TransactionError,\n WaitForTransactionStatusTask,\n} from '@lifi/sdk'\nimport type { Wallet, WalletAccount } from '@wallet-standard/base'\nimport { parseSolanaErrors } from '../errors/parseSolanaErrors.js'\nimport type {\n SolanaStepExecutorContext,\n SolanaStepExecutorOptions,\n} from '../types.js'\nimport { SolanaSignAndExecuteTask } from './tasks/SolanaSignAndExecuteTask.js'\nimport { SolanaWaitForTransactionTask } from './tasks/SolanaWaitForTransactionTask.js'\n\nexport class SolanaStepExecutor extends BaseStepExecutor {\n private wallet: Wallet\n private skipSimulation: boolean\n\n constructor(options: SolanaStepExecutorOptions) {\n super(options)\n this.wallet = options.wallet\n this.skipSimulation = options.skipSimulation ?? false\n }\n\n getWalletAccount = (step: LiFiStepExtended): WalletAccount => {\n const account = this.wallet.accounts.find(\n (account) => account.address === step.action.fromAddress\n )\n\n if (!account) {\n throw new TransactionError(\n LiFiErrorCode.WalletChangedDuringExecution,\n 'The wallet address that requested the quote does not match the wallet address attempting to sign the transaction.'\n )\n }\n\n return account\n }\n\n override parseErrors = (\n error: Error,\n step?: LiFiStepExtended,\n action?: ExecutionAction\n ): Promise<SDKError> => parseSolanaErrors(error, step, action)\n\n override createContext = async (\n baseContext: StepExecutorBaseContext\n ): Promise<SolanaStepExecutorContext> => {\n const { step } = baseContext\n\n const walletAccount = this.getWalletAccount(step)\n\n return {\n ...baseContext,\n wallet: this.wallet,\n walletAccount,\n skipSimulation: this.skipSimulation,\n }\n }\n\n override createPipeline = (\n context: SolanaStepExecutorContext\n ): TaskPipeline => {\n const { step, isBridgeExecution } = context\n\n const tasks = [\n new CheckBalanceTask(),\n new PrepareTransactionTask(),\n new SolanaSignAndExecuteTask(),\n new SolanaWaitForTransactionTask(),\n new WaitForTransactionStatusTask(\n isBridgeExecution ? 'RECEIVING_CHAIN' : 'SWAP'\n ),\n ]\n\n const swapOrBridgeAction = this.statusManager.findAction(\n step,\n isBridgeExecution ? 'CROSS_CHAIN' : 'SWAP'\n )\n\n const taskName =\n swapOrBridgeAction?.txHash && swapOrBridgeAction?.status === 'DONE'\n ? WaitForTransactionStatusTask.name\n : CheckBalanceTask.name\n\n const firstTaskIndex = tasks.findIndex(\n (task) => task.constructor.name === taskName\n )\n\n const tasksToRun = tasks.slice(firstTaskIndex)\n\n return new TaskPipeline(tasksToRun)\n }\n}\n"],"mappings":";;;;;AAsBA,IAAa,qBAAb,cAAwC,iBAAiB;CACvD;CACA;CAEA,YAAY,SAAoC;AAC9C,QAAM,QAAQ;AACd,OAAK,SAAS,QAAQ;AACtB,OAAK,iBAAiB,QAAQ,kBAAkB;;CAGlD,oBAAoB,SAA0C;EAC5D,MAAM,UAAU,KAAK,OAAO,SAAS,MAClC,YAAY,QAAQ,YAAY,KAAK,OAAO,YAC9C;AAED,MAAI,CAAC,QACH,OAAM,IAAI,iBACR,cAAc,8BACd,oHACD;AAGH,SAAO;;CAGT,eACE,OACA,MACA,WACsB,kBAAkB,OAAO,MAAM,OAAO;CAE9D,gBAAyB,OACvB,gBACuC;EACvC,MAAM,EAAE,SAAS;EAEjB,MAAM,gBAAgB,KAAK,iBAAiB,KAAK;AAEjD,SAAO;GACL,GAAG;GACH,QAAQ,KAAK;GACb;GACA,gBAAgB,KAAK;GACtB;;CAGH,kBACE,YACiB;EACjB,MAAM,EAAE,MAAM,sBAAsB;EAEpC,MAAM,QAAQ;GACZ,IAAI,kBAAkB;GACtB,IAAI,wBAAwB;GAC5B,IAAI,0BAA0B;GAC9B,IAAI,8BAA8B;GAClC,IAAI,6BACF,oBAAoB,oBAAoB,OACzC;GACF;EAED,MAAM,qBAAqB,KAAK,cAAc,WAC5C,MACA,oBAAoB,gBAAgB,OACrC;EAED,MAAM,WACJ,oBAAoB,UAAU,oBAAoB,WAAW,SACzD,6BAA6B,OAC7B,iBAAiB;EAEvB,MAAM,iBAAiB,MAAM,WAC1B,SAAS,KAAK,YAAY,SAAS,SACrC;AAID,SAAO,IAAI,aAFQ,MAAM,MAAM,eAAe,CAEX"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { base64ToUint8Array } from "./base64ToUint8Array.js";
|
|
2
|
-
import { _defineProperty } from "../_virtual/_@oxc-project_runtime@0.115.0/helpers/defineProperty.js";
|
|
3
2
|
import { assertIsTransactionWithBlockhashLifetime, assertIsTransactionWithinSizeLimit, createKeyPairSignerFromBytes, getBase58Codec, getBase64EncodedWireTransaction, getTransactionCodec } from "@solana/kit";
|
|
4
3
|
import { SolanaSignTransaction } from "@solana/wallet-standard-features";
|
|
5
4
|
//#region src/utils/KeypairWalletAdapter.ts
|
|
@@ -8,13 +7,17 @@ import { SolanaSignTransaction } from "@solana/wallet-standard-features";
|
|
|
8
7
|
* Wallet Adapter without using a third-party wallet.
|
|
9
8
|
*/
|
|
10
9
|
var KeypairWalletAdapter = class {
|
|
10
|
+
/**
|
|
11
|
+
* Storing a keypair locally like this is not safe because any application using this adapter could retrieve the
|
|
12
|
+
* secret key, and because the keypair will be lost any time the wallet is disconnected or the window is refreshed.
|
|
13
|
+
*/
|
|
14
|
+
_signer;
|
|
15
|
+
_account;
|
|
16
|
+
_secretKeyBytes;
|
|
17
|
+
version = "1.0.0";
|
|
18
|
+
name = "Keypair Wallet";
|
|
19
|
+
icon = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHZpZXdCb3g9IjAgMCAzMiAzMiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48L3N2Zz4=";
|
|
11
20
|
constructor(secretKeyBase58) {
|
|
12
|
-
_defineProperty(this, "_signer", void 0);
|
|
13
|
-
_defineProperty(this, "_account", void 0);
|
|
14
|
-
_defineProperty(this, "_secretKeyBytes", void 0);
|
|
15
|
-
_defineProperty(this, "version", "1.0.0");
|
|
16
|
-
_defineProperty(this, "name", "Keypair Wallet");
|
|
17
|
-
_defineProperty(this, "icon", "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHZpZXdCb3g9IjAgMCAzMiAzMiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48L3N2Zz4=");
|
|
18
21
|
if (!secretKeyBase58) throw new Error("Private key is required");
|
|
19
22
|
const base58Codec = getBase58Codec();
|
|
20
23
|
let encoded;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KeypairWalletAdapter.js","names":[],"sources":["../../../src/utils/KeypairWalletAdapter.ts"],"sourcesContent":["import {\n assertIsTransactionWithBlockhashLifetime,\n assertIsTransactionWithinSizeLimit,\n createKeyPairSignerFromBytes,\n getBase58Codec,\n getBase64EncodedWireTransaction,\n getTransactionCodec,\n type KeyPairSigner,\n type ReadonlyUint8Array,\n} from '@solana/kit'\nimport {\n SolanaSignTransaction,\n type SolanaSignTransactionFeature,\n type SolanaSignTransactionInput,\n type SolanaSignTransactionOutput,\n} from '@solana/wallet-standard-features'\nimport type { Wallet, WalletAccount } from '@wallet-standard/base'\nimport { base64ToUint8Array } from './base64ToUint8Array.js'\n\n/**\n * This keypair wallet adapter is unsafe to use on the frontend and is only included to provide an easy way for applications to test\n * Wallet Adapter without using a third-party wallet.\n */\nexport class KeypairWalletAdapter implements Wallet {\n /**\n * Storing a keypair locally like this is not safe because any application using this adapter could retrieve the\n * secret key, and because the keypair will be lost any time the wallet is disconnected or the window is refreshed.\n */\n private _signer: KeyPairSigner | undefined\n private _account: WalletAccount | undefined\n private readonly _secretKeyBytes: ReadonlyUint8Array\n\n readonly version = '1.0.0' as const\n readonly name = 'Keypair Wallet' as const\n readonly icon =\n 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHZpZXdCb3g9IjAgMCAzMiAzMiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48L3N2Zz4=' as const\n\n constructor(secretKeyBase58: string) {\n if (!secretKeyBase58) {\n throw new Error('Private key is required')\n }\n\n const base58Codec = getBase58Codec()\n let encoded: ReadonlyUint8Array\n try {\n encoded = base58Codec.encode(secretKeyBase58)\n } catch {\n throw new Error('Invalid private key format')\n }\n\n if (encoded.length !== 64) {\n throw new Error('Invalid private key length. Expected 64 bytes.')\n }\n\n this._secretKeyBytes = encoded\n }\n\n // Wallet Standard interface properties\n get chains() {\n return ['solana:mainnet', 'solana:devnet', 'solana:testnet'] as const\n }\n\n get accounts(): readonly WalletAccount[] {\n return this._account ? [this._account] : []\n }\n\n get features(): SolanaSignTransactionFeature {\n return {\n [SolanaSignTransaction]: {\n version: '1.0.0' as const,\n supportedTransactionVersions: ['legacy', 0] as const,\n signTransaction: this._signTransactionFeature.bind(this),\n },\n }\n }\n\n async connect(): Promise<void> {\n this._signer = await createKeyPairSignerFromBytes(this._secretKeyBytes)\n\n const publicKeyBytes = new Uint8Array(\n await crypto.subtle.exportKey('raw', this._signer.keyPair.publicKey)\n )\n\n this._account = {\n address: this._signer.address,\n publicKey: publicKeyBytes,\n chains: this.chains,\n features: [SolanaSignTransaction],\n }\n }\n\n async disconnect(): Promise<void> {\n this._signer = undefined\n this._account = undefined\n }\n\n // Wallet Standard feature implementations\n private async _signTransactionFeature(\n ...inputs: readonly SolanaSignTransactionInput[]\n ): Promise<readonly SolanaSignTransactionOutput[]> {\n if (!this._signer) {\n throw new Error('Wallet is not connected')\n }\n\n const results: SolanaSignTransactionOutput[] = []\n\n for (const input of inputs) {\n const transaction = getTransactionCodec().decode(input.transaction)\n\n assertIsTransactionWithinSizeLimit(transaction)\n assertIsTransactionWithBlockhashLifetime(transaction)\n\n const signatureDictionaries = await this._signer.signTransactions([\n transaction,\n ])\n\n if (\n signatureDictionaries.length === 0 ||\n !signatureDictionaries[0][this._signer.address]\n ) {\n throw new Error('Failed to sign transaction')\n }\n\n const signedTransaction = getBase64EncodedWireTransaction(transaction)\n\n results.push({\n signedTransaction: base64ToUint8Array(signedTransaction),\n })\n }\n\n return results\n }\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"KeypairWalletAdapter.js","names":[],"sources":["../../../src/utils/KeypairWalletAdapter.ts"],"sourcesContent":["import {\n assertIsTransactionWithBlockhashLifetime,\n assertIsTransactionWithinSizeLimit,\n createKeyPairSignerFromBytes,\n getBase58Codec,\n getBase64EncodedWireTransaction,\n getTransactionCodec,\n type KeyPairSigner,\n type ReadonlyUint8Array,\n} from '@solana/kit'\nimport {\n SolanaSignTransaction,\n type SolanaSignTransactionFeature,\n type SolanaSignTransactionInput,\n type SolanaSignTransactionOutput,\n} from '@solana/wallet-standard-features'\nimport type { Wallet, WalletAccount } from '@wallet-standard/base'\nimport { base64ToUint8Array } from './base64ToUint8Array.js'\n\n/**\n * This keypair wallet adapter is unsafe to use on the frontend and is only included to provide an easy way for applications to test\n * Wallet Adapter without using a third-party wallet.\n */\nexport class KeypairWalletAdapter implements Wallet {\n /**\n * Storing a keypair locally like this is not safe because any application using this adapter could retrieve the\n * secret key, and because the keypair will be lost any time the wallet is disconnected or the window is refreshed.\n */\n private _signer: KeyPairSigner | undefined\n private _account: WalletAccount | undefined\n private readonly _secretKeyBytes: ReadonlyUint8Array\n\n readonly version = '1.0.0' as const\n readonly name = 'Keypair Wallet' as const\n readonly icon =\n 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHZpZXdCb3g9IjAgMCAzMiAzMiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48L3N2Zz4=' as const\n\n constructor(secretKeyBase58: string) {\n if (!secretKeyBase58) {\n throw new Error('Private key is required')\n }\n\n const base58Codec = getBase58Codec()\n let encoded: ReadonlyUint8Array\n try {\n encoded = base58Codec.encode(secretKeyBase58)\n } catch {\n throw new Error('Invalid private key format')\n }\n\n if (encoded.length !== 64) {\n throw new Error('Invalid private key length. Expected 64 bytes.')\n }\n\n this._secretKeyBytes = encoded\n }\n\n // Wallet Standard interface properties\n get chains() {\n return ['solana:mainnet', 'solana:devnet', 'solana:testnet'] as const\n }\n\n get accounts(): readonly WalletAccount[] {\n return this._account ? [this._account] : []\n }\n\n get features(): SolanaSignTransactionFeature {\n return {\n [SolanaSignTransaction]: {\n version: '1.0.0' as const,\n supportedTransactionVersions: ['legacy', 0] as const,\n signTransaction: this._signTransactionFeature.bind(this),\n },\n }\n }\n\n async connect(): Promise<void> {\n this._signer = await createKeyPairSignerFromBytes(this._secretKeyBytes)\n\n const publicKeyBytes = new Uint8Array(\n await crypto.subtle.exportKey('raw', this._signer.keyPair.publicKey)\n )\n\n this._account = {\n address: this._signer.address,\n publicKey: publicKeyBytes,\n chains: this.chains,\n features: [SolanaSignTransaction],\n }\n }\n\n async disconnect(): Promise<void> {\n this._signer = undefined\n this._account = undefined\n }\n\n // Wallet Standard feature implementations\n private async _signTransactionFeature(\n ...inputs: readonly SolanaSignTransactionInput[]\n ): Promise<readonly SolanaSignTransactionOutput[]> {\n if (!this._signer) {\n throw new Error('Wallet is not connected')\n }\n\n const results: SolanaSignTransactionOutput[] = []\n\n for (const input of inputs) {\n const transaction = getTransactionCodec().decode(input.transaction)\n\n assertIsTransactionWithinSizeLimit(transaction)\n assertIsTransactionWithBlockhashLifetime(transaction)\n\n const signatureDictionaries = await this._signer.signTransactions([\n transaction,\n ])\n\n if (\n signatureDictionaries.length === 0 ||\n !signatureDictionaries[0][this._signer.address]\n ) {\n throw new Error('Failed to sign transaction')\n }\n\n const signedTransaction = getBase64EncodedWireTransaction(transaction)\n\n results.push({\n signedTransaction: base64ToUint8Array(signedTransaction),\n })\n }\n\n return results\n }\n}\n"],"mappings":";;;;;;;;AAuBA,IAAa,uBAAb,MAAoD;;;;;CAKlD;CACA;CACA;CAEA,UAAmB;CACnB,OAAgB;CAChB,OACE;CAEF,YAAY,iBAAyB;AACnC,MAAI,CAAC,gBACH,OAAM,IAAI,MAAM,0BAA0B;EAG5C,MAAM,cAAc,gBAAgB;EACpC,IAAI;AACJ,MAAI;AACF,aAAU,YAAY,OAAO,gBAAgB;UACvC;AACN,SAAM,IAAI,MAAM,6BAA6B;;AAG/C,MAAI,QAAQ,WAAW,GACrB,OAAM,IAAI,MAAM,iDAAiD;AAGnE,OAAK,kBAAkB;;CAIzB,IAAI,SAAS;AACX,SAAO;GAAC;GAAkB;GAAiB;GAAiB;;CAG9D,IAAI,WAAqC;AACvC,SAAO,KAAK,WAAW,CAAC,KAAK,SAAS,GAAG,EAAE;;CAG7C,IAAI,WAAyC;AAC3C,SAAO,GACJ,wBAAwB;GACvB,SAAS;GACT,8BAA8B,CAAC,UAAU,EAAE;GAC3C,iBAAiB,KAAK,wBAAwB,KAAK,KAAK;GACzD,EACF;;CAGH,MAAM,UAAyB;AAC7B,OAAK,UAAU,MAAM,6BAA6B,KAAK,gBAAgB;EAEvE,MAAM,iBAAiB,IAAI,WACzB,MAAM,OAAO,OAAO,UAAU,OAAO,KAAK,QAAQ,QAAQ,UAAU,CACrE;AAED,OAAK,WAAW;GACd,SAAS,KAAK,QAAQ;GACtB,WAAW;GACX,QAAQ,KAAK;GACb,UAAU,CAAC,sBAAsB;GAClC;;CAGH,MAAM,aAA4B;AAChC,OAAK,UAAU,KAAA;AACf,OAAK,WAAW,KAAA;;CAIlB,MAAc,wBACZ,GAAG,QAC8C;AACjD,MAAI,CAAC,KAAK,QACR,OAAM,IAAI,MAAM,0BAA0B;EAG5C,MAAM,UAAyC,EAAE;AAEjD,OAAK,MAAM,SAAS,QAAQ;GAC1B,MAAM,cAAc,qBAAqB,CAAC,OAAO,MAAM,YAAY;AAEnE,sCAAmC,YAAY;AAC/C,4CAAyC,YAAY;GAErD,MAAM,wBAAwB,MAAM,KAAK,QAAQ,iBAAiB,CAChE,YACD,CAAC;AAEF,OACE,sBAAsB,WAAW,KACjC,CAAC,sBAAsB,GAAG,KAAK,QAAQ,SAEvC,OAAM,IAAI,MAAM,6BAA6B;GAG/C,MAAM,oBAAoB,gCAAgC,YAAY;AAEtE,WAAQ,KAAK,EACX,mBAAmB,mBAAmB,kBAAkB,EACzD,CAAC;;AAGJ,SAAO"}
|
package/dist/esm/version.d.ts
CHANGED
package/dist/esm/version.js
CHANGED
package/dist/esm/version.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","names":[],"sources":["../../src/version.ts"],"sourcesContent":["export const name = '@lifi/sdk-provider-solana'\nexport const version = '4.0.0-beta.
|
|
1
|
+
{"version":3,"file":"version.js","names":[],"sources":["../../src/version.ts"],"sourcesContent":["export const name = '@lifi/sdk-provider-solana'\nexport const version = '4.0.0-beta.4'\n"],"mappings":";AAAA,MAAa,OAAO;AACpB,MAAa,UAAU"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lifi/sdk-provider-solana",
|
|
3
|
-
"version": "4.0.0-beta.
|
|
3
|
+
"version": "4.0.0-beta.4",
|
|
4
4
|
"description": "LI.FI Solana SDK Provider for Any-to-Any Cross-Chain-Swap",
|
|
5
5
|
"homepage": "https://github.com/lifinance/sdk",
|
|
6
6
|
"bugs": {
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"@solana/kit": "^6.5.0",
|
|
32
32
|
"@solana/wallet-standard-features": "^1.3.0",
|
|
33
33
|
"@wallet-standard/base": "^1.1.0",
|
|
34
|
-
"@lifi/sdk": "4.0.0-beta.
|
|
34
|
+
"@lifi/sdk": "4.0.0-beta.4"
|
|
35
35
|
},
|
|
36
36
|
"publishConfig": {
|
|
37
37
|
"access": "public"
|
package/src/version.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export const name = '@lifi/sdk-provider-solana'
|
|
2
|
-
export const version = '4.0.0-beta.
|
|
2
|
+
export const version = '4.0.0-beta.4'
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
const require_toPropertyKey = require("./toPropertyKey.js");
|
|
2
|
-
//#region \0@oxc-project+runtime@0.115.0/helpers/defineProperty.js
|
|
3
|
-
function _defineProperty(e, r, t) {
|
|
4
|
-
return (r = require_toPropertyKey.toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
|
|
5
|
-
value: t,
|
|
6
|
-
enumerable: !0,
|
|
7
|
-
configurable: !0,
|
|
8
|
-
writable: !0
|
|
9
|
-
}) : e[r] = t, e;
|
|
10
|
-
}
|
|
11
|
-
//#endregion
|
|
12
|
-
exports._defineProperty = _defineProperty;
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
const require_typeof = require("./typeof.js");
|
|
2
|
-
//#region \0@oxc-project+runtime@0.115.0/helpers/toPrimitive.js
|
|
3
|
-
function toPrimitive(t, r) {
|
|
4
|
-
if ("object" != require_typeof._typeof(t) || !t) return t;
|
|
5
|
-
var e = t[Symbol.toPrimitive];
|
|
6
|
-
if (void 0 !== e) {
|
|
7
|
-
var i = e.call(t, r || "default");
|
|
8
|
-
if ("object" != require_typeof._typeof(i)) return i;
|
|
9
|
-
throw new TypeError("@@toPrimitive must return a primitive value.");
|
|
10
|
-
}
|
|
11
|
-
return ("string" === r ? String : Number)(t);
|
|
12
|
-
}
|
|
13
|
-
//#endregion
|
|
14
|
-
exports.toPrimitive = toPrimitive;
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
const require_typeof = require("./typeof.js");
|
|
2
|
-
const require_toPrimitive = require("./toPrimitive.js");
|
|
3
|
-
//#region \0@oxc-project+runtime@0.115.0/helpers/toPropertyKey.js
|
|
4
|
-
function toPropertyKey(t) {
|
|
5
|
-
var i = require_toPrimitive.toPrimitive(t, "string");
|
|
6
|
-
return "symbol" == require_typeof._typeof(i) ? i : i + "";
|
|
7
|
-
}
|
|
8
|
-
//#endregion
|
|
9
|
-
exports.toPropertyKey = toPropertyKey;
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
//#region \0@oxc-project+runtime@0.115.0/helpers/typeof.js
|
|
2
|
-
function _typeof(o) {
|
|
3
|
-
"@babel/helpers - typeof";
|
|
4
|
-
return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o) {
|
|
5
|
-
return typeof o;
|
|
6
|
-
} : function(o) {
|
|
7
|
-
return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;
|
|
8
|
-
}, _typeof(o);
|
|
9
|
-
}
|
|
10
|
-
//#endregion
|
|
11
|
-
Object.defineProperty(exports, "_typeof", {
|
|
12
|
-
enumerable: true,
|
|
13
|
-
get: function() {
|
|
14
|
-
return _typeof;
|
|
15
|
-
}
|
|
16
|
-
});
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { toPropertyKey } from "./toPropertyKey.js";
|
|
2
|
-
//#region \0@oxc-project+runtime@0.115.0/helpers/defineProperty.js
|
|
3
|
-
function _defineProperty(e, r, t) {
|
|
4
|
-
return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
|
|
5
|
-
value: t,
|
|
6
|
-
enumerable: !0,
|
|
7
|
-
configurable: !0,
|
|
8
|
-
writable: !0
|
|
9
|
-
}) : e[r] = t, e;
|
|
10
|
-
}
|
|
11
|
-
//#endregion
|
|
12
|
-
export { _defineProperty };
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { _typeof } from "./typeof.js";
|
|
2
|
-
//#region \0@oxc-project+runtime@0.115.0/helpers/toPrimitive.js
|
|
3
|
-
function toPrimitive(t, r) {
|
|
4
|
-
if ("object" != _typeof(t) || !t) return t;
|
|
5
|
-
var e = t[Symbol.toPrimitive];
|
|
6
|
-
if (void 0 !== e) {
|
|
7
|
-
var i = e.call(t, r || "default");
|
|
8
|
-
if ("object" != _typeof(i)) return i;
|
|
9
|
-
throw new TypeError("@@toPrimitive must return a primitive value.");
|
|
10
|
-
}
|
|
11
|
-
return ("string" === r ? String : Number)(t);
|
|
12
|
-
}
|
|
13
|
-
//#endregion
|
|
14
|
-
export { toPrimitive };
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { _typeof } from "./typeof.js";
|
|
2
|
-
import { toPrimitive } from "./toPrimitive.js";
|
|
3
|
-
//#region \0@oxc-project+runtime@0.115.0/helpers/toPropertyKey.js
|
|
4
|
-
function toPropertyKey(t) {
|
|
5
|
-
var i = toPrimitive(t, "string");
|
|
6
|
-
return "symbol" == _typeof(i) ? i : i + "";
|
|
7
|
-
}
|
|
8
|
-
//#endregion
|
|
9
|
-
export { toPropertyKey };
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
//#region \0@oxc-project+runtime@0.115.0/helpers/typeof.js
|
|
2
|
-
function _typeof(o) {
|
|
3
|
-
"@babel/helpers - typeof";
|
|
4
|
-
return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o) {
|
|
5
|
-
return typeof o;
|
|
6
|
-
} : function(o) {
|
|
7
|
-
return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;
|
|
8
|
-
}, _typeof(o);
|
|
9
|
-
}
|
|
10
|
-
//#endregion
|
|
11
|
-
export { _typeof };
|