@aeternity/aepp-sdk 14.1.1 → 15.0.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.
Files changed (82) hide show
  1. package/dist/aepp-sdk.browser-script.cjs +1 -1
  2. package/dist/aepp-sdk.browser-script.cjs.map +1 -1
  3. package/dist/aepp-sdk.browser.cjs +1 -1
  4. package/dist/aepp-sdk.browser.cjs.map +1 -1
  5. package/dist/aepp-sdk.cjs +3068 -502
  6. package/dist/aepp-sdk.cjs.map +1 -1
  7. package/es/account/Base.d.ts +6 -1
  8. package/es/account/Base.js.map +1 -1
  9. package/es/account/Generalized.d.ts +1 -1
  10. package/es/account/Generalized.js +7 -1
  11. package/es/account/Generalized.js.map +1 -1
  12. package/es/apis/node/models/index.d.ts +405 -79
  13. package/es/apis/node/models/index.js.map +1 -1
  14. package/es/apis/node/models/mappers.d.ts +54 -4
  15. package/es/apis/node/models/mappers.js +1910 -500
  16. package/es/apis/node/models/mappers.js.map +1 -1
  17. package/es/apis/node/node.d.ts +28 -6
  18. package/es/apis/node/node.js +276 -5
  19. package/es/apis/node/node.js.map +1 -1
  20. package/es/channel/Contract.d.ts +5 -0
  21. package/es/channel/Contract.js +8 -2
  22. package/es/channel/Contract.js.map +1 -1
  23. package/es/channel/handlers.js +3 -3
  24. package/es/channel/handlers.js.map +1 -1
  25. package/es/contract/ga.d.ts +5 -2
  26. package/es/contract/ga.js +53 -21
  27. package/es/contract/ga.js.map +1 -1
  28. package/es/index-browser.d.ts +3 -1
  29. package/es/index-browser.js +2 -1
  30. package/es/index-browser.js.map +1 -1
  31. package/es/tx/builder/constants.d.ts +12 -2
  32. package/es/tx/builder/constants.js +11 -1
  33. package/es/tx/builder/constants.js.map +1 -1
  34. package/es/tx/builder/entry/index.js +6 -0
  35. package/es/tx/builder/entry/index.js.map +1 -1
  36. package/es/tx/builder/entry/schema.d.ts +10 -10
  37. package/es/tx/builder/field-types/ct-version.d.ts +14 -0
  38. package/es/tx/builder/field-types/ct-version.js +14 -0
  39. package/es/tx/builder/field-types/ct-version.js.map +1 -1
  40. package/es/tx/builder/field-types/fee.d.ts +9 -7
  41. package/es/tx/builder/field-types/fee.js +75 -66
  42. package/es/tx/builder/field-types/fee.js.map +1 -1
  43. package/es/tx/builder/field-types/gas-limit.d.ts +5 -3
  44. package/es/tx/builder/field-types/gas-limit.js +25 -14
  45. package/es/tx/builder/field-types/gas-limit.js.map +1 -1
  46. package/es/tx/builder/field-types/gas-price.d.ts +6 -4
  47. package/es/tx/builder/field-types/gas-price.js +87 -21
  48. package/es/tx/builder/field-types/gas-price.js.map +1 -1
  49. package/es/tx/builder/field-types/interface.d.ts +20 -0
  50. package/es/tx/builder/field-types/interface.js +17 -1
  51. package/es/tx/builder/field-types/interface.js.map +1 -1
  52. package/es/tx/builder/field-types/name-fee.d.ts +3 -2
  53. package/es/tx/builder/field-types/name-fee.js +6 -0
  54. package/es/tx/builder/field-types/name-fee.js.map +1 -1
  55. package/es/tx/builder/field-types/pointers.d.ts +2 -1
  56. package/es/tx/builder/field-types/pointers.js +6 -2
  57. package/es/tx/builder/field-types/pointers.js.map +1 -1
  58. package/es/tx/builder/field-types/transaction.d.ts +4 -1
  59. package/es/tx/builder/field-types/transaction.js +18 -3
  60. package/es/tx/builder/field-types/transaction.js.map +1 -1
  61. package/es/tx/builder/field-types/with-formatting.d.ts +1 -1
  62. package/es/tx/builder/field-types/with-formatting.js +1 -1
  63. package/es/tx/builder/field-types/with-formatting.js.map +1 -1
  64. package/es/tx/builder/index.d.ts +13 -0
  65. package/es/tx/builder/index.js +92 -5
  66. package/es/tx/builder/index.js.map +1 -1
  67. package/es/tx/builder/protocol-parameters.d.ts +123 -0
  68. package/es/tx/builder/protocol-parameters.js +519 -0
  69. package/es/tx/builder/protocol-parameters.js.map +1 -0
  70. package/es/tx/builder/schema.d.ts +156 -155
  71. package/es/tx/builder/schema.js +5 -1
  72. package/es/tx/builder/schema.js.map +1 -1
  73. package/es/tx/execution-cost.js +5 -5
  74. package/es/tx/execution-cost.js.map +1 -1
  75. package/es/tx/transaction-signer.js +2 -2
  76. package/es/tx/transaction-signer.js.map +1 -1
  77. package/es/tx/validator.js +4 -4
  78. package/es/tx/validator.js.map +1 -1
  79. package/es/utils/wrap-proxy.d.ts +10 -0
  80. package/es/utils/wrap-proxy.js +18 -0
  81. package/es/utils/wrap-proxy.js.map +1 -1
  82. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"handlers.js","names":["changeStatus","changeState","notify","emit","disconnect","unpackTx","buildTx","decode","IllegalArgumentError","InsufficientBalanceError","ChannelConnectionError","UnexpectedChannelMessageError","ChannelError","Tag","snakeToPascal","appendSignature","tx","signFn","signatures","encodedTx","SignedTx","payloadTx","result","signatures2","tag","concat","signAndNotify","channel","method","data","signedTx","signed_tx","isError","key","error","handleUnexpectedMessage","_channel","message","state","reject","Object","assign","JSON","stringify","wsMessage","handler","channelOpen","awaitingCompletion","onSuccess","resolve","accepted","errorCode","params","error_code","errorMessage","error_msg","event","codes","map","d","code","includes","awaitingConnection","channelInfoStatus","nextStatus","awaitingChannelCreateTx","awaitingOpenConfirmation","_fsmId","fsm_id","payload","channelClosed","awaitingReestablish","awaitingChannelReestablished","_","message2","state2","awaitingReconnection","_options","role","sign","awaitingOnChainTx","awaitingBlockInclusion","info","type","_channelId","channel_id","awaitingChannelsUpdate","awaitingTxSignRequest","enter","_message$method$match","match","updates","awaitingUpdateConflict","awaitingShutdownTx","awaitingLeave","channelId","closeTx"],"sources":["../../src/channel/handlers.ts"],"sourcesContent":["/* eslint-disable consistent-return */\n/* eslint-disable default-case */\n/* eslint-disable @typescript-eslint/no-use-before-define */\nimport {\n ChannelState,\n changeStatus,\n changeState,\n notify,\n emit,\n disconnect,\n ChannelMessage,\n ChannelFsm,\n SignTx,\n ChannelStatus,\n ChannelEvents,\n} from './internal.js';\nimport { unpackTx, buildTx } from '../tx/builder/index.js';\nimport { decode, Encoded } from '../utils/encoder.js';\nimport {\n IllegalArgumentError,\n InsufficientBalanceError,\n ChannelConnectionError,\n UnexpectedChannelMessageError,\n ChannelError,\n} from '../utils/errors.js';\nimport type Channel from './Base.js';\nimport { Tag } from '../tx/builder/constants.js';\nimport { snakeToPascal } from '../utils/string.js';\n\nexport async function appendSignature(\n tx: Encoded.Transaction,\n signFn: SignTx,\n): Promise<Encoded.Transaction | number | null> {\n const { signatures, encodedTx } = unpackTx(tx, Tag.SignedTx);\n const payloadTx = buildTx(encodedTx);\n const result = await signFn(payloadTx);\n if (typeof result === 'string') {\n const { signatures: signatures2 } = unpackTx(result, Tag.SignedTx);\n return buildTx({\n tag: Tag.SignedTx,\n signatures: signatures.concat(signatures2),\n encodedTx: decode(payloadTx),\n });\n }\n return result;\n}\n\nexport async function signAndNotify(\n channel: Channel,\n method: string,\n data: {\n tx?: Encoded.Transaction;\n signed_tx?: Encoded.Transaction;\n },\n signFn: SignTx,\n): Promise<boolean> {\n let signedTx;\n if (data.tx != null) signedTx = await signFn(data.tx);\n else if (data.signed_tx != null) signedTx = await appendSignature(data.signed_tx, signFn);\n else throw new ChannelError(\"Can't find transaction in message\");\n const isError = typeof signedTx !== 'string';\n const key = data.tx != null ? 'tx' : 'signed_tx';\n notify(channel, method, isError ? { error: signedTx ?? 1 } : { [key]: signedTx });\n return isError;\n}\n\nexport function handleUnexpectedMessage(\n _channel: Channel,\n message: ChannelMessage,\n state: ChannelState,\n): ChannelFsm {\n state?.reject?.(\n Object.assign(\n new UnexpectedChannelMessageError(\n `Unexpected message received:\\n\\n${JSON.stringify(message)}`,\n ),\n { wsMessage: message },\n ),\n );\n return { handler: channelOpen };\n}\n\nexport function awaitingCompletion(\n channel: Channel,\n message: ChannelMessage,\n state: ChannelState,\n onSuccess?: typeof handleUnexpectedMessage,\n): ChannelFsm {\n if (onSuccess != null && message.method === 'channels.update') {\n return onSuccess(channel, message, state);\n }\n if (message.method === 'channels.conflict') {\n state.resolve({\n accepted: false,\n errorCode: message.params.data.error_code,\n errorMessage: message.params.data.error_msg,\n });\n return { handler: channelOpen };\n }\n if (message.method === 'channels.info') {\n if (message.params.data.event === 'aborted_update') {\n state.resolve({ accepted: false });\n return { handler: channelOpen };\n }\n }\n if (message.error != null) {\n const codes = message.error.data.map((d) => d.code);\n if (codes.includes(1001)) {\n state.reject(new InsufficientBalanceError('Insufficient balance'));\n } else if (codes.includes(1002)) {\n state.reject(new IllegalArgumentError('Amount cannot be negative'));\n } else {\n state.reject(new ChannelConnectionError(message.error.message));\n }\n return { handler: channelOpen };\n }\n return handleUnexpectedMessage(channel, message, state);\n}\n\nexport function awaitingConnection(\n channel: Channel,\n message: ChannelMessage,\n): ChannelFsm | undefined {\n if (message.method === 'channels.info') {\n const channelInfoStatus: string = message.params.data.event;\n\n let nextStatus: ChannelStatus | null = null;\n if (channelInfoStatus === 'channel_accept') nextStatus = 'accepted';\n if (channelInfoStatus === 'funding_created') nextStatus = 'halfSigned';\n if (nextStatus != null) {\n changeStatus(channel, nextStatus);\n return { handler: awaitingChannelCreateTx };\n }\n\n if (message.params.data.event === 'channel_reestablished') {\n return { handler: awaitingOpenConfirmation };\n }\n if (message.params.data.event === 'fsm_up') {\n channel._fsmId = message.params.data.fsm_id;\n return { handler: awaitingConnection };\n }\n return { handler: awaitingConnection };\n }\n if (message.method === 'channels.error') {\n emit(channel, 'error', new ChannelConnectionError(message?.payload?.message));\n return { handler: channelClosed };\n }\n}\n\nexport async function awaitingReestablish(\n channel: Channel,\n message: ChannelMessage,\n state: ChannelState,\n): Promise<ChannelFsm> {\n if (message.method === 'channels.info' && message.params.data.event === 'fsm_up') {\n channel._fsmId = message.params.data.fsm_id;\n return {\n handler: function awaitingChannelReestablished(\n _: Channel,\n message2: ChannelMessage,\n state2: ChannelState,\n ): ChannelFsm | undefined {\n if (\n message2.method === 'channels.info' &&\n message2.params.data.event === 'channel_reestablished'\n )\n return { handler: awaitingOpenConfirmation };\n return handleUnexpectedMessage(channel, message2, state2);\n },\n };\n }\n return handleUnexpectedMessage(channel, message, state);\n}\n\nexport async function awaitingReconnection(\n channel: Channel,\n message: ChannelMessage,\n state: ChannelState,\n): Promise<ChannelFsm> {\n if (message.method === 'channels.info' && message.params.data.event === 'fsm_up') {\n channel._fsmId = message.params.data.fsm_id;\n const { signedTx } = await channel.state();\n changeState(channel, signedTx == null ? '' : buildTx(signedTx));\n return { handler: channelOpen };\n }\n return handleUnexpectedMessage(channel, message, state);\n}\n\nexport async function awaitingChannelCreateTx(\n channel: Channel,\n message: ChannelMessage,\n): Promise<ChannelFsm | undefined> {\n const tag = channel._options.role === 'initiator' ? 'initiator_sign' : 'responder_sign';\n if (message.method === `channels.sign.${tag}`) {\n await signAndNotify(channel, `channels.${tag}`, message.params.data, async (tx) =>\n channel._options.sign(tag, tx),\n );\n return { handler: awaitingOnChainTx };\n }\n}\n\nexport function awaitingOnChainTx(\n channel: Channel,\n message: ChannelMessage,\n): ChannelFsm | undefined {\n function awaitingBlockInclusion(_: Channel, message2: ChannelMessage): ChannelFsm | undefined {\n if (message2.method === 'channels.info') {\n switch (message2.params.data.event) {\n case 'funding_created':\n case 'own_funding_locked':\n return { handler: awaitingBlockInclusion };\n case 'funding_locked':\n return { handler: awaitingOpenConfirmation };\n }\n }\n if (message2.method === 'channels.on_chain_tx') {\n emit(channel, 'onChainTx', message2.params.data.tx, {\n info: message2.params.data.info,\n type: message2.params.data.type,\n });\n return { handler: awaitingBlockInclusion };\n }\n }\n\n if (message.method === 'channels.on_chain_tx') {\n const { info } = message.params.data;\n const { role } = channel._options;\n if (\n (info === 'funding_signed' && role === 'initiator') ||\n (info === 'funding_created' && role === 'responder')\n ) {\n return { handler: awaitingBlockInclusion };\n }\n }\n if (\n message.method === 'channels.info' &&\n message.params.data.event === 'funding_signed' &&\n channel._options.role === 'initiator'\n ) {\n channel._channelId = message.params.channel_id;\n changeStatus(channel, 'signed');\n return { handler: awaitingOnChainTx };\n }\n}\n\nfunction awaitingOpenConfirmation(\n channel: Channel,\n message: ChannelMessage,\n state: ChannelState,\n): ChannelFsm | undefined {\n if (message.method === 'channels.info' && message.params.data.event === 'open') {\n channel._channelId = message.params.channel_id;\n return {\n handler: function awaitingChannelsUpdate(\n _: Channel,\n message2: ChannelMessage,\n state2: ChannelState,\n ): ChannelFsm | undefined {\n if (message2.method === 'channels.update') {\n changeState(channel, message2.params.data.state);\n return { handler: channelOpen };\n }\n return handleUnexpectedMessage(channel, message2, state2);\n },\n };\n }\n return handleUnexpectedMessage(channel, message, state);\n}\n\nexport async function channelOpen(\n channel: Channel,\n message: ChannelMessage,\n state: ChannelState,\n): Promise<ChannelFsm | undefined> {\n switch (message.method) {\n case 'channels.info':\n switch (message.params.data.event) {\n case 'update':\n case 'withdraw_created':\n case 'deposit_created':\n return { handler: awaitingTxSignRequest };\n case 'own_withdraw_locked':\n case 'withdraw_locked':\n case 'own_deposit_locked':\n case 'deposit_locked':\n case 'peer_disconnected':\n case 'channel_reestablished':\n case 'open':\n // TODO: Better handling of peer_disconnected event.\n //\n // We should enter intermediate state where offchain transactions\n // are blocked until channel is reestablished.\n emit(channel, snakeToPascal(message.params.data.event) as keyof ChannelEvents);\n return { handler: channelOpen };\n case 'fsm_up':\n channel._fsmId = message.params.data.fsm_id;\n return { handler: channelOpen };\n case 'timeout':\n case 'close_mutual':\n return { handler: channelOpen };\n case 'closing':\n changeStatus(channel, 'closing');\n return { handler: channelOpen };\n case 'closed_confirmed':\n changeStatus(channel, 'closed');\n return { handler: channelClosed };\n case 'died':\n changeStatus(channel, 'died');\n return { handler: channelClosed };\n case 'shutdown':\n return { handler: channelOpen };\n }\n break;\n case 'channels.on_chain_tx':\n emit(channel, 'onChainTx', message.params.data.tx, {\n info: message.params.data.info,\n type: message.params.data.type,\n });\n return { handler: channelOpen };\n case 'channels.leave':\n // TODO: emit event\n return { handler: channelOpen };\n case 'channels.update':\n changeState(channel, message.params.data.state);\n return { handler: channelOpen };\n case 'channels.sign.shutdown_sign_ack':\n return awaitingTxSignRequest(channel, message, state);\n }\n}\nchannelOpen.enter = (channel: Channel) => {\n changeStatus(channel, 'open');\n};\n\nasync function awaitingTxSignRequest(\n channel: Channel,\n message: ChannelMessage,\n state: ChannelState,\n): Promise<ChannelFsm> {\n const [, tag] = message.method.match(/^channels\\.sign\\.([^.]+)$/) ?? [];\n if (tag == null) return handleUnexpectedMessage(channel, message, state);\n const isError = await signAndNotify(channel, `channels.${tag}`, message.params.data, async (tx) =>\n channel._options.sign(tag, tx, { updates: message.params.data.updates }),\n );\n\n function awaitingUpdateConflict(_: Channel, message2: ChannelMessage): ChannelFsm {\n if (message2.error != null) {\n return { handler: awaitingUpdateConflict, state };\n }\n if (message2.method === 'channels.conflict') {\n return { handler: channelOpen };\n }\n return handleUnexpectedMessage(channel, message2, state);\n }\n return isError ? { handler: awaitingUpdateConflict, state } : { handler: channelOpen };\n}\n\nexport async function awaitingShutdownTx(\n channel: Channel,\n message: ChannelMessage,\n state: ChannelState,\n): Promise<ChannelFsm> {\n if (message.method !== 'channels.sign.shutdown_sign') {\n return handleUnexpectedMessage(channel, message, state);\n }\n await signAndNotify(channel, 'channels.shutdown_sign', message.params.data, async (tx) =>\n state.sign(tx),\n );\n return {\n handler(_: Channel, message2: ChannelMessage): ChannelFsm {\n if (message2.method !== 'channels.on_chain_tx') {\n return handleUnexpectedMessage(channel, message2, state);\n }\n // state.resolve(message.params.data.tx)\n return { handler: channelClosed, state };\n },\n state,\n };\n}\n\nexport function awaitingLeave(\n channel: Channel,\n message: ChannelMessage,\n state: ChannelState,\n): ChannelFsm {\n if (message.method === 'channels.leave') {\n state.resolve({ channelId: message.params.channel_id, signedTx: message.params.data.state });\n disconnect(channel);\n return { handler: channelClosed };\n }\n if (message.method === 'channels.error') {\n state.reject(new ChannelConnectionError(message.data.message));\n return { handler: channelOpen };\n }\n return handleUnexpectedMessage(channel, message, state);\n}\n\nexport function channelClosed(\n _channel: Channel,\n message: ChannelMessage,\n state: ChannelState,\n): ChannelFsm {\n if (state == null) return { handler: channelClosed };\n if (message.params.data.event === 'closing') return { handler: channelClosed, state };\n if (message.params.data.info === 'channel_closed') {\n state.closeTx = message.params.data.tx;\n return { handler: channelClosed, state };\n }\n if (message.params.data.event === 'closed_confirmed') {\n state.resolve(state.closeTx);\n return { handler: channelClosed };\n }\n return { handler: channelClosed, state };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"handlers.js","names":["changeStatus","changeState","notify","emit","disconnect","unpackTx","buildTx","rebuildUnpackedTx","decode","IllegalArgumentError","InsufficientBalanceError","ChannelConnectionError","UnexpectedChannelMessageError","ChannelError","Tag","snakeToPascal","appendSignature","tx","signFn","signatures","encodedTx","SignedTx","payloadTx","result","signatures2","tag","concat","signAndNotify","channel","method","data","signedTx","signed_tx","isError","key","error","handleUnexpectedMessage","_channel","message","state","reject","Object","assign","JSON","stringify","wsMessage","handler","channelOpen","awaitingCompletion","onSuccess","resolve","accepted","errorCode","params","error_code","errorMessage","error_msg","event","codes","map","d","code","includes","awaitingConnection","channelInfoStatus","nextStatus","awaitingChannelCreateTx","awaitingOpenConfirmation","_fsmId","fsm_id","payload","channelClosed","awaitingReestablish","awaitingChannelReestablished","_","message2","state2","awaitingReconnection","_options","role","sign","awaitingOnChainTx","awaitingBlockInclusion","info","type","_channelId","channel_id","awaitingChannelsUpdate","awaitingTxSignRequest","enter","_message$method$match","match","updates","awaitingUpdateConflict","awaitingShutdownTx","awaitingLeave","channelId","closeTx"],"sources":["../../src/channel/handlers.ts"],"sourcesContent":["/* eslint-disable consistent-return */\n/* eslint-disable default-case */\n/* eslint-disable @typescript-eslint/no-use-before-define */\nimport {\n ChannelState,\n changeStatus,\n changeState,\n notify,\n emit,\n disconnect,\n ChannelMessage,\n ChannelFsm,\n SignTx,\n ChannelStatus,\n ChannelEvents,\n} from './internal.js';\nimport { unpackTx, buildTx, rebuildUnpackedTx } from '../tx/builder/index.js';\nimport { decode, Encoded } from '../utils/encoder.js';\nimport {\n IllegalArgumentError,\n InsufficientBalanceError,\n ChannelConnectionError,\n UnexpectedChannelMessageError,\n ChannelError,\n} from '../utils/errors.js';\nimport type Channel from './Base.js';\nimport { Tag } from '../tx/builder/constants.js';\nimport { snakeToPascal } from '../utils/string.js';\n\nexport async function appendSignature(\n tx: Encoded.Transaction,\n signFn: SignTx,\n): Promise<Encoded.Transaction | number | null> {\n const { signatures, encodedTx } = unpackTx(tx, Tag.SignedTx);\n const payloadTx = rebuildUnpackedTx(encodedTx);\n const result = await signFn(payloadTx);\n if (typeof result === 'string') {\n const { signatures: signatures2 } = unpackTx(result, Tag.SignedTx);\n return buildTx({\n tag: Tag.SignedTx,\n signatures: signatures.concat(signatures2),\n encodedTx: decode(payloadTx),\n });\n }\n return result;\n}\n\nexport async function signAndNotify(\n channel: Channel,\n method: string,\n data: {\n tx?: Encoded.Transaction;\n signed_tx?: Encoded.Transaction;\n },\n signFn: SignTx,\n): Promise<boolean> {\n let signedTx;\n if (data.tx != null) signedTx = await signFn(data.tx);\n else if (data.signed_tx != null) signedTx = await appendSignature(data.signed_tx, signFn);\n else throw new ChannelError(\"Can't find transaction in message\");\n const isError = typeof signedTx !== 'string';\n const key = data.tx != null ? 'tx' : 'signed_tx';\n notify(channel, method, isError ? { error: signedTx ?? 1 } : { [key]: signedTx });\n return isError;\n}\n\nexport function handleUnexpectedMessage(\n _channel: Channel,\n message: ChannelMessage,\n state: ChannelState,\n): ChannelFsm {\n state?.reject?.(\n Object.assign(\n new UnexpectedChannelMessageError(\n `Unexpected message received:\\n\\n${JSON.stringify(message)}`,\n ),\n { wsMessage: message },\n ),\n );\n return { handler: channelOpen };\n}\n\nexport function awaitingCompletion(\n channel: Channel,\n message: ChannelMessage,\n state: ChannelState,\n onSuccess?: typeof handleUnexpectedMessage,\n): ChannelFsm {\n if (onSuccess != null && message.method === 'channels.update') {\n return onSuccess(channel, message, state);\n }\n if (message.method === 'channels.conflict') {\n state.resolve({\n accepted: false,\n errorCode: message.params.data.error_code,\n errorMessage: message.params.data.error_msg,\n });\n return { handler: channelOpen };\n }\n if (message.method === 'channels.info') {\n if (message.params.data.event === 'aborted_update') {\n state.resolve({ accepted: false });\n return { handler: channelOpen };\n }\n }\n if (message.error != null) {\n const codes = message.error.data.map((d) => d.code);\n if (codes.includes(1001)) {\n state.reject(new InsufficientBalanceError('Insufficient balance'));\n } else if (codes.includes(1002)) {\n state.reject(new IllegalArgumentError('Amount cannot be negative'));\n } else {\n state.reject(new ChannelConnectionError(message.error.message));\n }\n return { handler: channelOpen };\n }\n return handleUnexpectedMessage(channel, message, state);\n}\n\nexport function awaitingConnection(\n channel: Channel,\n message: ChannelMessage,\n): ChannelFsm | undefined {\n if (message.method === 'channels.info') {\n const channelInfoStatus: string = message.params.data.event;\n\n let nextStatus: ChannelStatus | null = null;\n if (channelInfoStatus === 'channel_accept') nextStatus = 'accepted';\n if (channelInfoStatus === 'funding_created') nextStatus = 'halfSigned';\n if (nextStatus != null) {\n changeStatus(channel, nextStatus);\n return { handler: awaitingChannelCreateTx };\n }\n\n if (message.params.data.event === 'channel_reestablished') {\n return { handler: awaitingOpenConfirmation };\n }\n if (message.params.data.event === 'fsm_up') {\n channel._fsmId = message.params.data.fsm_id;\n return { handler: awaitingConnection };\n }\n return { handler: awaitingConnection };\n }\n if (message.method === 'channels.error') {\n emit(channel, 'error', new ChannelConnectionError(message?.payload?.message));\n return { handler: channelClosed };\n }\n}\n\nexport async function awaitingReestablish(\n channel: Channel,\n message: ChannelMessage,\n state: ChannelState,\n): Promise<ChannelFsm> {\n if (message.method === 'channels.info' && message.params.data.event === 'fsm_up') {\n channel._fsmId = message.params.data.fsm_id;\n return {\n handler: function awaitingChannelReestablished(\n _: Channel,\n message2: ChannelMessage,\n state2: ChannelState,\n ): ChannelFsm | undefined {\n if (\n message2.method === 'channels.info' &&\n message2.params.data.event === 'channel_reestablished'\n )\n return { handler: awaitingOpenConfirmation };\n return handleUnexpectedMessage(channel, message2, state2);\n },\n };\n }\n return handleUnexpectedMessage(channel, message, state);\n}\n\nexport async function awaitingReconnection(\n channel: Channel,\n message: ChannelMessage,\n state: ChannelState,\n): Promise<ChannelFsm> {\n if (message.method === 'channels.info' && message.params.data.event === 'fsm_up') {\n channel._fsmId = message.params.data.fsm_id;\n const { signedTx } = await channel.state();\n changeState(channel, signedTx == null ? '' : rebuildUnpackedTx(signedTx));\n return { handler: channelOpen };\n }\n return handleUnexpectedMessage(channel, message, state);\n}\n\nexport async function awaitingChannelCreateTx(\n channel: Channel,\n message: ChannelMessage,\n): Promise<ChannelFsm | undefined> {\n const tag = channel._options.role === 'initiator' ? 'initiator_sign' : 'responder_sign';\n if (message.method === `channels.sign.${tag}`) {\n await signAndNotify(channel, `channels.${tag}`, message.params.data, async (tx) =>\n channel._options.sign(tag, tx),\n );\n return { handler: awaitingOnChainTx };\n }\n}\n\nexport function awaitingOnChainTx(\n channel: Channel,\n message: ChannelMessage,\n): ChannelFsm | undefined {\n function awaitingBlockInclusion(_: Channel, message2: ChannelMessage): ChannelFsm | undefined {\n if (message2.method === 'channels.info') {\n switch (message2.params.data.event) {\n case 'funding_created':\n case 'own_funding_locked':\n return { handler: awaitingBlockInclusion };\n case 'funding_locked':\n return { handler: awaitingOpenConfirmation };\n }\n }\n if (message2.method === 'channels.on_chain_tx') {\n emit(channel, 'onChainTx', message2.params.data.tx, {\n info: message2.params.data.info,\n type: message2.params.data.type,\n });\n return { handler: awaitingBlockInclusion };\n }\n }\n\n if (message.method === 'channels.on_chain_tx') {\n const { info } = message.params.data;\n const { role } = channel._options;\n if (\n (info === 'funding_signed' && role === 'initiator') ||\n (info === 'funding_created' && role === 'responder')\n ) {\n return { handler: awaitingBlockInclusion };\n }\n }\n if (\n message.method === 'channels.info' &&\n message.params.data.event === 'funding_signed' &&\n channel._options.role === 'initiator'\n ) {\n channel._channelId = message.params.channel_id;\n changeStatus(channel, 'signed');\n return { handler: awaitingOnChainTx };\n }\n}\n\nfunction awaitingOpenConfirmation(\n channel: Channel,\n message: ChannelMessage,\n state: ChannelState,\n): ChannelFsm | undefined {\n if (message.method === 'channels.info' && message.params.data.event === 'open') {\n channel._channelId = message.params.channel_id;\n return {\n handler: function awaitingChannelsUpdate(\n _: Channel,\n message2: ChannelMessage,\n state2: ChannelState,\n ): ChannelFsm | undefined {\n if (message2.method === 'channels.update') {\n changeState(channel, message2.params.data.state);\n return { handler: channelOpen };\n }\n return handleUnexpectedMessage(channel, message2, state2);\n },\n };\n }\n return handleUnexpectedMessage(channel, message, state);\n}\n\nexport async function channelOpen(\n channel: Channel,\n message: ChannelMessage,\n state: ChannelState,\n): Promise<ChannelFsm | undefined> {\n switch (message.method) {\n case 'channels.info':\n switch (message.params.data.event) {\n case 'update':\n case 'withdraw_created':\n case 'deposit_created':\n return { handler: awaitingTxSignRequest };\n case 'own_withdraw_locked':\n case 'withdraw_locked':\n case 'own_deposit_locked':\n case 'deposit_locked':\n case 'peer_disconnected':\n case 'channel_reestablished':\n case 'open':\n // TODO: Better handling of peer_disconnected event.\n //\n // We should enter intermediate state where offchain transactions\n // are blocked until channel is reestablished.\n emit(channel, snakeToPascal(message.params.data.event) as keyof ChannelEvents);\n return { handler: channelOpen };\n case 'fsm_up':\n channel._fsmId = message.params.data.fsm_id;\n return { handler: channelOpen };\n case 'timeout':\n case 'close_mutual':\n return { handler: channelOpen };\n case 'closing':\n changeStatus(channel, 'closing');\n return { handler: channelOpen };\n case 'closed_confirmed':\n changeStatus(channel, 'closed');\n return { handler: channelClosed };\n case 'died':\n changeStatus(channel, 'died');\n return { handler: channelClosed };\n case 'shutdown':\n return { handler: channelOpen };\n }\n break;\n case 'channels.on_chain_tx':\n emit(channel, 'onChainTx', message.params.data.tx, {\n info: message.params.data.info,\n type: message.params.data.type,\n });\n return { handler: channelOpen };\n case 'channels.leave':\n // TODO: emit event\n return { handler: channelOpen };\n case 'channels.update':\n changeState(channel, message.params.data.state);\n return { handler: channelOpen };\n case 'channels.sign.shutdown_sign_ack':\n return awaitingTxSignRequest(channel, message, state);\n }\n}\nchannelOpen.enter = (channel: Channel) => {\n changeStatus(channel, 'open');\n};\n\nasync function awaitingTxSignRequest(\n channel: Channel,\n message: ChannelMessage,\n state: ChannelState,\n): Promise<ChannelFsm> {\n const [, tag] = message.method.match(/^channels\\.sign\\.([^.]+)$/) ?? [];\n if (tag == null) return handleUnexpectedMessage(channel, message, state);\n const isError = await signAndNotify(channel, `channels.${tag}`, message.params.data, async (tx) =>\n channel._options.sign(tag, tx, { updates: message.params.data.updates }),\n );\n\n function awaitingUpdateConflict(_: Channel, message2: ChannelMessage): ChannelFsm {\n if (message2.error != null) {\n return { handler: awaitingUpdateConflict, state };\n }\n if (message2.method === 'channels.conflict') {\n return { handler: channelOpen };\n }\n return handleUnexpectedMessage(channel, message2, state);\n }\n return isError ? { handler: awaitingUpdateConflict, state } : { handler: channelOpen };\n}\n\nexport async function awaitingShutdownTx(\n channel: Channel,\n message: ChannelMessage,\n state: ChannelState,\n): Promise<ChannelFsm> {\n if (message.method !== 'channels.sign.shutdown_sign') {\n return handleUnexpectedMessage(channel, message, state);\n }\n await signAndNotify(channel, 'channels.shutdown_sign', message.params.data, async (tx) =>\n state.sign(tx),\n );\n return {\n handler(_: Channel, message2: ChannelMessage): ChannelFsm {\n if (message2.method !== 'channels.on_chain_tx') {\n return handleUnexpectedMessage(channel, message2, state);\n }\n // state.resolve(message.params.data.tx)\n return { handler: channelClosed, state };\n },\n state,\n };\n}\n\nexport function awaitingLeave(\n channel: Channel,\n message: ChannelMessage,\n state: ChannelState,\n): ChannelFsm {\n if (message.method === 'channels.leave') {\n state.resolve({ channelId: message.params.channel_id, signedTx: message.params.data.state });\n disconnect(channel);\n return { handler: channelClosed };\n }\n if (message.method === 'channels.error') {\n state.reject(new ChannelConnectionError(message.data.message));\n return { handler: channelOpen };\n }\n return handleUnexpectedMessage(channel, message, state);\n}\n\nexport function channelClosed(\n _channel: Channel,\n message: ChannelMessage,\n state: ChannelState,\n): ChannelFsm {\n if (state == null) return { handler: channelClosed };\n if (message.params.data.event === 'closing') return { handler: channelClosed, state };\n if (message.params.data.info === 'channel_closed') {\n state.closeTx = message.params.data.tx;\n return { handler: channelClosed, state };\n }\n if (message.params.data.event === 'closed_confirmed') {\n state.resolve(state.closeTx);\n return { handler: channelClosed };\n }\n return { handler: channelClosed, state };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -3,6 +3,7 @@
3
3
  */
4
4
  import { Int, Tag } from '../tx/builder/constants.js';
5
5
  import { BuildTxOptions } from '../tx/builder/index.js';
6
+ import { ProtocolParametersOption } from '../tx/builder/protocol-parameters.js';
6
7
  import { Encoded } from '../utils/encoder.js';
7
8
  import Contract from './Contract.js';
8
9
  import Node from '../Node.js';
@@ -34,13 +35,15 @@ interface CreateGeneralizedAccountOptions extends BuildTxOptions<Tag.GaAttachTx,
34
35
  * @param options.fee - GaMetaTx fee, required in Ceres
35
36
  * @param options.gasPrice - GaMetaTx gasPrice, required in Ceres
36
37
  * @param options.onNode - Node to use
38
+ * @param options.protocolParameters - Consensus parameters the `gasPrice` belongs to, requested
39
+ * from node if not provided
37
40
  * @returns Transaction hash
38
41
  */
39
- export declare function buildAuthTxHash(transaction: Encoded.Transaction, { fee, gasPrice, onNode }: {
42
+ export declare function buildAuthTxHash(transaction: Encoded.Transaction, { fee, gasPrice, onNode, protocolParameters, }: {
40
43
  fee?: Int;
41
44
  gasPrice?: Int;
42
45
  onNode: Node;
43
- }): Promise<Buffer>;
46
+ } & ProtocolParametersOption): Promise<Buffer>;
44
47
  /**
45
48
  * Build a transaction hash the same as `Auth.tx_hash` by GaMetaTx
46
49
  * @category account generalized
package/es/contract/ga.js CHANGED
@@ -3,8 +3,9 @@ import { Buffer as _Buffer } from "buffer";
3
3
  * Generalized Account module - routines to use generalized account
4
4
  */
5
5
 
6
- import { ConsensusProtocolVersion, Tag } from '../tx/builder/constants.js';
7
- import { buildContractIdByContractTx, buildTx, buildTxAsync, unpackTx } from '../tx/builder/index.js';
6
+ import { Tag } from '../tx/builder/constants.js';
7
+ import { buildContractIdByContractTx, rebuildUnpackedTx, buildTxAsync, unpackTx } from '../tx/builder/index.js';
8
+ import { getCachedProtocolParameters } from '../tx/builder/protocol-parameters.js';
8
9
  import { hash } from '../utils/crypto.js';
9
10
  import { decode, encode, Encoding } from '../utils/encoder.js';
10
11
  import { ArgumentError, IllegalArgumentError } from '../utils/errors.js';
@@ -14,6 +15,7 @@ import { getAccount } from '../chain.js';
14
15
  import { sendTransaction } from '../send-transaction.js';
15
16
  import { packEntry } from '../tx/builder/entry/index.js';
16
17
  import { EntryTag } from '../tx/builder/entry/constants.js';
18
+ import { serializeAsIsParam } from '../tx/builder/field-types/interface.js';
17
19
 
18
20
  /**
19
21
  * Convert current account to GA
@@ -79,6 +81,40 @@ export async function createGeneralizedAccount(authFnName, args, {
79
81
  gaContractId: contractId
80
82
  });
81
83
  }
84
+ // the symbol isn't exported, so only `buildAuthTxHashByGaMetaTx` can set it — kept off the public
85
+ // `buildAuthTxHash` signature rather than advertising an option its callers can't provide
86
+ async function buildAuthTxHashInternal(transaction, {
87
+ fee,
88
+ gasPrice,
89
+ onNode,
90
+ protocolParameters,
91
+ ...options
92
+ }) {
93
+ const {
94
+ nodeNetworkId
95
+ } = await onNode.getNodeInfo();
96
+ let payload = hash(concatBuffers([_Buffer.from(nodeNetworkId), decode(transaction)]));
97
+ if (fee == null) throw new ArgumentError('fee', 'provided (in Ceres)', fee);
98
+ if (gasPrice == null) throw new ArgumentError('gasPrice', 'provided (in Ceres)', gasPrice);
99
+ // the entry checks `gasPrice` against the consensus minimum the same way a transaction does,
100
+ // so it needs the same parameters — without them a `gasPrice` correct for the network this
101
+ // node runs is rejected whenever that network runs a lower minimum than the SDK release.
102
+ // Not requested at all when there is nothing to check, so that re-deriving the hash of an
103
+ // existing transaction needs no round trip and works on a transaction of another network
104
+ payload = hash(decode(packEntry({
105
+ tag: EntryTag.GaMetaTxAuthData,
106
+ fee,
107
+ gasPrice,
108
+ txHash: encode(payload, Encoding.TxHash),
109
+ ...(options[serializeAsIsParam] === true ? {
110
+ [serializeAsIsParam]: true
111
+ } : {
112
+ protocolParameters: protocolParameters !== null && protocolParameters !== void 0 ? protocolParameters : await getCachedProtocolParameters(onNode)
113
+ })
114
+ })));
115
+ return payload;
116
+ }
117
+
82
118
  /**
83
119
  * Build a transaction hash the same as `Auth.tx_hash` by GaMetaTx payload
84
120
  * @category account generalized
@@ -87,29 +123,22 @@ export async function createGeneralizedAccount(authFnName, args, {
87
123
  * @param options.fee - GaMetaTx fee, required in Ceres
88
124
  * @param options.gasPrice - GaMetaTx gasPrice, required in Ceres
89
125
  * @param options.onNode - Node to use
126
+ * @param options.protocolParameters - Consensus parameters the `gasPrice` belongs to, requested
127
+ * from node if not provided
90
128
  * @returns Transaction hash
91
129
  */
92
130
  export async function buildAuthTxHash(transaction, {
93
131
  fee,
94
132
  gasPrice,
95
- onNode
133
+ onNode,
134
+ protocolParameters
96
135
  }) {
97
- const {
98
- nodeNetworkId,
99
- consensusProtocolVersion
100
- } = await onNode.getNodeInfo();
101
- let payload = hash(concatBuffers([_Buffer.from(nodeNetworkId), decode(transaction)]));
102
- if (consensusProtocolVersion === ConsensusProtocolVersion.Ceres) {
103
- if (fee == null) throw new ArgumentError('fee', 'provided (in Ceres)', fee);
104
- if (gasPrice == null) throw new ArgumentError('gasPrice', 'provided (in Ceres)', gasPrice);
105
- payload = hash(decode(packEntry({
106
- tag: EntryTag.GaMetaTxAuthData,
107
- fee,
108
- gasPrice,
109
- txHash: encode(payload, Encoding.TxHash)
110
- })));
111
- }
112
- return payload;
136
+ return buildAuthTxHashInternal(transaction, {
137
+ fee,
138
+ gasPrice,
139
+ onNode,
140
+ protocolParameters
141
+ });
113
142
  }
114
143
 
115
144
  /**
@@ -127,10 +156,13 @@ export async function buildAuthTxHashByGaMetaTx(transaction, {
127
156
  if (txParams.encodedTx.tag !== Tag.GaMetaTx) {
128
157
  throw new ArgumentError('transaction', 'to include GaMetaTx', Tag[txParams.encodedTx.tag]);
129
158
  }
130
- return buildAuthTxHash(buildTx(txParams.encodedTx.tx.encodedTx), {
159
+ return buildAuthTxHashInternal(rebuildUnpackedTx(txParams.encodedTx.tx.encodedTx), {
131
160
  fee: txParams.encodedTx.fee,
132
161
  gasPrice: txParams.encodedTx.gasPrice,
133
- onNode
162
+ onNode,
163
+ // the `gasPrice` of a transaction that already exists, never checked and no parameters
164
+ // requested for it — see `serializeAsIsParam`
165
+ [serializeAsIsParam]: true
134
166
  });
135
167
  }
136
168
  //# sourceMappingURL=ga.js.map
@@ -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 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":[]}
1
+ {"version":3,"file":"ga.js","names":["Tag","buildContractIdByContractTx","rebuildUnpackedTx","buildTxAsync","unpackTx","getCachedProtocolParameters","hash","decode","encode","Encoding","ArgumentError","IllegalArgumentError","concatBuffers","Contract","getAccount","sendTransaction","packEntry","EntryTag","serializeAsIsParam","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","buildAuthTxHashInternal","fee","gasPrice","protocolParameters","nodeNetworkId","getNodeInfo","payload","_Buffer","from","GaMetaTxAuthData","txHash","TxHash","buildAuthTxHash","buildAuthTxHashByGaMetaTx","txParams","SignedTx","encodedTx","GaMetaTx"],"sources":["../../src/contract/ga.ts"],"sourcesContent":["/**\n * Generalized Account module - routines to use generalized account\n */\n\nimport { Int, Tag } from '../tx/builder/constants.js';\nimport {\n buildContractIdByContractTx,\n rebuildUnpackedTx,\n buildTxAsync,\n BuildTxOptions,\n unpackTx,\n} from '../tx/builder/index.js';\nimport {\n getCachedProtocolParameters,\n ProtocolParametersOption,\n} from '../tx/builder/protocol-parameters.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';\nimport { serializeAsIsParam, SerializeAsIsParams } from '../tx/builder/field-types/interface.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// the symbol isn't exported, so only `buildAuthTxHashByGaMetaTx` can set it — kept off the public\n// `buildAuthTxHash` signature rather than advertising an option its callers can't provide\nasync function buildAuthTxHashInternal(\n transaction: Encoded.Transaction,\n {\n fee,\n gasPrice,\n onNode,\n protocolParameters,\n ...options\n }: Parameters<typeof buildAuthTxHash>[1] & SerializeAsIsParams,\n): Promise<Buffer> {\n const { nodeNetworkId } = await onNode.getNodeInfo();\n let payload = hash(concatBuffers([Buffer.from(nodeNetworkId), decode(transaction)]));\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 // the entry checks `gasPrice` against the consensus minimum the same way a transaction does,\n // so it needs the same parameters — without them a `gasPrice` correct for the network this\n // node runs is rejected whenever that network runs a lower minimum than the SDK release.\n // Not requested at all when there is nothing to check, so that re-deriving the hash of an\n // existing transaction needs no round trip and works on a transaction of another network\n payload = hash(\n decode(\n packEntry({\n tag: EntryTag.GaMetaTxAuthData,\n fee,\n gasPrice,\n txHash: encode(payload, Encoding.TxHash),\n ...(options[serializeAsIsParam] === true\n ? { [serializeAsIsParam]: true }\n : {\n protocolParameters: protocolParameters ?? (await getCachedProtocolParameters(onNode)),\n }),\n }),\n ),\n );\n return payload;\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 * @param options.protocolParameters - Consensus parameters the `gasPrice` belongs to, requested\n * from node if not provided\n * @returns Transaction hash\n */\nexport async function buildAuthTxHash(\n transaction: Encoded.Transaction,\n {\n fee,\n gasPrice,\n onNode,\n protocolParameters,\n }: { fee?: Int; gasPrice?: Int; onNode: Node } & ProtocolParametersOption,\n): Promise<Buffer> {\n return buildAuthTxHashInternal(transaction, { fee, gasPrice, onNode, protocolParameters });\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 buildAuthTxHashInternal(rebuildUnpackedTx(txParams.encodedTx.tx.encodedTx), {\n fee: txParams.encodedTx.fee,\n gasPrice: txParams.encodedTx.gasPrice,\n onNode,\n // the `gasPrice` of a transaction that already exists, never checked and no parameters\n // requested for it — see `serializeAsIsParam`\n [serializeAsIsParam]: true,\n });\n}\n"],"mappings":"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","ignoreList":[]}
@@ -19,7 +19,7 @@ export { verifyMessageSignature as verifyMessage } from './utils/crypto.js';
19
19
  export { signJwt, unpackJwt, verifyJwt, isJwt, ensureJwt } from './utils/jwt.js';
20
20
  export type { Jwt } from './utils/jwt.js';
21
21
  export { toBytes } from './utils/bytes.js';
22
- export { buildTx, buildTxAsync, buildTxHash, unpackTx, buildContractIdByContractTx, } from './tx/builder/index.js';
22
+ export { buildTx, buildTxAsync, buildTxHash, rebuildUnpackedTx, unpackTx, buildContractIdByContractTx, } from './tx/builder/index.js';
23
23
  export { buildContractId, oracleQueryId, produceNameId, commitmentHash, readInt, isName, ensureName, getDefaultPointerKey, getMinimumNameFee, computeBidFee, computeAuctionEndBlock, isAuctionName, } from './tx/builder/helpers.js';
24
24
  /**
25
25
  * @category contract
@@ -33,6 +33,8 @@ export { buildContractId as encodeContractAddress } from './tx/builder/helpers.j
33
33
  export { isName as isNameValid } from './tx/builder/helpers.js';
34
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';
35
35
  export type { Int, AensName } from './tx/builder/constants.js';
36
+ export { defaultProtocolParameters, getCachedProtocolParameters, } from './tx/builder/protocol-parameters.js';
37
+ export type { ProtocolParameters, ProtocolParametersOption, } from './tx/builder/protocol-parameters.js';
36
38
  export { ORACLE_TTL_TYPES } from './tx/builder/schema.js';
37
39
  export { DelegationTag } from './tx/builder/delegation/schema.js';
38
40
  export { packDelegation, unpackDelegation } from './tx/builder/delegation/index.js';
@@ -18,7 +18,7 @@ export { hashMessage as messageToHash } from './utils/crypto.js';
18
18
  export { verifyMessageSignature as verifyMessage } from './utils/crypto.js';
19
19
  export { signJwt, unpackJwt, verifyJwt, isJwt, ensureJwt } from './utils/jwt.js';
20
20
  export { toBytes } from './utils/bytes.js';
21
- export { buildTx, buildTxAsync, buildTxHash, unpackTx, buildContractIdByContractTx } from './tx/builder/index.js';
21
+ export { buildTx, buildTxAsync, buildTxHash, rebuildUnpackedTx, unpackTx, buildContractIdByContractTx } from './tx/builder/index.js';
22
22
  export { buildContractId, oracleQueryId, produceNameId, commitmentHash, readInt, isName, ensureName, getDefaultPointerKey, getMinimumNameFee, computeBidFee, computeAuctionEndBlock, isAuctionName } from './tx/builder/helpers.js';
23
23
  /**
24
24
  * @category contract
@@ -31,6 +31,7 @@ export { buildContractId as encodeContractAddress } from './tx/builder/helpers.j
31
31
  */
32
32
  export { isName as isNameValid } from './tx/builder/helpers.js';
33
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';
34
+ export { defaultProtocolParameters, getCachedProtocolParameters } from './tx/builder/protocol-parameters.js';
34
35
  // TODO: move to constants
35
36
  export { ORACLE_TTL_TYPES } from './tx/builder/schema.js';
36
37
  export { DelegationTag } from './tx/builder/delegation/schema.js';
@@ -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","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":[]}
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","rebuildUnpackedTx","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","defaultProtocolParameters","getCachedProtocolParameters","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 rebuildUnpackedTx,\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';\nexport {\n defaultProtocolParameters,\n getCachedProtocolParameters,\n} from './tx/builder/protocol-parameters.js';\nexport type {\n ProtocolParameters,\n ProtocolParametersOption,\n} from './tx/builder/protocol-parameters.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":[]}
@@ -7,8 +7,13 @@ export declare const DRY_RUN_ACCOUNT: {
7
7
  readonly amount: 100000000000000000000000000000000000n;
8
8
  };
9
9
  /**
10
+ * The maximum gas of a generalized account authentication function as it was at the moment of the
11
+ * SDK release. It is a node policy setting rather than a consensus parameter.
10
12
  * @category account generalized
11
- * @deprecated transaction builder will ensure that gas doesn't exceed the maximum value by itself
13
+ * @deprecated the transaction builder ensures that gas doesn't exceed the maximum by itself, and a
14
+ * node may accept another maximum than this constant. Use
15
+ * `(await getCachedProtocolParameters(node)).maxAuthFunGas` for the value the connected node
16
+ * reports, or `defaultProtocolParameters.maxAuthFunGas` for this one.
12
17
  */
13
18
  export declare const MAX_AUTH_FUN_GAS = 50000;
14
19
  /**
@@ -20,7 +25,11 @@ export type Int = number | string | BigNumber;
20
25
  */
21
26
  export type AensName = `${string}.chain`;
22
27
  /**
28
+ * The consensus minimum gas price as it was at the moment of the SDK release.
23
29
  * @category transaction builder
30
+ * @deprecated a node may run another minimum gas price, and this constant is wrong on it. Use
31
+ * `(await getCachedProtocolParameters(node)).minGasPrice` for the value the connected node
32
+ * reports, or `defaultProtocolParameters.minGasPrice` for this one.
24
33
  */
25
34
  export declare const MIN_GAS_PRICE = 1000000000;
26
35
  /**
@@ -61,7 +70,8 @@ export declare const NAME_BID_RANGES: {
61
70
  * @category chain
62
71
  */
63
72
  export declare enum ConsensusProtocolVersion {
64
- Ceres = 6
73
+ Ceres = 6,
74
+ Arcus = 7
65
75
  }
66
76
  /**
67
77
  * @category contract
@@ -10,8 +10,13 @@ export const DRY_RUN_ACCOUNT = {
10
10
  };
11
11
 
12
12
  /**
13
+ * The maximum gas of a generalized account authentication function as it was at the moment of the
14
+ * SDK release. It is a node policy setting rather than a consensus parameter.
13
15
  * @category account generalized
14
- * @deprecated transaction builder will ensure that gas doesn't exceed the maximum value by itself
16
+ * @deprecated the transaction builder ensures that gas doesn't exceed the maximum by itself, and a
17
+ * node may accept another maximum than this constant. Use
18
+ * `(await getCachedProtocolParameters(node)).maxAuthFunGas` for the value the connected node
19
+ * reports, or `defaultProtocolParameters.maxAuthFunGas` for this one.
15
20
  */
16
21
  export const MAX_AUTH_FUN_GAS = 50000;
17
22
  /**
@@ -23,7 +28,11 @@ export const MAX_AUTH_FUN_GAS = 50000;
23
28
  */
24
29
 
25
30
  /**
31
+ * The consensus minimum gas price as it was at the moment of the SDK release.
26
32
  * @category transaction builder
33
+ * @deprecated a node may run another minimum gas price, and this constant is wrong on it. Use
34
+ * `(await getCachedProtocolParameters(node)).minGasPrice` for the value the connected node
35
+ * reports, or `defaultProtocolParameters.minGasPrice` for this one.
27
36
  */
28
37
  export const MIN_GAS_PRICE = 1e9; // TODO: don't use number for ae
29
38
  /**
@@ -96,6 +105,7 @@ export const NAME_BID_RANGES = mapObject({
96
105
  */
97
106
  export let ConsensusProtocolVersion = /*#__PURE__*/function (ConsensusProtocolVersion) {
98
107
  ConsensusProtocolVersion[ConsensusProtocolVersion["Ceres"] = 6] = "Ceres";
108
+ ConsensusProtocolVersion[ConsensusProtocolVersion["Arcus"] = 7] = "Arcus";
99
109
  return ConsensusProtocolVersion;
100
110
  }({});
101
111
 
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","names":["BigNumber","mapObject","DRY_RUN_ACCOUNT","pub","amount","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","key","value","times","ConsensusProtocolVersion","VmVersion","AbiVersion","Tag"],"sources":["../../../src/tx/builder/constants.ts"],"sourcesContent":["import BigNumber from 'bignumber.js';\nimport { mapObject } from '../../utils/other.js';\n\n/**\n * @category transaction builder\n */\nexport const DRY_RUN_ACCOUNT = {\n pub: 'ak_11111111111111111111111111111111273Yts',\n amount: 100000000000000000000000000000000000n,\n} as const;\n\n/**\n * @category account generalized\n * @deprecated transaction builder will ensure that gas doesn't exceed the maximum value by itself\n */\nexport const MAX_AUTH_FUN_GAS = 50000;\n/**\n * @category utils\n */\nexport type Int = number | string | BigNumber;\n/**\n * @category AENS\n */\nexport type AensName = `${string}.chain`;\n/**\n * @category transaction builder\n */\nexport const MIN_GAS_PRICE = 1e9; // TODO: don't use number for ae\n/**\n * @category AENS\n * @see {@link https://github.com/aeternity/aeternity/blob/72e440b8731422e335f879a31ecbbee7ac23a1cf/apps/aecore/src/aec_governance.erl#L67}\n * @deprecated use {@link getMinimumNameFee} instead\n */\nexport const NAME_FEE_MULTIPLIER = 1e14;\n/**\n * The next bid should be at least 5% bigger than the previous one\n * @category AENS\n * @deprecated use {@link computeBidFee} instead\n */\nexport const NAME_FEE_BID_INCREMENT = 0.05;\n/**\n * Approximately 1 day\n * @category AENS\n * @see {@link https://github.com/aeternity/aeternity/blob/72e440b8731422e335f879a31ecbbee7ac23a1cf/apps/aecore/src/aec_governance.erl#L272}\n * @deprecated use {@link computeAuctionEndBlock} instead\n */\nexport const NAME_BID_TIMEOUT_BLOCKS = 480;\n/**\n * This is the max length for a domain that requires a base fee to be paid\n * @category AENS\n * @deprecated use {@link getMinimumNameFee} instead\n */\nexport const NAME_MAX_LENGTH_FEE = 31;\n/**\n * @category AENS\n * @see {@link https://github.com/aeternity/aeternity/blob/72e440b8731422e335f879a31ecbbee7ac23a1cf/apps/aecore/src/aec_governance.erl#L290}\n * @see {@link https://github.com/aeternity/protocol/blob/master/AENS.md#protocol-fees-and-protection-times}\n * @deprecated use {@link getMinimumNameFee} instead\n */\nexport const NAME_BID_RANGES = mapObject(\n {\n 31: 3,\n 30: 5,\n 29: 8,\n 28: 13,\n 27: 21,\n 26: 34,\n 25: 55,\n 24: 89,\n 23: 144,\n 22: 233,\n 21: 377,\n 20: 610,\n 19: 987,\n 18: 1597,\n 17: 2584,\n 16: 4181,\n 15: 6765,\n 14: 10946,\n 13: 17711,\n 12: 28657,\n 11: 46368,\n 10: 75025,\n 9: 121393,\n 8: 196418,\n 7: 317811,\n 6: 514229,\n 5: 832040,\n 4: 1346269,\n 3: 2178309,\n 2: 3524578,\n 1: 5702887,\n },\n ([key, value]) => [key, new BigNumber(value).times(NAME_FEE_MULTIPLIER)],\n);\n\n/**\n * @category chain\n */\nexport enum ConsensusProtocolVersion {\n Ceres = 6,\n}\n\n/**\n * @category contract\n * @see {@link https://github.com/aeternity/protocol/blob/0f6dee3d9d1e8e2469816798f5c7587a6c918f94/contracts/contract_vms.md#virtual-machines-on-the-%C3%A6ternity-blockchain}\n */\nexport enum VmVersion {\n NoVm = 0,\n Sophia = 1,\n SophiaImprovementsMinerva = 3,\n SophiaImprovementsFortuna = 4,\n Fate = 5,\n SophiaImprovementsLima = 6,\n Fate2 = 7,\n Fate3 = 8,\n}\n\n/**\n * @category contract\n * @see {@link https://github.com/aeternity/protocol/blob/0f6dee3d9d1e8e2469816798f5c7587a6c918f94/contracts/contract_vms.md#virtual-machines-on-the-%C3%A6ternity-blockchain}\n */\nexport enum AbiVersion {\n NoAbi = 0,\n Sophia = 1,\n Fate = 3,\n}\n\n/**\n * Enum with tag types\n * @category transaction builder\n * @see {@link https://github.com/aeternity/protocol/blob/0f6dee3d9d1e8e2469816798f5c7587a6c918f94/serializations.md#binary-serialization}\n * @see {@link https://github.com/aeternity/aeserialization/blob/eb68fe331bd476910394966b7f5ede7a74d37e35/src/aeser_chain_objects.erl#L39-L97}\n */\n// TODO: implement serialisation for commented-out tags\nexport enum Tag {\n SignedTx = 11,\n SpendTx = 12,\n OracleRegisterTx = 22,\n OracleQueryTx = 23,\n /**\n * @deprecated use `OracleRespondTx` instead\n */\n OracleResponseTx = 24,\n // eslint-disable-next-line @typescript-eslint/no-duplicate-enum-values\n OracleRespondTx = 24,\n OracleExtendTx = 25,\n NameClaimTx = 32,\n NamePreclaimTx = 33,\n NameUpdateTx = 34,\n NameRevokeTx = 35,\n NameTransferTx = 36,\n ContractCreateTx = 42,\n ContractCallTx = 43,\n ChannelCreateTx = 50,\n ChannelDepositTx = 51,\n ChannelWithdrawTx = 52,\n ChannelForceProgressTx = 521,\n ChannelCloseMutualTx = 53,\n ChannelCloseSoloTx = 54,\n ChannelSlashTx = 55,\n ChannelSettleTx = 56,\n ChannelOffChainTx = 57,\n ChannelSnapshotSoloTx = 59,\n GaAttachTx = 80,\n GaMetaTx = 81,\n PayingForTx = 82,\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"constants.js","names":["BigNumber","mapObject","DRY_RUN_ACCOUNT","pub","amount","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","key","value","times","ConsensusProtocolVersion","VmVersion","AbiVersion","Tag"],"sources":["../../../src/tx/builder/constants.ts"],"sourcesContent":["import BigNumber from 'bignumber.js';\nimport { mapObject } from '../../utils/other.js';\n\n/**\n * @category transaction builder\n */\nexport const DRY_RUN_ACCOUNT = {\n pub: 'ak_11111111111111111111111111111111273Yts',\n amount: 100000000000000000000000000000000000n,\n} as const;\n\n/**\n * The maximum gas of a generalized account authentication function as it was at the moment of the\n * SDK release. It is a node policy setting rather than a consensus parameter.\n * @category account generalized\n * @deprecated the transaction builder ensures that gas doesn't exceed the maximum by itself, and a\n * node may accept another maximum than this constant. Use\n * `(await getCachedProtocolParameters(node)).maxAuthFunGas` for the value the connected node\n * reports, or `defaultProtocolParameters.maxAuthFunGas` for this one.\n */\nexport const MAX_AUTH_FUN_GAS = 50000;\n/**\n * @category utils\n */\nexport type Int = number | string | BigNumber;\n/**\n * @category AENS\n */\nexport type AensName = `${string}.chain`;\n/**\n * The consensus minimum gas price as it was at the moment of the SDK release.\n * @category transaction builder\n * @deprecated a node may run another minimum gas price, and this constant is wrong on it. Use\n * `(await getCachedProtocolParameters(node)).minGasPrice` for the value the connected node\n * reports, or `defaultProtocolParameters.minGasPrice` for this one.\n */\nexport const MIN_GAS_PRICE = 1e9; // TODO: don't use number for ae\n/**\n * @category AENS\n * @see {@link https://github.com/aeternity/aeternity/blob/72e440b8731422e335f879a31ecbbee7ac23a1cf/apps/aecore/src/aec_governance.erl#L67}\n * @deprecated use {@link getMinimumNameFee} instead\n */\nexport const NAME_FEE_MULTIPLIER = 1e14;\n/**\n * The next bid should be at least 5% bigger than the previous one\n * @category AENS\n * @deprecated use {@link computeBidFee} instead\n */\nexport const NAME_FEE_BID_INCREMENT = 0.05;\n/**\n * Approximately 1 day\n * @category AENS\n * @see {@link https://github.com/aeternity/aeternity/blob/72e440b8731422e335f879a31ecbbee7ac23a1cf/apps/aecore/src/aec_governance.erl#L272}\n * @deprecated use {@link computeAuctionEndBlock} instead\n */\nexport const NAME_BID_TIMEOUT_BLOCKS = 480;\n/**\n * This is the max length for a domain that requires a base fee to be paid\n * @category AENS\n * @deprecated use {@link getMinimumNameFee} instead\n */\nexport const NAME_MAX_LENGTH_FEE = 31;\n/**\n * @category AENS\n * @see {@link https://github.com/aeternity/aeternity/blob/72e440b8731422e335f879a31ecbbee7ac23a1cf/apps/aecore/src/aec_governance.erl#L290}\n * @see {@link https://github.com/aeternity/protocol/blob/master/AENS.md#protocol-fees-and-protection-times}\n * @deprecated use {@link getMinimumNameFee} instead\n */\nexport const NAME_BID_RANGES = mapObject(\n {\n 31: 3,\n 30: 5,\n 29: 8,\n 28: 13,\n 27: 21,\n 26: 34,\n 25: 55,\n 24: 89,\n 23: 144,\n 22: 233,\n 21: 377,\n 20: 610,\n 19: 987,\n 18: 1597,\n 17: 2584,\n 16: 4181,\n 15: 6765,\n 14: 10946,\n 13: 17711,\n 12: 28657,\n 11: 46368,\n 10: 75025,\n 9: 121393,\n 8: 196418,\n 7: 317811,\n 6: 514229,\n 5: 832040,\n 4: 1346269,\n 3: 2178309,\n 2: 3524578,\n 1: 5702887,\n },\n ([key, value]) => [key, new BigNumber(value).times(NAME_FEE_MULTIPLIER)],\n);\n\n/**\n * @category chain\n */\nexport enum ConsensusProtocolVersion {\n Ceres = 6,\n Arcus = 7,\n}\n\n/**\n * @category contract\n * @see {@link https://github.com/aeternity/protocol/blob/0f6dee3d9d1e8e2469816798f5c7587a6c918f94/contracts/contract_vms.md#virtual-machines-on-the-%C3%A6ternity-blockchain}\n */\nexport enum VmVersion {\n NoVm = 0,\n Sophia = 1,\n SophiaImprovementsMinerva = 3,\n SophiaImprovementsFortuna = 4,\n Fate = 5,\n SophiaImprovementsLima = 6,\n Fate2 = 7,\n Fate3 = 8,\n}\n\n/**\n * @category contract\n * @see {@link https://github.com/aeternity/protocol/blob/0f6dee3d9d1e8e2469816798f5c7587a6c918f94/contracts/contract_vms.md#virtual-machines-on-the-%C3%A6ternity-blockchain}\n */\nexport enum AbiVersion {\n NoAbi = 0,\n Sophia = 1,\n Fate = 3,\n}\n\n/**\n * Enum with tag types\n * @category transaction builder\n * @see {@link https://github.com/aeternity/protocol/blob/0f6dee3d9d1e8e2469816798f5c7587a6c918f94/serializations.md#binary-serialization}\n * @see {@link https://github.com/aeternity/aeserialization/blob/eb68fe331bd476910394966b7f5ede7a74d37e35/src/aeser_chain_objects.erl#L39-L97}\n */\n// TODO: implement serialisation for commented-out tags\nexport enum Tag {\n SignedTx = 11,\n SpendTx = 12,\n OracleRegisterTx = 22,\n OracleQueryTx = 23,\n /**\n * @deprecated use `OracleRespondTx` instead\n */\n OracleResponseTx = 24,\n // eslint-disable-next-line @typescript-eslint/no-duplicate-enum-values\n OracleRespondTx = 24,\n OracleExtendTx = 25,\n NameClaimTx = 32,\n NamePreclaimTx = 33,\n NameUpdateTx = 34,\n NameRevokeTx = 35,\n NameTransferTx = 36,\n ContractCreateTx = 42,\n ContractCallTx = 43,\n ChannelCreateTx = 50,\n ChannelDepositTx = 51,\n ChannelWithdrawTx = 52,\n ChannelForceProgressTx = 521,\n ChannelCloseMutualTx = 53,\n ChannelCloseSoloTx = 54,\n ChannelSlashTx = 55,\n ChannelSettleTx = 56,\n ChannelOffChainTx = 57,\n ChannelSnapshotSoloTx = 59,\n GaAttachTx = 80,\n GaMetaTx = 81,\n PayingForTx = 82,\n}\n"],"mappings":"AAAA,OAAOA,SAAS,MAAM,cAAc;AACpC,SAASC,SAAS,QAAQ,sBAAsB;;AAEhD;AACA;AACA;AACA,OAAO,MAAMC,eAAe,GAAG;EAC7BC,GAAG,EAAE,2CAA2C;EAChDC,MAAM,EAAE;AACV,CAAU;;AAEV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,gBAAgB,GAAG,KAAK;AACrC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,aAAa,GAAG,GAAG,CAAC,CAAC;AAClC;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,mBAAmB,GAAG,IAAI;AACvC;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,sBAAsB,GAAG,IAAI;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,uBAAuB,GAAG,GAAG;AAC1C;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,mBAAmB,GAAG,EAAE;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,eAAe,GAAGV,SAAS,CACtC;EACE,EAAE,EAAE,CAAC;EACL,EAAE,EAAE,CAAC;EACL,EAAE,EAAE,CAAC;EACL,EAAE,EAAE,EAAE;EACN,EAAE,EAAE,EAAE;EACN,EAAE,EAAE,EAAE;EACN,EAAE,EAAE,EAAE;EACN,EAAE,EAAE,EAAE;EACN,EAAE,EAAE,GAAG;EACP,EAAE,EAAE,GAAG;EACP,EAAE,EAAE,GAAG;EACP,EAAE,EAAE,GAAG;EACP,EAAE,EAAE,GAAG;EACP,EAAE,EAAE,IAAI;EACR,EAAE,EAAE,IAAI;EACR,EAAE,EAAE,IAAI;EACR,EAAE,EAAE,IAAI;EACR,EAAE,EAAE,KAAK;EACT,EAAE,EAAE,KAAK;EACT,EAAE,EAAE,KAAK;EACT,EAAE,EAAE,KAAK;EACT,EAAE,EAAE,KAAK;EACT,CAAC,EAAE,MAAM;EACT,CAAC,EAAE,MAAM;EACT,CAAC,EAAE,MAAM;EACT,CAAC,EAAE,MAAM;EACT,CAAC,EAAE,MAAM;EACT,CAAC,EAAE,OAAO;EACV,CAAC,EAAE,OAAO;EACV,CAAC,EAAE,OAAO;EACV,CAAC,EAAE;AACL,CAAC,EACD,CAAC,CAACW,GAAG,EAAEC,KAAK,CAAC,KAAK,CAACD,GAAG,EAAE,IAAIZ,SAAS,CAACa,KAAK,CAAC,CAACC,KAAK,CAACP,mBAAmB,CAAC,CACzE,CAAC;;AAED;AACA;AACA;AACA,WAAYQ,wBAAwB,0BAAxBA,wBAAwB;EAAxBA,wBAAwB,CAAxBA,wBAAwB;EAAxBA,wBAAwB,CAAxBA,wBAAwB;EAAA,OAAxBA,wBAAwB;AAAA;;AAKpC;AACA;AACA;AACA;AACA,WAAYC,SAAS,0BAATA,SAAS;EAATA,SAAS,CAATA,SAAS;EAATA,SAAS,CAATA,SAAS;EAATA,SAAS,CAATA,SAAS;EAATA,SAAS,CAATA,SAAS;EAATA,SAAS,CAATA,SAAS;EAATA,SAAS,CAATA,SAAS;EAATA,SAAS,CAATA,SAAS;EAATA,SAAS,CAATA,SAAS;EAAA,OAATA,SAAS;AAAA;;AAWrB;AACA;AACA;AACA;AACA,WAAYC,UAAU,0BAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAA,OAAVA,UAAU;AAAA;;AAMtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAYC,GAAG,0BAAHA,GAAG;EAAHA,GAAG,CAAHA,GAAG;EAAHA,GAAG,CAAHA,GAAG;EAAHA,GAAG,CAAHA,GAAG;EAAHA,GAAG,CAAHA,GAAG;EAKb;AACF;AACA;EAPYA,GAAG,CAAHA,GAAG;EASb;EATUA,GAAG,CAAHA,GAAG;EAAHA,GAAG,CAAHA,GAAG;EAAHA,GAAG,CAAHA,GAAG;EAAHA,GAAG,CAAHA,GAAG;EAAHA,GAAG,CAAHA,GAAG;EAAHA,GAAG,CAAHA,GAAG;EAAHA,GAAG,CAAHA,GAAG;EAAHA,GAAG,CAAHA,GAAG;EAAHA,GAAG,CAAHA,GAAG;EAAHA,GAAG,CAAHA,GAAG;EAAHA,GAAG,CAAHA,GAAG;EAAHA,GAAG,CAAHA,GAAG;EAAHA,GAAG,CAAHA,GAAG;EAAHA,GAAG,CAAHA,GAAG;EAAHA,GAAG,CAAHA,GAAG;EAAHA,GAAG,CAAHA,GAAG;EAAHA,GAAG,CAAHA,GAAG;EAAHA,GAAG,CAAHA,GAAG;EAAHA,GAAG,CAAHA,GAAG;EAAHA,GAAG,CAAHA,GAAG;EAAHA,GAAG,CAAHA,GAAG;EAAHA,GAAG,CAAHA,GAAG;EAAA,OAAHA,GAAG;AAAA","ignoreList":[]}
@@ -2,6 +2,7 @@ import { Encoding } from '../../../utils/encoder.js';
2
2
  import { packRecord, unpackRecord } from '../common.js';
3
3
  import { schemas } from './schema.js';
4
4
  import { EntryTag } from './constants.js';
5
+ import { checkParametersUsable } from '../protocol-parameters.js';
5
6
  const encodingTag = [[EntryTag.CallsMtree, Encoding.CallStateTree], [EntryTag.StateTrees, Encoding.StateTrees], [EntryTag.TreesPoi, Encoding.Poi]];
6
7
 
7
8
  /**
@@ -13,6 +14,11 @@ const encodingTag = [[EntryTag.CallsMtree, Encoding.CallStateTree], [EntryTag.St
13
14
 
14
15
  export function packEntry(params) {
15
16
  var _encodingTag$find$;
17
+ // `GaMetaTxAuthData` holds a `gasPrice` priced by them, see the note in `buildTx`
18
+ const {
19
+ protocolParameters
20
+ } = params;
21
+ if (protocolParameters != null) checkParametersUsable(protocolParameters);
16
22
  const encoding = (_encodingTag$find$ = encodingTag.find(([tag]) => tag === params.tag)?.[1]) !== null && _encodingTag$find$ !== void 0 ? _encodingTag$find$ : Encoding.Bytearray;
17
23
  return packRecord(schemas, EntryTag, params, {
18
24
  packEntry