@aeternity/aepp-sdk 14.1.0 → 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 (91) 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 +10776 -6350
  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/aens.d.ts +10 -2
  13. package/es/aens.js +10 -2
  14. package/es/aens.js.map +1 -1
  15. package/es/apis/middleware/models/index.js.map +1 -1
  16. package/es/apis/node/models/index.d.ts +405 -79
  17. package/es/apis/node/models/index.js.map +1 -1
  18. package/es/apis/node/models/mappers.d.ts +54 -4
  19. package/es/apis/node/models/mappers.js +1910 -500
  20. package/es/apis/node/models/mappers.js.map +1 -1
  21. package/es/apis/node/node.d.ts +28 -6
  22. package/es/apis/node/node.js +276 -5
  23. package/es/apis/node/node.js.map +1 -1
  24. package/es/channel/Contract.d.ts +5 -0
  25. package/es/channel/Contract.js +8 -2
  26. package/es/channel/Contract.js.map +1 -1
  27. package/es/channel/handlers.js +3 -3
  28. package/es/channel/handlers.js.map +1 -1
  29. package/es/contract/compiler/Cli.js +6 -2
  30. package/es/contract/compiler/Cli.js.map +1 -1
  31. package/es/contract/ga.d.ts +5 -2
  32. package/es/contract/ga.js +53 -21
  33. package/es/contract/ga.js.map +1 -1
  34. package/es/index-browser.d.ts +3 -1
  35. package/es/index-browser.js +2 -1
  36. package/es/index-browser.js.map +1 -1
  37. package/es/tx/builder/constants.d.ts +12 -2
  38. package/es/tx/builder/constants.js +11 -1
  39. package/es/tx/builder/constants.js.map +1 -1
  40. package/es/tx/builder/entry/index.js +6 -0
  41. package/es/tx/builder/entry/index.js.map +1 -1
  42. package/es/tx/builder/entry/schema.d.ts +10 -10
  43. package/es/tx/builder/field-types/ct-version.d.ts +14 -0
  44. package/es/tx/builder/field-types/ct-version.js +14 -0
  45. package/es/tx/builder/field-types/ct-version.js.map +1 -1
  46. package/es/tx/builder/field-types/fee.d.ts +9 -7
  47. package/es/tx/builder/field-types/fee.js +75 -66
  48. package/es/tx/builder/field-types/fee.js.map +1 -1
  49. package/es/tx/builder/field-types/gas-limit.d.ts +5 -3
  50. package/es/tx/builder/field-types/gas-limit.js +25 -14
  51. package/es/tx/builder/field-types/gas-limit.js.map +1 -1
  52. package/es/tx/builder/field-types/gas-price.d.ts +6 -4
  53. package/es/tx/builder/field-types/gas-price.js +87 -21
  54. package/es/tx/builder/field-types/gas-price.js.map +1 -1
  55. package/es/tx/builder/field-types/interface.d.ts +20 -0
  56. package/es/tx/builder/field-types/interface.js +17 -1
  57. package/es/tx/builder/field-types/interface.js.map +1 -1
  58. package/es/tx/builder/field-types/name-fee.d.ts +3 -2
  59. package/es/tx/builder/field-types/name-fee.js +6 -0
  60. package/es/tx/builder/field-types/name-fee.js.map +1 -1
  61. package/es/tx/builder/field-types/pointers.d.ts +2 -1
  62. package/es/tx/builder/field-types/pointers.js +6 -2
  63. package/es/tx/builder/field-types/pointers.js.map +1 -1
  64. package/es/tx/builder/field-types/transaction.d.ts +4 -1
  65. package/es/tx/builder/field-types/transaction.js +18 -3
  66. package/es/tx/builder/field-types/transaction.js.map +1 -1
  67. package/es/tx/builder/field-types/ttl.d.ts +1 -2
  68. package/es/tx/builder/field-types/ttl.js +7 -4
  69. package/es/tx/builder/field-types/ttl.js.map +1 -1
  70. package/es/tx/builder/field-types/with-formatting.d.ts +1 -1
  71. package/es/tx/builder/field-types/with-formatting.js +1 -1
  72. package/es/tx/builder/field-types/with-formatting.js.map +1 -1
  73. package/es/tx/builder/index.d.ts +13 -0
  74. package/es/tx/builder/index.js +92 -5
  75. package/es/tx/builder/index.js.map +1 -1
  76. package/es/tx/builder/protocol-parameters.d.ts +123 -0
  77. package/es/tx/builder/protocol-parameters.js +519 -0
  78. package/es/tx/builder/protocol-parameters.js.map +1 -0
  79. package/es/tx/builder/schema.d.ts +179 -201
  80. package/es/tx/builder/schema.js +5 -1
  81. package/es/tx/builder/schema.js.map +1 -1
  82. package/es/tx/execution-cost.js +5 -5
  83. package/es/tx/execution-cost.js.map +1 -1
  84. package/es/tx/transaction-signer.js +2 -2
  85. package/es/tx/transaction-signer.js.map +1 -1
  86. package/es/tx/validator.js +4 -4
  87. package/es/tx/validator.js.map +1 -1
  88. package/es/utils/wrap-proxy.d.ts +10 -0
  89. package/es/utils/wrap-proxy.js +18 -0
  90. package/es/utils/wrap-proxy.js.map +1 -1
  91. package/package.json +3 -3
@@ -2,6 +2,7 @@ import { Encoded } from '../utils/encoder.js';
2
2
  import Node from '../Node.js';
3
3
  import CompilerBase from '../contract/compiler/Base.js';
4
4
  import { Int } from '../tx/builder/constants.js';
5
+ import type { ProtocolParametersOption } from '../tx/builder/protocol-parameters.js';
5
6
  import { AciValue, Domain } from '../utils/typed-data.js';
