@aeternity/aepp-sdk 14.0.0 → 14.1.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/LICENSE +1 -1
- package/README.md +11 -19
- package/dist/aepp-sdk.browser-script.cjs +1 -1
- package/dist/aepp-sdk.browser-script.cjs.LICENSE.txt +2 -0
- package/dist/aepp-sdk.browser-script.cjs.map +1 -1
- package/dist/aepp-sdk.browser.cjs +1 -1
- package/dist/aepp-sdk.browser.cjs.map +1 -1
- package/dist/aepp-sdk.cjs +11678 -6969
- package/dist/aepp-sdk.cjs.map +1 -1
- package/es/AeSdkBase.d.ts +10 -1
- package/es/AeSdkBase.js +12 -2
- package/es/AeSdkBase.js.map +1 -1
- package/es/AeSdkMethods.d.ts +1 -1
- package/es/AeSdkMethods.js.map +1 -1
- package/es/AeSdkWallet.js +1 -1
- package/es/AeSdkWallet.js.map +1 -1
- package/es/Middleware.d.ts +5 -1
- package/es/Middleware.js +7 -2
- package/es/Middleware.js.map +1 -1
- package/es/MiddlewareSubscriber.d.ts +3 -0
- package/es/MiddlewareSubscriber.js +4 -0
- package/es/MiddlewareSubscriber.js.map +1 -1
- package/es/Node.d.ts +6 -1
- package/es/Node.js +28 -4
- package/es/Node.js.map +1 -1
- package/es/account/Base.d.ts +12 -0
- package/es/account/Base.js +1 -0
- package/es/account/Base.js.map +1 -1
- package/es/account/BaseFactory.d.ts +1 -0
- package/es/account/BaseFactory.js +1 -0
- package/es/account/BaseFactory.js.map +1 -1
- package/es/account/Generalized.d.ts +5 -0
- package/es/account/Generalized.js +9 -0
- package/es/account/Generalized.js.map +1 -1
- package/es/account/Ledger.d.ts +5 -0
- package/es/account/Ledger.js +9 -0
- package/es/account/Ledger.js.map +1 -1
- package/es/account/LedgerFactory.d.ts +2 -0
- package/es/account/LedgerFactory.js +10 -4
- package/es/account/LedgerFactory.js.map +1 -1
- package/es/account/Memory.d.ts +5 -0
- package/es/account/Memory.js +14 -5
- package/es/account/Memory.js.map +1 -1
- package/es/account/Metamask.d.ts +8 -0
- package/es/account/Metamask.js +13 -0
- package/es/account/Metamask.js.map +1 -1
- package/es/account/MetamaskFactory.d.ts +20 -2
- package/es/account/MetamaskFactory.js +93 -39
- package/es/account/MetamaskFactory.js.map +1 -1
- package/es/account/MnemonicFactory.d.ts +12 -2
- package/es/account/MnemonicFactory.js +48 -24
- package/es/account/MnemonicFactory.js.map +1 -1
- package/es/account/Rpc.d.ts +5 -0
- package/es/account/Rpc.js +8 -0
- package/es/account/Rpc.js.map +1 -1
- package/es/aens.d.ts +25 -5
- package/es/aens.js +52 -18
- package/es/aens.js.map +1 -1
- package/es/aepp-wallet-communication/connection/BrowserRuntime.d.ts +1 -1
- package/es/aepp-wallet-communication/connection/BrowserRuntime.js.map +1 -1
- package/es/apis/middleware/middleware.d.ts +99 -9
- package/es/apis/middleware/middleware.js +560 -91
- package/es/apis/middleware/middleware.js.map +1 -1
- package/es/apis/middleware/models/index.d.ts +1267 -1582
- package/es/apis/middleware/models/index.js +1 -1363
- package/es/apis/middleware/models/index.js.map +1 -1
- package/es/apis/middleware/models/mappers.d.ts +126 -56
- package/es/apis/middleware/models/mappers.js +6250 -2989
- package/es/apis/middleware/models/mappers.js.map +1 -1
- package/es/apis/middleware/models/parameters.d.ts +54 -33
- package/es/apis/middleware/models/parameters.js +389 -134
- package/es/apis/middleware/models/parameters.js.map +1 -1
- package/es/apis/node/models/index.d.ts +60 -15
- package/es/apis/node/models/index.js.map +1 -1
- package/es/apis/node/models/mappers.d.ts +3 -0
- package/es/apis/node/models/mappers.js +130 -2
- package/es/apis/node/models/mappers.js.map +1 -1
- package/es/apis/node/node.d.ts +13 -1
- package/es/apis/node/node.js +54 -0
- package/es/apis/node/node.js.map +1 -1
- package/es/chain.d.ts +19 -6
- package/es/chain.js +30 -24
- package/es/chain.js.map +1 -1
- package/es/channel/Contract.d.ts +6 -3
- package/es/channel/Contract.js +5 -2
- package/es/channel/Contract.js.map +1 -1
- package/es/channel/Spend.d.ts +1 -1
- package/es/channel/Spend.js.map +1 -1
- package/es/channel/handlers.js +1 -2
- package/es/channel/handlers.js.map +1 -1
- package/es/channel/internal.d.ts +1 -1
- package/es/channel/internal.js +2 -2
- package/es/channel/internal.js.map +1 -1
- package/es/contract/Contract.d.ts +13 -2
- package/es/contract/Contract.js +22 -12
- package/es/contract/Contract.js.map +1 -1
- package/es/contract/compiler/Base.d.ts +1 -0
- package/es/contract/compiler/Base.js +1 -0
- package/es/contract/compiler/Base.js.map +1 -1
- package/es/contract/compiler/Cli.d.ts +2 -1
- package/es/contract/compiler/Cli.js +11 -9
- package/es/contract/compiler/Cli.js.map +1 -1
- package/es/contract/compiler/Http.d.ts +2 -1
- package/es/contract/compiler/Http.js +3 -2
- package/es/contract/compiler/Http.js.map +1 -1
- package/es/contract/compiler/getFileSystem.d.ts +1 -0
- package/es/contract/compiler/getFileSystem.js +1 -0
- package/es/contract/compiler/getFileSystem.js.map +1 -1
- package/es/contract/ga.d.ts +3 -3
- package/es/contract/ga.js +3 -3
- package/es/contract/ga.js.map +1 -1
- package/es/index-browser.d.ts +32 -2
- package/es/index-browser.js +32 -2
- package/es/index-browser.js.map +1 -1
- package/es/oracle/Oracle.d.ts +10 -1
- package/es/oracle/Oracle.js +16 -6
- package/es/oracle/Oracle.js.map +1 -1
- package/es/oracle/OracleBase.d.ts +15 -2
- package/es/oracle/OracleBase.js +23 -1
- package/es/oracle/OracleBase.js.map +1 -1
- package/es/oracle/OracleClient.d.ts +3 -0
- package/es/oracle/OracleClient.js +6 -1
- package/es/oracle/OracleClient.js.map +1 -1
- package/es/spend.js +1 -1
- package/es/spend.js.map +1 -1
- package/es/tx/builder/common.js +6 -3
- package/es/tx/builder/common.js.map +1 -1
- package/es/tx/builder/constants.d.ts +53 -3
- package/es/tx/builder/constants.js +62 -12
- package/es/tx/builder/constants.js.map +1 -1
- package/es/tx/builder/delegation/schema.js +15 -0
- package/es/tx/builder/delegation/schema.js.map +1 -1
- package/es/tx/builder/entry/constants.d.ts +4 -1
- package/es/tx/builder/entry/constants.js +10 -1
- package/es/tx/builder/entry/constants.js.map +1 -1
- package/es/tx/builder/entry/index.js +1 -2
- package/es/tx/builder/entry/index.js.map +1 -1
- package/es/tx/builder/field-types/ct-version.js +1 -2
- package/es/tx/builder/field-types/ct-version.js.map +1 -1
- package/es/tx/builder/field-types/fee.d.ts +1 -1
- package/es/tx/builder/field-types/fee.js +4 -4
- package/es/tx/builder/field-types/fee.js.map +1 -1
- package/es/tx/builder/field-types/gas-price.d.ts +3 -0
- package/es/tx/builder/field-types/gas-price.js +1 -1
- package/es/tx/builder/field-types/gas-price.js.map +1 -1
- package/es/tx/builder/field-types/name-fee.js +1 -1
- package/es/tx/builder/field-types/name-fee.js.map +1 -1
- package/es/tx/builder/field-types/name-id.js +2 -2
- package/es/tx/builder/field-types/name-id.js.map +1 -1
- package/es/tx/builder/field-types/nonce.d.ts +1 -1
- package/es/tx/builder/field-types/nonce.js.map +1 -1
- package/es/tx/builder/field-types/pointers.js +3 -3
- package/es/tx/builder/field-types/pointers.js.map +1 -1
- package/es/tx/builder/field-types/ttl.js +1 -2
- package/es/tx/builder/field-types/ttl.js.map +1 -1
- package/es/tx/builder/helpers.d.ts +18 -12
- package/es/tx/builder/helpers.js +25 -17
- package/es/tx/builder/helpers.js.map +1 -1
- package/es/tx/builder/schema.d.ts +27 -24
- package/es/tx/builder/schema.generated.d.ts +12 -12
- package/es/tx/builder/schema.generated.js.map +1 -1
- package/es/tx/builder/schema.js +5 -3
- package/es/tx/builder/schema.js.map +1 -1
- package/es/tx/execution-cost.d.ts +3 -0
- package/es/tx/execution-cost.js +7 -4
- package/es/tx/execution-cost.js.map +1 -1
- package/es/tx/transaction-signer.d.ts +1 -0
- package/es/tx/transaction-signer.js +1 -0
- package/es/tx/transaction-signer.js.map +1 -1
- package/es/tx/validator.js +4 -3
- package/es/tx/validator.js.map +1 -1
- package/es/utils/MiddlewarePage.d.ts +4 -3
- package/es/utils/MiddlewarePage.js.map +1 -1
- package/es/utils/amount-formatter.d.ts +15 -1
- package/es/utils/amount-formatter.js +17 -1
- package/es/utils/amount-formatter.js.map +1 -1
- package/es/utils/autorest.d.ts +1 -1
- package/es/utils/autorest.js +10 -4
- package/es/utils/autorest.js.map +1 -1
- package/es/utils/bignumber.d.ts +1 -1
- package/es/utils/bignumber.js +1 -1
- package/es/utils/bignumber.js.map +1 -1
- package/es/utils/bytes.d.ts +3 -1
- package/es/utils/bytes.js +3 -1
- package/es/utils/bytes.js.map +1 -1
- package/es/utils/crypto.d.ts +48 -15
- package/es/utils/crypto.js +80 -29
- package/es/utils/crypto.js.map +1 -1
- package/es/utils/encoder-types.d.ts +1 -1
- package/es/utils/encoder-types.js +1 -1
- package/es/utils/encoder-types.js.map +1 -1
- package/es/utils/encoder.d.ts +2 -0
- package/es/utils/encoder.js +2 -0
- package/es/utils/encoder.js.map +1 -1
- package/es/utils/errors.d.ts +2 -2
- package/es/utils/errors.js +2 -2
- package/es/utils/errors.js.map +1 -1
- package/es/utils/json-big.js +1 -1
- package/es/utils/json-big.js.map +1 -1
- package/es/utils/jwt.js +3 -3
- package/es/utils/jwt.js.map +1 -1
- package/es/utils/typed-data.d.ts +5 -0
- package/es/utils/typed-data.js +6 -0
- package/es/utils/typed-data.js.map +1 -1
- package/package.json +50 -51
package/es/contract/ga.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ga.js","names":["ConsensusProtocolVersion","Tag","buildContractIdByContractTx","buildTx","buildTxAsync","unpackTx","hash","decode","encode","Encoding","ArgumentError","IllegalArgumentError","concatBuffers","Contract","getAccount","sendTransaction","packEntry","EntryTag","createGeneralizedAccount","authFnName","args","onAccount","onCompiler","onNode","bytecode","aci","sourceCodePath","sourceCode","fileSystem","options","_options$gasLimit","ownerId","address","kind","contract","initialize","tx","_isInternalBuild","tag","GaAttachTx","code","$compile","gasLimit","_estimateGas","callData","_calldata","_name","authFun","transaction","rawTx","contractId","Object","freeze","owner","gaContractId","buildAuthTxHash","fee","gasPrice","nodeNetworkId","consensusProtocolVersion","getNodeInfo","payload","_Buffer","from","Ceres","GaMetaTxAuthData","txHash","TxHash","buildAuthTxHashByGaMetaTx","txParams","SignedTx","encodedTx","GaMetaTx"],"sources":["../../src/contract/ga.ts"],"sourcesContent":["/**\n * Generalized Account module - routines to use generalized account\n */\n\nimport { ConsensusProtocolVersion, Int, Tag } from '../tx/builder/constants.js';\nimport {\n buildContractIdByContractTx,\n buildTx,\n buildTxAsync,\n BuildTxOptions,\n unpackTx,\n} from '../tx/builder/index.js';\nimport { hash } from '../utils/crypto.js';\nimport { decode, encode, Encoded, Encoding } from '../utils/encoder.js';\nimport { ArgumentError, IllegalArgumentError } from '../utils/errors.js';\nimport { concatBuffers } from '../utils/other.js';\nimport Contract from './Contract.js';\nimport Node from '../Node.js';\nimport { getAccount } from '../chain.js';\nimport { sendTransaction, SendTransactionOptions } from '../send-transaction.js';\nimport CompilerBase from './compiler/Base.js';\nimport { packEntry } from '../tx/builder/entry/index.js';\nimport { EntryTag } from '../tx/builder/entry/constants.js';\n\n/**\n * Convert current account to GA\n * @category
|
|
1
|
+
{"version":3,"file":"ga.js","names":["ConsensusProtocolVersion","Tag","buildContractIdByContractTx","buildTx","buildTxAsync","unpackTx","hash","decode","encode","Encoding","ArgumentError","IllegalArgumentError","concatBuffers","Contract","getAccount","sendTransaction","packEntry","EntryTag","createGeneralizedAccount","authFnName","args","onAccount","onCompiler","onNode","bytecode","aci","sourceCodePath","sourceCode","fileSystem","options","_options$gasLimit","ownerId","address","kind","contract","initialize","tx","_isInternalBuild","tag","GaAttachTx","code","$compile","gasLimit","_estimateGas","callData","_calldata","_name","authFun","transaction","rawTx","contractId","Object","freeze","owner","gaContractId","buildAuthTxHash","fee","gasPrice","nodeNetworkId","consensusProtocolVersion","getNodeInfo","payload","_Buffer","from","Ceres","GaMetaTxAuthData","txHash","TxHash","buildAuthTxHashByGaMetaTx","txParams","SignedTx","encodedTx","GaMetaTx"],"sources":["../../src/contract/ga.ts"],"sourcesContent":["/**\n * Generalized Account module - routines to use generalized account\n */\n\nimport { ConsensusProtocolVersion, Int, Tag } from '../tx/builder/constants.js';\nimport {\n buildContractIdByContractTx,\n buildTx,\n buildTxAsync,\n BuildTxOptions,\n unpackTx,\n} from '../tx/builder/index.js';\nimport { hash } from '../utils/crypto.js';\nimport { decode, encode, Encoded, Encoding } from '../utils/encoder.js';\nimport { ArgumentError, IllegalArgumentError } from '../utils/errors.js';\nimport { concatBuffers } from '../utils/other.js';\nimport Contract from './Contract.js';\nimport Node from '../Node.js';\nimport { getAccount } from '../chain.js';\nimport { sendTransaction, SendTransactionOptions } from '../send-transaction.js';\nimport CompilerBase from './compiler/Base.js';\nimport { packEntry } from '../tx/builder/entry/index.js';\nimport { EntryTag } from '../tx/builder/entry/constants.js';\n\n/**\n * Convert current account to GA\n * @category account generalized\n * @param authFnName - Authorization function name\n * @param args - init arguments\n * @param options - Options\n * @returns General Account Object\n */\nexport async function createGeneralizedAccount(\n authFnName: string,\n args: any[],\n {\n onAccount,\n onCompiler,\n onNode,\n bytecode,\n aci,\n sourceCodePath,\n sourceCode,\n fileSystem,\n ...options\n }: CreateGeneralizedAccountOptions,\n): Promise<\n Readonly<{\n owner: Encoded.AccountAddress;\n transaction: Encoded.TxHash;\n rawTx: Encoded.Transaction;\n gaContractId: Encoded.ContractAddress;\n }>\n> {\n const ownerId = onAccount.address;\n if ((await getAccount(ownerId, { onNode })).kind === 'generalized') {\n throw new IllegalArgumentError(`Account ${ownerId} is already GA`);\n }\n\n const contract = await Contract.initialize<{ init: (...a: any[]) => void }>({\n onAccount,\n onCompiler,\n onNode,\n bytecode,\n aci,\n sourceCodePath,\n sourceCode,\n fileSystem,\n });\n\n const tx = await buildTxAsync({\n _isInternalBuild: true,\n ...options,\n tag: Tag.GaAttachTx,\n onNode,\n code: await contract.$compile(),\n gasLimit: options.gasLimit ?? (await contract._estimateGas('init', args, options)),\n ownerId,\n callData: contract._calldata.encode(contract._name, 'init', args),\n authFun: hash(authFnName),\n });\n const { hash: transaction, rawTx } = await sendTransaction(tx, {\n onNode,\n onAccount,\n onCompiler,\n ...options,\n });\n const contractId = buildContractIdByContractTx(rawTx);\n\n return Object.freeze({\n owner: ownerId,\n transaction,\n rawTx,\n gaContractId: contractId,\n });\n}\n\ninterface CreateGeneralizedAccountOptions\n extends BuildTxOptions<\n Tag.GaAttachTx,\n 'authFun' | 'callData' | 'code' | 'ownerId' | 'gasLimit' | 'onNode'\n >,\n SendTransactionOptions,\n Pick<\n Parameters<typeof Contract.initialize>[0],\n 'bytecode' | 'aci' | 'sourceCodePath' | 'sourceCode' | 'fileSystem'\n > {\n onCompiler: CompilerBase;\n gasLimit?: number;\n}\n\n/**\n * Build a transaction hash the same as `Auth.tx_hash` by GaMetaTx payload\n * @category account generalized\n * @param transaction - tx-encoded transaction\n * @param options - Options\n * @param options.fee - GaMetaTx fee, required in Ceres\n * @param options.gasPrice - GaMetaTx gasPrice, required in Ceres\n * @param options.onNode - Node to use\n * @returns Transaction hash\n */\nexport async function buildAuthTxHash(\n transaction: Encoded.Transaction,\n { fee, gasPrice, onNode }: { fee?: Int; gasPrice?: Int; onNode: Node },\n): Promise<Buffer> {\n const { nodeNetworkId, consensusProtocolVersion } = await onNode.getNodeInfo();\n let payload = hash(concatBuffers([Buffer.from(nodeNetworkId), decode(transaction)]));\n if (consensusProtocolVersion === ConsensusProtocolVersion.Ceres) {\n if (fee == null) throw new ArgumentError('fee', 'provided (in Ceres)', fee);\n if (gasPrice == null) throw new ArgumentError('gasPrice', 'provided (in Ceres)', gasPrice);\n payload = hash(\n decode(\n packEntry({\n tag: EntryTag.GaMetaTxAuthData,\n fee,\n gasPrice,\n txHash: encode(payload, Encoding.TxHash),\n }),\n ),\n );\n }\n return payload;\n}\n\n/**\n * Build a transaction hash the same as `Auth.tx_hash` by GaMetaTx\n * @category account generalized\n * @param transaction - tx-encoded signed GaMeta transaction\n * @param options - Options\n * @param options.onNode - Node to use\n * @returns Transaction hash\n */\nexport async function buildAuthTxHashByGaMetaTx(\n transaction: Encoded.Transaction,\n { onNode }: { onNode: Node },\n): Promise<Buffer> {\n const txParams = unpackTx(transaction, Tag.SignedTx);\n if (txParams.encodedTx.tag !== Tag.GaMetaTx) {\n throw new ArgumentError('transaction', 'to include GaMetaTx', Tag[txParams.encodedTx.tag]);\n }\n return buildAuthTxHash(buildTx(txParams.encodedTx.tx.encodedTx), {\n fee: txParams.encodedTx.fee,\n gasPrice: txParams.encodedTx.gasPrice,\n onNode,\n });\n}\n"],"mappings":"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","ignoreList":[]}
|
package/es/index-browser.d.ts
CHANGED
|
@@ -1,11 +1,36 @@
|
|
|
1
1
|
export { _getPollInterval, getHeight, poll, awaitHeight, waitForTxConfirm, getAccount, getBalance, getCurrentGeneration, getGeneration, getMicroBlockTransactions, getKeyBlock, getMicroBlockHeader, txDryRun, getContractByteCode, getContract, getName, resolveName, } from './chain.js';
|
|
2
2
|
export { InvalidTxError, sendTransaction } from './send-transaction.js';
|
|
3
|
-
export { isAddressValid, genSalt, encodeUnsigned, hash,
|
|
3
|
+
export { isAddressValid, ensureEncoded, isEncoded, genSalt, encodeUnsigned, hash, verifySignature, hashMessage, verifyMessageSignature, } from './utils/crypto.js';
|
|
4
|
+
/**
|
|
5
|
+
* @category utils
|
|
6
|
+
* @deprecated use {@link verifySignature} instead
|
|
7
|
+
*/
|
|
8
|
+
export { verifySignature as verify } from './utils/crypto.js';
|
|
9
|
+
/**
|
|
10
|
+
* @deprecated use {@link hashMessage} instead
|
|
11
|
+
* @category utils
|
|
12
|
+
*/
|
|
13
|
+
export { hashMessage as messageToHash } from './utils/crypto.js';
|
|
14
|
+
/**
|
|
15
|
+
* @deprecated use {@link verifyMessageSignature} instead
|
|
16
|
+
* @category utils
|
|
17
|
+
*/
|
|
18
|
+
export { verifyMessageSignature as verifyMessage } from './utils/crypto.js';
|
|
4
19
|
export { signJwt, unpackJwt, verifyJwt, isJwt, ensureJwt } from './utils/jwt.js';
|
|
5
20
|
export type { Jwt } from './utils/jwt.js';
|
|
6
21
|
export { toBytes } from './utils/bytes.js';
|
|
7
22
|
export { buildTx, buildTxAsync, buildTxHash, unpackTx, buildContractIdByContractTx, } from './tx/builder/index.js';
|
|
8
|
-
export { buildContractId, oracleQueryId, produceNameId, commitmentHash, readInt,
|
|
23
|
+
export { buildContractId, oracleQueryId, produceNameId, commitmentHash, readInt, isName, ensureName, getDefaultPointerKey, getMinimumNameFee, computeBidFee, computeAuctionEndBlock, isAuctionName, } from './tx/builder/helpers.js';
|
|
24
|
+
/**
|
|
25
|
+
* @category contract
|
|
26
|
+
* @deprecated use {@link buildContractId} instead
|
|
27
|
+
*/
|
|
28
|
+
export { buildContractId as encodeContractAddress } from './tx/builder/helpers.js';
|
|
29
|
+
/**
|
|
30
|
+
* @category AENS
|
|
31
|
+
* @deprecated use {@link isName} instead
|
|
32
|
+
*/
|
|
33
|
+
export { isName as isNameValid } from './tx/builder/helpers.js';
|
|
9
34
|
export { MAX_AUTH_FUN_GAS, MIN_GAS_PRICE, NAME_FEE_MULTIPLIER, NAME_FEE_BID_INCREMENT, NAME_BID_TIMEOUT_BLOCKS, NAME_MAX_LENGTH_FEE, NAME_BID_RANGES, ConsensusProtocolVersion, VmVersion, AbiVersion, Tag, DRY_RUN_ACCOUNT, } from './tx/builder/constants.js';
|
|
10
35
|
export type { Int, AensName } from './tx/builder/constants.js';
|
|
11
36
|
export { ORACLE_TTL_TYPES } from './tx/builder/schema.js';
|
|
@@ -35,6 +60,11 @@ export { default as AeSdkWallet } from './AeSdkWallet.js';
|
|
|
35
60
|
export { default as Node } from './Node.js';
|
|
36
61
|
export { default as verifyTransaction } from './tx/validator.js';
|
|
37
62
|
export { default as AccountBase } from './account/Base.js';
|
|
63
|
+
export { default as AccountMemory } from './account/Memory.js';
|
|
64
|
+
/**
|
|
65
|
+
* @deprecated Use {@link AccountMemory} instead
|
|
66
|
+
* @category account
|
|
67
|
+
*/
|
|
38
68
|
export { default as MemoryAccount } from './account/Memory.js';
|
|
39
69
|
export { default as AccountMnemonicFactory } from './account/MnemonicFactory.js';
|
|
40
70
|
export { default as AccountGeneralized } from './account/Generalized.js';
|
package/es/index-browser.js
CHANGED
|
@@ -1,10 +1,35 @@
|
|
|
1
1
|
export { _getPollInterval, getHeight, poll, awaitHeight, waitForTxConfirm, getAccount, getBalance, getCurrentGeneration, getGeneration, getMicroBlockTransactions, getKeyBlock, getMicroBlockHeader, txDryRun, getContractByteCode, getContract, getName, resolveName } from './chain.js';
|
|
2
2
|
export { InvalidTxError, sendTransaction } from './send-transaction.js';
|
|
3
|
-
export { isAddressValid, genSalt, encodeUnsigned, hash,
|
|
3
|
+
export { isAddressValid, ensureEncoded, isEncoded, genSalt, encodeUnsigned, hash, verifySignature, hashMessage, verifyMessageSignature } from './utils/crypto.js';
|
|
4
|
+
/**
|
|
5
|
+
* @category utils
|
|
6
|
+
* @deprecated use {@link verifySignature} instead
|
|
7
|
+
*/
|
|
8
|
+
export { verifySignature as verify } from './utils/crypto.js';
|
|
9
|
+
/**
|
|
10
|
+
* @deprecated use {@link hashMessage} instead
|
|
11
|
+
* @category utils
|
|
12
|
+
*/
|
|
13
|
+
export { hashMessage as messageToHash } from './utils/crypto.js';
|
|
14
|
+
/**
|
|
15
|
+
* @deprecated use {@link verifyMessageSignature} instead
|
|
16
|
+
* @category utils
|
|
17
|
+
*/
|
|
18
|
+
export { verifyMessageSignature as verifyMessage } from './utils/crypto.js';
|
|
4
19
|
export { signJwt, unpackJwt, verifyJwt, isJwt, ensureJwt } from './utils/jwt.js';
|
|
5
20
|
export { toBytes } from './utils/bytes.js';
|
|
6
21
|
export { buildTx, buildTxAsync, buildTxHash, unpackTx, buildContractIdByContractTx } from './tx/builder/index.js';
|
|
7
|
-
export { buildContractId, oracleQueryId, produceNameId, commitmentHash, readInt,
|
|
22
|
+
export { buildContractId, oracleQueryId, produceNameId, commitmentHash, readInt, isName, ensureName, getDefaultPointerKey, getMinimumNameFee, computeBidFee, computeAuctionEndBlock, isAuctionName } from './tx/builder/helpers.js';
|
|
23
|
+
/**
|
|
24
|
+
* @category contract
|
|
25
|
+
* @deprecated use {@link buildContractId} instead
|
|
26
|
+
*/
|
|
27
|
+
export { buildContractId as encodeContractAddress } from './tx/builder/helpers.js';
|
|
28
|
+
/**
|
|
29
|
+
* @category AENS
|
|
30
|
+
* @deprecated use {@link isName} instead
|
|
31
|
+
*/
|
|
32
|
+
export { isName as isNameValid } from './tx/builder/helpers.js';
|
|
8
33
|
export { MAX_AUTH_FUN_GAS, MIN_GAS_PRICE, NAME_FEE_MULTIPLIER, NAME_FEE_BID_INCREMENT, NAME_BID_TIMEOUT_BLOCKS, NAME_MAX_LENGTH_FEE, NAME_BID_RANGES, ConsensusProtocolVersion, VmVersion, AbiVersion, Tag, DRY_RUN_ACCOUNT } from './tx/builder/constants.js';
|
|
9
34
|
// TODO: move to constants
|
|
10
35
|
export { ORACLE_TTL_TYPES } from './tx/builder/schema.js';
|
|
@@ -33,6 +58,11 @@ export { default as AeSdkWallet } from './AeSdkWallet.js';
|
|
|
33
58
|
export { default as Node } from './Node.js';
|
|
34
59
|
export { default as verifyTransaction } from './tx/validator.js';
|
|
35
60
|
export { default as AccountBase } from './account/Base.js';
|
|
61
|
+
export { default as AccountMemory } from './account/Memory.js';
|
|
62
|
+
/**
|
|
63
|
+
* @deprecated Use {@link AccountMemory} instead
|
|
64
|
+
* @category account
|
|
65
|
+
*/
|
|
36
66
|
export { default as MemoryAccount } from './account/Memory.js';
|
|
37
67
|
export { default as AccountMnemonicFactory } from './account/MnemonicFactory.js';
|
|
38
68
|
export { default as AccountGeneralized } from './account/Generalized.js';
|
package/es/index-browser.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-browser.js","names":["_getPollInterval","getHeight","poll","awaitHeight","waitForTxConfirm","getAccount","getBalance","getCurrentGeneration","getGeneration","getMicroBlockTransactions","getKeyBlock","getMicroBlockHeader","txDryRun","getContractByteCode","getContract","getName","resolveName","InvalidTxError","sendTransaction","isAddressValid","genSalt","encodeUnsigned","hash","encodeContractAddress","verify","messageToHash","verifyMessage","signJwt","unpackJwt","verifyJwt","isJwt","ensureJwt","toBytes","buildTx","buildTxAsync","buildTxHash","unpackTx","buildContractIdByContractTx","buildContractId","oracleQueryId","produceNameId","commitmentHash","readInt","isNameValid","ensureName","getDefaultPointerKey","getMinimumNameFee","computeBidFee","computeAuctionEndBlock","isAuctionName","MAX_AUTH_FUN_GAS","MIN_GAS_PRICE","NAME_FEE_MULTIPLIER","NAME_FEE_BID_INCREMENT","NAME_BID_TIMEOUT_BLOCKS","NAME_MAX_LENGTH_FEE","NAME_BID_RANGES","ConsensusProtocolVersion","VmVersion","AbiVersion","Tag","DRY_RUN_ACCOUNT","ORACLE_TTL_TYPES","DelegationTag","packDelegation","unpackDelegation","EntryTag","CallReturnType","packEntry","unpackEntry","getExecutionCost","getExecutionCostBySignedTx","getExecutionCostUsingNode","default","getTransactionSignerAddress","AE_AMOUNT_FORMATS","formatAmount","toAe","toAettos","prefixedAmount","encode","decode","Encoding","Encoded","hashTypedData","hashDomain","hashJson","Name","Contract","Oracle","OracleClient","spend","transferFunds","payForTransaction","createGeneralizedAccount","buildAuthTxHash","buildAuthTxHashByGaMetaTx","AeSdkMethods","AeSdkBase","AeSdk","AeSdkAepp","WalletConnectorFrame","WalletConnectorFrameWithNode","AeSdkWallet","Node","verifyTransaction","AccountBase","MemoryAccount","AccountMnemonicFactory","AccountGeneralized","AccountLedger","AccountLedgerFactory","AccountMetamask","AccountMetamaskFactory","CompilerBase","CompilerHttp","Channel","MiddlewareSubscriber","MiddlewareSubscriberError","MiddlewareSubscriberDisconnected","Middleware","MiddlewarePageMissed","connectionProxy","MESSAGE_DIRECTION","WALLET_TYPE","SUBSCRIPTION_TYPES","METHODS","RPC_STATUS","RpcError","RpcInvalidTransactionError","RpcRejectedByUserError","RpcUnsupportedProtocolError","RpcConnectionDenyError","RpcNotAuthorizeError","RpcPermissionDenyError","RpcInternalError","RpcMethodNotFoundError","RpcNoNetworkById","walletDetector","BrowserRuntimeConnection","BrowserWindowMessageConnection","BaseError","AccountError","AensError","AeppError","ChannelError","CompilerError","ContractError","CryptographyError","NodeError","TransactionError","WalletError","ArgumentError","IllegalArgumentError","ArgumentCountMismatchError","InsufficientBalanceError","MissingParamError","NoSerializerFoundError","RequestTimedOutError","TxTimedOutError","TypeError","UnsupportedPlatformError","UnsupportedProtocolError","NotImplementedError","UnsupportedVersionError","LogicError","InternalError","UnexpectedTsError","UnavailableAccountError","AensPointerContextError","InsufficientNameFeeError","InvalidAensNameError","InvalidRpcMessageError","MissingCallbackError","UnAuthorizedAccountError","UnknownRpcClientError","UnsubscribedAccountError","ChannelCallError","ChannelConnectionError","ChannelPingTimedOutError","UnexpectedChannelMessageError","ChannelIncomingMessageError","UnknownChannelStateError","InvalidAuthDataError","BytecodeMismatchError","DuplicateContractError","InactiveContractError","InvalidMethodInvocationError","MissingContractAddressError","MissingContractDefError","MissingFunctionNameError","NodeInvocationError","NoSuchContractFunctionError","NotPayableFunctionError","MissingEventDefinitionError","AmbiguousEventDefinitionError","InvalidChecksumError","MerkleTreeHashMismatchError","MissingNodeInTreeError","UnknownNodeLengthError","UnknownPathNibbleError","DuplicateNodeError","NodeNotFoundError","DecodeError","PayloadLengthError","DryRunError","IllegalBidFeeError","InvalidSignatureError","PrefixNotFoundError","SchemaNotFoundError","TagNotFoundError","TxNotInChainError","AlreadyConnectedError","NoWalletConnectedError","RpcConnectionError"],"sources":["../src/index-browser.ts"],"sourcesContent":["export {\n _getPollInterval,\n getHeight,\n poll,\n awaitHeight,\n waitForTxConfirm,\n getAccount,\n getBalance,\n getCurrentGeneration,\n getGeneration,\n getMicroBlockTransactions,\n getKeyBlock,\n getMicroBlockHeader,\n txDryRun,\n getContractByteCode,\n getContract,\n getName,\n resolveName,\n} from './chain.js';\nexport { InvalidTxError, sendTransaction } from './send-transaction.js';\nexport {\n isAddressValid,\n genSalt,\n encodeUnsigned,\n hash,\n encodeContractAddress,\n verify,\n messageToHash,\n verifyMessage,\n} from './utils/crypto.js';\nexport { signJwt, unpackJwt, verifyJwt, isJwt, ensureJwt } from './utils/jwt.js';\nexport type { Jwt } from './utils/jwt.js';\nexport { toBytes } from './utils/bytes.js';\nexport {\n buildTx,\n buildTxAsync,\n buildTxHash,\n unpackTx,\n buildContractIdByContractTx,\n} from './tx/builder/index.js';\nexport {\n buildContractId,\n oracleQueryId,\n produceNameId,\n commitmentHash,\n readInt,\n isNameValid,\n ensureName,\n getDefaultPointerKey,\n getMinimumNameFee,\n computeBidFee,\n computeAuctionEndBlock,\n isAuctionName,\n} from './tx/builder/helpers.js';\nexport {\n MAX_AUTH_FUN_GAS,\n MIN_GAS_PRICE,\n NAME_FEE_MULTIPLIER,\n NAME_FEE_BID_INCREMENT,\n NAME_BID_TIMEOUT_BLOCKS,\n NAME_MAX_LENGTH_FEE,\n NAME_BID_RANGES,\n ConsensusProtocolVersion,\n VmVersion,\n AbiVersion,\n Tag,\n DRY_RUN_ACCOUNT,\n} from './tx/builder/constants.js';\nexport type { Int, AensName } from './tx/builder/constants.js';\n// TODO: move to constants\nexport { ORACLE_TTL_TYPES } from './tx/builder/schema.js';\nexport { DelegationTag } from './tx/builder/delegation/schema.js';\nexport { packDelegation, unpackDelegation } from './tx/builder/delegation/index.js';\nexport { EntryTag, CallReturnType } from './tx/builder/entry/constants.js';\nexport { packEntry, unpackEntry } from './tx/builder/entry/index.js';\nexport {\n getExecutionCost,\n getExecutionCostBySignedTx,\n getExecutionCostUsingNode,\n} from './tx/execution-cost.js';\nexport { default as getTransactionSignerAddress } from './tx/transaction-signer.js';\nexport {\n AE_AMOUNT_FORMATS,\n formatAmount,\n toAe,\n toAettos,\n prefixedAmount,\n} from './utils/amount-formatter.js';\nexport { encode, decode, Encoding, Encoded } from './utils/encoder.js';\nexport { hashTypedData, hashDomain, hashJson } from './utils/typed-data.js';\nexport { default as Name } from './aens.js';\nexport { default as Contract } from './contract/Contract.js';\nexport type { ContractMethodsBase } from './contract/Contract.js';\nexport { default as Oracle } from './oracle/Oracle.js';\nexport { default as OracleClient } from './oracle/OracleClient.js';\nexport { spend, transferFunds, payForTransaction } from './spend.js';\nexport {\n createGeneralizedAccount,\n buildAuthTxHash,\n buildAuthTxHashByGaMetaTx,\n} from './contract/ga.js';\n\nexport { default as AeSdkMethods } from './AeSdkMethods.js';\nexport { default as AeSdkBase } from './AeSdkBase.js';\nexport { default as AeSdk } from './AeSdk.js';\nexport { default as AeSdkAepp } from './AeSdkAepp.js';\nexport { default as WalletConnectorFrame } from './aepp-wallet-communication/WalletConnectorFrame.js';\nexport { default as WalletConnectorFrameWithNode } from './aepp-wallet-communication/WalletConnectorFrameWithNode.js';\nexport { default as AeSdkWallet } from './AeSdkWallet.js';\nexport { default as Node } from './Node.js';\nexport { default as verifyTransaction } from './tx/validator.js';\nexport { default as AccountBase } from './account/Base.js';\nexport { default as MemoryAccount } from './account/Memory.js';\nexport { default as AccountMnemonicFactory } from './account/MnemonicFactory.js';\nexport { default as AccountGeneralized } from './account/Generalized.js';\nexport { default as AccountLedger } from './account/Ledger.js';\nexport { default as AccountLedgerFactory } from './account/LedgerFactory.js';\nexport { default as AccountMetamask } from './account/Metamask.js';\nexport { default as AccountMetamaskFactory } from './account/MetamaskFactory.js';\nexport { default as CompilerBase } from './contract/compiler/Base.js';\nexport { default as CompilerHttp } from './contract/compiler/Http.js';\nexport { default as Channel } from './channel/Contract.js';\nexport {\n default as MiddlewareSubscriber,\n MiddlewareSubscriberError,\n MiddlewareSubscriberDisconnected,\n} from './MiddlewareSubscriber.js';\nexport { default as Middleware } from './Middleware.js';\nexport { MiddlewarePageMissed } from './utils/MiddlewarePage.js';\n\nexport { default as connectionProxy } from './aepp-wallet-communication/connection-proxy.js';\nexport {\n MESSAGE_DIRECTION,\n WALLET_TYPE,\n SUBSCRIPTION_TYPES,\n METHODS,\n RPC_STATUS,\n RpcError,\n RpcInvalidTransactionError,\n RpcRejectedByUserError,\n RpcUnsupportedProtocolError,\n RpcConnectionDenyError,\n RpcNotAuthorizeError,\n RpcPermissionDenyError,\n RpcInternalError,\n RpcMethodNotFoundError,\n RpcNoNetworkById,\n} from './aepp-wallet-communication/schema.js';\nexport { default as walletDetector } from './aepp-wallet-communication/wallet-detector.js';\nexport { default as BrowserRuntimeConnection } from './aepp-wallet-communication/connection/BrowserRuntime.js';\nexport { default as BrowserWindowMessageConnection } from './aepp-wallet-communication/connection/BrowserWindowMessage.js';\nexport {\n BaseError,\n AccountError,\n AensError,\n AeppError,\n ChannelError,\n CompilerError,\n ContractError,\n CryptographyError,\n NodeError,\n TransactionError,\n WalletError,\n ArgumentError,\n IllegalArgumentError,\n ArgumentCountMismatchError,\n InsufficientBalanceError,\n MissingParamError,\n NoSerializerFoundError,\n RequestTimedOutError,\n TxTimedOutError,\n TypeError,\n UnsupportedPlatformError,\n UnsupportedProtocolError,\n NotImplementedError,\n UnsupportedVersionError,\n LogicError,\n InternalError,\n UnexpectedTsError,\n UnavailableAccountError,\n AensPointerContextError,\n InsufficientNameFeeError,\n InvalidAensNameError,\n InvalidRpcMessageError,\n MissingCallbackError,\n UnAuthorizedAccountError,\n UnknownRpcClientError,\n UnsubscribedAccountError,\n ChannelCallError,\n ChannelConnectionError,\n ChannelPingTimedOutError,\n UnexpectedChannelMessageError,\n ChannelIncomingMessageError,\n UnknownChannelStateError,\n InvalidAuthDataError,\n BytecodeMismatchError,\n DuplicateContractError,\n InactiveContractError,\n InvalidMethodInvocationError,\n MissingContractAddressError,\n MissingContractDefError,\n MissingFunctionNameError,\n NodeInvocationError,\n NoSuchContractFunctionError,\n NotPayableFunctionError,\n MissingEventDefinitionError,\n AmbiguousEventDefinitionError,\n InvalidChecksumError,\n MerkleTreeHashMismatchError,\n MissingNodeInTreeError,\n UnknownNodeLengthError,\n UnknownPathNibbleError,\n DuplicateNodeError,\n NodeNotFoundError,\n DecodeError,\n PayloadLengthError,\n DryRunError,\n IllegalBidFeeError,\n InvalidSignatureError,\n PrefixNotFoundError,\n SchemaNotFoundError,\n TagNotFoundError,\n TxNotInChainError,\n AlreadyConnectedError,\n NoWalletConnectedError,\n RpcConnectionError,\n} from './utils/errors.js';\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index-browser.js","names":["_getPollInterval","getHeight","poll","awaitHeight","waitForTxConfirm","getAccount","getBalance","getCurrentGeneration","getGeneration","getMicroBlockTransactions","getKeyBlock","getMicroBlockHeader","txDryRun","getContractByteCode","getContract","getName","resolveName","InvalidTxError","sendTransaction","isAddressValid","ensureEncoded","isEncoded","genSalt","encodeUnsigned","hash","verifySignature","hashMessage","verifyMessageSignature","verify","messageToHash","verifyMessage","signJwt","unpackJwt","verifyJwt","isJwt","ensureJwt","toBytes","buildTx","buildTxAsync","buildTxHash","unpackTx","buildContractIdByContractTx","buildContractId","oracleQueryId","produceNameId","commitmentHash","readInt","isName","ensureName","getDefaultPointerKey","getMinimumNameFee","computeBidFee","computeAuctionEndBlock","isAuctionName","encodeContractAddress","isNameValid","MAX_AUTH_FUN_GAS","MIN_GAS_PRICE","NAME_FEE_MULTIPLIER","NAME_FEE_BID_INCREMENT","NAME_BID_TIMEOUT_BLOCKS","NAME_MAX_LENGTH_FEE","NAME_BID_RANGES","ConsensusProtocolVersion","VmVersion","AbiVersion","Tag","DRY_RUN_ACCOUNT","ORACLE_TTL_TYPES","DelegationTag","packDelegation","unpackDelegation","EntryTag","CallReturnType","packEntry","unpackEntry","getExecutionCost","getExecutionCostBySignedTx","getExecutionCostUsingNode","default","getTransactionSignerAddress","AE_AMOUNT_FORMATS","formatAmount","toAe","toAettos","prefixedAmount","encode","decode","Encoding","Encoded","hashTypedData","hashDomain","hashJson","Name","Contract","Oracle","OracleClient","spend","transferFunds","payForTransaction","createGeneralizedAccount","buildAuthTxHash","buildAuthTxHashByGaMetaTx","AeSdkMethods","AeSdkBase","AeSdk","AeSdkAepp","WalletConnectorFrame","WalletConnectorFrameWithNode","AeSdkWallet","Node","verifyTransaction","AccountBase","AccountMemory","MemoryAccount","AccountMnemonicFactory","AccountGeneralized","AccountLedger","AccountLedgerFactory","AccountMetamask","AccountMetamaskFactory","CompilerBase","CompilerHttp","Channel","MiddlewareSubscriber","MiddlewareSubscriberError","MiddlewareSubscriberDisconnected","Middleware","MiddlewarePageMissed","connectionProxy","MESSAGE_DIRECTION","WALLET_TYPE","SUBSCRIPTION_TYPES","METHODS","RPC_STATUS","RpcError","RpcInvalidTransactionError","RpcRejectedByUserError","RpcUnsupportedProtocolError","RpcConnectionDenyError","RpcNotAuthorizeError","RpcPermissionDenyError","RpcInternalError","RpcMethodNotFoundError","RpcNoNetworkById","walletDetector","BrowserRuntimeConnection","BrowserWindowMessageConnection","BaseError","AccountError","AensError","AeppError","ChannelError","CompilerError","ContractError","CryptographyError","NodeError","TransactionError","WalletError","ArgumentError","IllegalArgumentError","ArgumentCountMismatchError","InsufficientBalanceError","MissingParamError","NoSerializerFoundError","RequestTimedOutError","TxTimedOutError","TypeError","UnsupportedPlatformError","UnsupportedProtocolError","NotImplementedError","UnsupportedVersionError","LogicError","InternalError","UnexpectedTsError","UnavailableAccountError","AensPointerContextError","InsufficientNameFeeError","InvalidAensNameError","InvalidRpcMessageError","MissingCallbackError","UnAuthorizedAccountError","UnknownRpcClientError","UnsubscribedAccountError","ChannelCallError","ChannelConnectionError","ChannelPingTimedOutError","UnexpectedChannelMessageError","ChannelIncomingMessageError","UnknownChannelStateError","InvalidAuthDataError","BytecodeMismatchError","DuplicateContractError","InactiveContractError","InvalidMethodInvocationError","MissingContractAddressError","MissingContractDefError","MissingFunctionNameError","NodeInvocationError","NoSuchContractFunctionError","NotPayableFunctionError","MissingEventDefinitionError","AmbiguousEventDefinitionError","InvalidChecksumError","MerkleTreeHashMismatchError","MissingNodeInTreeError","UnknownNodeLengthError","UnknownPathNibbleError","DuplicateNodeError","NodeNotFoundError","DecodeError","PayloadLengthError","DryRunError","IllegalBidFeeError","InvalidSignatureError","PrefixNotFoundError","SchemaNotFoundError","TagNotFoundError","TxNotInChainError","AlreadyConnectedError","NoWalletConnectedError","RpcConnectionError"],"sources":["../src/index-browser.ts"],"sourcesContent":["export {\n _getPollInterval,\n getHeight,\n poll,\n awaitHeight,\n waitForTxConfirm,\n getAccount,\n getBalance,\n getCurrentGeneration,\n getGeneration,\n getMicroBlockTransactions,\n getKeyBlock,\n getMicroBlockHeader,\n txDryRun,\n getContractByteCode,\n getContract,\n getName,\n resolveName,\n} from './chain.js';\nexport { InvalidTxError, sendTransaction } from './send-transaction.js';\nexport {\n isAddressValid,\n ensureEncoded,\n isEncoded,\n genSalt,\n encodeUnsigned,\n hash,\n verifySignature,\n hashMessage,\n verifyMessageSignature,\n} from './utils/crypto.js';\n/**\n * @category utils\n * @deprecated use {@link verifySignature} instead\n */\nexport { verifySignature as verify } from './utils/crypto.js';\n/**\n * @deprecated use {@link hashMessage} instead\n * @category utils\n */\nexport { hashMessage as messageToHash } from './utils/crypto.js';\n/**\n * @deprecated use {@link verifyMessageSignature} instead\n * @category utils\n */\nexport { verifyMessageSignature as verifyMessage } from './utils/crypto.js';\nexport { signJwt, unpackJwt, verifyJwt, isJwt, ensureJwt } from './utils/jwt.js';\nexport type { Jwt } from './utils/jwt.js';\nexport { toBytes } from './utils/bytes.js';\nexport {\n buildTx,\n buildTxAsync,\n buildTxHash,\n unpackTx,\n buildContractIdByContractTx,\n} from './tx/builder/index.js';\nexport {\n buildContractId,\n oracleQueryId,\n produceNameId,\n commitmentHash,\n readInt,\n isName,\n ensureName,\n getDefaultPointerKey,\n getMinimumNameFee,\n computeBidFee,\n computeAuctionEndBlock,\n isAuctionName,\n} from './tx/builder/helpers.js';\n/**\n * @category contract\n * @deprecated use {@link buildContractId} instead\n */\nexport { buildContractId as encodeContractAddress } from './tx/builder/helpers.js';\n/**\n * @category AENS\n * @deprecated use {@link isName} instead\n */\nexport { isName as isNameValid } from './tx/builder/helpers.js';\nexport {\n MAX_AUTH_FUN_GAS,\n MIN_GAS_PRICE,\n NAME_FEE_MULTIPLIER,\n NAME_FEE_BID_INCREMENT,\n NAME_BID_TIMEOUT_BLOCKS,\n NAME_MAX_LENGTH_FEE,\n NAME_BID_RANGES,\n ConsensusProtocolVersion,\n VmVersion,\n AbiVersion,\n Tag,\n DRY_RUN_ACCOUNT,\n} from './tx/builder/constants.js';\nexport type { Int, AensName } from './tx/builder/constants.js';\n// TODO: move to constants\nexport { ORACLE_TTL_TYPES } from './tx/builder/schema.js';\nexport { DelegationTag } from './tx/builder/delegation/schema.js';\nexport { packDelegation, unpackDelegation } from './tx/builder/delegation/index.js';\nexport { EntryTag, CallReturnType } from './tx/builder/entry/constants.js';\nexport { packEntry, unpackEntry } from './tx/builder/entry/index.js';\nexport {\n getExecutionCost,\n getExecutionCostBySignedTx,\n getExecutionCostUsingNode,\n} from './tx/execution-cost.js';\nexport { default as getTransactionSignerAddress } from './tx/transaction-signer.js';\nexport {\n AE_AMOUNT_FORMATS,\n formatAmount,\n toAe,\n toAettos,\n prefixedAmount,\n} from './utils/amount-formatter.js';\nexport { encode, decode, Encoding, Encoded } from './utils/encoder.js';\nexport { hashTypedData, hashDomain, hashJson } from './utils/typed-data.js';\nexport { default as Name } from './aens.js';\nexport { default as Contract } from './contract/Contract.js';\nexport type { ContractMethodsBase } from './contract/Contract.js';\nexport { default as Oracle } from './oracle/Oracle.js';\nexport { default as OracleClient } from './oracle/OracleClient.js';\nexport { spend, transferFunds, payForTransaction } from './spend.js';\nexport {\n createGeneralizedAccount,\n buildAuthTxHash,\n buildAuthTxHashByGaMetaTx,\n} from './contract/ga.js';\n\nexport { default as AeSdkMethods } from './AeSdkMethods.js';\nexport { default as AeSdkBase } from './AeSdkBase.js';\nexport { default as AeSdk } from './AeSdk.js';\nexport { default as AeSdkAepp } from './AeSdkAepp.js';\nexport { default as WalletConnectorFrame } from './aepp-wallet-communication/WalletConnectorFrame.js';\nexport { default as WalletConnectorFrameWithNode } from './aepp-wallet-communication/WalletConnectorFrameWithNode.js';\nexport { default as AeSdkWallet } from './AeSdkWallet.js';\nexport { default as Node } from './Node.js';\nexport { default as verifyTransaction } from './tx/validator.js';\nexport { default as AccountBase } from './account/Base.js';\nexport { default as AccountMemory } from './account/Memory.js';\n/**\n * @deprecated Use {@link AccountMemory} instead\n * @category account\n */\nexport { default as MemoryAccount } from './account/Memory.js';\nexport { default as AccountMnemonicFactory } from './account/MnemonicFactory.js';\nexport { default as AccountGeneralized } from './account/Generalized.js';\nexport { default as AccountLedger } from './account/Ledger.js';\nexport { default as AccountLedgerFactory } from './account/LedgerFactory.js';\nexport { default as AccountMetamask } from './account/Metamask.js';\nexport { default as AccountMetamaskFactory } from './account/MetamaskFactory.js';\nexport { default as CompilerBase } from './contract/compiler/Base.js';\nexport { default as CompilerHttp } from './contract/compiler/Http.js';\nexport { default as Channel } from './channel/Contract.js';\nexport {\n default as MiddlewareSubscriber,\n MiddlewareSubscriberError,\n MiddlewareSubscriberDisconnected,\n} from './MiddlewareSubscriber.js';\nexport { default as Middleware } from './Middleware.js';\nexport { MiddlewarePageMissed } from './utils/MiddlewarePage.js';\n\nexport { default as connectionProxy } from './aepp-wallet-communication/connection-proxy.js';\nexport {\n MESSAGE_DIRECTION,\n WALLET_TYPE,\n SUBSCRIPTION_TYPES,\n METHODS,\n RPC_STATUS,\n RpcError,\n RpcInvalidTransactionError,\n RpcRejectedByUserError,\n RpcUnsupportedProtocolError,\n RpcConnectionDenyError,\n RpcNotAuthorizeError,\n RpcPermissionDenyError,\n RpcInternalError,\n RpcMethodNotFoundError,\n RpcNoNetworkById,\n} from './aepp-wallet-communication/schema.js';\nexport { default as walletDetector } from './aepp-wallet-communication/wallet-detector.js';\nexport { default as BrowserRuntimeConnection } from './aepp-wallet-communication/connection/BrowserRuntime.js';\nexport { default as BrowserWindowMessageConnection } from './aepp-wallet-communication/connection/BrowserWindowMessage.js';\nexport {\n BaseError,\n AccountError,\n AensError,\n AeppError,\n ChannelError,\n CompilerError,\n ContractError,\n CryptographyError,\n NodeError,\n TransactionError,\n WalletError,\n ArgumentError,\n IllegalArgumentError,\n ArgumentCountMismatchError,\n InsufficientBalanceError,\n MissingParamError,\n NoSerializerFoundError,\n RequestTimedOutError,\n TxTimedOutError,\n TypeError,\n UnsupportedPlatformError,\n UnsupportedProtocolError,\n NotImplementedError,\n UnsupportedVersionError,\n LogicError,\n InternalError,\n UnexpectedTsError,\n UnavailableAccountError,\n AensPointerContextError,\n InsufficientNameFeeError,\n InvalidAensNameError,\n InvalidRpcMessageError,\n MissingCallbackError,\n UnAuthorizedAccountError,\n UnknownRpcClientError,\n UnsubscribedAccountError,\n ChannelCallError,\n ChannelConnectionError,\n ChannelPingTimedOutError,\n UnexpectedChannelMessageError,\n ChannelIncomingMessageError,\n UnknownChannelStateError,\n InvalidAuthDataError,\n BytecodeMismatchError,\n DuplicateContractError,\n InactiveContractError,\n InvalidMethodInvocationError,\n MissingContractAddressError,\n MissingContractDefError,\n MissingFunctionNameError,\n NodeInvocationError,\n NoSuchContractFunctionError,\n NotPayableFunctionError,\n MissingEventDefinitionError,\n AmbiguousEventDefinitionError,\n InvalidChecksumError,\n MerkleTreeHashMismatchError,\n MissingNodeInTreeError,\n UnknownNodeLengthError,\n UnknownPathNibbleError,\n DuplicateNodeError,\n NodeNotFoundError,\n DecodeError,\n PayloadLengthError,\n DryRunError,\n IllegalBidFeeError,\n InvalidSignatureError,\n PrefixNotFoundError,\n SchemaNotFoundError,\n TagNotFoundError,\n TxNotInChainError,\n AlreadyConnectedError,\n NoWalletConnectedError,\n RpcConnectionError,\n} from './utils/errors.js';\n"],"mappings":"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","ignoreList":[]}
|
package/es/oracle/Oracle.d.ts
CHANGED
|
@@ -6,11 +6,20 @@ import { sendTransaction, SendTransactionOptions } from '../send-transaction.js'
|
|
|
6
6
|
import Node from '../Node.js';
|
|
7
7
|
import AccountBase from '../account/Base.js';
|
|
8
8
|
import OracleBase, { OracleQuery } from './OracleBase.js';
|
|
9
|
+
/**
|
|
10
|
+
* @category oracle
|
|
11
|
+
*/
|
|
9
12
|
interface OracleRegisterOptions extends BuildTxOptions<Tag.OracleRegisterTx, 'accountId' | 'queryFormat' | 'responseFormat'>, Omit<SendTransactionOptions, 'onNode' | 'onAccount'> {
|
|
10
13
|
}
|
|
14
|
+
/**
|
|
15
|
+
* @category oracle
|
|
16
|
+
*/
|
|
11
17
|
interface OracleExtendTtlOptions extends BuildTxOptions<Tag.OracleExtendTx, 'callerId' | 'oracleId'>, Omit<SendTransactionOptions, 'onNode' | 'onAccount'> {
|
|
12
18
|
}
|
|
13
|
-
|
|
19
|
+
/**
|
|
20
|
+
* @category oracle
|
|
21
|
+
*/
|
|
22
|
+
interface OracleRespondToQueryOptions extends BuildTxOptions<Tag.OracleRespondTx, 'callerId' | 'oracleId' | 'queryId' | 'response'>, Omit<SendTransactionOptions, 'onNode' | 'onAccount'> {
|
|
14
23
|
}
|
|
15
24
|
/**
|
|
16
25
|
* @category oracle
|
package/es/oracle/Oracle.js
CHANGED
|
@@ -9,7 +9,19 @@ import { LogicError, UnexpectedTsError } from '../utils/errors.js';
|
|
|
9
9
|
import { decode, encode, Encoding } from '../utils/encoder.js';
|
|
10
10
|
import { _getPollInterval } from '../chain.js';
|
|
11
11
|
import { sendTransaction } from '../send-transaction.js';
|
|
12
|
-
import OracleBase
|
|
12
|
+
import OracleBase from './OracleBase.js';
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* @category oracle
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* @category oracle
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* @category oracle
|
|
24
|
+
*/
|
|
13
25
|
var _handleQueriesPromise = /*#__PURE__*/new WeakMap();
|
|
14
26
|
/**
|
|
15
27
|
* @category oracle
|
|
@@ -88,13 +100,11 @@ export default class Oracle extends OracleBase {
|
|
|
88
100
|
const knownQueryIds = new Set();
|
|
89
101
|
let isChecking = false;
|
|
90
102
|
const checkNewQueries = async () => {
|
|
91
|
-
var _await$opt$onNode$get;
|
|
92
103
|
if (isChecking) return;
|
|
93
104
|
isChecking = true;
|
|
94
|
-
const
|
|
95
|
-
const filtered = queries.filter(({
|
|
105
|
+
const filtered = (await this.getQueries(opt)).filter(({
|
|
96
106
|
id
|
|
97
|
-
}) => !knownQueryIds.has(id)).
|
|
107
|
+
}) => !knownQueryIds.has(id)).filter(query => options.includeResponded === true || query.decodedResponse === '');
|
|
98
108
|
filtered.forEach(query => knownQueryIds.add(query.id));
|
|
99
109
|
isChecking = false;
|
|
100
110
|
await Promise.all(filtered.map(query => onQuery(query)));
|
|
@@ -124,7 +134,7 @@ export default class Oracle extends OracleBase {
|
|
|
124
134
|
const oracleRespondTx = await buildTxAsync({
|
|
125
135
|
_isInternalBuild: true,
|
|
126
136
|
...opt,
|
|
127
|
-
tag: Tag.
|
|
137
|
+
tag: Tag.OracleRespondTx,
|
|
128
138
|
oracleId: this.address,
|
|
129
139
|
queryId,
|
|
130
140
|
response
|
package/es/oracle/Oracle.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Oracle.js","names":["buildTxAsync","Tag","LogicError","UnexpectedTsError","decode","encode","Encoding","_getPollInterval","sendTransaction","OracleBase","decodeQuery","_handleQueriesPromise","WeakMap","Oracle","constructor","account","options","address","OracleAddress","_classPrivateFieldInitSpec","register","queryFormat","responseFormat","opt","oracleRegisterTx","_isInternalBuild","tag","OracleRegisterTx","accountId","onAccount","extendTtl","oracleExtendTx","OracleExtendTx","oracleId","pollQueries","onQuery","knownQueryIds","Set","isChecking","checkNewQueries","_await$opt$onNode$get","queries","onNode","getOracleQueriesByPubkey","oracleQueries","filtered","filter","id","has","map","query","includeResponded","decodedResponse","forEach","add","Promise","all","idPromise","_opt$interval","interval","setInterval","clearInterval","respondToQuery","queryId","response","oracleRespondTx","OracleResponseTx","handleQueries","getResponse","_classPrivateFieldGet","queuePromise","resolve","handler","q","respondPromise","then","_classPrivateFieldSet","stopPoll","promise","undefined"],"sources":["../../src/oracle/Oracle.ts"],"sourcesContent":["import { buildTxAsync, BuildTxOptions } from '../tx/builder/index.js';\nimport { Tag } from '../tx/builder/constants.js';\nimport { LogicError, UnexpectedTsError } from '../utils/errors.js';\nimport { decode, encode, Encoded, Encoding } from '../utils/encoder.js';\nimport { _getPollInterval } from '../chain.js';\nimport { sendTransaction, SendTransactionOptions } from '../send-transaction.js';\nimport Node from '../Node.js';\nimport AccountBase from '../account/Base.js';\nimport OracleBase, { OracleQuery, decodeQuery } from './OracleBase.js';\n\ninterface OracleRegisterOptions\n extends BuildTxOptions<Tag.OracleRegisterTx, 'accountId' | 'queryFormat' | 'responseFormat'>,\n Omit<SendTransactionOptions, 'onNode' | 'onAccount'> {}\n\ninterface OracleExtendTtlOptions\n extends BuildTxOptions<Tag.OracleExtendTx, 'callerId' | 'oracleId'>,\n Omit<SendTransactionOptions, 'onNode' | 'onAccount'> {}\n\ninterface OracleRespondToQueryOptions\n extends BuildTxOptions<Tag.OracleResponseTx, 'callerId' | 'oracleId' | 'queryId' | 'response'>,\n Omit<SendTransactionOptions, 'onNode' | 'onAccount'> {}\n\n/**\n * @category oracle\n */\nexport default class Oracle extends OracleBase {\n /**\n * @param account - Account to use as oracle\n * @param options - Options object\n */\n constructor(\n public readonly account: AccountBase,\n public override options: OracleRegisterOptions &\n OracleExtendTtlOptions &\n Parameters<Oracle['handleQueries']>[1] & { onNode: Node },\n ) {\n super(encode(decode(account.address), Encoding.OracleAddress), options);\n }\n\n // TODO: support abiVersion other than 0\n /**\n * Register oracle\n * @param queryFormat - Format of query\n * @param responseFormat - Format of query response\n * @param options - Options object\n */\n async register(\n queryFormat: string,\n responseFormat: string,\n options: OracleRegisterOptions = {},\n ): ReturnType<typeof sendTransaction> {\n const opt = { ...this.options, ...options };\n const oracleRegisterTx = await buildTxAsync({\n _isInternalBuild: true,\n ...opt,\n tag: Tag.OracleRegisterTx,\n accountId: this.account.address,\n queryFormat,\n responseFormat,\n });\n return sendTransaction(oracleRegisterTx, { ...opt, onAccount: this.account });\n }\n\n /**\n * Extend oracle ttl\n * @param options - Options object\n */\n async extendTtl(options: OracleExtendTtlOptions = {}): ReturnType<typeof sendTransaction> {\n const opt = { ...this.options, ...options };\n const oracleExtendTx = await buildTxAsync({\n _isInternalBuild: true,\n ...opt,\n tag: Tag.OracleExtendTx,\n oracleId: this.address,\n });\n return sendTransaction(oracleExtendTx, { ...opt, onAccount: this.account });\n }\n\n /**\n * Poll for oracle queries\n * @param onQuery - OnQuery callback\n * @param options - Options object\n * @param options.interval - Poll interval (default: 5000)\n * @returns Callback to stop polling function\n */\n pollQueries(\n onQuery: (query: OracleQuery) => void,\n options: { interval?: number; includeResponded?: boolean } & Partial<\n Parameters<typeof _getPollInterval>[1]\n > = {},\n ): () => void {\n const opt = { ...this.options, ...options };\n const knownQueryIds = new Set();\n\n let isChecking = false;\n const checkNewQueries = async (): Promise<void> => {\n if (isChecking) return;\n isChecking = true;\n const queries = (await opt.onNode.getOracleQueriesByPubkey(this.address)).oracleQueries ?? [];\n const filtered = queries\n .filter(({ id }) => !knownQueryIds.has(id))\n .map((query) => decodeQuery(query))\n .filter((query) => options.includeResponded === true || query.decodedResponse === '');\n filtered.forEach((query) => knownQueryIds.add(query.id));\n isChecking = false;\n await Promise.all(filtered.map((query) => onQuery(query)));\n };\n\n checkNewQueries();\n const idPromise = (async () => {\n const interval = opt.interval ?? (await _getPollInterval('micro-block', opt));\n return setInterval(async () => checkNewQueries(), interval);\n })();\n\n return async () => {\n const id = await idPromise;\n clearInterval(id);\n };\n }\n\n /**\n * Respond to a query\n * @param queryId - Oracle query id\n * @param response - The response to query\n * @param options - Options object\n */\n async respondToQuery(\n queryId: Encoded.OracleQueryId,\n response: string,\n options: OracleRespondToQueryOptions = {},\n ): ReturnType<typeof sendTransaction> {\n const opt = { ...this.options, ...options };\n const oracleRespondTx = await buildTxAsync({\n _isInternalBuild: true,\n ...opt,\n tag: Tag.OracleResponseTx,\n oracleId: this.address,\n queryId,\n response,\n });\n return sendTransaction(oracleRespondTx, { ...opt, onAccount: this.account });\n }\n\n #handleQueriesPromise?: Promise<void>;\n\n /**\n * Respond to queries to oracle based on callback value\n * @param getResponse - Callback to respond on query\n * @param options - Options object\n * @param options.interval - Poll interval (default: 5000)\n * @returns Callback to stop polling function\n */\n handleQueries(\n getResponse: (q: OracleQuery) => Promise<string> | string,\n options: Parameters<Oracle['pollQueries']>[1] & OracleRespondToQueryOptions = {},\n ): () => void {\n if (this.#handleQueriesPromise != null) {\n throw new LogicError(\n 'Another query handler already running, it needs to be stopped to run a new one',\n );\n }\n const opt = { ...this.options, ...options };\n\n let queuePromise = Promise.resolve();\n const handler = async (q: OracleQuery): Promise<void> => {\n const response = await getResponse(q);\n const respondPromise = queuePromise.then(async () =>\n this.respondToQuery(q.id, response, opt),\n );\n queuePromise = respondPromise.then(\n () => {},\n () => {},\n );\n await respondPromise;\n };\n\n this.#handleQueriesPromise = Promise.resolve();\n const stopPoll = this.pollQueries(async (query: OracleQuery) => {\n const promise = handler(query);\n if (this.#handleQueriesPromise == null) throw new UnexpectedTsError();\n this.#handleQueriesPromise = this.#handleQueriesPromise\n .then(async () => promise)\n .then(\n () => {},\n () => {},\n );\n return promise;\n }, opt);\n\n return async () => {\n stopPoll();\n await this.#handleQueriesPromise;\n this.#handleQueriesPromise = undefined;\n };\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"Oracle.js","names":["buildTxAsync","Tag","LogicError","UnexpectedTsError","decode","encode","Encoding","_getPollInterval","sendTransaction","OracleBase","_handleQueriesPromise","WeakMap","Oracle","constructor","account","options","address","OracleAddress","_classPrivateFieldInitSpec","register","queryFormat","responseFormat","opt","oracleRegisterTx","_isInternalBuild","tag","OracleRegisterTx","accountId","onAccount","extendTtl","oracleExtendTx","OracleExtendTx","oracleId","pollQueries","onQuery","knownQueryIds","Set","isChecking","checkNewQueries","filtered","getQueries","filter","id","has","query","includeResponded","decodedResponse","forEach","add","Promise","all","map","idPromise","_opt$interval","interval","setInterval","clearInterval","respondToQuery","queryId","response","oracleRespondTx","OracleRespondTx","handleQueries","getResponse","_classPrivateFieldGet","queuePromise","resolve","handler","q","respondPromise","then","_classPrivateFieldSet","stopPoll","promise","undefined"],"sources":["../../src/oracle/Oracle.ts"],"sourcesContent":["import { buildTxAsync, BuildTxOptions } from '../tx/builder/index.js';\nimport { Tag } from '../tx/builder/constants.js';\nimport { LogicError, UnexpectedTsError } from '../utils/errors.js';\nimport { decode, encode, Encoded, Encoding } from '../utils/encoder.js';\nimport { _getPollInterval } from '../chain.js';\nimport { sendTransaction, SendTransactionOptions } from '../send-transaction.js';\nimport Node from '../Node.js';\nimport AccountBase from '../account/Base.js';\nimport OracleBase, { OracleQuery } from './OracleBase.js';\n\n/**\n * @category oracle\n */\ninterface OracleRegisterOptions\n extends BuildTxOptions<Tag.OracleRegisterTx, 'accountId' | 'queryFormat' | 'responseFormat'>,\n Omit<SendTransactionOptions, 'onNode' | 'onAccount'> {}\n\n/**\n * @category oracle\n */\ninterface OracleExtendTtlOptions\n extends BuildTxOptions<Tag.OracleExtendTx, 'callerId' | 'oracleId'>,\n Omit<SendTransactionOptions, 'onNode' | 'onAccount'> {}\n\n/**\n * @category oracle\n */\ninterface OracleRespondToQueryOptions\n extends BuildTxOptions<Tag.OracleRespondTx, 'callerId' | 'oracleId' | 'queryId' | 'response'>,\n Omit<SendTransactionOptions, 'onNode' | 'onAccount'> {}\n\n/**\n * @category oracle\n */\nexport default class Oracle extends OracleBase {\n /**\n * @param account - Account to use as oracle\n * @param options - Options object\n */\n constructor(\n public readonly account: AccountBase,\n public override options: OracleRegisterOptions &\n OracleExtendTtlOptions &\n Parameters<Oracle['handleQueries']>[1] & { onNode: Node },\n ) {\n super(encode(decode(account.address), Encoding.OracleAddress), options);\n }\n\n // TODO: support abiVersion other than 0\n /**\n * Register oracle\n * @param queryFormat - Format of query\n * @param responseFormat - Format of query response\n * @param options - Options object\n */\n async register(\n queryFormat: string,\n responseFormat: string,\n options: OracleRegisterOptions = {},\n ): ReturnType<typeof sendTransaction> {\n const opt = { ...this.options, ...options };\n const oracleRegisterTx = await buildTxAsync({\n _isInternalBuild: true,\n ...opt,\n tag: Tag.OracleRegisterTx,\n accountId: this.account.address,\n queryFormat,\n responseFormat,\n });\n return sendTransaction(oracleRegisterTx, { ...opt, onAccount: this.account });\n }\n\n /**\n * Extend oracle ttl\n * @param options - Options object\n */\n async extendTtl(options: OracleExtendTtlOptions = {}): ReturnType<typeof sendTransaction> {\n const opt = { ...this.options, ...options };\n const oracleExtendTx = await buildTxAsync({\n _isInternalBuild: true,\n ...opt,\n tag: Tag.OracleExtendTx,\n oracleId: this.address,\n });\n return sendTransaction(oracleExtendTx, { ...opt, onAccount: this.account });\n }\n\n /**\n * Poll for oracle queries\n * @param onQuery - OnQuery callback\n * @param options - Options object\n * @param options.interval - Poll interval (default: 5000)\n * @returns Callback to stop polling function\n */\n pollQueries(\n onQuery: (query: OracleQuery) => void,\n options: { interval?: number; includeResponded?: boolean } & Partial<\n Parameters<typeof _getPollInterval>[1]\n > = {},\n ): () => void {\n const opt = { ...this.options, ...options };\n const knownQueryIds = new Set();\n\n let isChecking = false;\n const checkNewQueries = async (): Promise<void> => {\n if (isChecking) return;\n isChecking = true;\n const filtered = (await this.getQueries(opt))\n .filter(({ id }) => !knownQueryIds.has(id))\n .filter((query) => options.includeResponded === true || query.decodedResponse === '');\n filtered.forEach((query) => knownQueryIds.add(query.id));\n isChecking = false;\n await Promise.all(filtered.map((query) => onQuery(query)));\n };\n\n checkNewQueries();\n const idPromise = (async () => {\n const interval = opt.interval ?? (await _getPollInterval('micro-block', opt));\n return setInterval(async () => checkNewQueries(), interval);\n })();\n\n return async () => {\n const id = await idPromise;\n clearInterval(id);\n };\n }\n\n /**\n * Respond to a query\n * @param queryId - Oracle query id\n * @param response - The response to query\n * @param options - Options object\n */\n async respondToQuery(\n queryId: Encoded.OracleQueryId,\n response: string,\n options: OracleRespondToQueryOptions = {},\n ): ReturnType<typeof sendTransaction> {\n const opt = { ...this.options, ...options };\n const oracleRespondTx = await buildTxAsync({\n _isInternalBuild: true,\n ...opt,\n tag: Tag.OracleRespondTx,\n oracleId: this.address,\n queryId,\n response,\n });\n return sendTransaction(oracleRespondTx, { ...opt, onAccount: this.account });\n }\n\n #handleQueriesPromise?: Promise<void>;\n\n /**\n * Respond to queries to oracle based on callback value\n * @param getResponse - Callback to respond on query\n * @param options - Options object\n * @param options.interval - Poll interval (default: 5000)\n * @returns Callback to stop polling function\n */\n handleQueries(\n getResponse: (q: OracleQuery) => Promise<string> | string,\n options: Parameters<Oracle['pollQueries']>[1] & OracleRespondToQueryOptions = {},\n ): () => void {\n if (this.#handleQueriesPromise != null) {\n throw new LogicError(\n 'Another query handler already running, it needs to be stopped to run a new one',\n );\n }\n const opt = { ...this.options, ...options };\n\n let queuePromise = Promise.resolve();\n const handler = async (q: OracleQuery): Promise<void> => {\n const response = await getResponse(q);\n const respondPromise = queuePromise.then(async () =>\n this.respondToQuery(q.id, response, opt),\n );\n queuePromise = respondPromise.then(\n () => {},\n () => {},\n );\n await respondPromise;\n };\n\n this.#handleQueriesPromise = Promise.resolve();\n const stopPoll = this.pollQueries(async (query: OracleQuery) => {\n const promise = handler(query);\n if (this.#handleQueriesPromise == null) throw new UnexpectedTsError();\n this.#handleQueriesPromise = this.#handleQueriesPromise\n .then(async () => promise)\n .then(\n () => {},\n () => {},\n );\n return promise;\n }, opt);\n\n return async () => {\n stopPoll();\n await this.#handleQueriesPromise;\n this.#handleQueriesPromise = undefined;\n };\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,15 +1,21 @@
|
|
|
1
1
|
import { Encoded } from '../utils/encoder.js';
|
|
2
2
|
import Node from '../Node.js';
|
|
3
|
-
|
|
3
|
+
/**
|
|
4
|
+
* @category oracle
|
|
5
|
+
*/
|
|
6
|
+
type OracleQueryNode = Awaited<ReturnType<Node['getOracleQueryByPubkeyAndQueryId']>>;
|
|
7
|
+
/**
|
|
8
|
+
* @category oracle
|
|
9
|
+
*/
|
|
4
10
|
export interface OracleQuery extends OracleQueryNode {
|
|
5
11
|
id: Encoded.OracleQueryId;
|
|
6
12
|
decodedQuery: string;
|
|
7
13
|
decodedResponse: string;
|
|
8
14
|
}
|
|
9
|
-
export declare function decodeQuery(queryEntry: OracleQueryNode): OracleQuery;
|
|
10
15
|
/**
|
|
11
16
|
* This class is needed because `getOracleQuery` would return different values depending on the
|
|
12
17
|
* oracle type.
|
|
18
|
+
* @category oracle
|
|
13
19
|
*/
|
|
14
20
|
export default class OracleBase {
|
|
15
21
|
readonly address: Encoded.OracleAddress;
|
|
@@ -29,6 +35,13 @@ export default class OracleBase {
|
|
|
29
35
|
getState(options?: {
|
|
30
36
|
onNode?: Node;
|
|
31
37
|
}): ReturnType<Node['getOracleByPubkey']>;
|
|
38
|
+
/**
|
|
39
|
+
* Get oracle queries from the node
|
|
40
|
+
* @param options - Options object
|
|
41
|
+
*/
|
|
42
|
+
getQueries(options?: {
|
|
43
|
+
onNode?: Node;
|
|
44
|
+
}): Promise<OracleQuery[]>;
|
|
32
45
|
/**
|
|
33
46
|
* Get oracle query entry from the node
|
|
34
47
|
* @param queryId - Oracle query ID
|
package/es/oracle/OracleBase.js
CHANGED
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
import { decode } from '../utils/encoder.js';
|
|
2
|
-
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @category oracle
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* @category oracle
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
function decodeQuery(queryEntry) {
|
|
3
12
|
return {
|
|
4
13
|
...queryEntry,
|
|
5
14
|
id: queryEntry.id,
|
|
@@ -11,6 +20,7 @@ export function decodeQuery(queryEntry) {
|
|
|
11
20
|
/**
|
|
12
21
|
* This class is needed because `getOracleQuery` would return different values depending on the
|
|
13
22
|
* oracle type.
|
|
23
|
+
* @category oracle
|
|
14
24
|
*/
|
|
15
25
|
export default class OracleBase {
|
|
16
26
|
/**
|
|
@@ -33,6 +43,18 @@ export default class OracleBase {
|
|
|
33
43
|
return opt.onNode.getOracleByPubkey(this.address);
|
|
34
44
|
}
|
|
35
45
|
|
|
46
|
+
/**
|
|
47
|
+
* Get oracle queries from the node
|
|
48
|
+
* @param options - Options object
|
|
49
|
+
*/
|
|
50
|
+
async getQueries(options = {}) {
|
|
51
|
+
const opt = {
|
|
52
|
+
...this.options,
|
|
53
|
+
...options
|
|
54
|
+
};
|
|
55
|
+
return (await opt.onNode.getOracleQueriesByPubkey(this.address)).oracleQueries.map(decodeQuery);
|
|
56
|
+
}
|
|
57
|
+
|
|
36
58
|
/**
|
|
37
59
|
* Get oracle query entry from the node
|
|
38
60
|
* @param queryId - Oracle query ID
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OracleBase.js","names":["decode","decodeQuery","queryEntry","id","decodedQuery","query","toString","decodedResponse","response","OracleBase","constructor","address","options","getState","opt","onNode","getOracleByPubkey","getQuery","queryId","getOracleQueryByPubkeyAndQueryId"],"sources":["../../src/oracle/OracleBase.ts"],"sourcesContent":["import { decode, Encoded } from '../utils/encoder.js';\nimport Node from '../Node.js';\n\ntype OracleQueryNode = Awaited
|
|
1
|
+
{"version":3,"file":"OracleBase.js","names":["decode","decodeQuery","queryEntry","id","decodedQuery","query","toString","decodedResponse","response","OracleBase","constructor","address","options","getState","opt","onNode","getOracleByPubkey","getQueries","getOracleQueriesByPubkey","oracleQueries","map","getQuery","queryId","getOracleQueryByPubkeyAndQueryId"],"sources":["../../src/oracle/OracleBase.ts"],"sourcesContent":["import { decode, Encoded } from '../utils/encoder.js';\nimport Node from '../Node.js';\n\n/**\n * @category oracle\n */\ntype OracleQueryNode = Awaited<ReturnType<Node['getOracleQueryByPubkeyAndQueryId']>>;\n\n/**\n * @category oracle\n */\nexport interface OracleQuery extends OracleQueryNode {\n // TODO: type should be corrected in node api\n id: Encoded.OracleQueryId;\n decodedQuery: string;\n decodedResponse: string;\n}\n\nfunction decodeQuery(queryEntry: OracleQueryNode): OracleQuery {\n return {\n ...queryEntry,\n id: queryEntry.id as Encoded.OracleQueryId,\n decodedQuery: decode(queryEntry.query as Encoded.OracleQuery).toString(),\n decodedResponse: decode(queryEntry.response as Encoded.OracleResponse).toString(),\n };\n}\n\n/**\n * This class is needed because `getOracleQuery` would return different values depending on the\n * oracle type.\n * @category oracle\n */\nexport default class OracleBase {\n /**\n * @param address - Oracle public key\n */\n constructor(\n public readonly address: Encoded.OracleAddress,\n public options: { onNode: Node },\n ) {}\n\n /**\n * Get oracle entry from the node\n * @param options - Options object\n */\n async getState(options: { onNode?: Node } = {}): ReturnType<Node['getOracleByPubkey']> {\n const opt = { ...this.options, ...options };\n return opt.onNode.getOracleByPubkey(this.address);\n }\n\n /**\n * Get oracle queries from the node\n * @param options - Options object\n */\n async getQueries(options: { onNode?: Node } = {}): Promise<OracleQuery[]> {\n const opt = { ...this.options, ...options };\n return (await opt.onNode.getOracleQueriesByPubkey(this.address)).oracleQueries.map(decodeQuery);\n }\n\n /**\n * Get oracle query entry from the node\n * @param queryId - Oracle query ID\n * @param options - Options object\n */\n async getQuery(\n queryId: Encoded.OracleQueryId,\n options: { onNode?: Node } = {},\n ): Promise<OracleQuery> {\n const { onNode } = { ...this.options, ...options };\n const queryEntry = await onNode.getOracleQueryByPubkeyAndQueryId(this.address, queryId);\n return decodeQuery(queryEntry);\n }\n}\n"],"mappings":"AAAA,SAASA,MAAM,QAAiB,qBAAqB;;AAGrD;AACA;AACA;;AAGA;AACA;AACA;;AAQA,SAASC,WAAWA,CAACC,UAA2B,EAAe;EAC7D,OAAO;IACL,GAAGA,UAAU;IACbC,EAAE,EAAED,UAAU,CAACC,EAA2B;IAC1CC,YAAY,EAAEJ,MAAM,CAACE,UAAU,CAACG,KAA4B,CAAC,CAACC,QAAQ,CAAC,CAAC;IACxEC,eAAe,EAAEP,MAAM,CAACE,UAAU,CAACM,QAAkC,CAAC,CAACF,QAAQ,CAAC;EAClF,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAMG,UAAU,CAAC;EAC9B;AACF;AACA;EACEC,WAAWA,CACOC,OAA8B,EACvCC,OAAyB,EAChC;IAAA,KAFgBD,OAA8B,GAA9BA,OAA8B;IAAA,KACvCC,OAAyB,GAAzBA,OAAyB;EAC/B;;EAEH;AACF;AACA;AACA;EACE,MAAMC,QAAQA,CAACD,OAA0B,GAAG,CAAC,CAAC,EAAyC;IACrF,MAAME,GAAG,GAAG;MAAE,GAAG,IAAI,CAACF,OAAO;MAAE,GAAGA;IAAQ,CAAC;IAC3C,OAAOE,GAAG,CAACC,MAAM,CAACC,iBAAiB,CAAC,IAAI,CAACL,OAAO,CAAC;EACnD;;EAEA;AACF;AACA;AACA;EACE,MAAMM,UAAUA,CAACL,OAA0B,GAAG,CAAC,CAAC,EAA0B;IACxE,MAAME,GAAG,GAAG;MAAE,GAAG,IAAI,CAACF,OAAO;MAAE,GAAGA;IAAQ,CAAC;IAC3C,OAAO,CAAC,MAAME,GAAG,CAACC,MAAM,CAACG,wBAAwB,CAAC,IAAI,CAACP,OAAO,CAAC,EAAEQ,aAAa,CAACC,GAAG,CAACnB,WAAW,CAAC;EACjG;;EAEA;AACF;AACA;AACA;AACA;EACE,MAAMoB,QAAQA,CACZC,OAA8B,EAC9BV,OAA0B,GAAG,CAAC,CAAC,EACT;IACtB,MAAM;MAAEG;IAAO,CAAC,GAAG;MAAE,GAAG,IAAI,CAACH,OAAO;MAAE,GAAGA;IAAQ,CAAC;IAClD,MAAMV,UAAU,GAAG,MAAMa,MAAM,CAACQ,gCAAgC,CAAC,IAAI,CAACZ,OAAO,EAAEW,OAAO,CAAC;IACvF,OAAOrB,WAAW,CAACC,UAAU,CAAC;EAChC;AACF","ignoreList":[]}
|
|
@@ -7,6 +7,9 @@ import { sendTransaction } from '../send-transaction.js';
|
|
|
7
7
|
import Node from '../Node.js';
|
|
8
8
|
import AccountBase from '../account/Base.js';
|
|
9
9
|
import OracleBase from './OracleBase.js';
|
|
10
|
+
/**
|
|
11
|
+
* @category oracle
|
|
12
|
+
*/
|
|
10
13
|
interface OracleClientPostQueryOptions extends Optional<Parameters<typeof sendTransaction>[1], 'onNode' | 'onAccount'>, BuildTxOptions<Tag.OracleQueryTx, 'oracleId' | 'senderId' | 'query'> {
|
|
11
14
|
}
|
|
12
15
|
/**
|
|
@@ -7,6 +7,11 @@ import { decode } from '../utils/encoder.js';
|
|
|
7
7
|
import { _getPollInterval, getHeight } from '../chain.js';
|
|
8
8
|
import { sendTransaction } from '../send-transaction.js';
|
|
9
9
|
import OracleBase from './OracleBase.js';
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* @category oracle
|
|
13
|
+
*/
|
|
14
|
+
|
|
10
15
|
/**
|
|
11
16
|
* @category oracle
|
|
12
17
|
*/
|
|
@@ -72,7 +77,7 @@ export default class OracleClient extends OracleBase {
|
|
|
72
77
|
({
|
|
73
78
|
response,
|
|
74
79
|
ttl
|
|
75
|
-
} = await
|
|
80
|
+
} = await this.getQuery(queryId, opt));
|
|
76
81
|
const responseBuffer = decode(response);
|
|
77
82
|
if (responseBuffer.length > 0) return responseBuffer.toString();
|
|
78
83
|
await pause(interval);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OracleClient.js","names":["pause","oracleQueryId","unpackTx","buildTxAsync","Tag","RequestTimedOutError","decode","_getPollInterval","getHeight","sendTransaction","OracleBase","OracleClient","constructor","address","options","postQuery","query","opt","senderId","onAccount","oracleQueryTx","_isInternalBuild","tag","OracleQueryTx","oracleId","nonce","queryId","pollForResponse","_opt$interval","interval","height","ttl","response","
|
|
1
|
+
{"version":3,"file":"OracleClient.js","names":["pause","oracleQueryId","unpackTx","buildTxAsync","Tag","RequestTimedOutError","decode","_getPollInterval","getHeight","sendTransaction","OracleBase","OracleClient","constructor","address","options","postQuery","query","opt","senderId","onAccount","oracleQueryTx","_isInternalBuild","tag","OracleQueryTx","oracleId","nonce","queryId","pollForResponse","_opt$interval","interval","height","ttl","response","getQuery","responseBuffer","length","toString","cached"],"sources":["../../src/oracle/OracleClient.ts"],"sourcesContent":["import { pause, Optional } from '../utils/other.js';\nimport { oracleQueryId } from '../tx/builder/helpers.js';\nimport { unpackTx, buildTxAsync, BuildTxOptions } from '../tx/builder/index.js';\nimport { Tag } from '../tx/builder/constants.js';\nimport { RequestTimedOutError } from '../utils/errors.js';\nimport { decode, Encoded } from '../utils/encoder.js';\nimport { _getPollInterval, getHeight } from '../chain.js';\nimport { sendTransaction } from '../send-transaction.js';\nimport Node from '../Node.js';\nimport AccountBase from '../account/Base.js';\nimport OracleBase from './OracleBase.js';\n\n/**\n * @category oracle\n */\ninterface OracleClientPostQueryOptions\n extends Optional<Parameters<typeof sendTransaction>[1], 'onNode' | 'onAccount'>,\n BuildTxOptions<Tag.OracleQueryTx, 'oracleId' | 'senderId' | 'query'> {}\n\n/**\n * @category oracle\n */\nexport default class OracleClient extends OracleBase {\n /**\n * @param address - Oracle public key\n * @param options - Options object\n * @param options.onAccount - Account to use\n * @param options.onNode - Node to use\n */\n constructor(\n address: Encoded.OracleAddress,\n public override options: { onAccount: AccountBase; onNode: Node } & Parameters<\n OracleClient['query']\n >[1],\n ) {\n super(address, options);\n }\n\n /**\n * Post query to oracle\n * @param query - Query to oracle\n * @param options - Options object\n * @returns Transaction details and query ID\n */\n async postQuery(\n query: string,\n options: OracleClientPostQueryOptions = {},\n ): Promise<Awaited<ReturnType<typeof sendTransaction>> & { queryId: Encoded.OracleQueryId }> {\n const opt = { ...this.options, ...options };\n const senderId = opt.onAccount.address;\n\n const oracleQueryTx = await buildTxAsync({\n _isInternalBuild: true,\n ...opt,\n tag: Tag.OracleQueryTx,\n oracleId: this.address,\n senderId,\n query,\n });\n const { nonce } = unpackTx(oracleQueryTx, Tag.OracleQueryTx);\n return {\n ...(await sendTransaction(oracleQueryTx, opt)),\n queryId: oracleQueryId(senderId, nonce, this.address),\n };\n }\n\n /**\n * Poll for oracle response to query\n * @param queryId - Oracle Query id\n * @param options - Options object\n * @param options.interval - Poll interval\n * @returns Oracle response\n */\n async pollForResponse(\n queryId: Encoded.OracleQueryId,\n options: { interval?: number } & Partial<Parameters<typeof _getPollInterval>[1]> = {},\n ): Promise<string> {\n const opt = { ...this.options, ...options };\n const interval = opt.interval ?? (await _getPollInterval('micro-block', opt));\n let height;\n let ttl;\n let response;\n do {\n ({ response, ttl } = await this.getQuery(queryId, opt));\n const responseBuffer = decode(response as Encoded.OracleResponse);\n if (responseBuffer.length > 0) return responseBuffer.toString();\n await pause(interval);\n height = await getHeight({ ...opt, cached: true });\n } while (ttl >= height);\n throw new RequestTimedOutError(height);\n }\n\n /**\n * Post query to oracle and wait for response\n * @param query - Query to oracle\n * @param options - Options object\n * @returns Oracle response\n */\n async query(\n query: string,\n options: OracleClientPostQueryOptions & Parameters<OracleClient['pollForResponse']>[1] = {},\n ): Promise<string> {\n const { queryId } = await this.postQuery(query, options);\n return this.pollForResponse(queryId, options);\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
package/es/spend.js
CHANGED
package/es/spend.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spend.js","names":["BigNumber","getBalance","resolveName","sendTransaction","buildTxAsync","unpackTx","ArgumentError","Tag","spend","amount","recipientIdOrName","options","_isInternalBuild","tag","SpendTx","senderId","onAccount","address","recipientId","transferFunds","fraction","balance","bind","desiredAmount","times","integerValue","ROUND_HALF_UP","fee","plus","gt","minus","payForTransaction","transaction","PayingForTx","payerId","tx"],"sources":["../src/spend.ts"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"spend.js","names":["BigNumber","getBalance","resolveName","sendTransaction","buildTxAsync","unpackTx","ArgumentError","Tag","spend","amount","recipientIdOrName","options","_isInternalBuild","tag","SpendTx","senderId","onAccount","address","recipientId","transferFunds","fraction","balance","bind","desiredAmount","times","integerValue","ROUND_HALF_UP","fee","plus","gt","minus","payForTransaction","transaction","PayingForTx","payerId","tx"],"sources":["../src/spend.ts"],"sourcesContent":["import BigNumber from 'bignumber.js';\nimport { getBalance, resolveName } from './chain.js';\nimport { sendTransaction, SendTransactionOptions } from './send-transaction.js';\nimport { buildTxAsync, BuildTxOptions, unpackTx } from './tx/builder/index.js';\nimport { ArgumentError } from './utils/errors.js';\nimport { Encoded } from './utils/encoder.js';\nimport { Tag, AensName } from './tx/builder/constants.js';\n\n// TODO: name verify should not overlap with transaction verify\ntype ResolveNameOptions = Omit<Parameters<typeof resolveName>[2], 'onNode' | 'verify'>;\n\n/**\n * Send coins to another account\n * @category chain\n * @param amount - Amount to spend\n * @param recipientIdOrName - Address or name of recipient account\n * @param options - Options\n * @returns Transaction\n */\nexport async function spend(\n amount: number | string,\n recipientIdOrName: Encoded.AccountAddress | Encoded.ContractAddress | AensName,\n options: SpendOptions,\n): ReturnType<typeof sendTransaction> {\n return sendTransaction(\n await buildTxAsync({\n _isInternalBuild: true,\n ...options,\n tag: Tag.SpendTx,\n senderId: options.onAccount.address,\n recipientId: await resolveName(recipientIdOrName, 'account_pubkey', options),\n amount,\n }),\n options,\n );\n}\n\ntype SpendOptionsType = BuildTxOptions<\n Tag.SpendTx,\n 'senderId' | 'recipientId' | 'amount' | 'onNode'\n> &\n ResolveNameOptions &\n SendTransactionOptions;\ninterface SpendOptions extends SpendOptionsType {}\n\n// TODO: Rename to spendFraction\n/**\n * Spend a fraction of coin balance to another account. Useful if needed to drain account balance\n * completely, sending funds to another account (with fraction set to 1).\n * @category chain\n * @param fraction - Fraction of balance to spend (between 0 and 1)\n * @param recipientIdOrName - Address or name of recipient account\n * @param options - Options\n * @example\n * ```js\n * // `fraction` * 100 = % of AE to be transferred (e.g. `0.42` for 42% or `1` for 100%)\n * const { blockHeight } = await aeSdk.transferFunds(\n * 0.42,\n * 'ak_21A27UVVt3hDkBE5J7rhhqnH5YNb4Y1dqo4PnSybrH85pnWo7E',\n * );\n * console.log('Transaction mined at', blockHeight);\n * ```\n */\nexport async function transferFunds(\n fraction: number | string, // TODO: accept only number\n recipientIdOrName: AensName | Encoded.AccountAddress | Encoded.ContractAddress,\n options: TransferFundsOptions,\n): ReturnType<typeof sendTransaction> {\n if (+fraction < 0 || +fraction > 1) {\n throw new ArgumentError('fraction', 'a number between 0 and 1', fraction);\n }\n const recipientId = await resolveName(recipientIdOrName, 'account_pubkey', options);\n const senderId = options.onAccount.address;\n const balance = new BigNumber(await getBalance.bind(options.onAccount)(senderId, options));\n const desiredAmount = balance.times(fraction).integerValue(BigNumber.ROUND_HALF_UP);\n const { fee } = unpackTx(\n await buildTxAsync({\n _isInternalBuild: true,\n ...options,\n tag: Tag.SpendTx,\n senderId,\n recipientId,\n amount: desiredAmount,\n }),\n Tag.SpendTx,\n );\n // Reducing of the amount may reduce transaction fee, so this is not completely accurate\n const amount = desiredAmount.plus(fee).gt(balance) ? balance.minus(fee) : desiredAmount;\n return sendTransaction(\n await buildTxAsync({\n _isInternalBuild: true,\n ...options,\n tag: Tag.SpendTx,\n senderId,\n recipientId,\n amount,\n }),\n options,\n );\n}\n\ntype TransferFundsOptionsType = BuildTxOptions<\n Tag.SpendTx,\n 'senderId' | 'recipientId' | 'amount' | 'onNode'\n> &\n ResolveNameOptions &\n SendTransactionOptions;\ninterface TransferFundsOptions extends TransferFundsOptionsType {}\n\n/**\n * Submit transaction of another account paying for it (fee and gas)\n * @category chain\n * @param transaction - tx_<base64>-encoded transaction\n * @param options - Options\n * @returns Object Transaction\n */\nexport async function payForTransaction(\n transaction: Encoded.Transaction,\n options: PayForTransactionOptions,\n): ReturnType<typeof sendTransaction> {\n return sendTransaction(\n await buildTxAsync({\n _isInternalBuild: true,\n ...options,\n tag: Tag.PayingForTx,\n payerId: options.onAccount.address,\n tx: transaction,\n }),\n options,\n );\n}\n\ninterface PayForTransactionOptions\n extends BuildTxOptions<Tag.PayingForTx, 'payerId' | 'tx' | 'onNode'>,\n SendTransactionOptions {}\n"],"mappings":"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","ignoreList":[]}
|