@fastnear/api 0.3.0 → 0.5.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/cjs/index.cjs +40 -0
- package/dist/cjs/index.cjs.map +1 -0
- package/dist/cjs/index.d.cts +3339 -0
- package/dist/esm/index.d.ts +3339 -0
- package/dist/esm/index.js +9 -60
- package/dist/esm/index.js.map +1 -7
- package/dist/umd/{index.js → browser.global.js} +416 -219
- package/dist/umd/browser.global.js.map +1 -0
- package/package.json +13 -10
- package/dist/cjs/cryptoUtils.js +0 -89
- package/dist/cjs/cryptoUtils.js.map +0 -7
- package/dist/cjs/index.esm.js +0 -1191
- package/dist/cjs/index.esm.js.map +0 -7
- package/dist/cjs/index.js +0 -1246
- package/dist/cjs/index.js.map +0 -7
- package/dist/cjs/near.js +0 -1191
- package/dist/cjs/near.js.map +0 -7
- package/dist/cjs/transaction.js +0 -360
- package/dist/cjs/transaction.js.map +0 -7
- package/dist/cjs/utils.js +0 -105
- package/dist/cjs/utils.js.map +0 -7
- package/dist/esm/chunk-2SCAGR3F.js +0 -68
- package/dist/esm/chunk-2SCAGR3F.js.map +0 -7
- package/dist/esm/chunk-B2HMQPYI.js +0 -814
- package/dist/esm/chunk-B2HMQPYI.js.map +0 -7
- package/dist/esm/chunk-S5Q2EM2B.js +0 -48
- package/dist/esm/chunk-S5Q2EM2B.js.map +0 -7
- package/dist/esm/chunk-YKPILPMX.js +0 -301
- package/dist/esm/chunk-YKPILPMX.js.map +0 -7
- package/dist/esm/cryptoUtils.js +0 -21
- package/dist/esm/cryptoUtils.js.map +0 -7
- package/dist/esm/index.esm.js +0 -13
- package/dist/esm/index.esm.js.map +0 -7
- package/dist/esm/near.js +0 -15
- package/dist/esm/near.js.map +0 -7
- package/dist/esm/transaction.js +0 -16
- package/dist/esm/transaction.js.map +0 -7
- package/dist/esm/utils.js +0 -24
- package/dist/esm/utils.js.map +0 -7
- package/dist/umd/index.js.map +0 -7
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/near.ts", "../../../wallet-adapter/src/index.ts"],
|
|
4
|
-
"sourcesContent": ["import Big from \"big.js\";\nimport { WalletAdapter } from \"@fastnear/wallet-adapter\";\nimport * as cryptoUtils from \"./cryptoUtils.js\";\nimport {\n canSignWithLAK,\n fromBase58,\n fromBase64,\n lsGet,\n lsSet,\n toBase58,\n toBase64,\n tryParseJson,\n} from \"./utils\";\nimport {\n serializeSignedTransaction,\n serializeTransaction,\n} from \"./transaction\";\n\nBig.DP = 27;\n\n// Constants\nconst MaxBlockDelayMs = 1000 * 60 * 60 * 6; // 6 hours\n\n// const WIDGET_URL = \"https://wallet-adapter.fastnear.com\";\nconst WIDGET_URL = \"http://localhost:3000/\";\n\nconst DEFAULT_NETWORK_ID = \"mainnet\";\nconst NETWORKS = {\n testnet: {\n networkId: \"testnet\",\n nodeUrl: \"https://rpc.testnet.fastnear.com/\",\n },\n mainnet: {\n networkId: \"mainnet\",\n nodeUrl: \"https://rpc.mainnet.fastnear.com/\",\n },\n};\n\n// State\nlet _config = lsGet(\"config\") || { ...NETWORKS[DEFAULT_NETWORK_ID] };\n\nlet _state = lsGet(\"state\") || {};\ntry {\n _state.publicKey = _state.privateKey\n ? cryptoUtils.publicKeyFromPrivate(_state.privateKey)\n : null;\n} catch (e) {\n console.error(\"Error parsing private key:\", e);\n _state.privateKey = null;\n lsSet(\"nonce\", null);\n}\n\n// TODO: Store tx history in local storage more efficiently\nlet _txHistory = lsGet(\"txHistory\") || {};\nconst _eventListeners = {\n account: new Set(),\n tx: new Set(),\n};\nconst _unbroadcastedEvents = {\n account: [],\n tx: [],\n};\n\nfunction getWalletAdapterState() {\n return {\n publicKey: _state.publicKey,\n accountId: _state.accountId,\n lastWalletId: _state.lastWalletId,\n networkId: DEFAULT_NETWORK_ID,\n };\n}\nlet _adapter;\n\nfunction updateState(newState) {\n const oldState = _state;\n _state = { ..._state, ...newState };\n lsSet(\"state\", {\n accountId: _state.accountId,\n privateKey: _state.privateKey,\n lastWalletId: _state.lastWalletId,\n accessKeyContractId: _state.accessKeyContractId,\n });\n if (\n newState.hasOwnProperty(\"privateKey\") &&\n newState.privateKey !== oldState.privateKey\n ) {\n _state.publicKey = newState.privateKey\n ? cryptoUtils.publicKeyFromPrivate(newState.privateKey)\n : null;\n lsSet(\"nonce\", null);\n }\n if (newState.accountId !== oldState.accountId) {\n notifyAccountListeners(newState.accountId);\n }\n if (\n (newState.hasOwnProperty(\"lastWalletId\") &&\n newState.lastWalletId !== oldState.lastWalletId) ||\n (newState.hasOwnProperty(\"accountId\") &&\n newState.accountId !== oldState.accountId) ||\n (newState.hasOwnProperty(\"privateKey\") &&\n newState.privateKey !== oldState.privateKey)\n ) {\n _adapter.setState(getWalletAdapterState());\n }\n}\n\nfunction updateTxHistory(txStatus) {\n const txId = txStatus.txId;\n _txHistory[txId] = {\n ...(_txHistory[txId] ?? {}),\n ...txStatus,\n updateTimestamp: Date.now(),\n };\n lsSet(\"txHistory\", _txHistory);\n notifyTxListeners(_txHistory[txId]);\n}\n\nfunction onAdapterStateUpdate(state) {\n console.log(\"Adapter state update:\", state);\n const { accountId, lastWalletId, privateKey } = state;\n updateState({\n accountId,\n lastWalletId,\n ...(privateKey && { privateKey }),\n });\n}\n\n// Create adapter instance\n_adapter = new WalletAdapter({\n onStateUpdate: onAdapterStateUpdate,\n lastState: getWalletAdapterState(),\n widgetUrl: WIDGET_URL,\n});\n\n// Utils\nexport function parseJsonFromBytes(bytes: Uint8Array) {\n try {\n const decoder = new TextDecoder();\n return JSON.parse(decoder.decode(bytes instanceof Uint8Array ? bytes : new Uint8Array(bytes)));\n } catch (e) {\n try {\n return bytes instanceof Uint8Array ? bytes : new Uint8Array(bytes);\n } catch (e) {\n return bytes;\n }\n }\n}\n\nfunction withBlockId(params, blockId) {\n return blockId === \"final\" || blockId === \"optimistic\"\n ? { ...params, finality: blockId }\n : !!blockId\n ? { ...params, block_id: blockId }\n : { ...params, finality: \"optimistic\" };\n}\n\nasync function queryRpc(method, params) {\n const response = await fetch(_config.nodeUrl, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({\n jsonrpc: \"2.0\",\n id: `fastnear-${Date.now()}`,\n method,\n params,\n }),\n });\n\n const result = await response.json();\n if (result.error) {\n throw new Error(JSON.stringify(result.error));\n }\n return result.result;\n}\n\nfunction afterTxSent(txId) {\n queryRpc(\"tx\", {\n tx_hash: _txHistory[txId].txHash,\n sender_account_id: _txHistory[txId].tx.signerId,\n wait_until: \"EXECUTED_OPTIMISTIC\",\n })\n .then((result) => {\n const successValue = result?.status?.SuccessValue;\n updateTxHistory({\n txId,\n status: \"Executed\",\n result,\n successValue: successValue\n ? tryParseJson(fromBase64(successValue))\n : undefined,\n finalState: true,\n });\n })\n .catch((error) => {\n updateTxHistory({\n txId,\n status: \"ErrorAfterIncluded\",\n error: tryParseJson(error.message),\n finalState: true,\n });\n });\n}\n\nfunction sendTxToRpc(signedTxBase64, waitUntil, txId) {\n queryRpc(\"send_tx\", {\n signed_tx_base64: signedTxBase64,\n wait_until: waitUntil ?? \"INCLUDED\",\n })\n .then((result) => {\n console.log(\"Transaction included:\", result);\n updateTxHistory({\n txId,\n status: \"Included\",\n finalState: false,\n });\n afterTxSent(txId);\n })\n .catch((error) => {\n // TODO: Catch nonce errors and update nonce\n // TODO: Handle timeouts (non-final status)\n // TODO: Handle shard congestions\n updateTxHistory({\n txId,\n status: \"Error\",\n error: tryParseJson(error.message),\n finalState: false,\n });\n });\n}\n\n// Event Notifiers\nfunction notifyAccountListeners(accountId) {\n if (_eventListeners.account.size === 0) {\n _unbroadcastedEvents.account.push(accountId);\n return;\n }\n _eventListeners.account.forEach((callback) => {\n try {\n callback(accountId);\n } catch (e) {\n console.error(e);\n }\n });\n}\n\nfunction notifyTxListeners(tx) {\n if (_eventListeners.tx.size === 0) {\n _unbroadcastedEvents.tx.push(tx);\n return;\n }\n _eventListeners.tx.forEach((callback) => {\n try {\n callback(tx);\n } catch (e) {\n console.error(e);\n }\n });\n}\n\nfunction convertUnit(s, ...args) {\n // Reconstruct raw string from template literal\n if (Array.isArray(s)) {\n s = s.reduce((acc, part, i) => {\n return acc + (args[i - 1] ?? \"\") + part;\n });\n }\n // Convert from `100 NEAR` into yoctoNear\n if (typeof s == \"string\") {\n let match = s.match(/([0-9.,_]+)\\s*([a-zA-Z]+)?/);\n if (match) {\n let amount = match[1].replace(/[_,]/g, \"\");\n let unitPart = match[2];\n if (unitPart) {\n switch (unitPart.toLowerCase()) {\n case \"near\":\n return Big(amount).mul(Big(10).pow(24)).toFixed(0);\n case \"tgas\":\n return Big(amount).mul(Big(10).pow(12)).toFixed(0);\n case \"ggas\":\n return Big(amount).mul(Big(10).pow(9)).toFixed(0);\n case \"gas\" || \"yoctonear\":\n return Big(amount).toFixed(0);\n default:\n throw new Error(`Unknown unit: ${unit}`);\n }\n } else {\n return Big(amount).toFixed(0);\n }\n }\n }\n return Big(s).toFixed(0);\n}\n\n// Core API Implementation\nconst api = {\n // Context\n get accountId() {\n return _state.accountId;\n },\n\n get publicKey() {\n return _state.publicKey;\n },\n\n config(newConfig) {\n if (newConfig) {\n if (newConfig.networkId && _config.networkId !== newConfig.networkId) {\n _config = { ...NETWORKS[newConfig.networkId] };\n updateState({\n accountId: null,\n privateKey: null,\n lastWalletId: null,\n });\n lsSet(\"block\", null);\n _txHistory = {};\n lsSet(\"txHistory\", _txHistory);\n }\n\n _config = { ..._config, ...newConfig };\n lsSet(\"config\", _config);\n }\n return _config;\n },\n\n get authStatus() {\n if (!_state.accountId) {\n return \"SignedOut\";\n }\n\n // Check for limited access key\n const accessKey = _state.publicKey;\n const contractId = _state.accessKeyContractId;\n if (accessKey && contractId && _state.privateKey) {\n return {\n type: \"SignedInWithLimitedAccessKey\",\n accessKey,\n contractId,\n };\n }\n return \"SignedIn\";\n },\n\n // Query Methods\n async view({ contractId, methodName, args, argsBase64, blockId }) {\n const encodedArgs =\n argsBase64 || (args ? toBase64(JSON.stringify(args)) : \"\");\n\n const result = await queryRpc(\n \"query\",\n withBlockId(\n {\n request_type: \"call_function\",\n account_id: contractId,\n method_name: methodName,\n args_base64: encodedArgs,\n },\n blockId,\n ),\n );\n\n return parseJsonFromBytes(result.result);\n },\n\n async account({ accountId, blockId }) {\n return queryRpc(\n \"query\",\n withBlockId(\n {\n request_type: \"view_account\",\n account_id: accountId,\n },\n blockId,\n ),\n );\n },\n\n async block({ blockId }) {\n return queryRpc(\"block\", withBlockId({}, blockId));\n },\n\n async accessKey({ accountId, publicKey, blockId }) {\n return queryRpc(\n \"query\",\n withBlockId(\n {\n request_type: \"view_access_key\",\n account_id: accountId,\n public_key: publicKey,\n },\n blockId,\n ),\n );\n },\n\n async tx({ txHash, accountId }) {\n return queryRpc(\"tx\", [txHash, accountId]);\n },\n\n localTxHistory() {\n return [..._txHistory];\n },\n\n // Transaction Methods\n async sendTx({ receiverId, actions, waitUntil }) {\n const signerId = _state.accountId;\n if (!signerId) {\n throw new Error(\"Not signed in\");\n }\n\n const publicKey = _state.publicKey;\n const privateKey = _state.privateKey;\n const txId = `tx-${Date.now()}-${Math.random()}`;\n\n if (\n !privateKey ||\n receiverId !== _state.accessKeyContractId ||\n !canSignWithLAK(actions)\n ) {\n const jsonTransaction = {\n signerId,\n receiverId,\n actions,\n };\n\n updateTxHistory({\n status: \"Pending\",\n txId,\n tx: jsonTransaction,\n finalState: false,\n });\n\n const url = new URL(window.location.href);\n url.searchParams.set(\"txIds\", txId);\n\n _adapter\n .sendTransactions({\n transactions: [jsonTransaction],\n callbackUrl: url.toString(),\n })\n .then((result) => {\n console.log(\"Transaction result:\", result);\n if (result.url) {\n console.log(\"Redirecting to wallet:\", result.url);\n setTimeout(() => {\n window.location.href = result.url;\n }, 100);\n } else if (result.outcomes) {\n result.outcomes.forEach((result) => {\n updateTxHistory({\n txId,\n status: \"Executed\",\n result,\n txHash: result.transaction.hash,\n finalState: true,\n });\n });\n } else if (result.rejected) {\n updateTxHistory({\n txId,\n status: \"RejectedByUser\",\n finalState: true,\n });\n } else if (result.error) {\n updateTxHistory({\n txId,\n status: \"Error\",\n error: tryParseJson(result.error),\n finalState: true,\n });\n }\n })\n .catch((error) => {\n updateTxHistory({\n txId,\n status: \"Error\",\n error: tryParseJson(error.message),\n finalState: true,\n });\n });\n return txId;\n }\n\n const toDoPromises = {};\n let nonce = lsGet(\"nonce\");\n if (nonce === null || nonce === undefined) {\n toDoPromises.nonce = this.accessKey({\n accountId: signerId,\n publicKey,\n }).then((accessKey) => {\n if (accessKey.error) {\n throw new Error(`Access key error: ${accessKey.error}`);\n }\n lsSet(\"nonce\", accessKey.nonce);\n return accessKey.nonce;\n });\n }\n let block = lsGet(\"block\");\n if (\n !block ||\n parseFloat(block.header.timestamp_nanosec) / 1e6 + MaxBlockDelayMs <\n Date.now()\n ) {\n toDoPromises.block = this.block({ blockId: \"final\" }).then((block) => {\n block = {\n header: {\n prev_hash: block.header.prev_hash,\n timestamp_nanosec: block.header.timestamp_nanosec,\n },\n };\n lsSet(\"block\", block);\n return block;\n });\n }\n\n if (Object.keys(toDoPromises).length > 0) {\n let results = await Promise.all(Object.values(toDoPromises));\n for (let i = 0; i < results.length; i++) {\n if (Object.keys(toDoPromises)[i] === \"nonce\") {\n nonce = results[i];\n } else if (Object.keys(toDoPromises)[i] === \"block\") {\n block = results[i];\n }\n }\n }\n\n const newNonce = nonce + 1;\n lsSet(\"nonce\", newNonce);\n const blockHash = block.header.prev_hash;\n\n const jsonTransaction = {\n signerId,\n publicKey,\n nonce: newNonce,\n receiverId,\n blockHash,\n actions,\n };\n\n console.log(\"Transaction:\", jsonTransaction);\n const transaction = serializeTransaction(jsonTransaction);\n const txHash = toBase58(cryptoUtils.sha256(transaction));\n const signature = cryptoUtils.signHash(txHash, privateKey);\n const singedTransaction = serializeSignedTransaction(\n jsonTransaction,\n signature,\n );\n const signedTxBase64 = toBase64(singedTransaction);\n\n updateTxHistory({\n status: \"Pending\",\n txId,\n tx: jsonTransaction,\n signature,\n signedTxBase64,\n txHash,\n finalState: false,\n });\n\n sendTxToRpc(signedTxBase64, waitUntil, txId);\n\n return txId;\n },\n\n // Authentication Methods\n async requestSignIn({ contractId }) {\n const privateKey = cryptoUtils.privateKeyFromRandom();\n updateState({\n accessKeyContractId: contractId,\n accountId: null,\n privateKey,\n });\n const publicKey = cryptoUtils.publicKeyFromPrivate(privateKey);\n const result = await _adapter.signIn({\n networkId: _config.networkId,\n contractId,\n publicKey,\n });\n console.log(\"Sign in result:\", result);\n if (result.error) {\n throw new Error(`Wallet error: ${result.error}`);\n }\n if (result.url) {\n console.log(\"Redirecting to wallet:\", result.url);\n setTimeout(() => {\n window.location.href = result.url;\n }, 100);\n } else if (result.accountId) {\n updateState({\n accountId: result.accountId,\n });\n }\n },\n\n signOut() {\n updateState({\n accountId: null,\n privateKey: null,\n contractId: null,\n });\n\n // TODO: Implement actual wallet integration\n },\n\n // Event Handlers\n onAccount(callback) {\n _eventListeners.account.add(callback);\n if (_unbroadcastedEvents.account.length > 0) {\n const events = _unbroadcastedEvents.account;\n _unbroadcastedEvents.account = [];\n events.forEach(notifyAccountListeners);\n }\n },\n\n onTx(callback) {\n _eventListeners.tx.add(callback);\n if (_unbroadcastedEvents.tx.length > 0) {\n const events = _unbroadcastedEvents.tx;\n _unbroadcastedEvents.tx = [];\n events.forEach(notifyTxListeners);\n }\n },\n\n // Action Helpers\n actions: {\n functionCall: ({ methodName, gas, deposit, args, argsBase64 }) => ({\n type: \"FunctionCall\",\n methodName,\n args,\n argsBase64,\n gas,\n deposit,\n }),\n\n transfer: (yoctoAmount) => ({\n type: \"Transfer\",\n deposit: yoctoAmount,\n }),\n\n stakeNEAR: ({ amount, publicKey }) => ({\n type: \"Stake\",\n stake: amount,\n publicKey,\n }),\n\n addFullAccessKey: ({ publicKey }) => ({\n type: \"AddKey\",\n publicKey: publicKey,\n accessKey: { permission: \"FullAccess\" },\n }),\n\n addLimitedAccessKey: ({\n publicKey,\n allowance,\n accountId,\n methodNames,\n }) => ({\n type: \"AddKey\",\n publicKey: publicKey,\n accessKey: {\n permission: \"FunctionCall\",\n allowance,\n receiverId: accountId,\n methodNames,\n },\n }),\n\n deleteKey: ({ publicKey }) => ({\n type: \"DeleteKey\",\n publicKey,\n }),\n\n deleteAccount: ({ beneficiaryId }) => ({\n type: \"DeleteAccount\",\n beneficiaryId,\n }),\n\n createAccount: () => ({\n type: \"CreateAccount\",\n }),\n\n deployContract: ({ codeBase64 }) => ({\n type: \"DeployContract\",\n codeBase64,\n }),\n },\n\n utils: {\n toBase64,\n fromBase64,\n toBase58,\n fromBase58,\n },\n};\n\n// _adapter.handleWalletRedirect();\n\n// Handle wallet redirect if applicable\n// TODO: Implement actual wallet integration\ntry {\n const url = new URL(window.location.href);\n const accountId = url.searchParams.get(\"account_id\");\n const publicKey = url.searchParams.get(\"public_key\");\n const errorCode = url.searchParams.get(\"errorCode\");\n const errorMessage = url.searchParams.get(\"errorMessage\");\n const transactionHashes = url.searchParams.get(\"transactionHashes\");\n const txIds = url.searchParams.get(\"txIds\");\n\n if (errorCode || errorMessage) {\n console.warn(new Error(`Wallet error: ${errorCode} ${errorMessage}`));\n }\n\n if (accountId && publicKey) {\n if (publicKey === _state.publicKey) {\n updateState({\n accountId,\n });\n } else {\n console.error(\n new Error(\"Public key mismatch from wallet redirect\"),\n publicKey,\n _state.publicKey,\n );\n }\n }\n\n if (transactionHashes || txIds) {\n const txHashes = transactionHashes ? transactionHashes.split(\",\") : [];\n const txIdsArray = txIds ? txIds.split(\",\") : [];\n if (txIdsArray.length > txHashes.length) {\n txIdsArray.forEach((txId, i) => {\n updateTxHistory({\n txId,\n status: \"RejectedByUser\",\n finalState: true,\n });\n });\n } else if (txIdsArray.length === txHashes.length) {\n txIdsArray.forEach((txId, i) => {\n updateTxHistory({\n txId,\n status: \"PendingGotTxHash\",\n txHash: txHashes[i],\n finalState: false,\n });\n afterTxSent(txId);\n });\n } else {\n console.error(\n new Error(\"Transaction hash mismatch from wallet redirect\"),\n txIdsArray,\n txHashes,\n );\n }\n }\n\n // Remove wallet parameters from the URL\n url.searchParams.delete(\"account_id\");\n url.searchParams.delete(\"public_key\");\n url.searchParams.delete(\"errorCode\");\n url.searchParams.delete(\"errorMessage\");\n url.searchParams.delete(\"all_keys\");\n url.searchParams.delete(\"transactionHashes\");\n url.searchParams.delete(\"txIds\");\n window.history.replaceState({}, \"\", url.toString());\n} catch (e) {\n console.error(\"Error handling wallet redirect:\", e);\n}\n\nexport { api, convertUnit };\n", "/**\n * @typedef {Object} WalletState\n * @property {string} [accountId] - NEAR account ID if signed in\n * @property {string} [publicKey] - Public key if available\n * @property {string} [privateKey] - Private key if available\n * @property {string} [lastWalletId] - ID of last used wallet\n * @property {string} [networkId] - ID of last used network\n */\n\n/**\n * @typedef {Object} SignInConfig\n * @property {string} networkId - NEAR network ID ('mainnet' or 'testnet')\n * @property {string} contractId - Contract ID to request access for\n * @property {string} [walletId] - Preferred wallet to use. E.g. 'near', 'here', 'meteor'\n * @property {string} [callbackUrl] - URL to redirect back to after wallet interaction\n */\n\n/**\n * @typedef {Object} SignInResult\n * @property {string} [url] - URL to redirect to if needed\n * @property {string} [accountId] - Account ID if immediately available\n * @property {string} [error] - Error message if sign in failed\n */\n\n/**\n * @typedef {Object} Transaction\n * @property {string} [signerId] - Transaction signer account ID\n * @property {string} receiverId - Transaction receiver account ID\n * @property {Object[]} actions - Transaction actions to perform\n */\n\n/**\n * @typedef {Object} TransactionConfig\n * @property {Transaction} transactions - Transaction actions to perform\n * @property {string} [callbackUrl] - URL to redirect back to after wallet interaction\n */\n\n/**\n * @typedef {Object} TransactionResult\n * @property {string} [url] - URL to redirect to if needed\n * @property {string} [hash] - Transaction hash if immediately available\n * @property {string} [error] - Error message if transaction failed\n */\n\nexport interface WalletAdapterConstructor {\n widgetUrl?: string;\n targetOrigin?: string;\n onStateUpdate?: (state: any) => void;\n lastState?: any;\n callbackUrl?: string;\n}\n\n/**\n * @typedef {Object} WalletAdapterConfig\n * @property {string} [widgetUrl] - URL of the wallet widget (defaults to official hosted version)\n * @property {string} [targetOrigin] - Target origin for postMessage (defaults to '*')\n * @property {string} [lastState] - The last state that was given by WalletAdapter before the redirect or reload.\n * @property {(state: WalletState) => void} [onStateUpdate] - Called when wallet state changes\n * @property {string} [callbackUrl] - Default callback URL for wallet interactions (defaults to current page URL)\n */\n\n/**\n * Interface for interacting with NEAR wallets\n */\nexport class WalletAdapter {\n /** @type {HTMLIFrameElement} */\n #iframe = null;\n\n /** @type {string} */\n #targetOrigin;\n\n /** @type {string} */\n #widgetUrl;\n\n /** @type {Map<string, Function>} */\n #pending = new Map();\n\n /** @type {WalletState} */\n #state;\n\n /** @type {Function} */\n #onStateUpdate;\n\n /** @type {string} */\n #callbackUrl;\n\n /** @type {string} */\n static defaultWidgetUrl = \"https://wallet-adapter.fastnear.com\";\n\n\n\n/**\n * @param {WalletAdapterConfig} [config]\n */\n constructor({\n widgetUrl = WalletAdapter.defaultWidgetUrl,\n targetOrigin = \"*\",\n onStateUpdate,\n lastState,\n callbackUrl = window.location.href,\n }: WalletAdapterConstructor = {}) {\n this.#targetOrigin = targetOrigin;\n this.#widgetUrl = widgetUrl;\n this.#onStateUpdate = onStateUpdate;\n this.#callbackUrl = callbackUrl;\n this.#state = lastState || {};\n window.addEventListener(\"message\", this.#handleMessage.bind(this));\n }\n\n /**\n * Creates an iframe for wallet interaction\n * @param {string} path - Path to load in iframe\n * @returns {HTMLIFrameElement}\n */\n #createIframe(path) {\n // Remove existing iframe if any\n if (this.#iframe) {\n this.#iframe.remove();\n }\n\n // Create URL\n const url = new URL(path, this.#widgetUrl);\n\n // Create and configure iframe\n const iframe = document.createElement(\"iframe\");\n iframe.src = url.toString();\n iframe.allow = \"usb\";\n iframe.style.border = \"none\";\n iframe.style.zIndex = \"10000\";\n iframe.style.position = \"fixed\";\n iframe.style.display = \"block\";\n iframe.style.top = \"0\";\n iframe.style.left = \"0\";\n iframe.style.width = \"100%\";\n iframe.style.height = \"100%\";\n document.body.appendChild(iframe);\n\n this.#iframe = iframe;\n return iframe;\n }\n\n /**\n * Handles messages from the wallet widget\n * @param {MessageEvent} event\n */\n #handleMessage(event) {\n // Check origin if specified\n if (this.#targetOrigin !== \"*\" && event.origin !== this.#targetOrigin) {\n return;\n }\n\n const { id, type, action, payload } = event.data;\n if (type !== \"wallet-adapter\") return;\n\n // Handle close action\n if (action === \"close\") {\n this.#iframe?.remove();\n this.#iframe = null;\n return;\n }\n\n // Update state if provided\n if (payload?.state) {\n this.#state = { ...this.#state, ...payload.state };\n this.#onStateUpdate?.(this.#state);\n }\n\n // Resolve pending promise if any\n const resolve = this.#pending.get(id);\n if (resolve) {\n this.#pending.delete(id);\n this.#iframe?.remove();\n this.#iframe = null;\n resolve(payload);\n }\n }\n\n /**\n * Sends a message to the wallet widget\n * @param {string} path - Path to load in iframe\n * @param {string} method - Method to call\n * @param {Object} params - Parameters to pass\n * @returns {Promise<any>}\n */\n async #sendMessage(path, method, params) {\n return new Promise((resolve) => {\n const id = Math.random().toString(36).slice(2);\n this.#pending.set(id, resolve);\n\n const iframe = this.#createIframe(path);\n\n iframe.onload = () => {\n iframe.contentWindow?.postMessage(\n {\n type: \"wallet-adapter\",\n method,\n params: {\n id,\n ...params,\n state: this.#state,\n callbackUrl: params.callbackUrl || this.#callbackUrl,\n },\n },\n this.#targetOrigin\n );\n };\n });\n }\n\n /**\n * Get current wallet state\n * @returns {WalletState}\n */\n getState() {\n return { ...this.#state };\n }\n\n /**\n * Set current wallet state\n * @param state\n */\n setState(state) {\n this.#state = state;\n }\n\n /**\n * Sign in with a NEAR wallet\n * @param {SignInConfig} config\n * @returns {Promise<SignInResult>}\n */\n async signIn(config) {\n return this.#sendMessage(\"/login.html\", \"signIn\", config);\n }\n\n /**\n * Send a transaction using connected wallet\n * @param {TransactionConfig} config\n * @returns {Promise<TransactionResult>}\n */\n async sendTransactions(config) {\n return this.#sendMessage(\"/send.html\", \"sendTransactions\", config);\n }\n\n /**\n * Clean up adapter resources\n */\n destroy() {\n window.removeEventListener(\"message\", this.#handleMessage);\n this.#iframe?.remove();\n this.#iframe = null;\n }\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["e", "jsonTransaction", "result", "block"]
|
|
7
|
-
}
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
/* ⋈ 🏃🏻💨 FastNEAR API - https://github.com/fastnear */
|
|
2
|
-
import {
|
|
3
|
-
fromBase58,
|
|
4
|
-
toBase58
|
|
5
|
-
} from "./chunk-2SCAGR3F.js";
|
|
6
|
-
|
|
7
|
-
// src/cryptoUtils.ts
|
|
8
|
-
import { ed25519 } from "@noble/curves/ed25519";
|
|
9
|
-
import { sha256 } from "@noble/hashes/sha2";
|
|
10
|
-
var keyFromString = (key) => fromBase58(
|
|
11
|
-
key.includes(":") ? (() => {
|
|
12
|
-
const [curve, keyPart] = key.split(":");
|
|
13
|
-
if (curve !== "ed25519") {
|
|
14
|
-
throw new Error(`Unsupported curve: ${curve}`);
|
|
15
|
-
}
|
|
16
|
-
return keyPart;
|
|
17
|
-
})() : key
|
|
18
|
-
);
|
|
19
|
-
var keyToString = (key) => `ed25519:${toBase58(key)}`;
|
|
20
|
-
function publicKeyFromPrivate(privateKey) {
|
|
21
|
-
privateKey = keyFromString(privateKey).slice(0, 32);
|
|
22
|
-
const publicKey = ed25519.getPublicKey(privateKey);
|
|
23
|
-
return keyToString(publicKey);
|
|
24
|
-
}
|
|
25
|
-
function privateKeyFromRandom() {
|
|
26
|
-
const privateKey = crypto.getRandomValues(new Uint8Array(64));
|
|
27
|
-
return keyToString(privateKey);
|
|
28
|
-
}
|
|
29
|
-
function signHash(hash, privateKey) {
|
|
30
|
-
privateKey = keyFromString(privateKey).slice(0, 32);
|
|
31
|
-
const signature = ed25519.sign(fromBase58(hash), privateKey);
|
|
32
|
-
return toBase58(signature);
|
|
33
|
-
}
|
|
34
|
-
function signBytes(bytes, privateKey) {
|
|
35
|
-
const hash = sha256(bytes);
|
|
36
|
-
return signHash(toBase58(hash), privateKey);
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
export {
|
|
40
|
-
sha256,
|
|
41
|
-
keyFromString,
|
|
42
|
-
keyToString,
|
|
43
|
-
publicKeyFromPrivate,
|
|
44
|
-
privateKeyFromRandom,
|
|
45
|
-
signHash,
|
|
46
|
-
signBytes
|
|
47
|
-
};
|
|
48
|
-
//# sourceMappingURL=chunk-S5Q2EM2B.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/cryptoUtils.ts"],
|
|
4
|
-
"sourcesContent": ["import { ed25519 } from \"@noble/curves/ed25519\";\nimport { sha256 } from \"@noble/hashes/sha2\";\nimport { fromBase58, toBase58 } from \"./utils.js\";\n\nexport { sha256 };\n\nexport const keyFromString = (key) =>\n fromBase58(\n key.includes(\":\")\n ? (() => {\n const [curve, keyPart] = key.split(\":\");\n if (curve !== \"ed25519\") {\n throw new Error(`Unsupported curve: ${curve}`);\n }\n return keyPart;\n })()\n : key,\n );\n\nexport const keyToString = (key) => `ed25519:${toBase58(key)}`;\n\nexport function publicKeyFromPrivate(privateKey) {\n privateKey = keyFromString(privateKey).slice(0, 32);\n const publicKey = ed25519.getPublicKey(privateKey);\n return keyToString(publicKey);\n}\n\nexport function privateKeyFromRandom() {\n const privateKey = crypto.getRandomValues(new Uint8Array(64));\n return keyToString(privateKey);\n}\n\nexport function signHash(hash, privateKey) {\n privateKey = keyFromString(privateKey).slice(0, 32);\n const signature = ed25519.sign(fromBase58(hash), privateKey);\n return toBase58(signature);\n}\n\nexport function signBytes(bytes, privateKey) {\n const hash = sha256(bytes);\n return signHash(toBase58(hash), privateKey);\n}\n"],
|
|
5
|
-
"mappings": ";;;;;;;AAAA,SAAS,eAAe;AACxB,SAAS,cAAc;AAKhB,IAAM,gBAAgB,CAAC,QAC5B;AAAA,EACE,IAAI,SAAS,GAAG,KACX,MAAM;AACL,UAAM,CAAC,OAAO,OAAO,IAAI,IAAI,MAAM,GAAG;AACtC,QAAI,UAAU,WAAW;AACvB,YAAM,IAAI,MAAM,sBAAsB,KAAK,EAAE;AAAA,IAC/C;AACA,WAAO;AAAA,EACT,GAAG,IACH;AACN;AAEK,IAAM,cAAc,CAAC,QAAQ,WAAW,SAAS,GAAG,CAAC;AAErD,SAAS,qBAAqB,YAAY;AAC/C,eAAa,cAAc,UAAU,EAAE,MAAM,GAAG,EAAE;AAClD,QAAM,YAAY,QAAQ,aAAa,UAAU;AACjD,SAAO,YAAY,SAAS;AAC9B;AAEO,SAAS,uBAAuB;AACrC,QAAM,aAAa,OAAO,gBAAgB,IAAI,WAAW,EAAE,CAAC;AAC5D,SAAO,YAAY,UAAU;AAC/B;AAEO,SAAS,SAAS,MAAM,YAAY;AACzC,eAAa,cAAc,UAAU,EAAE,MAAM,GAAG,EAAE;AAClD,QAAM,YAAY,QAAQ,KAAK,WAAW,IAAI,GAAG,UAAU;AAC3D,SAAO,SAAS,SAAS;AAC3B;AAEO,SAAS,UAAU,OAAO,YAAY;AAC3C,QAAM,OAAO,OAAO,KAAK;AACzB,SAAO,SAAS,SAAS,IAAI,GAAG,UAAU;AAC5C;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1,301 +0,0 @@
|
|
|
1
|
-
/* ⋈ 🏃🏻💨 FastNEAR API - https://github.com/fastnear */
|
|
2
|
-
import {
|
|
3
|
-
keyFromString
|
|
4
|
-
} from "./chunk-S5Q2EM2B.js";
|
|
5
|
-
import {
|
|
6
|
-
fromBase58,
|
|
7
|
-
fromBase64
|
|
8
|
-
} from "./chunk-2SCAGR3F.js";
|
|
9
|
-
|
|
10
|
-
// src/transaction.ts
|
|
11
|
-
import { serialize as borshSerialize } from "borsh";
|
|
12
|
-
function mapTransaction(jsonTransaction) {
|
|
13
|
-
return {
|
|
14
|
-
signerId: jsonTransaction.signerId,
|
|
15
|
-
publicKey: {
|
|
16
|
-
ed25519Key: {
|
|
17
|
-
data: keyFromString(jsonTransaction.publicKey)
|
|
18
|
-
}
|
|
19
|
-
},
|
|
20
|
-
nonce: BigInt(jsonTransaction.nonce),
|
|
21
|
-
receiverId: jsonTransaction.receiverId,
|
|
22
|
-
blockHash: fromBase58(jsonTransaction.blockHash),
|
|
23
|
-
actions: jsonTransaction.actions.map(mapAction)
|
|
24
|
-
};
|
|
25
|
-
}
|
|
26
|
-
function serializeTransaction(jsonTransaction) {
|
|
27
|
-
const transaction = mapTransaction(jsonTransaction);
|
|
28
|
-
return borshSerialize(SCHEMA.Transaction, transaction);
|
|
29
|
-
}
|
|
30
|
-
function serializeSignedTransaction(jsonTransaction, signature) {
|
|
31
|
-
const signedTransaction = {
|
|
32
|
-
transaction: mapTransaction(jsonTransaction),
|
|
33
|
-
signature: {
|
|
34
|
-
ed25519Signature: {
|
|
35
|
-
data: fromBase58(signature)
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
};
|
|
39
|
-
return borshSerialize(SCHEMA.SignedTransaction, signedTransaction);
|
|
40
|
-
}
|
|
41
|
-
function mapAction(action) {
|
|
42
|
-
switch (action.type) {
|
|
43
|
-
case "CreateAccount": {
|
|
44
|
-
return {
|
|
45
|
-
createAccount: {}
|
|
46
|
-
};
|
|
47
|
-
}
|
|
48
|
-
case "DeployContract": {
|
|
49
|
-
return {
|
|
50
|
-
deployContract: {
|
|
51
|
-
code: fromBase64(action.codeBase64)
|
|
52
|
-
}
|
|
53
|
-
};
|
|
54
|
-
}
|
|
55
|
-
case "FunctionCall": {
|
|
56
|
-
return {
|
|
57
|
-
functionCall: {
|
|
58
|
-
methodName: action.methodName,
|
|
59
|
-
args: action.argsBase64 ? fromBase64(action.argsBase64) : new TextEncoder().encode(JSON.stringify(action.args)),
|
|
60
|
-
gas: BigInt(action.gas),
|
|
61
|
-
deposit: BigInt(action.deposit)
|
|
62
|
-
}
|
|
63
|
-
};
|
|
64
|
-
}
|
|
65
|
-
case "Transfer": {
|
|
66
|
-
return {
|
|
67
|
-
transfer: {
|
|
68
|
-
deposit: BigInt(action.deposit)
|
|
69
|
-
}
|
|
70
|
-
};
|
|
71
|
-
}
|
|
72
|
-
case "Stake": {
|
|
73
|
-
return {
|
|
74
|
-
stake: {
|
|
75
|
-
stake: BigInt(action.stake),
|
|
76
|
-
publicKey: {
|
|
77
|
-
ed25519Key: {
|
|
78
|
-
data: keyFromString(action.publicKey)
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
};
|
|
83
|
-
}
|
|
84
|
-
case "AddKey": {
|
|
85
|
-
return {
|
|
86
|
-
addKey: {
|
|
87
|
-
publicKey: {
|
|
88
|
-
ed25519Key: {
|
|
89
|
-
data: keyFromString(action.publicKey)
|
|
90
|
-
}
|
|
91
|
-
},
|
|
92
|
-
accessKey: {
|
|
93
|
-
nonce: BigInt(action.accessKey.nonce),
|
|
94
|
-
permission: action.accessKey.permission === "FullAccess" ? { fullAccess: {} } : {
|
|
95
|
-
functionCall: {
|
|
96
|
-
allowance: action.accessKey.allowance ? BigInt(action.accessKey.allowance) : null,
|
|
97
|
-
receiverId: action.accessKey.receiverId,
|
|
98
|
-
methodNames: action.accessKey.methodNames
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
};
|
|
104
|
-
}
|
|
105
|
-
case "DeleteKey": {
|
|
106
|
-
return {
|
|
107
|
-
deleteKey: {
|
|
108
|
-
publicKey: {
|
|
109
|
-
ed25519Key: {
|
|
110
|
-
data: keyFromString(action.publicKey)
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
};
|
|
115
|
-
}
|
|
116
|
-
case "DeleteAccount": {
|
|
117
|
-
return {
|
|
118
|
-
deleteAccount: {
|
|
119
|
-
beneficiaryId: action.beneficiaryId
|
|
120
|
-
}
|
|
121
|
-
};
|
|
122
|
-
}
|
|
123
|
-
case "SignedDelegate": {
|
|
124
|
-
return {
|
|
125
|
-
signedDelegate: {
|
|
126
|
-
delegateAction: mapAction(action.delegateAction),
|
|
127
|
-
signature: {
|
|
128
|
-
ed25519Signature: fromBase58(action.signature)
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
};
|
|
132
|
-
}
|
|
133
|
-
default: {
|
|
134
|
-
throw new Error("Not implemented action: " + action.type);
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
var SCHEMA = new class BorshSchema {
|
|
139
|
-
Ed25519Signature = {
|
|
140
|
-
struct: {
|
|
141
|
-
data: { array: { type: "u8", len: 64 } }
|
|
142
|
-
}
|
|
143
|
-
};
|
|
144
|
-
Secp256k1Signature = {
|
|
145
|
-
struct: {
|
|
146
|
-
data: { array: { type: "u8", len: 65 } }
|
|
147
|
-
}
|
|
148
|
-
};
|
|
149
|
-
Signature = {
|
|
150
|
-
enum: [
|
|
151
|
-
{ struct: { ed25519Signature: this.Ed25519Signature } },
|
|
152
|
-
{ struct: { secp256k1Signature: this.Secp256k1Signature } }
|
|
153
|
-
]
|
|
154
|
-
};
|
|
155
|
-
Ed25519Data = {
|
|
156
|
-
struct: {
|
|
157
|
-
data: { array: { type: "u8", len: 32 } }
|
|
158
|
-
}
|
|
159
|
-
};
|
|
160
|
-
Secp256k1Data = {
|
|
161
|
-
struct: {
|
|
162
|
-
data: { array: { type: "u8", len: 64 } }
|
|
163
|
-
}
|
|
164
|
-
};
|
|
165
|
-
PublicKey = {
|
|
166
|
-
enum: [
|
|
167
|
-
{ struct: { ed25519Key: this.Ed25519Data } },
|
|
168
|
-
{ struct: { secp256k1Key: this.Secp256k1Data } }
|
|
169
|
-
]
|
|
170
|
-
};
|
|
171
|
-
FunctionCallPermission = {
|
|
172
|
-
struct: {
|
|
173
|
-
allowance: { option: "u128" },
|
|
174
|
-
receiverId: "string",
|
|
175
|
-
methodNames: { array: { type: "string" } }
|
|
176
|
-
}
|
|
177
|
-
};
|
|
178
|
-
FullAccessPermission = {
|
|
179
|
-
struct: {}
|
|
180
|
-
};
|
|
181
|
-
AccessKeyPermission = {
|
|
182
|
-
enum: [
|
|
183
|
-
{ struct: { functionCall: this.FunctionCallPermission } },
|
|
184
|
-
{ struct: { fullAccess: this.FullAccessPermission } }
|
|
185
|
-
]
|
|
186
|
-
};
|
|
187
|
-
AccessKey = {
|
|
188
|
-
struct: {
|
|
189
|
-
nonce: "u64",
|
|
190
|
-
permission: this.AccessKeyPermission
|
|
191
|
-
}
|
|
192
|
-
};
|
|
193
|
-
CreateAccount = {
|
|
194
|
-
struct: {}
|
|
195
|
-
};
|
|
196
|
-
DeployContract = {
|
|
197
|
-
struct: {
|
|
198
|
-
code: { array: { type: "u8" } }
|
|
199
|
-
}
|
|
200
|
-
};
|
|
201
|
-
FunctionCall = {
|
|
202
|
-
struct: {
|
|
203
|
-
methodName: "string",
|
|
204
|
-
args: { array: { type: "u8" } },
|
|
205
|
-
gas: "u64",
|
|
206
|
-
deposit: "u128"
|
|
207
|
-
}
|
|
208
|
-
};
|
|
209
|
-
Transfer = {
|
|
210
|
-
struct: {
|
|
211
|
-
deposit: "u128"
|
|
212
|
-
}
|
|
213
|
-
};
|
|
214
|
-
Stake = {
|
|
215
|
-
struct: {
|
|
216
|
-
stake: "u128",
|
|
217
|
-
publicKey: this.PublicKey
|
|
218
|
-
}
|
|
219
|
-
};
|
|
220
|
-
AddKey = {
|
|
221
|
-
struct: {
|
|
222
|
-
publicKey: this.PublicKey,
|
|
223
|
-
accessKey: this.AccessKey
|
|
224
|
-
}
|
|
225
|
-
};
|
|
226
|
-
DeleteKey = {
|
|
227
|
-
struct: {
|
|
228
|
-
publicKey: this.PublicKey
|
|
229
|
-
}
|
|
230
|
-
};
|
|
231
|
-
DeleteAccount = {
|
|
232
|
-
struct: {
|
|
233
|
-
beneficiaryId: "string"
|
|
234
|
-
}
|
|
235
|
-
};
|
|
236
|
-
ClassicAction = {
|
|
237
|
-
enum: [
|
|
238
|
-
{ struct: { createAccount: this.CreateAccount } },
|
|
239
|
-
{ struct: { deployContract: this.DeployContract } },
|
|
240
|
-
{ struct: { functionCall: this.FunctionCall } },
|
|
241
|
-
{ struct: { transfer: this.Transfer } },
|
|
242
|
-
{ struct: { stake: this.Stake } },
|
|
243
|
-
{ struct: { addKey: this.AddKey } },
|
|
244
|
-
{ struct: { deleteKey: this.DeleteKey } },
|
|
245
|
-
{ struct: { deleteAccount: this.DeleteAccount } }
|
|
246
|
-
]
|
|
247
|
-
};
|
|
248
|
-
DelegateAction = {
|
|
249
|
-
struct: {
|
|
250
|
-
senderId: "string",
|
|
251
|
-
receiverId: "string",
|
|
252
|
-
actions: { array: { type: this.ClassicAction } },
|
|
253
|
-
nonce: "u64",
|
|
254
|
-
maxBlockHeight: "u64",
|
|
255
|
-
publicKey: this.PublicKey
|
|
256
|
-
}
|
|
257
|
-
};
|
|
258
|
-
SignedDelegate = {
|
|
259
|
-
struct: {
|
|
260
|
-
delegateAction: this.DelegateAction,
|
|
261
|
-
signature: this.Signature
|
|
262
|
-
}
|
|
263
|
-
};
|
|
264
|
-
Action = {
|
|
265
|
-
enum: [
|
|
266
|
-
{ struct: { createAccount: this.CreateAccount } },
|
|
267
|
-
{ struct: { deployContract: this.DeployContract } },
|
|
268
|
-
{ struct: { functionCall: this.FunctionCall } },
|
|
269
|
-
{ struct: { transfer: this.Transfer } },
|
|
270
|
-
{ struct: { stake: this.Stake } },
|
|
271
|
-
{ struct: { addKey: this.AddKey } },
|
|
272
|
-
{ struct: { deleteKey: this.DeleteKey } },
|
|
273
|
-
{ struct: { deleteAccount: this.DeleteAccount } },
|
|
274
|
-
{ struct: { signedDelegate: this.SignedDelegate } }
|
|
275
|
-
]
|
|
276
|
-
};
|
|
277
|
-
Transaction = {
|
|
278
|
-
struct: {
|
|
279
|
-
signerId: "string",
|
|
280
|
-
publicKey: this.PublicKey,
|
|
281
|
-
nonce: "u64",
|
|
282
|
-
receiverId: "string",
|
|
283
|
-
blockHash: { array: { type: "u8", len: 32 } },
|
|
284
|
-
actions: { array: { type: this.Action } }
|
|
285
|
-
}
|
|
286
|
-
};
|
|
287
|
-
SignedTransaction = {
|
|
288
|
-
struct: {
|
|
289
|
-
transaction: this.Transaction,
|
|
290
|
-
signature: this.Signature
|
|
291
|
-
}
|
|
292
|
-
};
|
|
293
|
-
}();
|
|
294
|
-
|
|
295
|
-
export {
|
|
296
|
-
serializeTransaction,
|
|
297
|
-
serializeSignedTransaction,
|
|
298
|
-
mapAction,
|
|
299
|
-
SCHEMA
|
|
300
|
-
};
|
|
301
|
-
//# sourceMappingURL=chunk-YKPILPMX.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/transaction.ts"],
|
|
4
|
-
"sourcesContent": ["import { serialize as borshSerialize } from \"borsh\";\nimport { keyFromString } from \"./cryptoUtils.js\";\nimport { fromBase58, fromBase64 } from \"./utils.js\";\n\nfunction mapTransaction(jsonTransaction) {\n return {\n signerId: jsonTransaction.signerId,\n publicKey: {\n ed25519Key: {\n data: keyFromString(jsonTransaction.publicKey),\n },\n },\n nonce: BigInt(jsonTransaction.nonce),\n receiverId: jsonTransaction.receiverId,\n blockHash: fromBase58(jsonTransaction.blockHash),\n actions: jsonTransaction.actions.map(mapAction),\n };\n}\n\nexport function serializeTransaction(jsonTransaction) {\n const transaction = mapTransaction(jsonTransaction);\n return borshSerialize(SCHEMA.Transaction, transaction);\n}\n\nexport function serializeSignedTransaction(jsonTransaction, signature) {\n const signedTransaction = {\n transaction: mapTransaction(jsonTransaction),\n signature: {\n ed25519Signature: {\n data: fromBase58(signature),\n },\n },\n };\n return borshSerialize(SCHEMA.SignedTransaction, signedTransaction);\n}\n\nexport function mapAction(action) {\n switch (action.type) {\n case \"CreateAccount\": {\n return {\n createAccount: {},\n };\n }\n case \"DeployContract\": {\n return {\n deployContract: {\n code: fromBase64(action.codeBase64),\n },\n };\n }\n case \"FunctionCall\": {\n return {\n functionCall: {\n methodName: action.methodName,\n args: action.argsBase64\n ? fromBase64(action.argsBase64)\n : new TextEncoder().encode(JSON.stringify(action.args)),\n gas: BigInt(action.gas),\n deposit: BigInt(action.deposit),\n },\n };\n }\n case \"Transfer\": {\n return {\n transfer: {\n deposit: BigInt(action.deposit),\n },\n };\n }\n case \"Stake\": {\n return {\n stake: {\n stake: BigInt(action.stake),\n publicKey: {\n ed25519Key: {\n data: keyFromString(action.publicKey),\n },\n },\n },\n };\n }\n case \"AddKey\": {\n return {\n addKey: {\n publicKey: {\n ed25519Key: {\n data: keyFromString(action.publicKey),\n },\n },\n accessKey: {\n nonce: BigInt(action.accessKey.nonce),\n permission:\n action.accessKey.permission === \"FullAccess\"\n ? { fullAccess: {} }\n : {\n functionCall: {\n allowance: action.accessKey.allowance\n ? BigInt(action.accessKey.allowance)\n : null,\n receiverId: action.accessKey.receiverId,\n methodNames: action.accessKey.methodNames,\n },\n },\n },\n },\n };\n }\n case \"DeleteKey\": {\n return {\n deleteKey: {\n publicKey: {\n ed25519Key: {\n data: keyFromString(action.publicKey),\n },\n },\n },\n };\n }\n case \"DeleteAccount\": {\n return {\n deleteAccount: {\n beneficiaryId: action.beneficiaryId,\n },\n };\n }\n case \"SignedDelegate\": {\n return {\n signedDelegate: {\n delegateAction: mapAction(action.delegateAction),\n signature: {\n ed25519Signature: fromBase58(action.signature),\n },\n },\n };\n }\n default: {\n throw new Error(\"Not implemented action: \" + action.type);\n }\n }\n}\n\n// LEFTOFF: use the borsh-schema package\nexport const SCHEMA = new (class BorshSchema {\n Ed25519Signature = {\n struct: {\n data: { array: { type: \"u8\", len: 64 } },\n },\n };\n Secp256k1Signature = {\n struct: {\n data: { array: { type: \"u8\", len: 65 } },\n },\n };\n Signature = {\n enum: [\n { struct: { ed25519Signature: this.Ed25519Signature } },\n { struct: { secp256k1Signature: this.Secp256k1Signature } },\n ],\n };\n Ed25519Data = {\n struct: {\n data: { array: { type: \"u8\", len: 32 } },\n },\n };\n Secp256k1Data = {\n struct: {\n data: { array: { type: \"u8\", len: 64 } },\n },\n };\n PublicKey = {\n enum: [\n { struct: { ed25519Key: this.Ed25519Data } },\n { struct: { secp256k1Key: this.Secp256k1Data } },\n ],\n };\n FunctionCallPermission = {\n struct: {\n allowance: { option: \"u128\" },\n receiverId: \"string\",\n methodNames: { array: { type: \"string\" } },\n },\n };\n FullAccessPermission = {\n struct: {},\n };\n AccessKeyPermission = {\n enum: [\n { struct: { functionCall: this.FunctionCallPermission } },\n { struct: { fullAccess: this.FullAccessPermission } },\n ],\n };\n AccessKey = {\n struct: {\n nonce: \"u64\",\n permission: this.AccessKeyPermission,\n },\n };\n CreateAccount = {\n struct: {},\n };\n DeployContract = {\n struct: {\n code: { array: { type: \"u8\" } },\n },\n };\n FunctionCall = {\n struct: {\n methodName: \"string\",\n args: { array: { type: \"u8\" } },\n gas: \"u64\",\n deposit: \"u128\",\n },\n };\n Transfer = {\n struct: {\n deposit: \"u128\",\n },\n };\n Stake = {\n struct: {\n stake: \"u128\",\n publicKey: this.PublicKey,\n },\n };\n AddKey = {\n struct: {\n publicKey: this.PublicKey,\n accessKey: this.AccessKey,\n },\n };\n DeleteKey = {\n struct: {\n publicKey: this.PublicKey,\n },\n };\n DeleteAccount = {\n struct: {\n beneficiaryId: \"string\",\n },\n };\n ClassicAction = {\n enum: [\n { struct: { createAccount: this.CreateAccount } },\n { struct: { deployContract: this.DeployContract } },\n { struct: { functionCall: this.FunctionCall } },\n { struct: { transfer: this.Transfer } },\n { struct: { stake: this.Stake } },\n { struct: { addKey: this.AddKey } },\n { struct: { deleteKey: this.DeleteKey } },\n { struct: { deleteAccount: this.DeleteAccount } },\n ],\n };\n DelegateAction = {\n struct: {\n senderId: \"string\",\n receiverId: \"string\",\n actions: { array: { type: this.ClassicAction } },\n nonce: \"u64\",\n maxBlockHeight: \"u64\",\n publicKey: this.PublicKey,\n },\n };\n SignedDelegate = {\n struct: {\n delegateAction: this.DelegateAction,\n signature: this.Signature,\n },\n };\n Action = {\n enum: [\n { struct: { createAccount: this.CreateAccount } },\n { struct: { deployContract: this.DeployContract } },\n { struct: { functionCall: this.FunctionCall } },\n { struct: { transfer: this.Transfer } },\n { struct: { stake: this.Stake } },\n { struct: { addKey: this.AddKey } },\n { struct: { deleteKey: this.DeleteKey } },\n { struct: { deleteAccount: this.DeleteAccount } },\n { struct: { signedDelegate: this.SignedDelegate } },\n ],\n };\n Transaction = {\n struct: {\n signerId: \"string\",\n publicKey: this.PublicKey,\n nonce: \"u64\",\n receiverId: \"string\",\n blockHash: { array: { type: \"u8\", len: 32 } },\n actions: { array: { type: this.Action } },\n },\n };\n SignedTransaction = {\n struct: {\n transaction: this.Transaction,\n signature: this.Signature,\n },\n };\n})();\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
package/dist/esm/cryptoUtils.js
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
/* ⋈ 🏃🏻💨 FastNEAR API - https://github.com/fastnear */
|
|
2
|
-
import {
|
|
3
|
-
keyFromString,
|
|
4
|
-
keyToString,
|
|
5
|
-
privateKeyFromRandom,
|
|
6
|
-
publicKeyFromPrivate,
|
|
7
|
-
sha256,
|
|
8
|
-
signBytes,
|
|
9
|
-
signHash
|
|
10
|
-
} from "./chunk-S5Q2EM2B.js";
|
|
11
|
-
import "./chunk-2SCAGR3F.js";
|
|
12
|
-
export {
|
|
13
|
-
keyFromString,
|
|
14
|
-
keyToString,
|
|
15
|
-
privateKeyFromRandom,
|
|
16
|
-
publicKeyFromPrivate,
|
|
17
|
-
sha256,
|
|
18
|
-
signBytes,
|
|
19
|
-
signHash
|
|
20
|
-
};
|
|
21
|
-
//# sourceMappingURL=cryptoUtils.js.map
|
package/dist/esm/index.esm.js
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
/* ⋈ 🏃🏻💨 FastNEAR API - https://github.com/fastnear */
|
|
2
|
-
import {
|
|
3
|
-
api,
|
|
4
|
-
convertUnit
|
|
5
|
-
} from "./chunk-B2HMQPYI.js";
|
|
6
|
-
import "./chunk-YKPILPMX.js";
|
|
7
|
-
import "./chunk-S5Q2EM2B.js";
|
|
8
|
-
import "./chunk-2SCAGR3F.js";
|
|
9
|
-
export {
|
|
10
|
-
convertUnit as $$,
|
|
11
|
-
api as near
|
|
12
|
-
};
|
|
13
|
-
//# sourceMappingURL=index.esm.js.map
|
package/dist/esm/near.js
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
/* ⋈ 🏃🏻💨 FastNEAR API - https://github.com/fastnear */
|
|
2
|
-
import {
|
|
3
|
-
api,
|
|
4
|
-
convertUnit,
|
|
5
|
-
parseJsonFromBytes
|
|
6
|
-
} from "./chunk-B2HMQPYI.js";
|
|
7
|
-
import "./chunk-YKPILPMX.js";
|
|
8
|
-
import "./chunk-S5Q2EM2B.js";
|
|
9
|
-
import "./chunk-2SCAGR3F.js";
|
|
10
|
-
export {
|
|
11
|
-
api,
|
|
12
|
-
convertUnit,
|
|
13
|
-
parseJsonFromBytes
|
|
14
|
-
};
|
|
15
|
-
//# sourceMappingURL=near.js.map
|
package/dist/esm/near.js.map
DELETED
package/dist/esm/transaction.js
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
/* ⋈ 🏃🏻💨 FastNEAR API - https://github.com/fastnear */
|
|
2
|
-
import {
|
|
3
|
-
SCHEMA,
|
|
4
|
-
mapAction,
|
|
5
|
-
serializeSignedTransaction,
|
|
6
|
-
serializeTransaction
|
|
7
|
-
} from "./chunk-YKPILPMX.js";
|
|
8
|
-
import "./chunk-S5Q2EM2B.js";
|
|
9
|
-
import "./chunk-2SCAGR3F.js";
|
|
10
|
-
export {
|
|
11
|
-
SCHEMA,
|
|
12
|
-
mapAction,
|
|
13
|
-
serializeSignedTransaction,
|
|
14
|
-
serializeTransaction
|
|
15
|
-
};
|
|
16
|
-
//# sourceMappingURL=transaction.js.map
|
package/dist/esm/utils.js
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
/* ⋈ 🏃🏻💨 FastNEAR API - https://github.com/fastnear */
|
|
2
|
-
import {
|
|
3
|
-
canSignWithLAK,
|
|
4
|
-
deepCopy,
|
|
5
|
-
fromBase58,
|
|
6
|
-
fromBase64,
|
|
7
|
-
lsGet,
|
|
8
|
-
lsSet,
|
|
9
|
-
toBase58,
|
|
10
|
-
toBase64,
|
|
11
|
-
tryParseJson
|
|
12
|
-
} from "./chunk-2SCAGR3F.js";
|
|
13
|
-
export {
|
|
14
|
-
canSignWithLAK,
|
|
15
|
-
deepCopy,
|
|
16
|
-
fromBase58,
|
|
17
|
-
fromBase64,
|
|
18
|
-
lsGet,
|
|
19
|
-
lsSet,
|
|
20
|
-
toBase58,
|
|
21
|
-
toBase64,
|
|
22
|
-
tryParseJson
|
|
23
|
-
};
|
|
24
|
-
//# sourceMappingURL=utils.js.map
|