6
7
  interface AuthData {
7
8
  fee?: Int;
@@ -23,6 +24,10 @@ export default abstract class AccountBase {
23
24
  * @param options - Options
24
25
  * @param options.innerTx - Sign as inner transaction for PayingFor
25
26
  * @param options.authData - Object with gaMeta params
27
+ * @param options.protocolParameters - Consensus parameters to build the wrapping `GaMetaTx` of a
28
+ * generalized account against, requested from node if not provided. Not forwarded to an account
29
+ * behind a wallet RPC connection — such an account builds against the parameters of the node the
30
+ * wallet is connected to
26
31
  * @returns Signed transaction
27
32
  */
28
33
  abstract signTransaction(tx: Encoded.Transaction, options: {
@@ -33,7 +38,7 @@ export default abstract class AccountBase {
33
38
  onCompiler?: CompilerBase;
34
39
  aeppOrigin?: string;
35
40
  aeppRpcClientId?: string;
36
- }): Promise<Encoded.Transaction>;
41
+ } & ProtocolParametersOption): Promise<Encoded.Transaction>;
37
42
  /**
38
43
  * Sign message
39
44
  * @param message - Message to sign
@@ -1 +1 @@
1
- {"version":3,"file":"Base.js","names":["AccountBase"],"sources":["../../src/account/Base.ts"],"sourcesContent":["import { Encoded } from '../utils/encoder.js';\nimport Node from '../Node.js';\nimport CompilerBase from '../contract/compiler/Base.js';\nimport { Int } from '../tx/builder/constants.js';\nimport { AciValue, Domain } from '../utils/typed-data.js';\n\ninterface AuthData {\n fee?: Int;\n gasLimit?: number;\n gasPrice?: Int;\n callData?: Encoded.ContractBytearray;\n sourceCode?: string;\n args?: any[];\n}\n\n/**\n * Account is one of the three basic building blocks of an\n * {@link AeSdk} and provides access to a signing key pair.\n * @category account\n */\nexport default abstract class AccountBase {\n /**\n * Sign encoded transaction\n * @param tx - Transaction to sign\n * @param options - Options\n * @param options.innerTx - Sign as inner transaction for PayingFor\n * @param options.authData - Object with gaMeta params\n * @returns Signed transaction\n */\n abstract signTransaction(\n tx: Encoded.Transaction,\n options: {\n innerTx?: boolean;\n networkId?: string;\n authData?: AuthData | ((tx: Encoded.Transaction) => Promise<AuthData>);\n onNode?: Node;\n onCompiler?: CompilerBase;\n aeppOrigin?: string;\n aeppRpcClientId?: string;\n },\n ): Promise<Encoded.Transaction>;\n\n /**\n * Sign message\n * @param message - Message to sign\n * @param options - Options\n * @returns Signature\n */\n abstract signMessage(\n message: string,\n options?: {\n aeppOrigin?: string;\n aeppRpcClientId?: string;\n },\n ): Promise<Uint8Array>;\n\n /**\n * Sign typed data\n * @param data - Encoded data to sign\n * @param aci - Type of data to sign\n * @param options - Options\n * @returns Signature\n */\n abstract signTypedData(\n data: Encoded.ContractBytearray,\n aci: AciValue,\n options?: Domain & {\n aeppOrigin?: string;\n aeppRpcClientId?: string;\n },\n ): Promise<Encoded.Signature>;\n\n /**\n * Sign data blob\n * @param data - Data blob to sign\n * @param options - Options\n * @returns Signature\n * @deprecated Use `unsafeSign` method instead\n */\n abstract sign(\n data: string | Uint8Array,\n options?: {\n aeppOrigin?: string;\n aeppRpcClientId?: string;\n },\n ): Promise<Uint8Array>;\n\n /**\n * Sign data blob\n * @param data - Data blob to sign\n * @param options - Options\n * @returns Signature\n */\n abstract unsafeSign(\n data: string | Uint8Array,\n options?: {\n aeppOrigin?: string;\n aeppRpcClientId?: string;\n },\n ): Promise<Uint8Array>;\n\n /**\n * Account address\n */\n readonly address!: Encoded.AccountAddress;\n\n /**\n * Sign delegation, works only in Ceres\n * @param delegation - Delegation to sign\n * @param options - Options\n * @returns Signature\n */\n abstract signDelegation(\n delegation: Encoded.Bytearray,\n options?: {\n networkId?: string;\n aeppOrigin?: string;\n aeppRpcClientId?: string;\n },\n ): Promise<Encoded.Signature>;\n}\n"],"mappings":"AAeA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAeA,WAAW,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"Base.js","names":["AccountBase"],"sources":["../../src/account/Base.ts"],"sourcesContent":["import { Encoded } from '../utils/encoder.js';\nimport Node from '../Node.js';\nimport CompilerBase from '../contract/compiler/Base.js';\nimport { Int } from '../tx/builder/constants.js';\nimport type { ProtocolParametersOption } from '../tx/builder/protocol-parameters.js';\nimport { AciValue, Domain } from '../utils/typed-data.js';\n\ninterface AuthData {\n fee?: Int;\n gasLimit?: number;\n gasPrice?: Int;\n callData?: Encoded.ContractBytearray;\n sourceCode?: string;\n args?: any[];\n}\n\n/**\n * Account is one of the three basic building blocks of an\n * {@link AeSdk} and provides access to a signing key pair.\n * @category account\n */\nexport default abstract class AccountBase {\n /**\n * Sign encoded transaction\n * @param tx - Transaction to sign\n * @param options - Options\n * @param options.innerTx - Sign as inner transaction for PayingFor\n * @param options.authData - Object with gaMeta params\n * @param options.protocolParameters - Consensus parameters to build the wrapping `GaMetaTx` of a\n * generalized account against, requested from node if not provided. Not forwarded to an account\n * behind a wallet RPC connection — such an account builds against the parameters of the node the\n * wallet is connected to\n * @returns Signed transaction\n */\n abstract signTransaction(\n tx: Encoded.Transaction,\n options: {\n innerTx?: boolean;\n networkId?: string;\n authData?: AuthData | ((tx: Encoded.Transaction) => Promise<AuthData>);\n onNode?: Node;\n onCompiler?: CompilerBase;\n aeppOrigin?: string;\n aeppRpcClientId?: string;\n } & ProtocolParametersOption,\n ): Promise<Encoded.Transaction>;\n\n /**\n * Sign message\n * @param message - Message to sign\n * @param options - Options\n * @returns Signature\n */\n abstract signMessage(\n message: string,\n options?: {\n aeppOrigin?: string;\n aeppRpcClientId?: string;\n },\n ): Promise<Uint8Array>;\n\n /**\n * Sign typed data\n * @param data - Encoded data to sign\n * @param aci - Type of data to sign\n * @param options - Options\n * @returns Signature\n */\n abstract signTypedData(\n data: Encoded.ContractBytearray,\n aci: AciValue,\n options?: Domain & {\n aeppOrigin?: string;\n aeppRpcClientId?: string;\n },\n ): Promise<Encoded.Signature>;\n\n /**\n * Sign data blob\n * @param data - Data blob to sign\n * @param options - Options\n * @returns Signature\n * @deprecated Use `unsafeSign` method instead\n */\n abstract sign(\n data: string | Uint8Array,\n options?: {\n aeppOrigin?: string;\n aeppRpcClientId?: string;\n },\n ): Promise<Uint8Array>;\n\n /**\n * Sign data blob\n * @param data - Data blob to sign\n * @param options - Options\n * @returns Signature\n */\n abstract unsafeSign(\n data: string | Uint8Array,\n options?: {\n aeppOrigin?: string;\n aeppRpcClientId?: string;\n },\n ): Promise<Uint8Array>;\n\n /**\n * Account address\n */\n readonly address!: Encoded.AccountAddress;\n\n /**\n * Sign delegation, works only in Ceres\n * @param delegation - Delegation to sign\n * @param options - Options\n * @returns Signature\n */\n abstract signDelegation(\n delegation: Encoded.Bytearray,\n options?: {\n networkId?: string;\n aeppOrigin?: string;\n aeppRpcClientId?: string;\n },\n ): Promise<Encoded.Signature>;\n}\n"],"mappings":"AAgBA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAeA,WAAW,CAAC","ignoreList":[]}
@@ -19,5 +19,5 @@ export default class AccountGeneralized extends AccountBase {
19
19
  signMessage(): Promise<Uint8Array>;
20
20
  signTypedData(): Promise<Encoded.Signature>;
21
21
  signDelegation(): Promise<Encoded.Signature>;
22
- signTransaction(tx: Encoded.Transaction, { authData, onCompiler, onNode }: Parameters<AccountBase['signTransaction']>[1]): Promise<Encoded.Transaction>;
22
+ signTransaction(tx: Encoded.Transaction, { authData, onCompiler, onNode, protocolParameters, }: Parameters<AccountBase['signTransaction']>[1]): Promise<Encoded.Transaction>;
23
23
  }
@@ -57,7 +57,8 @@ export default class AccountGeneralized extends AccountBase {
57
57
  async signTransaction(tx, {
58
58
  authData,
59
59
  onCompiler,
60
- onNode
60
+ onNode,
61
+ protocolParameters
61
62
  }) {
62
63
  if (authData == null || onCompiler == null || onNode == null) {
63
64
  throw new ArgumentError('authData, onCompiler, onNode', 'provided', null);
@@ -105,6 +106,11 @@ export default class AccountGeneralized extends AccountBase {
105
106
  fee,
106
107
  gasLimit,
107
108
  gasPrice,
109
+ // the wrapping transaction is priced by the same parameters the caller asked the inner one
110
+ // to be built against, `buildTxAsync` requests them from node if not provided
111
+ ...(protocolParameters != null && {
112
+ protocolParameters
113
+ }),
108
114
  onNode
109
115
  });
110
116
  return buildTx({
@@ -1 +1 @@
1
- {"version":3,"file":"Generalized.js","names":["AccountBase","ArgumentError","InternalError","InvalidAuthDataError","NotImplementedError","decode","getAccount","Contract","buildTxAsync","buildTx","Tag","_authFun","WeakMap","AccountGeneralized","constructor","address","_classPrivateFieldInitSpec","sign","unsafeSign","signMessage","signTypedData","signDelegation","signTransaction","tx","authData","onCompiler","onNode","callData","sourceCode","args","fee","gasLimit","gasPrice","authCallData","_classPrivateFieldGet","account","kind","_classPrivateFieldSet","authFun","contract","initialize","_calldata","encode","_name","gaMetaTx","tag","GaMetaTx","SignedTx","encodedTx","signatures","gaId"],"sources":["../../src/account/Generalized.ts"],"sourcesContent":["import AccountBase from './Base.js';\nimport {\n ArgumentError,\n InternalError,\n InvalidAuthDataError,\n NotImplementedError,\n} from '../utils/errors.js';\nimport { decode, Encoded } from '../utils/encoder.js';\nimport { getAccount } from '../chain.js';\nimport Contract from '../contract/Contract.js';\nimport { buildTxAsync, buildTx } from '../tx/builder/index.js';\nimport { Tag } from '../tx/builder/constants.js';\n\n/**\n * Generalized account class\n * @category account generalized\n */\nexport default class AccountGeneralized extends AccountBase {\n override readonly address: Encoded.AccountAddress;\n\n #authFun?: string;\n\n /**\n * @param address - Address of generalized account\n */\n constructor(address: Encoded.AccountAddress) {\n super();\n decode(address);\n this.address = address;\n }\n\n /**\n * @deprecated Use `unsafeSign` method instead\n */\n // eslint-disable-next-line class-methods-use-this\n override async sign(): Promise<Uint8Array> {\n return this.unsafeSign();\n }\n\n // eslint-disable-next-line class-methods-use-this\n override async unsafeSign(): Promise<Uint8Array> {\n throw new NotImplementedError(\"Can't sign using generalized account\");\n }\n\n // eslint-disable-next-line class-methods-use-this\n override async signMessage(): Promise<Uint8Array> {\n throw new NotImplementedError(\"Can't sign using generalized account\");\n }\n\n // eslint-disable-next-line class-methods-use-this\n override async signTypedData(): Promise<Encoded.Signature> {\n throw new NotImplementedError(\"Can't sign using generalized account\");\n }\n\n // eslint-disable-next-line class-methods-use-this\n override async signDelegation(): Promise<Encoded.Signature> {\n throw new NotImplementedError('signing delegation using generalized account');\n }\n\n override async signTransaction(\n tx: Encoded.Transaction,\n { authData, onCompiler, onNode }: Parameters<AccountBase['signTransaction']>[1],\n ): Promise<Encoded.Transaction> {\n if (authData == null || onCompiler == null || onNode == null) {\n throw new ArgumentError('authData, onCompiler, onNode', 'provided', null);\n }\n const { callData, sourceCode, args, fee, gasLimit, gasPrice } =\n typeof authData === 'function' ? await authData(tx) : authData;\n\n const authCallData =\n callData ??\n (await (async () => {\n if (this.#authFun == null) {\n const account = await getAccount(this.address, { onNode });\n if (account.kind !== 'generalized') {\n throw new ArgumentError('account kind', 'generalized', account.kind);\n }\n this.#authFun = account.authFun;\n }\n if (this.#authFun == null) {\n throw new InternalError('Account in generalised, but authFun not provided');\n }\n\n if (sourceCode == null || args == null) {\n throw new InvalidAuthDataError('Auth data must contain sourceCode and args or callData.');\n }\n const contract = await Contract.initialize({ onCompiler, onNode, sourceCode });\n return contract._calldata.encode(contract._name, this.#authFun, args);\n })());\n\n const gaMetaTx = await buildTxAsync({\n tag: Tag.GaMetaTx,\n tx: { tag: Tag.SignedTx, encodedTx: decode(tx), signatures: [] },\n gaId: this.address,\n authData: authCallData,\n fee,\n gasLimit,\n gasPrice,\n onNode,\n });\n return buildTx({ tag: Tag.SignedTx, encodedTx: decode(gaMetaTx), signatures: [] });\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Generalized.js","names":["AccountBase","ArgumentError","InternalError","InvalidAuthDataError","NotImplementedError","decode","getAccount","Contract","buildTxAsync","buildTx","Tag","_authFun","WeakMap","AccountGeneralized","constructor","address","_classPrivateFieldInitSpec","sign","unsafeSign","signMessage","signTypedData","signDelegation","signTransaction","tx","authData","onCompiler","onNode","protocolParameters","callData","sourceCode","args","fee","gasLimit","gasPrice","authCallData","_classPrivateFieldGet","account","kind","_classPrivateFieldSet","authFun","contract","initialize","_calldata","encode","_name","gaMetaTx","tag","GaMetaTx","SignedTx","encodedTx","signatures","gaId"],"sources":["../../src/account/Generalized.ts"],"sourcesContent":["import AccountBase from './Base.js';\nimport {\n ArgumentError,\n InternalError,\n InvalidAuthDataError,\n NotImplementedError,\n} from '../utils/errors.js';\nimport { decode, Encoded } from '../utils/encoder.js';\nimport { getAccount } from '../chain.js';\nimport Contract from '../contract/Contract.js';\nimport { buildTxAsync, buildTx } from '../tx/builder/index.js';\nimport { Tag } from '../tx/builder/constants.js';\n\n/**\n * Generalized account class\n * @category account generalized\n */\nexport default class AccountGeneralized extends AccountBase {\n override readonly address: Encoded.AccountAddress;\n\n #authFun?: string;\n\n /**\n * @param address - Address of generalized account\n */\n constructor(address: Encoded.AccountAddress) {\n super();\n decode(address);\n this.address = address;\n }\n\n /**\n * @deprecated Use `unsafeSign` method instead\n */\n // eslint-disable-next-line class-methods-use-this\n override async sign(): Promise<Uint8Array> {\n return this.unsafeSign();\n }\n\n // eslint-disable-next-line class-methods-use-this\n override async unsafeSign(): Promise<Uint8Array> {\n throw new NotImplementedError(\"Can't sign using generalized account\");\n }\n\n // eslint-disable-next-line class-methods-use-this\n override async signMessage(): Promise<Uint8Array> {\n throw new NotImplementedError(\"Can't sign using generalized account\");\n }\n\n // eslint-disable-next-line class-methods-use-this\n override async signTypedData(): Promise<Encoded.Signature> {\n throw new NotImplementedError(\"Can't sign using generalized account\");\n }\n\n // eslint-disable-next-line class-methods-use-this\n override async signDelegation(): Promise<Encoded.Signature> {\n throw new NotImplementedError('signing delegation using generalized account');\n }\n\n override async signTransaction(\n tx: Encoded.Transaction,\n {\n authData,\n onCompiler,\n onNode,\n protocolParameters,\n }: Parameters<AccountBase['signTransaction']>[1],\n ): Promise<Encoded.Transaction> {\n if (authData == null || onCompiler == null || onNode == null) {\n throw new ArgumentError('authData, onCompiler, onNode', 'provided', null);\n }\n const { callData, sourceCode, args, fee, gasLimit, gasPrice } =\n typeof authData === 'function' ? await authData(tx) : authData;\n\n const authCallData =\n callData ??\n (await (async () => {\n if (this.#authFun == null) {\n const account = await getAccount(this.address, { onNode });\n if (account.kind !== 'generalized') {\n throw new ArgumentError('account kind', 'generalized', account.kind);\n }\n this.#authFun = account.authFun;\n }\n if (this.#authFun == null) {\n throw new InternalError('Account in generalised, but authFun not provided');\n }\n\n if (sourceCode == null || args == null) {\n throw new InvalidAuthDataError('Auth data must contain sourceCode and args or callData.');\n }\n const contract = await Contract.initialize({ onCompiler, onNode, sourceCode });\n return contract._calldata.encode(contract._name, this.#authFun, args);\n })());\n\n const gaMetaTx = await buildTxAsync({\n tag: Tag.GaMetaTx,\n tx: { tag: Tag.SignedTx, encodedTx: decode(tx), signatures: [] },\n gaId: this.address,\n authData: authCallData,\n fee,\n gasLimit,\n gasPrice,\n // the wrapping transaction is priced by the same parameters the caller asked the inner one\n // to be built against, `buildTxAsync` requests them from node if not provided\n ...(protocolParameters != null && { protocolParameters }),\n onNode,\n });\n return buildTx({ tag: Tag.SignedTx, encodedTx: decode(gaMetaTx), signatures: [] });\n }\n}\n"],"mappings":";;;;;AAAA,OAAOA,WAAW,MAAM,WAAW;AACnC,SACEC,aAAa,EACbC,aAAa,EACbC,oBAAoB,EACpBC,mBAAmB,QACd,oBAAoB;AAC3B,SAASC,MAAM,QAAiB,qBAAqB;AACrD,SAASC,UAAU,QAAQ,aAAa;AACxC,OAAOC,QAAQ,MAAM,yBAAyB;AAC9C,SAASC,YAAY,EAAEC,OAAO,QAAQ,wBAAwB;AAC9D,SAASC,GAAG,QAAQ,4BAA4B;;AAEhD;AACA;AACA;AACA;AAHA,IAAAC,QAAA,oBAAAC,OAAA;AAIA,eAAe,MAAMC,kBAAkB,SAASb,WAAW,CAAC;EAK1D;AACF;AACA;EACEc,WAAWA,CAACC,OAA+B,EAAE;IAC3C,KAAK,CAAC,CAAC;IANTC,0BAAA,OAAAL,QAAQ;IAONN,MAAM,CAACU,OAAO,CAAC;IACf,IAAI,CAACA,OAAO,GAAGA,OAAO;EACxB;;EAEA;AACF;AACA;EACE;EACA,MAAeE,IAAIA,CAAA,EAAwB;IACzC,OAAO,IAAI,CAACC,UAAU,CAAC,CAAC;EAC1B;;EAEA;EACA,MAAeA,UAAUA,CAAA,EAAwB;IAC/C,MAAM,IAAId,mBAAmB,CAAC,sCAAsC,CAAC;EACvE;;EAEA;EACA,MAAee,WAAWA,CAAA,EAAwB;IAChD,MAAM,IAAIf,mBAAmB,CAAC,sCAAsC,CAAC;EACvE;;EAEA;EACA,MAAegB,aAAaA,CAAA,EAA+B;IACzD,MAAM,IAAIhB,mBAAmB,CAAC,sCAAsC,CAAC;EACvE;;EAEA;EACA,MAAeiB,cAAcA,CAAA,EAA+B;IAC1D,MAAM,IAAIjB,mBAAmB,CAAC,8CAA8C,CAAC;EAC/E;EAEA,MAAekB,eAAeA,CAC5BC,EAAuB,EACvB;IACEC,QAAQ;IACRC,UAAU;IACVC,MAAM;IACNC;EAC6C,CAAC,EAClB;IAC9B,IAAIH,QAAQ,IAAI,IAAI,IAAIC,UAAU,IAAI,IAAI,IAAIC,MAAM,IAAI,IAAI,EAAE;MAC5D,MAAM,IAAIzB,aAAa,CAAC,8BAA8B,EAAE,UAAU,EAAE,IAAI,CAAC;IAC3E;IACA,MAAM;MAAE2B,QAAQ;MAAEC,UAAU;MAAEC,IAAI;MAAEC,GAAG;MAAEC,QAAQ;MAAEC;IAAS,CAAC,GAC3D,OAAOT,QAAQ,KAAK,UAAU,GAAG,MAAMA,QAAQ,CAACD,EAAE,CAAC,GAAGC,QAAQ;IAEhE,MAAMU,YAAY,GAChBN,QAAQ,aAARA,QAAQ,cAARA,QAAQ,GACP,MAAM,CAAC,YAAY;MAClB,IAAIO,qBAAA,CAAKxB,QAAQ,EAAb,IAAY,CAAC,IAAI,IAAI,EAAE;QACzB,MAAMyB,OAAO,GAAG,MAAM9B,UAAU,CAAC,IAAI,CAACS,OAAO,EAAE;UAAEW;QAAO,CAAC,CAAC;QAC1D,IAAIU,OAAO,CAACC,IAAI,KAAK,aAAa,EAAE;UAClC,MAAM,IAAIpC,aAAa,CAAC,cAAc,EAAE,aAAa,EAAEmC,OAAO,CAACC,IAAI,CAAC;QACtE;QACAC,qBAAA,CAAK3B,QAAQ,EAAb,IAAI,EAAYyB,OAAO,CAACG,OAAZ,CAAC;MACf;MACA,IAAIJ,qBAAA,CAAKxB,QAAQ,EAAb,IAAY,CAAC,IAAI,IAAI,EAAE;QACzB,MAAM,IAAIT,aAAa,CAAC,kDAAkD,CAAC;MAC7E;MAEA,IAAI2B,UAAU,IAAI,IAAI,IAAIC,IAAI,IAAI,IAAI,EAAE;QACtC,MAAM,IAAI3B,oBAAoB,CAAC,yDAAyD,CAAC;MAC3F;MACA,MAAMqC,QAAQ,GAAG,MAAMjC,QAAQ,CAACkC,UAAU,CAAC;QAAEhB,UAAU;QAAEC,MAAM;QAAEG;MAAW,CAAC,CAAC;MAC9E,OAAOW,QAAQ,CAACE,SAAS,CAACC,MAAM,CAACH,QAAQ,CAACI,KAAK,EAAET,qBAAA,CAAKxB,QAAQ,EAAb,IAAY,CAAC,EAAEmB,IAAI,CAAC;IACvE,CAAC,EAAE,CAAE;IAEP,MAAMe,QAAQ,GAAG,MAAMrC,YAAY,CAAC;MAClCsC,GAAG,EAAEpC,GAAG,CAACqC,QAAQ;MACjBxB,EAAE,EAAE;QAAEuB,GAAG,EAAEpC,GAAG,CAACsC,QAAQ;QAAEC,SAAS,EAAE5C,MAAM,CAACkB,EAAE,CAAC;QAAE2B,UAAU,EAAE;MAAG,CAAC;MAChEC,IAAI,EAAE,IAAI,CAACpC,OAAO;MAClBS,QAAQ,EAAEU,YAAY;MACtBH,GAAG;MACHC,QAAQ;MACRC,QAAQ;MACR;MACA;MACA,IAAIN,kBAAkB,IAAI,IAAI,IAAI;QAAEA;MAAmB,CAAC,CAAC;MACzDD;IACF,CAAC,CAAC;IACF,OAAOjB,OAAO,CAAC;MAAEqC,GAAG,EAAEpC,GAAG,CAACsC,QAAQ;MAAEC,SAAS,EAAE5C,MAAM,CAACwC,QAAQ,CAAC;MAAEK,UAAU,EAAE;IAAG,CAAC,CAAC;EACpF;AACF","ignoreList":[]}
package/es/aens.d.ts CHANGED
@@ -136,7 +136,12 @@ export default class Name {
136
136
  */
137
137
  extendTtl(nameTtl?: number, options?: Omit<Parameters<Name['update']>[1], 'extendPointers' | 'nameTtl'>): ReturnType<Name['update']>;
138
138
  /**
139
- * Claim a previously preclaimed registration. This can only be done after the preclaim step
139
+ * Claim a name.
140
+ *
141
+ * Since the Ceres protocol upgrade, it is possible to claim a name without preclaiming it.
142
+ * If you preclaim, wait for at least 1 key block to be mined before exposing a name in the
143
+ * NameClaimTx to ensure that nobody can front-run the claim.
144
+ *
140
145
  * @param options - options
141
146
  * @returns mined transaction details
142
147
  * @example
@@ -146,7 +151,10 @@ export default class Name {
146
151
  */
147
152
  claim(options?: NameClaimOptions): ReturnType<typeof sendTransaction>;
148
153
  /**
149
- * Preclaim a name. Sends a hash of the name and a random salt to the node
154
+ * Preclaim a name. This sends a commitment hash (derived from the name and a random salt) to
155
+ * the node. Preclaiming was required to claim a name before the Ceres protocol upgrade.
156
+ * After the upgrade, preclaiming is optional but still available for added security if you
157
+ * want to claim a non-auction name.
150
158
  * @param options - Options
151
159
  * @example
152
160
  * ```js
package/es/aens.js CHANGED
@@ -207,7 +207,12 @@ export default class Name {
207
207
  }
208
208
 
209
209
  /**
210
- * Claim a previously preclaimed registration. This can only be done after the preclaim step
210
+ * Claim a name.
211
+ *
212
+ * Since the Ceres protocol upgrade, it is possible to claim a name without preclaiming it.
213
+ * If you preclaim, wait for at least 1 key block to be mined before exposing a name in the
214
+ * NameClaimTx to ensure that nobody can front-run the claim.
215
+ *
211
216
  * @param options - options
212
217
  * @returns mined transaction details
213
218
  * @example
@@ -232,7 +237,10 @@ export default class Name {
232
237
  }
233
238
 
234
239
  /**
235
- * Preclaim a name. Sends a hash of the name and a random salt to the node
240
+ * Preclaim a name. This sends a commitment hash (derived from the name and a random salt) to
241
+ * the node. Preclaiming was required to claim a name before the Ceres protocol upgrade.
242
+ * After the upgrade, preclaiming is optional but still available for added security if you
243
+ * want to claim a non-auction name.
236
244
  * @param options - Options
237
245
  * @example
238
246
  * ```js
package/es/aens.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"aens.js","names":["genSalt","isEncoded","commitmentHash","isAuctionName","produceNameId","Tag","Encoding","LogicError","sendTransaction","buildTxAsync","NotAuctionNameError","constructor","name","action","_salt","WeakMap","Name","value","options","_classPrivateFieldInitSpec","id","revoke","opt","tx","_isInternalBuild","tag","NameRevokeTx","nameId","accountId","onAccount","address","update","pointers","extendPointers","allPointers","Object","fromEntries","onNode","getNameEntryByName","map","key","hasRawPointers","values","some","v","Bytearray","NameUpdateTx","version","entries","transfer","NameTransferTx","recipientId","getState","_options$onNode","nameEntry","owner","getAuctionState","_options$onNode2","getAuctionEntryByName","highestBidder","extendTtl","nameTtl","claim","nameSalt","_classPrivateFieldGet","NameClaimTx","preclaim","NamePreclaimTx","commitmentId","result","_classPrivateFieldSet","bid","nameFee"],"sources":["../src/aens.ts"],"sourcesContent":["/**\n * Aens methods - routines to interact with the æternity naming system\n *\n * The high-level description of the naming system is\n * https://github.com/aeternity/protocol/blob/master/AENS.md in the protocol\n * repository.\n */\n\nimport BigNumber from 'bignumber.js';\nimport { genSalt, isEncoded } from './utils/crypto.js';\nimport { commitmentHash, isAuctionName, produceNameId } from './tx/builder/helpers.js';\nimport { Tag, AensName } from './tx/builder/constants.js';\nimport { Encoded, Encoding } from './utils/encoder.js';\nimport { LogicError } from './utils/errors.js';\nimport { sendTransaction, SendTransactionOptions } from './send-transaction.js';\nimport { Optional } from './utils/other.js';\nimport { buildTxAsync, BuildTxOptions } from './tx/builder/index.js';\nimport Node from './Node.js';\nimport AccountBase from './account/Base.js';\nimport { AddressEncodings } from './tx/builder/field-types/address.js';\n\ninterface NameRevokeOptions\n extends BuildTxOptions<Tag.NameRevokeTx, 'nameId' | 'accountId'>,\n Optional<SendTransactionOptions, 'onAccount' | 'onNode'> {}\n\ninterface KeyPointers {\n [key: string]: Encoded.Generic<AddressEncodings | Encoding.Bytearray>;\n}\n\ninterface NameUpdateOptions\n extends BuildTxOptions<Tag.NameUpdateTx, 'nameId' | 'accountId' | 'pointers'>,\n Optional<SendTransactionOptions, 'onAccount' | 'onNode'> {\n /**\n * Get the pointers from the node and merge with provided ones. Pointers with the same key will be\n * overwritten.\n */\n extendPointers?: boolean;\n}\n\ninterface NameTransferOptions\n extends BuildTxOptions<Tag.NameTransferTx, 'nameId' | 'accountId' | 'recipientId'>,\n Optional<SendTransactionOptions, 'onAccount' | 'onNode'> {}\n\ninterface NamePreclaimOptions\n extends BuildTxOptions<Tag.NamePreclaimTx, 'accountId' | 'commitmentId'>,\n Optional<SendTransactionOptions, 'onAccount' | 'onNode'> {}\n\ninterface NameClaimOptions\n extends BuildTxOptions<Tag.NameClaimTx, 'accountId' | 'name'>,\n Optional<SendTransactionOptions, 'onAccount' | 'onNode'> {}\n\nclass NotAuctionNameError extends LogicError {\n constructor(name: AensName, action: string) {\n super(`Can't ${action} because ${name} is not an auction name`);\n this.name = 'NotAuctionNameError';\n }\n}\n\n/**\n * @category AENS\n * @example\n * ```js\n * const name = new Name('test.chain', aeSdk.getContext())\n * ```\n */\nexport default class Name {\n #salt?: number;\n\n /**\n * @param value - AENS name\n * @param options - Options\n * @param options.onNode - Node to use\n * @param options.onAccount - Account to use\n */\n constructor(\n public readonly value: AensName,\n public options: { onNode: Node; onAccount: AccountBase } & Omit<\n NameRevokeOptions &\n NameUpdateOptions &\n NameTransferOptions &\n NamePreclaimOptions &\n NameClaimOptions,\n 'version'\n >,\n ) {\n this.options = options;\n }\n\n /**\n * Name ID encoded as nm_-prefixed string\n */\n get id(): Encoded.Name {\n return produceNameId(this.value);\n }\n\n /**\n * Revoke a name\n * @param options - Options\n * @returns mined transaction details\n * @example\n * ```js\n * await name.revoke({ fee, ttl, nonce })\n * ```\n */\n async revoke(options: NameRevokeOptions = {}): ReturnType<typeof sendTransaction> {\n const opt = { ...this.options, ...options };\n const tx = await buildTxAsync({\n _isInternalBuild: true,\n ...opt,\n tag: Tag.NameRevokeTx,\n nameId: this.value,\n accountId: opt.onAccount.address,\n });\n return sendTransaction(tx, opt);\n }\n\n /**\n * Update a name\n * @param pointers - Map of pointer keys to corresponding addresses\n * @param options - Options\n * @example\n * ```js\n * const name = 'test.chain'\n * const channel = 'ch_2519mBs...'\n * const pointers = {\n * account_pubkey: 'ak_asd23dasdas...,',\n * contract_pubkey: 'ct_asdf34fasdasd...',\n * [getDefaultPointerKey(channel)]: channel,\n * }\n * await name.update(pointers, { nameTtl, ttl, fee, nonce, clientTtl })\n * ```\n */\n async update(\n pointers: KeyPointers,\n options: NameUpdateOptions = {},\n ): ReturnType<typeof sendTransaction> {\n const { extendPointers, ...opt } = { ...this.options, ...options };\n const allPointers = {\n ...(extendPointers === true &&\n Object.fromEntries(\n (await opt.onNode.getNameEntryByName(this.value)).pointers.map(({ key, id }) => [\n key,\n id,\n ]),\n )),\n ...pointers,\n };\n\n const hasRawPointers = Object.values(allPointers).some((v) => isEncoded(v, Encoding.Bytearray));\n\n const tx = await buildTxAsync({\n _isInternalBuild: true,\n ...opt,\n tag: Tag.NameUpdateTx,\n version: hasRawPointers ? 2 : 1,\n nameId: this.value,\n accountId: opt.onAccount.address,\n pointers: Object.entries(allPointers).map(\n ([key, id]: [string, Encoded.Generic<AddressEncodings>]) => ({ key, id }),\n ),\n });\n return sendTransaction(tx, opt);\n }\n\n /**\n * Transfer a name to another account\n * @param address - Recipient account public key\n * @param options - Options\n * @returns mined transaction details\n * @example\n * ```js\n * await name.transfer('ak_asd23dasdas...', { ttl, fee, nonce })\n * ```\n */\n async transfer(\n address: Encoded.AccountAddress,\n options: NameTransferOptions = {},\n ): ReturnType<typeof sendTransaction> {\n const opt = { ...this.options, ...options };\n const tx = await buildTxAsync({\n _isInternalBuild: true,\n ...opt,\n tag: Tag.NameTransferTx,\n nameId: this.value,\n accountId: opt.onAccount.address,\n recipientId: address,\n });\n return sendTransaction(tx, opt);\n }\n\n /**\n * Query the AENS name info from the node and return the object with info\n * @param options - Options\n * @example\n * ```js\n * const nameEntry = await name.getState()\n * console.log(nameEntry.owner)\n * ```\n */\n async getState(options: { onNode?: Node } = {}): Promise<\n Awaited<ReturnType<Node['getNameEntryByName']>> & {\n id: Encoded.Name;\n owner: Encoded.AccountAddress;\n }\n > {\n const onNode = options.onNode ?? this.options.onNode;\n const nameEntry = await onNode.getNameEntryByName(this.value);\n return {\n ...nameEntry,\n id: nameEntry.id as Encoded.Name,\n owner: nameEntry.owner as Encoded.AccountAddress,\n };\n }\n\n /**\n * Query the AENS auction info from the node and return the object with info\n * @param options - Options\n * @example\n * ```js\n * const auctionEntry = await name.getAuctionState()\n * console.log(auctionEntry.highestBidder)\n * ```\n */\n async getAuctionState(options: { onNode?: Node } = {}): Promise<\n Awaited<ReturnType<Node['getAuctionEntryByName']>> & {\n id: Encoded.Name;\n highestBidder: Encoded.AccountAddress;\n }\n > {\n if (!isAuctionName(this.value)) throw new NotAuctionNameError(this.value, 'get auction state');\n const onNode = options.onNode ?? this.options.onNode;\n const nameEntry = await onNode.getAuctionEntryByName(this.value);\n return {\n ...nameEntry,\n id: nameEntry.id as Encoded.Name,\n highestBidder: nameEntry.highestBidder as Encoded.AccountAddress,\n };\n }\n\n /**\n *\n * @param nameTtl - represents in number of blocks (max and default is 180000)\n * @param options - Options\n * @returns mined transaction details\n */\n async extendTtl(\n nameTtl?: number,\n options: Omit<Parameters<Name['update']>[1], 'extendPointers' | 'nameTtl'> = {},\n ): ReturnType<Name['update']> {\n return this.update({}, { ...options, nameTtl, extendPointers: true });\n }\n\n /**\n * Claim a previously preclaimed registration. This can only be done after the preclaim step\n * @param options - options\n * @returns mined transaction details\n * @example\n * ```js\n * await name.claim({ ttl, fee, nonce, nameFee })\n * ```\n */\n async claim(options: NameClaimOptions = {}): ReturnType<typeof sendTransaction> {\n const opt = { ...this.options, ...options };\n const tx = await buildTxAsync({\n _isInternalBuild: true,\n nameSalt: this.#salt,\n ...opt,\n tag: Tag.NameClaimTx,\n accountId: opt.onAccount.address,\n name: this.value,\n });\n return sendTransaction(tx, opt);\n }\n\n /**\n * Preclaim a name. Sends a hash of the name and a random salt to the node\n * @param options - Options\n * @example\n * ```js\n * await name.preclaim({ ttl, fee, nonce })\n * ```\n */\n async preclaim(\n options: NamePreclaimOptions = {},\n ): Promise<Awaited<ReturnType<typeof sendTransaction>> & { nameSalt: number }> {\n const opt = { ...this.options, ...options };\n const nameSalt = genSalt();\n const tx = await buildTxAsync({\n _isInternalBuild: true,\n ...opt,\n tag: Tag.NamePreclaimTx,\n accountId: opt.onAccount.address,\n commitmentId: commitmentHash(this.value, nameSalt),\n });\n const result = await sendTransaction(tx, opt);\n this.#salt = nameSalt;\n return { ...result, nameSalt };\n }\n\n /**\n * Bid to name auction\n * @param nameFee - Name fee (bid fee)\n * @param options - Options\n * @returns mined transaction details\n * @example\n * ```js\n * const bidFee = computeBidFee(name.value, { startFee, increment: 0.42 })\n * await name.bid(213109412839123, { ttl, fee, nonce })\n * ```\n */\n async bid(\n nameFee: number | string | BigNumber,\n options: Omit<NameClaimOptions, 'nameFee'> = {},\n ): ReturnType<typeof sendTransaction> {\n if (!isAuctionName(this.value)) throw new NotAuctionNameError(this.value, 'make a bid');\n const opt = { ...this.options, ...options };\n const tx = await buildTxAsync({\n _isInternalBuild: true,\n ...opt,\n tag: Tag.NameClaimTx,\n accountId: opt.onAccount.address,\n nameSalt: 0,\n name: this.value,\n nameFee,\n });\n return sendTransaction(tx, opt);\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"aens.js","names":["genSalt","isEncoded","commitmentHash","isAuctionName","produceNameId","Tag","Encoding","LogicError","sendTransaction","buildTxAsync","NotAuctionNameError","constructor","name","action","_salt","WeakMap","Name","value","options","_classPrivateFieldInitSpec","id","revoke","opt","tx","_isInternalBuild","tag","NameRevokeTx","nameId","accountId","onAccount","address","update","pointers","extendPointers","allPointers","Object","fromEntries","onNode","getNameEntryByName","map","key","hasRawPointers","values","some","v","Bytearray","NameUpdateTx","version","entries","transfer","NameTransferTx","recipientId","getState","_options$onNode","nameEntry","owner","getAuctionState","_options$onNode2","getAuctionEntryByName","highestBidder","extendTtl","nameTtl","claim","nameSalt","_classPrivateFieldGet","NameClaimTx","preclaim","NamePreclaimTx","commitmentId","result","_classPrivateFieldSet","bid","nameFee"],"sources":["../src/aens.ts"],"sourcesContent":["/**\n * Aens methods - routines to interact with the æternity naming system\n *\n * The high-level description of the naming system is\n * https://github.com/aeternity/protocol/blob/master/AENS.md in the protocol\n * repository.\n */\n\nimport BigNumber from 'bignumber.js';\nimport { genSalt, isEncoded } from './utils/crypto.js';\nimport { commitmentHash, isAuctionName, produceNameId } from './tx/builder/helpers.js';\nimport { Tag, AensName } from './tx/builder/constants.js';\nimport { Encoded, Encoding } from './utils/encoder.js';\nimport { LogicError } from './utils/errors.js';\nimport { sendTransaction, SendTransactionOptions } from './send-transaction.js';\nimport { Optional } from './utils/other.js';\nimport { buildTxAsync, BuildTxOptions } from './tx/builder/index.js';\nimport Node from './Node.js';\nimport AccountBase from './account/Base.js';\nimport { AddressEncodings } from './tx/builder/field-types/address.js';\n\ninterface NameRevokeOptions\n extends BuildTxOptions<Tag.NameRevokeTx, 'nameId' | 'accountId'>,\n Optional<SendTransactionOptions, 'onAccount' | 'onNode'> {}\n\ninterface KeyPointers {\n [key: string]: Encoded.Generic<AddressEncodings | Encoding.Bytearray>;\n}\n\ninterface NameUpdateOptions\n extends BuildTxOptions<Tag.NameUpdateTx, 'nameId' | 'accountId' | 'pointers'>,\n Optional<SendTransactionOptions, 'onAccount' | 'onNode'> {\n /**\n * Get the pointers from the node and merge with provided ones. Pointers with the same key will be\n * overwritten.\n */\n extendPointers?: boolean;\n}\n\ninterface NameTransferOptions\n extends BuildTxOptions<Tag.NameTransferTx, 'nameId' | 'accountId' | 'recipientId'>,\n Optional<SendTransactionOptions, 'onAccount' | 'onNode'> {}\n\ninterface NamePreclaimOptions\n extends BuildTxOptions<Tag.NamePreclaimTx, 'accountId' | 'commitmentId'>,\n Optional<SendTransactionOptions, 'onAccount' | 'onNode'> {}\n\ninterface NameClaimOptions\n extends BuildTxOptions<Tag.NameClaimTx, 'accountId' | 'name'>,\n Optional<SendTransactionOptions, 'onAccount' | 'onNode'> {}\n\nclass NotAuctionNameError extends LogicError {\n constructor(name: AensName, action: string) {\n super(`Can't ${action} because ${name} is not an auction name`);\n this.name = 'NotAuctionNameError';\n }\n}\n\n/**\n * @category AENS\n * @example\n * ```js\n * const name = new Name('test.chain', aeSdk.getContext())\n * ```\n */\nexport default class Name {\n #salt?: number;\n\n /**\n * @param value - AENS name\n * @param options - Options\n * @param options.onNode - Node to use\n * @param options.onAccount - Account to use\n */\n constructor(\n public readonly value: AensName,\n public options: { onNode: Node; onAccount: AccountBase } & Omit<\n NameRevokeOptions &\n NameUpdateOptions &\n NameTransferOptions &\n NamePreclaimOptions &\n NameClaimOptions,\n 'version'\n >,\n ) {\n this.options = options;\n }\n\n /**\n * Name ID encoded as nm_-prefixed string\n */\n get id(): Encoded.Name {\n return produceNameId(this.value);\n }\n\n /**\n * Revoke a name\n * @param options - Options\n * @returns mined transaction details\n * @example\n * ```js\n * await name.revoke({ fee, ttl, nonce })\n * ```\n */\n async revoke(options: NameRevokeOptions = {}): ReturnType<typeof sendTransaction> {\n const opt = { ...this.options, ...options };\n const tx = await buildTxAsync({\n _isInternalBuild: true,\n ...opt,\n tag: Tag.NameRevokeTx,\n nameId: this.value,\n accountId: opt.onAccount.address,\n });\n return sendTransaction(tx, opt);\n }\n\n /**\n * Update a name\n * @param pointers - Map of pointer keys to corresponding addresses\n * @param options - Options\n * @example\n * ```js\n * const name = 'test.chain'\n * const channel = 'ch_2519mBs...'\n * const pointers = {\n * account_pubkey: 'ak_asd23dasdas...,',\n * contract_pubkey: 'ct_asdf34fasdasd...',\n * [getDefaultPointerKey(channel)]: channel,\n * }\n * await name.update(pointers, { nameTtl, ttl, fee, nonce, clientTtl })\n * ```\n */\n async update(\n pointers: KeyPointers,\n options: NameUpdateOptions = {},\n ): ReturnType<typeof sendTransaction> {\n const { extendPointers, ...opt } = { ...this.options, ...options };\n const allPointers = {\n ...(extendPointers === true &&\n Object.fromEntries(\n (await opt.onNode.getNameEntryByName(this.value)).pointers.map(({ key, id }) => [\n key,\n id,\n ]),\n )),\n ...pointers,\n };\n\n const hasRawPointers = Object.values(allPointers).some((v) => isEncoded(v, Encoding.Bytearray));\n\n const tx = await buildTxAsync({\n _isInternalBuild: true,\n ...opt,\n tag: Tag.NameUpdateTx,\n version: hasRawPointers ? 2 : 1,\n nameId: this.value,\n accountId: opt.onAccount.address,\n pointers: Object.entries(allPointers).map(\n ([key, id]: [string, Encoded.Generic<AddressEncodings>]) => ({ key, id }),\n ),\n });\n return sendTransaction(tx, opt);\n }\n\n /**\n * Transfer a name to another account\n * @param address - Recipient account public key\n * @param options - Options\n * @returns mined transaction details\n * @example\n * ```js\n * await name.transfer('ak_asd23dasdas...', { ttl, fee, nonce })\n * ```\n */\n async transfer(\n address: Encoded.AccountAddress,\n options: NameTransferOptions = {},\n ): ReturnType<typeof sendTransaction> {\n const opt = { ...this.options, ...options };\n const tx = await buildTxAsync({\n _isInternalBuild: true,\n ...opt,\n tag: Tag.NameTransferTx,\n nameId: this.value,\n accountId: opt.onAccount.address,\n recipientId: address,\n });\n return sendTransaction(tx, opt);\n }\n\n /**\n * Query the AENS name info from the node and return the object with info\n * @param options - Options\n * @example\n * ```js\n * const nameEntry = await name.getState()\n * console.log(nameEntry.owner)\n * ```\n */\n async getState(options: { onNode?: Node } = {}): Promise<\n Awaited<ReturnType<Node['getNameEntryByName']>> & {\n id: Encoded.Name;\n owner: Encoded.AccountAddress;\n }\n > {\n const onNode = options.onNode ?? this.options.onNode;\n const nameEntry = await onNode.getNameEntryByName(this.value);\n return {\n ...nameEntry,\n id: nameEntry.id as Encoded.Name,\n owner: nameEntry.owner as Encoded.AccountAddress,\n };\n }\n\n /**\n * Query the AENS auction info from the node and return the object with info\n * @param options - Options\n * @example\n * ```js\n * const auctionEntry = await name.getAuctionState()\n * console.log(auctionEntry.highestBidder)\n * ```\n */\n async getAuctionState(options: { onNode?: Node } = {}): Promise<\n Awaited<ReturnType<Node['getAuctionEntryByName']>> & {\n id: Encoded.Name;\n highestBidder: Encoded.AccountAddress;\n }\n > {\n if (!isAuctionName(this.value)) throw new NotAuctionNameError(this.value, 'get auction state');\n const onNode = options.onNode ?? this.options.onNode;\n const nameEntry = await onNode.getAuctionEntryByName(this.value);\n return {\n ...nameEntry,\n id: nameEntry.id as Encoded.Name,\n highestBidder: nameEntry.highestBidder as Encoded.AccountAddress,\n };\n }\n\n /**\n *\n * @param nameTtl - represents in number of blocks (max and default is 180000)\n * @param options - Options\n * @returns mined transaction details\n */\n async extendTtl(\n nameTtl?: number,\n options: Omit<Parameters<Name['update']>[1], 'extendPointers' | 'nameTtl'> = {},\n ): ReturnType<Name['update']> {\n return this.update({}, { ...options, nameTtl, extendPointers: true });\n }\n\n /**\n * Claim a name.\n *\n * Since the Ceres protocol upgrade, it is possible to claim a name without preclaiming it.\n * If you preclaim, wait for at least 1 key block to be mined before exposing a name in the\n * NameClaimTx to ensure that nobody can front-run the claim.\n *\n * @param options - options\n * @returns mined transaction details\n * @example\n * ```js\n * await name.claim({ ttl, fee, nonce, nameFee })\n * ```\n */\n async claim(options: NameClaimOptions = {}): ReturnType<typeof sendTransaction> {\n const opt = { ...this.options, ...options };\n const tx = await buildTxAsync({\n _isInternalBuild: true,\n nameSalt: this.#salt,\n ...opt,\n tag: Tag.NameClaimTx,\n accountId: opt.onAccount.address,\n name: this.value,\n });\n return sendTransaction(tx, opt);\n }\n\n /**\n * Preclaim a name. This sends a commitment hash (derived from the name and a random salt) to\n * the node. Preclaiming was required to claim a name before the Ceres protocol upgrade.\n * After the upgrade, preclaiming is optional but still available for added security if you\n * want to claim a non-auction name.\n * @param options - Options\n * @example\n * ```js\n * await name.preclaim({ ttl, fee, nonce })\n * ```\n */\n async preclaim(\n options: NamePreclaimOptions = {},\n ): Promise<Awaited<ReturnType<typeof sendTransaction>> & { nameSalt: number }> {\n const opt = { ...this.options, ...options };\n const nameSalt = genSalt();\n const tx = await buildTxAsync({\n _isInternalBuild: true,\n ...opt,\n tag: Tag.NamePreclaimTx,\n accountId: opt.onAccount.address,\n commitmentId: commitmentHash(this.value, nameSalt),\n });\n const result = await sendTransaction(tx, opt);\n this.#salt = nameSalt;\n return { ...result, nameSalt };\n }\n\n /**\n * Bid to name auction\n * @param nameFee - Name fee (bid fee)\n * @param options - Options\n * @returns mined transaction details\n * @example\n * ```js\n * const bidFee = computeBidFee(name.value, { startFee, increment: 0.42 })\n * await name.bid(213109412839123, { ttl, fee, nonce })\n * ```\n */\n async bid(\n nameFee: number | string | BigNumber,\n options: Omit<NameClaimOptions, 'nameFee'> = {},\n ): ReturnType<typeof sendTransaction> {\n if (!isAuctionName(this.value)) throw new NotAuctionNameError(this.value, 'make a bid');\n const opt = { ...this.options, ...options };\n const tx = await buildTxAsync({\n _isInternalBuild: true,\n ...opt,\n tag: Tag.NameClaimTx,\n accountId: opt.onAccount.address,\n nameSalt: 0,\n name: this.value,\n nameFee,\n });\n return sendTransaction(tx, opt);\n }\n}\n"],"mappings":";;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,SAASA,OAAO,EAAEC,SAAS,QAAQ,mBAAmB;AACtD,SAASC,cAAc,EAAEC,aAAa,EAAEC,aAAa,QAAQ,yBAAyB;AACtF,SAASC,GAAG,QAAkB,2BAA2B;AACzD,SAAkBC,QAAQ,QAAQ,oBAAoB;AACtD,SAASC,UAAU,QAAQ,mBAAmB;AAC9C,SAASC,eAAe,QAAgC,uBAAuB;AAE/E,SAASC,YAAY,QAAwB,uBAAuB;AAmCpE,MAAMC,mBAAmB,SAASH,UAAU,CAAC;EAC3CI,WAAWA,CAACC,IAAc,EAAEC,MAAc,EAAE;IAC1C,KAAK,CAAC,SAASA,MAAM,YAAYD,IAAI,yBAAyB,CAAC;IAC/D,IAAI,CAACA,IAAI,GAAG,qBAAqB;EACnC;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AANA,IAAAE,KAAA,oBAAAC,OAAA;AAOA,eAAe,MAAMC,IAAI,CAAC;EAGxB;AACF;AACA;AACA;AACA;AACA;EACEL,WAAWA,CACOM,KAAe,EACxBC,OAON,EACD;IAlBFC,0BAAA,OAAAL,KAAK;IAAU,KASGG,KAAe,GAAfA,KAAe;IAAA,KACxBC,OAON,GAPMA,OAON;IAED,IAAI,CAACA,OAAO,GAAGA,OAAO;EACxB;;EAEA;AACF;AACA;EACE,IAAIE,EAAEA,CAAA,EAAiB;IACrB,OAAOhB,aAAa,CAAC,IAAI,CAACa,KAAK,CAAC;EAClC;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,MAAMI,MAAMA,CAACH,OAA0B,GAAG,CAAC,CAAC,EAAsC;IAChF,MAAMI,GAAG,GAAG;MAAE,GAAG,IAAI,CAACJ,OAAO;MAAE,GAAGA;IAAQ,CAAC;IAC3C,MAAMK,EAAE,GAAG,MAAMd,YAAY,CAAC;MAC5Be,gBAAgB,EAAE,IAAI;MACtB,GAAGF,GAAG;MACNG,GAAG,EAAEpB,GAAG,CAACqB,YAAY;MACrBC,MAAM,EAAE,IAAI,CAACV,KAAK;MAClBW,SAAS,EAAEN,GAAG,CAACO,SAAS,CAACC;IAC3B,CAAC,CAAC;IACF,OAAOtB,eAAe,CAACe,EAAE,EAAED,GAAG,CAAC;EACjC;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,MAAMS,MAAMA,CACVC,QAAqB,EACrBd,OAA0B,GAAG,CAAC,CAAC,EACK;IACpC,MAAM;MAAEe,cAAc;MAAE,GAAGX;IAAI,CAAC,GAAG;MAAE,GAAG,IAAI,CAACJ,OAAO;MAAE,GAAGA;IAAQ,CAAC;IAClE,MAAMgB,WAAW,GAAG;MAClB,IAAID,cAAc,KAAK,IAAI,IACzBE,MAAM,CAACC,WAAW,CAChB,CAAC,MAAMd,GAAG,CAACe,MAAM,CAACC,kBAAkB,CAAC,IAAI,CAACrB,KAAK,CAAC,EAAEe,QAAQ,CAACO,GAAG,CAAC,CAAC;QAAEC,GAAG;QAAEpB;MAAG,CAAC,KAAK,CAC9EoB,GAAG,EACHpB,EAAE,CACH,CACH,CAAC,CAAC;MACJ,GAAGY;IACL,CAAC;IAED,MAAMS,cAAc,GAAGN,MAAM,CAACO,MAAM,CAACR,WAAW,CAAC,CAACS,IAAI,CAAEC,CAAC,IAAK3C,SAAS,CAAC2C,CAAC,EAAEtC,QAAQ,CAACuC,SAAS,CAAC,CAAC;IAE/F,MAAMtB,EAAE,GAAG,MAAMd,YAAY,CAAC;MAC5Be,gBAAgB,EAAE,IAAI;MACtB,GAAGF,GAAG;MACNG,GAAG,EAAEpB,GAAG,CAACyC,YAAY;MACrBC,OAAO,EAAEN,cAAc,GAAG,CAAC,GAAG,CAAC;MAC/Bd,MAAM,EAAE,IAAI,CAACV,KAAK;MAClBW,SAAS,EAAEN,GAAG,CAACO,SAAS,CAACC,OAAO;MAChCE,QAAQ,EAAEG,MAAM,CAACa,OAAO,CAACd,WAAW,CAAC,CAACK,GAAG,CACvC,CAAC,CAACC,GAAG,EAAEpB,EAAE,CAA8C,MAAM;QAAEoB,GAAG;QAAEpB;MAAG,CAAC,CAC1E;IACF,CAAC,CAAC;IACF,OAAOZ,eAAe,CAACe,EAAE,EAAED,GAAG,CAAC;EACjC;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,MAAM2B,QAAQA,CACZnB,OAA+B,EAC/BZ,OAA4B,GAAG,CAAC,CAAC,EACG;IACpC,MAAMI,GAAG,GAAG;MAAE,GAAG,IAAI,CAACJ,OAAO;MAAE,GAAGA;IAAQ,CAAC;IAC3C,MAAMK,EAAE,GAAG,MAAMd,YAAY,CAAC;MAC5Be,gBAAgB,EAAE,IAAI;MACtB,GAAGF,GAAG;MACNG,GAAG,EAAEpB,GAAG,CAAC6C,cAAc;MACvBvB,MAAM,EAAE,IAAI,CAACV,KAAK;MAClBW,SAAS,EAAEN,GAAG,CAACO,SAAS,CAACC,OAAO;MAChCqB,WAAW,EAAErB;IACf,CAAC,CAAC;IACF,OAAOtB,eAAe,CAACe,EAAE,EAAED,GAAG,CAAC;EACjC;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,MAAM8B,QAAQA,CAAClC,OAA0B,GAAG,CAAC,CAAC,EAK5C;IAAA,IAAAmC,eAAA;IACA,MAAMhB,MAAM,IAAAgB,eAAA,GAAGnC,OAAO,CAACmB,MAAM,cAAAgB,eAAA,cAAAA,eAAA,GAAI,IAAI,CAACnC,OAAO,CAACmB,MAAM;IACpD,MAAMiB,SAAS,GAAG,MAAMjB,MAAM,CAACC,kBAAkB,CAAC,IAAI,CAACrB,KAAK,CAAC;IAC7D,OAAO;MACL,GAAGqC,SAAS;MACZlC,EAAE,EAAEkC,SAAS,CAAClC,EAAkB;MAChCmC,KAAK,EAAED,SAAS,CAACC;IACnB,CAAC;EACH;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,MAAMC,eAAeA,CAACtC,OAA0B,GAAG,CAAC,CAAC,EAKnD;IAAA,IAAAuC,gBAAA;IACA,IAAI,CAACtD,aAAa,CAAC,IAAI,CAACc,KAAK,CAAC,EAAE,MAAM,IAAIP,mBAAmB,CAAC,IAAI,CAACO,KAAK,EAAE,mBAAmB,CAAC;IAC9F,MAAMoB,MAAM,IAAAoB,gBAAA,GAAGvC,OAAO,CAACmB,MAAM,cAAAoB,gBAAA,cAAAA,gBAAA,GAAI,IAAI,CAACvC,OAAO,CAACmB,MAAM;IACpD,MAAMiB,SAAS,GAAG,MAAMjB,MAAM,CAACqB,qBAAqB,CAAC,IAAI,CAACzC,KAAK,CAAC;IAChE,OAAO;MACL,GAAGqC,SAAS;MACZlC,EAAE,EAAEkC,SAAS,CAAClC,EAAkB;MAChCuC,aAAa,EAAEL,SAAS,CAACK;IAC3B,CAAC;EACH;;EAEA;AACF;AACA;AACA;AACA;AACA;EACE,MAAMC,SAASA,CACbC,OAAgB,EAChB3C,OAA0E,GAAG,CAAC,CAAC,EACnD;IAC5B,OAAO,IAAI,CAACa,MAAM,CAAC,CAAC,CAAC,EAAE;MAAE,GAAGb,OAAO;MAAE2C,OAAO;MAAE5B,cAAc,EAAE;IAAK,CAAC,CAAC;EACvE;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,MAAM6B,KAAKA,CAAC5C,OAAyB,GAAG,CAAC,CAAC,EAAsC;IAC9E,MAAMI,GAAG,GAAG;MAAE,GAAG,IAAI,CAACJ,OAAO;MAAE,GAAGA;IAAQ,CAAC;IAC3C,MAAMK,EAAE,GAAG,MAAMd,YAAY,CAAC;MAC5Be,gBAAgB,EAAE,IAAI;MACtBuC,QAAQ,EAAEC,qBAAA,CAAKlD,KAAK,EAAV,IAAS,CAAC;MACpB,GAAGQ,GAAG;MACNG,GAAG,EAAEpB,GAAG,CAAC4D,WAAW;MACpBrC,SAAS,EAAEN,GAAG,CAACO,SAAS,CAACC,OAAO;MAChClB,IAAI,EAAE,IAAI,CAACK;IACb,CAAC,CAAC;IACF,OAAOT,eAAe,CAACe,EAAE,EAAED,GAAG,CAAC;EACjC;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,MAAM4C,QAAQA,CACZhD,OAA4B,GAAG,CAAC,CAAC,EAC4C;IAC7E,MAAMI,GAAG,GAAG;MAAE,GAAG,IAAI,CAACJ,OAAO;MAAE,GAAGA;IAAQ,CAAC;IAC3C,MAAM6C,QAAQ,GAAG/D,OAAO,CAAC,CAAC;IAC1B,MAAMuB,EAAE,GAAG,MAAMd,YAAY,CAAC;MAC5Be,gBAAgB,EAAE,IAAI;MACtB,GAAGF,GAAG;MACNG,GAAG,EAAEpB,GAAG,CAAC8D,cAAc;MACvBvC,SAAS,EAAEN,GAAG,CAACO,SAAS,CAACC,OAAO;MAChCsC,YAAY,EAAElE,cAAc,CAAC,IAAI,CAACe,KAAK,EAAE8C,QAAQ;IACnD,CAAC,CAAC;IACF,MAAMM,MAAM,GAAG,MAAM7D,eAAe,CAACe,EAAE,EAAED,GAAG,CAAC;IAC7CgD,qBAAA,CAAKxD,KAAK,EAAV,IAAI,EAASiD,QAAJ,CAAC;IACV,OAAO;MAAE,GAAGM,MAAM;MAAEN;IAAS,CAAC;EAChC;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,MAAMQ,GAAGA,CACPC,OAAoC,EACpCtD,OAA0C,GAAG,CAAC,CAAC,EACX;IACpC,IAAI,CAACf,aAAa,CAAC,IAAI,CAACc,KAAK,CAAC,EAAE,MAAM,IAAIP,mBAAmB,CAAC,IAAI,CAACO,KAAK,EAAE,YAAY,CAAC;IACvF,MAAMK,GAAG,GAAG;MAAE,GAAG,IAAI,CAACJ,OAAO;MAAE,GAAGA;IAAQ,CAAC;IAC3C,MAAMK,EAAE,GAAG,MAAMd,YAAY,CAAC;MAC5Be,gBAAgB,EAAE,IAAI;MACtB,GAAGF,GAAG;MACNG,GAAG,EAAEpB,GAAG,CAAC4D,WAAW;MACpBrC,SAAS,EAAEN,GAAG,CAACO,SAAS,CAACC,OAAO;MAChCiC,QAAQ,EAAE,CAAC;MACXnD,IAAI,EAAE,IAAI,CAACK,KAAK;MAChBuD;IACF,CAAC,CAAC;IACF,OAAOhE,eAAe,CAACe,EAAE,EAAED,GAAG,CAAC;EACjC;AACF","ignoreList":[]}