@aeternity/aepp-sdk 14.0.0 → 14.1.1

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 (206) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +11 -19
  3. package/dist/aepp-sdk.browser-script.cjs +1 -1
  4. package/dist/aepp-sdk.browser-script.cjs.LICENSE.txt +2 -0
  5. package/dist/aepp-sdk.browser-script.cjs.map +1 -1
  6. package/dist/aepp-sdk.browser.cjs +1 -1
  7. package/dist/aepp-sdk.browser.cjs.map +1 -1
  8. package/dist/aepp-sdk.cjs +10846 -4277
  9. package/dist/aepp-sdk.cjs.map +1 -1
  10. package/es/AeSdkBase.d.ts +10 -1
  11. package/es/AeSdkBase.js +12 -2
  12. package/es/AeSdkBase.js.map +1 -1
  13. package/es/AeSdkMethods.d.ts +1 -1
  14. package/es/AeSdkMethods.js.map +1 -1
  15. package/es/AeSdkWallet.js +1 -1
  16. package/es/AeSdkWallet.js.map +1 -1
  17. package/es/Middleware.d.ts +5 -1
  18. package/es/Middleware.js +7 -2
  19. package/es/Middleware.js.map +1 -1
  20. package/es/MiddlewareSubscriber.d.ts +3 -0
  21. package/es/MiddlewareSubscriber.js +4 -0
  22. package/es/MiddlewareSubscriber.js.map +1 -1
  23. package/es/Node.d.ts +6 -1
  24. package/es/Node.js +28 -4
  25. package/es/Node.js.map +1 -1
  26. package/es/account/Base.d.ts +12 -0
  27. package/es/account/Base.js +1 -0
  28. package/es/account/Base.js.map +1 -1
  29. package/es/account/BaseFactory.d.ts +1 -0
  30. package/es/account/BaseFactory.js +1 -0
  31. package/es/account/BaseFactory.js.map +1 -1
  32. package/es/account/Generalized.d.ts +5 -0
  33. package/es/account/Generalized.js +9 -0
  34. package/es/account/Generalized.js.map +1 -1
  35. package/es/account/Ledger.d.ts +5 -0
  36. package/es/account/Ledger.js +9 -0
  37. package/es/account/Ledger.js.map +1 -1
  38. package/es/account/LedgerFactory.d.ts +2 -0
  39. package/es/account/LedgerFactory.js +10 -4
  40. package/es/account/LedgerFactory.js.map +1 -1
  41. package/es/account/Memory.d.ts +5 -0
  42. package/es/account/Memory.js +14 -5
  43. package/es/account/Memory.js.map +1 -1
  44. package/es/account/Metamask.d.ts +8 -0
  45. package/es/account/Metamask.js +13 -0
  46. package/es/account/Metamask.js.map +1 -1
  47. package/es/account/MetamaskFactory.d.ts +20 -2
  48. package/es/account/MetamaskFactory.js +93 -39
  49. package/es/account/MetamaskFactory.js.map +1 -1
  50. package/es/account/MnemonicFactory.d.ts +12 -2
  51. package/es/account/MnemonicFactory.js +48 -24
  52. package/es/account/MnemonicFactory.js.map +1 -1
  53. package/es/account/Rpc.d.ts +5 -0
  54. package/es/account/Rpc.js +8 -0
  55. package/es/account/Rpc.js.map +1 -1
  56. package/es/aens.d.ts +35 -7
  57. package/es/aens.js +62 -20
  58. package/es/aens.js.map +1 -1
  59. package/es/aepp-wallet-communication/connection/BrowserRuntime.d.ts +1 -1
  60. package/es/aepp-wallet-communication/connection/BrowserRuntime.js.map +1 -1
  61. package/es/apis/middleware/middleware.d.ts +99 -9
  62. package/es/apis/middleware/middleware.js +560 -91
  63. package/es/apis/middleware/middleware.js.map +1 -1
  64. package/es/apis/middleware/models/index.d.ts +1267 -1582
  65. package/es/apis/middleware/models/index.js +1 -1363
  66. package/es/apis/middleware/models/index.js.map +1 -1
  67. package/es/apis/middleware/models/mappers.d.ts +126 -56
  68. package/es/apis/middleware/models/mappers.js +6250 -2989
  69. package/es/apis/middleware/models/mappers.js.map +1 -1
  70. package/es/apis/middleware/models/parameters.d.ts +54 -33
  71. package/es/apis/middleware/models/parameters.js +389 -134
  72. package/es/apis/middleware/models/parameters.js.map +1 -1
  73. package/es/apis/node/models/index.d.ts +60 -15
  74. package/es/apis/node/models/index.js.map +1 -1
  75. package/es/apis/node/models/mappers.d.ts +3 -0
  76. package/es/apis/node/models/mappers.js +130 -2
  77. package/es/apis/node/models/mappers.js.map +1 -1
  78. package/es/apis/node/node.d.ts +13 -1
  79. package/es/apis/node/node.js +54 -0
  80. package/es/apis/node/node.js.map +1 -1
  81. package/es/chain.d.ts +19 -6
  82. package/es/chain.js +30 -24
  83. package/es/chain.js.map +1 -1
  84. package/es/channel/Contract.d.ts +6 -3
  85. package/es/channel/Contract.js +5 -2
  86. package/es/channel/Contract.js.map +1 -1
  87. package/es/channel/Spend.d.ts +1 -1
  88. package/es/channel/Spend.js.map +1 -1
  89. package/es/channel/handlers.js +1 -2
  90. package/es/channel/handlers.js.map +1 -1
  91. package/es/channel/internal.d.ts +1 -1
  92. package/es/channel/internal.js +2 -2
  93. package/es/channel/internal.js.map +1 -1
  94. package/es/contract/Contract.d.ts +13 -2
  95. package/es/contract/Contract.js +22 -12
  96. package/es/contract/Contract.js.map +1 -1
  97. package/es/contract/compiler/Base.d.ts +1 -0
  98. package/es/contract/compiler/Base.js +1 -0
  99. package/es/contract/compiler/Base.js.map +1 -1
  100. package/es/contract/compiler/Cli.d.ts +2 -1
  101. package/es/contract/compiler/Cli.js +17 -11
  102. package/es/contract/compiler/Cli.js.map +1 -1
  103. package/es/contract/compiler/Http.d.ts +2 -1
  104. package/es/contract/compiler/Http.js +3 -2
  105. package/es/contract/compiler/Http.js.map +1 -1
  106. package/es/contract/compiler/getFileSystem.d.ts +1 -0
  107. package/es/contract/compiler/getFileSystem.js +1 -0
  108. package/es/contract/compiler/getFileSystem.js.map +1 -1
  109. package/es/contract/ga.d.ts +3 -3
  110. package/es/contract/ga.js +3 -3
  111. package/es/contract/ga.js.map +1 -1
  112. package/es/index-browser.d.ts +32 -2
  113. package/es/index-browser.js +32 -2
  114. package/es/index-browser.js.map +1 -1
  115. package/es/oracle/Oracle.d.ts +10 -1
  116. package/es/oracle/Oracle.js +16 -6
  117. package/es/oracle/Oracle.js.map +1 -1
  118. package/es/oracle/OracleBase.d.ts +15 -2
  119. package/es/oracle/OracleBase.js +23 -1
  120. package/es/oracle/OracleBase.js.map +1 -1
  121. package/es/oracle/OracleClient.d.ts +3 -0
  122. package/es/oracle/OracleClient.js +6 -1
  123. package/es/oracle/OracleClient.js.map +1 -1
  124. package/es/spend.js +1 -1
  125. package/es/spend.js.map +1 -1
  126. package/es/tx/builder/common.js +6 -3
  127. package/es/tx/builder/common.js.map +1 -1
  128. package/es/tx/builder/constants.d.ts +53 -3
  129. package/es/tx/builder/constants.js +62 -12
  130. package/es/tx/builder/constants.js.map +1 -1
  131. package/es/tx/builder/delegation/schema.js +15 -0
  132. package/es/tx/builder/delegation/schema.js.map +1 -1
  133. package/es/tx/builder/entry/constants.d.ts +4 -1
  134. package/es/tx/builder/entry/constants.js +10 -1
  135. package/es/tx/builder/entry/constants.js.map +1 -1
  136. package/es/tx/builder/entry/index.js +1 -2
  137. package/es/tx/builder/entry/index.js.map +1 -1
  138. package/es/tx/builder/field-types/ct-version.js +1 -2
  139. package/es/tx/builder/field-types/ct-version.js.map +1 -1
  140. package/es/tx/builder/field-types/fee.d.ts +1 -1
  141. package/es/tx/builder/field-types/fee.js +4 -4
  142. package/es/tx/builder/field-types/fee.js.map +1 -1
  143. package/es/tx/builder/field-types/gas-price.d.ts +3 -0
  144. package/es/tx/builder/field-types/gas-price.js +1 -1
  145. package/es/tx/builder/field-types/gas-price.js.map +1 -1
  146. package/es/tx/builder/field-types/name-fee.js +1 -1
  147. package/es/tx/builder/field-types/name-fee.js.map +1 -1
  148. package/es/tx/builder/field-types/name-id.js +2 -2
  149. package/es/tx/builder/field-types/name-id.js.map +1 -1
  150. package/es/tx/builder/field-types/nonce.d.ts +1 -1
  151. package/es/tx/builder/field-types/nonce.js.map +1 -1
  152. package/es/tx/builder/field-types/pointers.js +3 -3
  153. package/es/tx/builder/field-types/pointers.js.map +1 -1
  154. package/es/tx/builder/field-types/ttl.d.ts +1 -2
  155. package/es/tx/builder/field-types/ttl.js +7 -5
  156. package/es/tx/builder/field-types/ttl.js.map +1 -1
  157. package/es/tx/builder/helpers.d.ts +18 -12
  158. package/es/tx/builder/helpers.js +25 -17
  159. package/es/tx/builder/helpers.js.map +1 -1
  160. package/es/tx/builder/schema.d.ts +50 -70
  161. package/es/tx/builder/schema.generated.d.ts +12 -12
  162. package/es/tx/builder/schema.generated.js.map +1 -1
  163. package/es/tx/builder/schema.js +5 -3
  164. package/es/tx/builder/schema.js.map +1 -1
  165. package/es/tx/execution-cost.d.ts +3 -0
  166. package/es/tx/execution-cost.js +7 -4
  167. package/es/tx/execution-cost.js.map +1 -1
  168. package/es/tx/transaction-signer.d.ts +1 -0
  169. package/es/tx/transaction-signer.js +1 -0
  170. package/es/tx/transaction-signer.js.map +1 -1
  171. package/es/tx/validator.js +4 -3
  172. package/es/tx/validator.js.map +1 -1
  173. package/es/utils/MiddlewarePage.d.ts +4 -3
  174. package/es/utils/MiddlewarePage.js.map +1 -1
  175. package/es/utils/amount-formatter.d.ts +15 -1
  176. package/es/utils/amount-formatter.js +17 -1
  177. package/es/utils/amount-formatter.js.map +1 -1
  178. package/es/utils/autorest.d.ts +1 -1
  179. package/es/utils/autorest.js +10 -4
  180. package/es/utils/autorest.js.map +1 -1
  181. package/es/utils/bignumber.d.ts +1 -1
  182. package/es/utils/bignumber.js +1 -1
  183. package/es/utils/bignumber.js.map +1 -1
  184. package/es/utils/bytes.d.ts +3 -1
  185. package/es/utils/bytes.js +3 -1
  186. package/es/utils/bytes.js.map +1 -1
  187. package/es/utils/crypto.d.ts +48 -15
  188. package/es/utils/crypto.js +80 -29
  189. package/es/utils/crypto.js.map +1 -1
  190. package/es/utils/encoder-types.d.ts +1 -1
  191. package/es/utils/encoder-types.js +1 -1
  192. package/es/utils/encoder-types.js.map +1 -1
  193. package/es/utils/encoder.d.ts +2 -0
  194. package/es/utils/encoder.js +2 -0
  195. package/es/utils/encoder.js.map +1 -1
  196. package/es/utils/errors.d.ts +2 -2
  197. package/es/utils/errors.js +2 -2
  198. package/es/utils/errors.js.map +1 -1
  199. package/es/utils/json-big.js +1 -1
  200. package/es/utils/json-big.js.map +1 -1
  201. package/es/utils/jwt.js +3 -3
  202. package/es/utils/jwt.js.map +1 -1
  203. package/es/utils/typed-data.d.ts +5 -0
  204. package/es/utils/typed-data.js +6 -0
  205. package/es/utils/typed-data.js.map +1 -1
  206. package/package.json +51 -52
@@ -1 +1 @@
1
- {"version":3,"file":"MnemonicFactory.js","names":["mnemonicToSeed","tweetnaclAuth","AccountBaseFactory","AccountMemory","encode","Encoding","decode","concatBuffers","InternalError","ED25519_CURVE","_Buffer","from","HARDENED_OFFSET","deriveKey","message","key","I","full","IL","slice","IR","secretKey","chainCode","derivePathFromKey","segments","reduce","segment","indexBuffer","allocUnsafe","writeUInt32BE","data","alloc","_mnemonic","WeakMap","_wallet","_AccountMnemonicFactory_brand","WeakSet","AccountMnemonicFactory","constructor","mnemonicOrWallet","_classPrivateMethodInitSpec","_classPrivateFieldInitSpec","_classPrivateFieldSet","getWallet","_classPrivateFieldGet","seed","masterKey","walletKey","Bytearray","initialize","accountIndex","_assertClassBrand","_getAccountSecretKey","call","wallet","raw","AccountSecretKey"],"sources":["../../src/account/MnemonicFactory.ts"],"sourcesContent":["import { mnemonicToSeed } from '@scure/bip39';\nimport tweetnaclAuth from 'tweetnacl-auth';\nimport AccountBaseFactory from './BaseFactory.js';\nimport AccountMemory from './Memory.js';\nimport { encode, Encoding, Encoded, decode } from '../utils/encoder.js';\nimport { concatBuffers } from '../utils/other.js';\nimport { InternalError } from '../utils/errors.js';\n\nexport const ED25519_CURVE = Buffer.from('ed25519 seed');\nconst HARDENED_OFFSET = 0x80000000;\n\ninterface KeyTreeNode {\n secretKey: Uint8Array;\n chainCode: Uint8Array;\n}\n\nexport function deriveKey(message: Uint8Array, key: Uint8Array): KeyTreeNode {\n const I = tweetnaclAuth.full(message, key);\n const IL = I.slice(0, 32);\n const IR = I.slice(32);\n return {\n secretKey: IL,\n chainCode: IR,\n };\n}\n\nexport function derivePathFromKey(key: KeyTreeNode, segments: readonly number[]): KeyTreeNode {\n return segments.reduce(({ secretKey, chainCode }, segment) => {\n const indexBuffer = Buffer.allocUnsafe(4);\n indexBuffer.writeUInt32BE(segment + HARDENED_OFFSET, 0);\n const data = concatBuffers([Buffer.alloc(1, 0), secretKey, indexBuffer]);\n return deriveKey(data, chainCode);\n }, key);\n}\n\ninterface Wallet {\n secretKey: Encoded.Bytearray;\n chainCode: Encoded.Bytearray;\n}\n\n/**\n * A factory class that generates instances of AccountMemory based on provided mnemonic phrase.\n */\nexport default class AccountMnemonicFactory extends AccountBaseFactory {\n readonly #mnemonic: string | undefined;\n\n #wallet: Wallet | undefined;\n\n /**\n * @param mnemonicOrWallet - BIP39-compatible mnemonic phrase or a wallet derived from mnemonic\n */\n constructor(mnemonicOrWallet: string | Wallet) {\n super();\n if (typeof mnemonicOrWallet === 'string') this.#mnemonic = mnemonicOrWallet;\n else this.#wallet = mnemonicOrWallet;\n }\n\n /**\n * Get a wallet to initialize AccountMnemonicFactory instead mnemonic phrase.\n * In comparison with mnemonic, the wallet can be used to derive aeternity accounts only.\n */\n async getWallet(): Promise<Wallet> {\n if (this.#wallet != null) return this.#wallet;\n if (this.#mnemonic == null)\n throw new InternalError(\n 'AccountMnemonicFactory should be initialized with mnemonic or wallet',\n );\n const seed = await mnemonicToSeed(this.#mnemonic);\n const masterKey = deriveKey(seed, ED25519_CURVE);\n const walletKey = derivePathFromKey(masterKey, [44, 457]);\n this.#wallet = {\n secretKey: encode(walletKey.secretKey, Encoding.Bytearray),\n chainCode: encode(walletKey.chainCode, Encoding.Bytearray),\n };\n return this.#wallet;\n }\n\n async #getAccountSecretKey(accountIndex: number): Promise<Encoded.AccountSecretKey> {\n const wallet = await this.getWallet();\n const walletKey = {\n secretKey: decode(wallet.secretKey),\n chainCode: decode(wallet.chainCode),\n };\n const raw = derivePathFromKey(walletKey, [accountIndex, 0, 0]).secretKey;\n return encode(raw, Encoding.AccountSecretKey);\n }\n\n /**\n * Get an instance of AccountMemory for a given account index.\n * @param accountIndex - Index of account\n */\n async initialize(accountIndex: number): Promise<AccountMemory> {\n return new AccountMemory(await this.#getAccountSecretKey(accountIndex));\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"MnemonicFactory.js","names":["mnemonicToSeed","mnemonicToSeedSync","tweetnaclAuth","AccountBaseFactory","AccountMemory","encode","Encoding","decode","concatBuffers","ArgumentError","ED25519_CURVE","_Buffer","from","HARDENED_OFFSET","deriveKey","message","key","I","full","IL","slice","IR","secretKey","chainCode","derivePathFromKey","segments","reduce","segment","indexBuffer","allocUnsafe","writeUInt32BE","data","alloc","_mnemonicOrWalletOrSeed","WeakMap","_AccountMnemonicFactory_brand","WeakSet","AccountMnemonicFactory","constructor","mnemonicOrWalletOrSeed","_classPrivateMethodInitSpec","_classPrivateFieldInitSpec","_classPrivateFieldSet","getWallet","_assertClassBrand","_getWallet","call","getWalletSync","initialize","accountIndex","wallet","_getAccountByWallet","initializeSync","sync","setWalletBySeed","seed","masterKey","walletKey","Bytearray","_classPrivateFieldGet","ArrayBuffer","isView","length","then","raw","AccountSecretKey"],"sources":["../../src/account/MnemonicFactory.ts"],"sourcesContent":["import { mnemonicToSeed, mnemonicToSeedSync } from '@scure/bip39';\nimport tweetnaclAuth from 'tweetnacl-auth';\nimport AccountBaseFactory from './BaseFactory.js';\nimport AccountMemory from './Memory.js';\nimport { encode, Encoding, Encoded, decode } from '../utils/encoder.js';\nimport { concatBuffers } from '../utils/other.js';\nimport { ArgumentError } from '../utils/errors.js';\n\nexport const ED25519_CURVE = Buffer.from('ed25519 seed');\nconst HARDENED_OFFSET = 0x80000000;\n\ninterface KeyTreeNode {\n secretKey: Uint8Array;\n chainCode: Uint8Array;\n}\n\nexport function deriveKey(message: Uint8Array, key: Uint8Array): KeyTreeNode {\n const I = tweetnaclAuth.full(message, key);\n const IL = I.slice(0, 32);\n const IR = I.slice(32);\n return {\n secretKey: IL,\n chainCode: IR,\n };\n}\n\nexport function derivePathFromKey(key: KeyTreeNode, segments: readonly number[]): KeyTreeNode {\n return segments.reduce(({ secretKey, chainCode }, segment) => {\n const indexBuffer = Buffer.allocUnsafe(4);\n indexBuffer.writeUInt32BE(segment + HARDENED_OFFSET, 0);\n const data = concatBuffers([Buffer.alloc(1, 0), secretKey, indexBuffer]);\n return deriveKey(data, chainCode);\n }, key);\n}\n\ninterface Wallet {\n secretKey: Encoded.Bytearray;\n chainCode: Encoded.Bytearray;\n}\n\n/**\n * A factory class that generates instances of AccountMemory based on provided mnemonic phrase.\n * @category account\n */\nexport default class AccountMnemonicFactory extends AccountBaseFactory {\n #mnemonicOrWalletOrSeed: string | Wallet | Uint8Array;\n\n /**\n * @param mnemonicOrWalletOrSeed - BIP39-compatible mnemonic phrase or a wallet/seed derived from\n * mnemonic\n */\n constructor(mnemonicOrWalletOrSeed: string | Wallet | Uint8Array) {\n super();\n this.#mnemonicOrWalletOrSeed = mnemonicOrWalletOrSeed;\n }\n\n #getWallet(sync: true): Wallet;\n #getWallet(sync: false): Wallet | Promise<Wallet>;\n #getWallet(sync: boolean): Wallet | Promise<Wallet> {\n const setWalletBySeed = (seed: Uint8Array): Wallet => {\n const masterKey = deriveKey(seed, ED25519_CURVE);\n const walletKey = derivePathFromKey(masterKey, [44, 457]);\n this.#mnemonicOrWalletOrSeed = {\n secretKey: encode(walletKey.secretKey, Encoding.Bytearray),\n chainCode: encode(walletKey.chainCode, Encoding.Bytearray),\n };\n return this.#mnemonicOrWalletOrSeed;\n };\n\n if (ArrayBuffer.isView(this.#mnemonicOrWalletOrSeed)) {\n if (this.#mnemonicOrWalletOrSeed.length !== 64) {\n throw new ArgumentError('seed length', 64, this.#mnemonicOrWalletOrSeed.length);\n }\n return setWalletBySeed(this.#mnemonicOrWalletOrSeed);\n }\n if (typeof this.#mnemonicOrWalletOrSeed === 'object') return this.#mnemonicOrWalletOrSeed;\n return sync\n ? setWalletBySeed(mnemonicToSeedSync(this.#mnemonicOrWalletOrSeed))\n : mnemonicToSeed(this.#mnemonicOrWalletOrSeed).then(setWalletBySeed);\n }\n\n /**\n * Get a wallet to initialize AccountMnemonicFactory instead mnemonic phrase.\n * In comparison with mnemonic, the wallet can be used to derive aeternity accounts only.\n */\n async getWallet(): Promise<Wallet> {\n return this.#getWallet(false);\n }\n\n /**\n * The same as `getWallet` but synchronous.\n */\n getWalletSync(): Wallet {\n return this.#getWallet(true);\n }\n\n #getAccountByWallet(accountIndex: number, wallet: Wallet): AccountMemory {\n const walletKey = {\n secretKey: decode(wallet.secretKey),\n chainCode: decode(wallet.chainCode),\n };\n const raw = derivePathFromKey(walletKey, [accountIndex, 0, 0]).secretKey;\n return new AccountMemory(encode(raw, Encoding.AccountSecretKey));\n }\n\n /**\n * Get an instance of AccountMemory for a given account index.\n * @param accountIndex - Index of account\n */\n async initialize(accountIndex: number): Promise<AccountMemory> {\n const wallet = await this.getWallet();\n return this.#getAccountByWallet(accountIndex, wallet);\n }\n\n /**\n * The same as `initialize` but synchronous.\n */\n initializeSync(accountIndex: number): AccountMemory {\n const wallet = this.getWalletSync();\n return this.#getAccountByWallet(accountIndex, wallet);\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -8,12 +8,17 @@ import { AeppApi, WalletApi } from '../aepp-wallet-communication/rpc/types.js';
8
8
  * @param params.rpcClient - RpcClient instance
9
9
  * @param params.address - RPC account address
10
10
  * @returns AccountRpc instance
11
+ * @category account
11
12
  */
12
13
  export default class AccountRpc extends AccountBase {
13
14
  _rpcClient: RpcClient<WalletApi, AeppApi>;
14
15
  readonly address: Encoded.AccountAddress;
15
16
  constructor(rpcClient: RpcClient<WalletApi, AeppApi>, address: Encoded.AccountAddress);
17
+ /**
18
+ * @deprecated Use `unsafeSign` method instead
19
+ */
16
20
  sign(dataRaw: string | Uint8Array): Promise<Uint8Array>;
21
+ unsafeSign(dataRaw: string | Uint8Array): Promise<Uint8Array>;
17
22
  signTransaction(tx: Encoded.Transaction, { innerTx, networkId }?: Parameters<AccountBase['signTransaction']>[1]): Promise<Encoded.Transaction>;
18
23
  signMessage(message: string): Promise<Uint8Array>;
19
24
  signTypedData(data: Encoded.ContractBytearray, aci: Parameters<AccountBase['signTypedData']>[1], { name, version, contractAddress, networkId }?: Parameters<AccountBase['signTypedData']>[2]): Promise<Encoded.Signature>;
package/es/account/Rpc.js CHANGED
@@ -9,6 +9,7 @@ import { Encoding, decode, encode } from '../utils/encoder.js';
9
9
  * @param params.rpcClient - RpcClient instance
10
10
  * @param params.address - RPC account address
11
11
  * @returns AccountRpc instance
12
+ * @category account
12
13
  */
13
14
  export default class AccountRpc extends AccountBase {
14
15
  constructor(rpcClient, address) {
@@ -16,7 +17,14 @@ export default class AccountRpc extends AccountBase {
16
17
  this._rpcClient = rpcClient;
17
18
  this.address = address;
18
19
  }
20
+
21
+ /**
22
+ * @deprecated Use `unsafeSign` method instead
23
+ */
19
24
  async sign(dataRaw) {
25
+ return this.unsafeSign(dataRaw);
26
+ }
27
+ async unsafeSign(dataRaw) {
20
28
  const data = encode(_Buffer.from(dataRaw), Encoding.Bytearray);
21
29
  const {
22
30
  signature
@@ -1 +1 @@
1
- {"version":3,"file":"Rpc.js","names":["AccountBase","METHODS","ArgumentError","UnsupportedProtocolError","Encoding","decode","encode","AccountRpc","constructor","rpcClient","address","_rpcClient","sign","dataRaw","data","_Buffer","from","Bytearray","signature","request","unsafeSign","onAccount","signTransaction","tx","innerTx","networkId","res","returnSigned","signedTransaction","signMessage","message","signTypedData","aci","name","version","contractAddress","domain","signDelegation","delegation"],"sources":["../../src/account/Rpc.ts"],"sourcesContent":["import AccountBase from './Base.js';\nimport { METHODS } from '../aepp-wallet-communication/schema.js';\nimport { ArgumentError, UnsupportedProtocolError } from '../utils/errors.js';\nimport { Encoded, Encoding, decode, encode } from '../utils/encoder.js';\nimport RpcClient from '../aepp-wallet-communication/rpc/RpcClient.js';\nimport { AeppApi, WalletApi } from '../aepp-wallet-communication/rpc/types.js';\n\n/**\n * Account provided by wallet\n * @param params - Params\n * @param params.rpcClient - RpcClient instance\n * @param params.address - RPC account address\n * @returns AccountRpc instance\n */\nexport default class AccountRpc extends AccountBase {\n _rpcClient: RpcClient<WalletApi, AeppApi>;\n\n override readonly address: Encoded.AccountAddress;\n\n constructor(rpcClient: RpcClient<WalletApi, AeppApi>, address: Encoded.AccountAddress) {\n super();\n this._rpcClient = rpcClient;\n this.address = address;\n }\n\n async sign(dataRaw: string | Uint8Array): Promise<Uint8Array> {\n const data = encode(Buffer.from(dataRaw), Encoding.Bytearray);\n const { signature } = await this._rpcClient.request(METHODS.unsafeSign, {\n onAccount: this.address,\n data,\n });\n return decode(signature);\n }\n\n override async signTransaction(\n tx: Encoded.Transaction,\n { innerTx, networkId }: Parameters<AccountBase['signTransaction']>[1] = {},\n ): Promise<Encoded.Transaction> {\n if (networkId == null) throw new ArgumentError('networkId', 'provided', networkId);\n const res = await this._rpcClient.request(METHODS.sign, {\n onAccount: this.address,\n tx,\n returnSigned: true,\n networkId,\n innerTx,\n });\n if (res.signedTransaction == null) {\n throw new UnsupportedProtocolError('signedTransaction is missed in wallet response');\n }\n return res.signedTransaction;\n }\n\n override async signMessage(message: string): Promise<Uint8Array> {\n const { signature } = await this._rpcClient.request(METHODS.signMessage, {\n onAccount: this.address,\n message,\n });\n return Buffer.from(signature, 'hex');\n }\n\n override async signTypedData(\n data: Encoded.ContractBytearray,\n aci: Parameters<AccountBase['signTypedData']>[1],\n { name, version, contractAddress, networkId }: Parameters<AccountBase['signTypedData']>[2] = {},\n ): Promise<Encoded.Signature> {\n const { signature } = await this._rpcClient.request(METHODS.signTypedData, {\n onAccount: this.address,\n domain: {\n name,\n version,\n networkId,\n contractAddress,\n },\n aci,\n data,\n });\n return signature;\n }\n\n override async signDelegation(delegation: Encoded.Bytearray): Promise<Encoded.Signature> {\n const { signature } = await this._rpcClient.request(METHODS.signDelegation, {\n delegation,\n onAccount: this.address,\n });\n return signature;\n }\n}\n"],"mappings":";AAAA,OAAOA,WAAW,MAAM,WAAW;AACnC,SAASC,OAAO,QAAQ,wCAAwC;AAChE,SAASC,aAAa,EAAEC,wBAAwB,QAAQ,oBAAoB;AAC5E,SAAkBC,QAAQ,EAAEC,MAAM,EAAEC,MAAM,QAAQ,qBAAqB;AAIvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAMC,UAAU,SAASP,WAAW,CAAC;EAKlDQ,WAAWA,CAACC,SAAwC,EAAEC,OAA+B,EAAE;IACrF,KAAK,CAAC,CAAC;IACP,IAAI,CAACC,UAAU,GAAGF,SAAS;IAC3B,IAAI,CAACC,OAAO,GAAGA,OAAO;EACxB;EAEA,MAAME,IAAIA,CAACC,OAA4B,EAAuB;IAC5D,MAAMC,IAAI,GAAGR,MAAM,CAACS,OAAA,CAAOC,IAAI,CAACH,OAAO,CAAC,EAAET,QAAQ,CAACa,SAAS,CAAC;IAC7D,MAAM;MAAEC;IAAU,CAAC,GAAG,MAAM,IAAI,CAACP,UAAU,CAACQ,OAAO,CAAClB,OAAO,CAACmB,UAAU,EAAE;MACtEC,SAAS,EAAE,IAAI,CAACX,OAAO;MACvBI;IACF,CAAC,CAAC;IACF,OAAOT,MAAM,CAACa,SAAS,CAAC;EAC1B;EAEA,MAAeI,eAAeA,CAC5BC,EAAuB,EACvB;IAAEC,OAAO;IAAEC;EAAyD,CAAC,GAAG,CAAC,CAAC,EAC5C;IAC9B,IAAIA,SAAS,IAAI,IAAI,EAAE,MAAM,IAAIvB,aAAa,CAAC,WAAW,EAAE,UAAU,EAAEuB,SAAS,CAAC;IAClF,MAAMC,GAAG,GAAG,MAAM,IAAI,CAACf,UAAU,CAACQ,OAAO,CAAClB,OAAO,CAACW,IAAI,EAAE;MACtDS,SAAS,EAAE,IAAI,CAACX,OAAO;MACvBa,EAAE;MACFI,YAAY,EAAE,IAAI;MAClBF,SAAS;MACTD;IACF,CAAC,CAAC;IACF,IAAIE,GAAG,CAACE,iBAAiB,IAAI,IAAI,EAAE;MACjC,MAAM,IAAIzB,wBAAwB,CAAC,gDAAgD,CAAC;IACtF;IACA,OAAOuB,GAAG,CAACE,iBAAiB;EAC9B;EAEA,MAAeC,WAAWA,CAACC,OAAe,EAAuB;IAC/D,MAAM;MAAEZ;IAAU,CAAC,GAAG,MAAM,IAAI,CAACP,UAAU,CAACQ,OAAO,CAAClB,OAAO,CAAC4B,WAAW,EAAE;MACvER,SAAS,EAAE,IAAI,CAACX,OAAO;MACvBoB;IACF,CAAC,CAAC;IACF,OAAOf,OAAA,CAAOC,IAAI,CAACE,SAAS,EAAE,KAAK,CAAC;EACtC;EAEA,MAAea,aAAaA,CAC1BjB,IAA+B,EAC/BkB,GAAgD,EAChD;IAAEC,IAAI;IAAEC,OAAO;IAAEC,eAAe;IAAEV;EAAuD,CAAC,GAAG,CAAC,CAAC,EACnE;IAC5B,MAAM;MAAEP;IAAU,CAAC,GAAG,MAAM,IAAI,CAACP,UAAU,CAACQ,OAAO,CAAClB,OAAO,CAAC8B,aAAa,EAAE;MACzEV,SAAS,EAAE,IAAI,CAACX,OAAO;MACvB0B,MAAM,EAAE;QACNH,IAAI;QACJC,OAAO;QACPT,SAAS;QACTU;MACF,CAAC;MACDH,GAAG;MACHlB;IACF,CAAC,CAAC;IACF,OAAOI,SAAS;EAClB;EAEA,MAAemB,cAAcA,CAACC,UAA6B,EAA8B;IACvF,MAAM;MAAEpB;IAAU,CAAC,GAAG,MAAM,IAAI,CAACP,UAAU,CAACQ,OAAO,CAAClB,OAAO,CAACoC,cAAc,EAAE;MAC1EC,UAAU;MACVjB,SAAS,EAAE,IAAI,CAACX;IAClB,CAAC,CAAC;IACF,OAAOQ,SAAS;EAClB;AACF","ignoreList":[]}
1
+ {"version":3,"file":"Rpc.js","names":["AccountBase","METHODS","ArgumentError","UnsupportedProtocolError","Encoding","decode","encode","AccountRpc","constructor","rpcClient","address","_rpcClient","sign","dataRaw","unsafeSign","data","_Buffer","from","Bytearray","signature","request","onAccount","signTransaction","tx","innerTx","networkId","res","returnSigned","signedTransaction","signMessage","message","signTypedData","aci","name","version","contractAddress","domain","signDelegation","delegation"],"sources":["../../src/account/Rpc.ts"],"sourcesContent":["import AccountBase from './Base.js';\nimport { METHODS } from '../aepp-wallet-communication/schema.js';\nimport { ArgumentError, UnsupportedProtocolError } from '../utils/errors.js';\nimport { Encoded, Encoding, decode, encode } from '../utils/encoder.js';\nimport RpcClient from '../aepp-wallet-communication/rpc/RpcClient.js';\nimport { AeppApi, WalletApi } from '../aepp-wallet-communication/rpc/types.js';\n\n/**\n * Account provided by wallet\n * @param params - Params\n * @param params.rpcClient - RpcClient instance\n * @param params.address - RPC account address\n * @returns AccountRpc instance\n * @category account\n */\nexport default class AccountRpc extends AccountBase {\n _rpcClient: RpcClient<WalletApi, AeppApi>;\n\n override readonly address: Encoded.AccountAddress;\n\n constructor(rpcClient: RpcClient<WalletApi, AeppApi>, address: Encoded.AccountAddress) {\n super();\n this._rpcClient = rpcClient;\n this.address = address;\n }\n\n /**\n * @deprecated Use `unsafeSign` method instead\n */\n async sign(dataRaw: string | Uint8Array): Promise<Uint8Array> {\n return this.unsafeSign(dataRaw);\n }\n\n async unsafeSign(dataRaw: string | Uint8Array): Promise<Uint8Array> {\n const data = encode(Buffer.from(dataRaw), Encoding.Bytearray);\n const { signature } = await this._rpcClient.request(METHODS.unsafeSign, {\n onAccount: this.address,\n data,\n });\n return decode(signature);\n }\n\n override async signTransaction(\n tx: Encoded.Transaction,\n { innerTx, networkId }: Parameters<AccountBase['signTransaction']>[1] = {},\n ): Promise<Encoded.Transaction> {\n if (networkId == null) throw new ArgumentError('networkId', 'provided', networkId);\n const res = await this._rpcClient.request(METHODS.sign, {\n onAccount: this.address,\n tx,\n returnSigned: true,\n networkId,\n innerTx,\n });\n if (res.signedTransaction == null) {\n throw new UnsupportedProtocolError('signedTransaction is missed in wallet response');\n }\n return res.signedTransaction;\n }\n\n override async signMessage(message: string): Promise<Uint8Array> {\n const { signature } = await this._rpcClient.request(METHODS.signMessage, {\n onAccount: this.address,\n message,\n });\n return Buffer.from(signature, 'hex');\n }\n\n override async signTypedData(\n data: Encoded.ContractBytearray,\n aci: Parameters<AccountBase['signTypedData']>[1],\n { name, version, contractAddress, networkId }: Parameters<AccountBase['signTypedData']>[2] = {},\n ): Promise<Encoded.Signature> {\n const { signature } = await this._rpcClient.request(METHODS.signTypedData, {\n onAccount: this.address,\n domain: {\n name,\n version,\n networkId,\n contractAddress,\n },\n aci,\n data,\n });\n return signature;\n }\n\n override async signDelegation(delegation: Encoded.Bytearray): Promise<Encoded.Signature> {\n const { signature } = await this._rpcClient.request(METHODS.signDelegation, {\n delegation,\n onAccount: this.address,\n });\n return signature;\n }\n}\n"],"mappings":"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","ignoreList":[]}
package/es/aens.d.ts CHANGED
@@ -5,7 +5,7 @@
5
5
  * https://github.com/aeternity/protocol/blob/master/AENS.md in the protocol
6
6
  * repository.
7
7
  */
8
- import { BigNumber } from 'bignumber.js';
8
+ import BigNumber from 'bignumber.js';
9
9
  import { Tag, AensName } from './tx/builder/constants.js';
10
10
  import { Encoded, Encoding } from './utils/encoder.js';
11
11
  import { sendTransaction, SendTransactionOptions } from './send-transaction.js';
@@ -30,7 +30,7 @@ interface NameTransferOptions extends BuildTxOptions<Tag.NameTransferTx, 'nameId
30
30
  }
31
31
  interface NamePreclaimOptions extends BuildTxOptions<Tag.NamePreclaimTx, 'accountId' | 'commitmentId'>, Optional<SendTransactionOptions, 'onAccount' | 'onNode'> {
32
32
  }
33
- interface NameClaimOptions extends BuildTxOptions<Tag.NameClaimTx, 'accountId' | 'nameSalt' | 'name'>, Optional<SendTransactionOptions, 'onAccount' | 'onNode'> {
33
+ interface NameClaimOptions extends BuildTxOptions<Tag.NameClaimTx, 'accountId' | 'name'>, Optional<SendTransactionOptions, 'onAccount' | 'onNode'> {
34
34
  }
35
35
  /**
36
36
  * @category AENS
@@ -56,6 +56,10 @@ export default class Name {
56
56
  onNode: Node;
57
57
  onAccount: AccountBase;
58
58
  } & Omit<NameRevokeOptions & NameUpdateOptions & NameTransferOptions & NamePreclaimOptions & NameClaimOptions, 'version'>);
59
+ /**
60
+ * Name ID encoded as nm_-prefixed string
61
+ */
62
+ get id(): Encoded.Name;
59
63
  /**
60
64
  * Revoke a name
61
65
  * @param options - Options
@@ -95,8 +99,7 @@ export default class Name {
95
99
  */
96
100
  transfer(address: Encoded.AccountAddress, options?: NameTransferOptions): ReturnType<typeof sendTransaction>;
97
101
  /**
98
- * Query the AENS name info from the node
99
- * and return the object with info and predefined functions for manipulating name
102
+ * Query the AENS name info from the node and return the object with info
100
103
  * @param options - Options
101
104
  * @example
102
105
  * ```js
@@ -110,6 +113,21 @@ export default class Name {
110
113
  id: Encoded.Name;
111
114
  owner: Encoded.AccountAddress;
112
115
  }>;
116
+ /**
117
+ * Query the AENS auction info from the node and return the object with info
118
+ * @param options - Options
119
+ * @example
120
+ * ```js
121
+ * const auctionEntry = await name.getAuctionState()
122
+ * console.log(auctionEntry.highestBidder)
123
+ * ```
124
+ */
125
+ getAuctionState(options?: {
126
+ onNode?: Node;
127
+ }): Promise<Awaited<ReturnType<Node['getAuctionEntryByName']>> & {
128
+ id: Encoded.Name;
129
+ highestBidder: Encoded.AccountAddress;
130
+ }>;
113
131
  /**
114
132
  *
115
133
  * @param nameTtl - represents in number of blocks (max and default is 180000)
@@ -118,7 +136,12 @@ export default class Name {
118
136
  */
119
137
  extendTtl(nameTtl?: number, options?: Omit<Parameters<Name['update']>[1], 'extendPointers' | 'nameTtl'>): ReturnType<Name['update']>;
120
138
  /**
121
- * 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
+ *
122
145
  * @param options - options
123
146
  * @returns mined transaction details
124
147
  * @example
@@ -128,14 +151,19 @@ export default class Name {
128
151
  */
129
152
  claim(options?: NameClaimOptions): ReturnType<typeof sendTransaction>;
130
153
  /**
131
- * 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.
132
158
  * @param options - Options
133
159
  * @example
134
160
  * ```js
135
161
  * await name.preclaim({ ttl, fee, nonce })
136
162
  * ```
137
163
  */
138
- preclaim(options?: NamePreclaimOptions): ReturnType<typeof sendTransaction>;
164
+ preclaim(options?: NamePreclaimOptions): Promise<Awaited<ReturnType<typeof sendTransaction>> & {
165
+ nameSalt: number;
166
+ }>;
139
167
  /**
140
168
  * Bid to name auction
141
169
  * @param nameFee - Name fee (bid fee)
package/es/aens.js CHANGED
@@ -11,15 +11,20 @@ function _assertClassBrand(e, t, n) { if ("function" == typeof e ? e === t : e.h
11
11
  * repository.
12
12
  */
13
13
 
14
- import { genSalt, isAddressValid } from './utils/crypto.js';
15
- import { commitmentHash, isAuctionName } from './tx/builder/helpers.js';
14
+ import { genSalt, isEncoded } from './utils/crypto.js';
15
+ import { commitmentHash, isAuctionName, produceNameId } from './tx/builder/helpers.js';
16
16
  import { Tag } from './tx/builder/constants.js';
17
17
  import { Encoding } from './utils/encoder.js';
18
18
  import { LogicError } from './utils/errors.js';
19
- import { getName } from './chain.js';
20
19
  import { sendTransaction } from './send-transaction.js';
21
20
  import { buildTxAsync } from './tx/builder/index.js';
22
- var _salt = /*#__PURE__*/new WeakMap();
21
+ class NotAuctionNameError extends LogicError {
22
+ constructor(name, action) {
23
+ super(`Can't ${action} because ${name} is not an auction name`);
24
+ this.name = 'NotAuctionNameError';
25
+ }
26
+ }
27
+
23
28
  /**
24
29
  * @category AENS
25
30
  * @example
@@ -27,6 +32,7 @@ var _salt = /*#__PURE__*/new WeakMap();
27
32
  * const name = new Name('test.chain', aeSdk.getContext())
28
33
  * ```
29
34
  */
35
+ var _salt = /*#__PURE__*/new WeakMap();
30
36
  export default class Name {
31
37
  /**
32
38
  * @param value - AENS name
@@ -41,6 +47,13 @@ export default class Name {
41
47
  this.options = options;
42
48
  }
43
49
 
50
+ /**
51
+ * Name ID encoded as nm_-prefixed string
52
+ */
53
+ get id() {
54
+ return produceNameId(this.value);
55
+ }
56
+
44
57
  /**
45
58
  * Revoke a name
46
59
  * @param options - Options
@@ -90,13 +103,13 @@ export default class Name {
90
103
  ...options
91
104
  };
92
105
  const allPointers = {
93
- ...(extendPointers === true && Object.fromEntries((await getName(this.value, opt)).pointers.map(({
106
+ ...(extendPointers === true && Object.fromEntries((await opt.onNode.getNameEntryByName(this.value)).pointers.map(({
94
107
  key,
95
108
  id
96
109
  }) => [key, id]))),
97
110
  ...pointers
98
111
  };
99
- const hasRawPointers = Object.values(allPointers).some(v => isAddressValid(v, Encoding.Bytearray));
112
+ const hasRawPointers = Object.values(allPointers).some(v => isEncoded(v, Encoding.Bytearray));
100
113
  const tx = await buildTxAsync({
101
114
  _isInternalBuild: true,
102
115
  ...opt,
@@ -139,8 +152,7 @@ export default class Name {
139
152
  }
140
153
 
141
154
  /**
142
- * Query the AENS name info from the node
143
- * and return the object with info and predefined functions for manipulating name
155
+ * Query the AENS name info from the node and return the object with info
144
156
  * @param options - Options
145
157
  * @example
146
158
  * ```js
@@ -149,8 +161,8 @@ export default class Name {
149
161
  * ```
150
162
  */
151
163
  async getState(options = {}) {
152
- var _this$options$onNode;
153
- const onNode = (_this$options$onNode = this.options.onNode) !== null && _this$options$onNode !== void 0 ? _this$options$onNode : options.onNode;
164
+ var _options$onNode;
165
+ const onNode = (_options$onNode = options.onNode) !== null && _options$onNode !== void 0 ? _options$onNode : this.options.onNode;
154
166
  const nameEntry = await onNode.getNameEntryByName(this.value);
155
167
  return {
156
168
  ...nameEntry,
@@ -159,6 +171,27 @@ export default class Name {
159
171
  };
160
172
  }
161
173
 
174
+ /**
175
+ * Query the AENS auction info from the node and return the object with info
176
+ * @param options - Options
177
+ * @example
178
+ * ```js
179
+ * const auctionEntry = await name.getAuctionState()
180
+ * console.log(auctionEntry.highestBidder)
181
+ * ```
182
+ */
183
+ async getAuctionState(options = {}) {
184
+ var _options$onNode2;
185
+ if (!isAuctionName(this.value)) throw new NotAuctionNameError(this.value, 'get auction state');
186
+ const onNode = (_options$onNode2 = options.onNode) !== null && _options$onNode2 !== void 0 ? _options$onNode2 : this.options.onNode;
187
+ const nameEntry = await onNode.getAuctionEntryByName(this.value);
188
+ return {
189
+ ...nameEntry,
190
+ id: nameEntry.id,
191
+ highestBidder: nameEntry.highestBidder
192
+ };
193
+ }
194
+
162
195
  /**
163
196
  *
164
197
  * @param nameTtl - represents in number of blocks (max and default is 180000)
@@ -174,7 +207,12 @@ export default class Name {
174
207
  }
175
208
 
176
209
  /**
177
- * 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
+ *
178
216
  * @param options - options
179
217
  * @returns mined transaction details
180
218
  * @example
@@ -189,17 +227,20 @@ export default class Name {
189
227
  };
190
228
  const tx = await buildTxAsync({
191
229
  _isInternalBuild: true,
230
+ nameSalt: _classPrivateFieldGet(_salt, this),
192
231
  ...opt,
193
232
  tag: Tag.NameClaimTx,
194
233
  accountId: opt.onAccount.address,
195
- nameSalt: _classPrivateFieldGet(_salt, this),
196
234
  name: this.value
197
235
  });
198
236
  return sendTransaction(tx, opt);
199
237
  }
200
238
 
201
239
  /**
202
- * 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.
203
244
  * @param options - Options
204
245
  * @example
205
246
  * ```js
@@ -211,17 +252,20 @@ export default class Name {
211
252
  ...this.options,
212
253
  ...options
213
254
  };
214
- const salt = genSalt();
255
+ const nameSalt = genSalt();
215
256
  const tx = await buildTxAsync({
216
257
  _isInternalBuild: true,
217
258
  ...opt,
218
259
  tag: Tag.NamePreclaimTx,
219
260
  accountId: opt.onAccount.address,
220
- commitmentId: commitmentHash(this.value, salt)
261
+ commitmentId: commitmentHash(this.value, nameSalt)
221
262
  });
222
263
  const result = await sendTransaction(tx, opt);
223
- _classPrivateFieldSet(_salt, this, salt);
224
- return result;
264
+ _classPrivateFieldSet(_salt, this, nameSalt);
265
+ return {
266
+ ...result,
267
+ nameSalt
268
+ };
225
269
  }
226
270
 
227
271
  /**
@@ -236,9 +280,7 @@ export default class Name {
236
280
  * ```
237
281
  */
238
282
  async bid(nameFee, options = {}) {
239
- if (!isAuctionName(this.value)) {
240
- throw new LogicError('This is not auction name, so cant make a bid!');
241
- }
283
+ if (!isAuctionName(this.value)) throw new NotAuctionNameError(this.value, 'make a bid');
242
284
  const opt = {
243
285
  ...this.options,
244
286
  ...options
package/es/aens.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"aens.js","names":["genSalt","isAddressValid","commitmentHash","isAuctionName","Tag","Encoding","LogicError","getName","sendTransaction","buildTxAsync","_salt","WeakMap","Name","constructor","value","options","_classPrivateFieldInitSpec","revoke","opt","tx","_isInternalBuild","tag","NameRevokeTx","nameId","accountId","onAccount","address","update","pointers","extendPointers","allPointers","Object","fromEntries","map","key","id","hasRawPointers","values","some","v","Bytearray","NameUpdateTx","version","entries","transfer","NameTransferTx","recipientId","getState","_this$options$onNode","onNode","nameEntry","getNameEntryByName","owner","extendTtl","nameTtl","claim","NameClaimTx","nameSalt","_classPrivateFieldGet","name","preclaim","salt","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, isAddressValid } from './utils/crypto.js';\nimport { commitmentHash, isAuctionName } 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 { getName } from './chain.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' | 'nameSalt' | 'name'>,\n Optional<SendTransactionOptions, 'onAccount' | 'onNode'> {}\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 * 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 getName(this.value, opt)).pointers.map(({ key, id }) => [key, id]),\n )),\n ...pointers,\n };\n\n const hasRawPointers = Object.values(allPointers).some((v) =>\n isAddressValid(v, Encoding.Bytearray),\n );\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\n * and return the object with info and predefined functions for manipulating name\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 = this.options.onNode ?? 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 *\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 ...opt,\n tag: Tag.NameClaimTx,\n accountId: opt.onAccount.address,\n nameSalt: this.#salt,\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(options: NamePreclaimOptions = {}): ReturnType<typeof sendTransaction> {\n const opt = { ...this.options, ...options };\n const salt = 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, salt),\n });\n const result = await sendTransaction(tx, opt);\n this.#salt = salt;\n return result;\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)) {\n throw new LogicError('This is not auction name, so cant make a bid!');\n }\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":"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","ignoreList":[]}
@@ -13,7 +13,7 @@ export default class BrowserRuntimeConnection extends BrowserConnection {
13
13
  */
14
14
  constructor({ port, ...options }: {
15
15
  port: Runtime.Port;
16
- debug: boolean;
16
+ debug?: boolean;
17
17
  });
18
18
  disconnect(): void;
19
19
  connect(onMessage: (message: any, origin: string, source: Runtime.Port) => void, onDisconnect: () => void): void;
@@ -1 +1 @@
1
- {"version":3,"file":"BrowserRuntime.js","names":["BrowserConnection","UnexpectedTsError","_listeners","WeakMap","BrowserRuntimeConnection","constructor","port","options","_classPrivateFieldInitSpec","disconnect","_classPrivateFieldGet","onMessage","removeListener","onDisconnect","_classPrivateFieldSet","undefined","connect","message","_port$sender$url","receiveMessage","sender","url","addListener","sendMessage","postMessage","isConnected"],"sources":["../../../src/aepp-wallet-communication/connection/BrowserRuntime.ts"],"sourcesContent":["import { Runtime } from 'webextension-polyfill';\nimport BrowserConnection from './Browser.js';\nimport { UnexpectedTsError } from '../../utils/errors.js';\n\n/**\n * BrowserRuntimeConnection\n * Handle browser runtime communication\n * @category aepp wallet communication\n */\nexport default class BrowserRuntimeConnection extends BrowserConnection {\n port: Runtime.Port;\n\n #listeners?: [(message: any, port: Runtime.Port) => void, () => void];\n\n /**\n * @param options - Options\n */\n constructor({ port, ...options }: { port: Runtime.Port; debug: boolean }) {\n super(options);\n this.port = port;\n }\n\n override disconnect(): void {\n super.disconnect();\n this.port.disconnect();\n if (this.#listeners == null) throw new UnexpectedTsError();\n this.port.onMessage.removeListener(this.#listeners[0]);\n this.port.onDisconnect.removeListener(this.#listeners[1]);\n this.#listeners = undefined;\n }\n\n override connect(\n onMessage: (message: any, origin: string, source: Runtime.Port) => void,\n onDisconnect: () => void,\n ): void {\n super.connect(onMessage, onDisconnect);\n this.#listeners = [\n (message, port) => {\n this.receiveMessage(message);\n // TODO: make `origin` optional because sender url is not available on aepp side\n onMessage(message, port.sender?.url ?? '', port);\n },\n onDisconnect,\n ];\n this.port.onMessage.addListener(this.#listeners[0]);\n this.port.onDisconnect.addListener(this.#listeners[1]);\n }\n\n override sendMessage(message: any): void {\n super.sendMessage(message);\n this.port.postMessage(message);\n }\n\n isConnected(): boolean {\n return this.#listeners != null;\n }\n}\n"],"mappings":";;;;;AACA,OAAOA,iBAAiB,MAAM,cAAc;AAC5C,SAASC,iBAAiB,QAAQ,uBAAuB;;AAEzD;AACA;AACA;AACA;AACA;AAJA,IAAAC,UAAA,oBAAAC,OAAA;AAKA,eAAe,MAAMC,wBAAwB,SAASJ,iBAAiB,CAAC;EAKtE;AACF;AACA;EACEK,WAAWA,CAAC;IAAEC,IAAI;IAAE,GAAGC;EAAgD,CAAC,EAAE;IACxE,KAAK,CAACA,OAAO,CAAC;IANhBC,0BAAA,OAAAN,UAAU;IAOR,IAAI,CAACI,IAAI,GAAGA,IAAI;EAClB;EAESG,UAAUA,CAAA,EAAS;IAC1B,KAAK,CAACA,UAAU,CAAC,CAAC;IAClB,IAAI,CAACH,IAAI,CAACG,UAAU,CAAC,CAAC;IACtB,IAAIC,qBAAA,CAAKR,UAAU,EAAf,IAAc,CAAC,IAAI,IAAI,EAAE,MAAM,IAAID,iBAAiB,CAAC,CAAC;IAC1D,IAAI,CAACK,IAAI,CAACK,SAAS,CAACC,cAAc,CAACF,qBAAA,CAAKR,UAAU,EAAf,IAAc,CAAC,CAAC,CAAC,CAAC,CAAC;IACtD,IAAI,CAACI,IAAI,CAACO,YAAY,CAACD,cAAc,CAACF,qBAAA,CAAKR,UAAU,EAAf,IAAc,CAAC,CAAC,CAAC,CAAC,CAAC;IACzDY,qBAAA,CAAKZ,UAAU,EAAf,IAAI,EAAca,SAAJ,CAAC;EACjB;EAESC,OAAOA,CACdL,SAAuE,EACvEE,YAAwB,EAClB;IACN,KAAK,CAACG,OAAO,CAACL,SAAS,EAAEE,YAAY,CAAC;IACtCC,qBAAA,CAAKZ,UAAU,EAAf,IAAI,EAAc,CAChB,CAACe,OAAO,EAAEX,IAAI,KAAK;MAAA,IAAAY,gBAAA;MACjB,IAAI,CAACC,cAAc,CAACF,OAAO,CAAC;MAC5B;MACAN,SAAS,CAACM,OAAO,GAAAC,gBAAA,GAAEZ,IAAI,CAACc,MAAM,EAAEC,GAAG,cAAAH,gBAAA,cAAAA,gBAAA,GAAI,EAAE,EAAEZ,IAAI,CAAC;IAClD,CAAC,EACDO,YAAY,CANA,CAAC;IAQf,IAAI,CAACP,IAAI,CAACK,SAAS,CAACW,WAAW,CAACZ,qBAAA,CAAKR,UAAU,EAAf,IAAc,CAAC,CAAC,CAAC,CAAC,CAAC;IACnD,IAAI,CAACI,IAAI,CAACO,YAAY,CAACS,WAAW,CAACZ,qBAAA,CAAKR,UAAU,EAAf,IAAc,CAAC,CAAC,CAAC,CAAC,CAAC;EACxD;EAESqB,WAAWA,CAACN,OAAY,EAAQ;IACvC,KAAK,CAACM,WAAW,CAACN,OAAO,CAAC;IAC1B,IAAI,CAACX,IAAI,CAACkB,WAAW,CAACP,OAAO,CAAC;EAChC;EAEAQ,WAAWA,CAAA,EAAY;IACrB,OAAOf,qBAAA,CAAKR,UAAU,EAAf,IAAc,CAAC,IAAI,IAAI;EAChC;AACF","ignoreList":[]}
1
+ {"version":3,"file":"BrowserRuntime.js","names":["BrowserConnection","UnexpectedTsError","_listeners","WeakMap","BrowserRuntimeConnection","constructor","port","options","_classPrivateFieldInitSpec","disconnect","_classPrivateFieldGet","onMessage","removeListener","onDisconnect","_classPrivateFieldSet","undefined","connect","message","_port$sender$url","receiveMessage","sender","url","addListener","sendMessage","postMessage","isConnected"],"sources":["../../../src/aepp-wallet-communication/connection/BrowserRuntime.ts"],"sourcesContent":["import { Runtime } from 'webextension-polyfill';\nimport BrowserConnection from './Browser.js';\nimport { UnexpectedTsError } from '../../utils/errors.js';\n\n/**\n * BrowserRuntimeConnection\n * Handle browser runtime communication\n * @category aepp wallet communication\n */\nexport default class BrowserRuntimeConnection extends BrowserConnection {\n port: Runtime.Port;\n\n #listeners?: [(message: any, port: Runtime.Port) => void, () => void];\n\n /**\n * @param options - Options\n */\n constructor({ port, ...options }: { port: Runtime.Port; debug?: boolean }) {\n super(options);\n this.port = port;\n }\n\n override disconnect(): void {\n super.disconnect();\n this.port.disconnect();\n if (this.#listeners == null) throw new UnexpectedTsError();\n this.port.onMessage.removeListener(this.#listeners[0]);\n this.port.onDisconnect.removeListener(this.#listeners[1]);\n this.#listeners = undefined;\n }\n\n override connect(\n onMessage: (message: any, origin: string, source: Runtime.Port) => void,\n onDisconnect: () => void,\n ): void {\n super.connect(onMessage, onDisconnect);\n this.#listeners = [\n (message, port) => {\n this.receiveMessage(message);\n // TODO: make `origin` optional because sender url is not available on aepp side\n onMessage(message, port.sender?.url ?? '', port);\n },\n onDisconnect,\n ];\n this.port.onMessage.addListener(this.#listeners[0]);\n this.port.onDisconnect.addListener(this.#listeners[1]);\n }\n\n override sendMessage(message: any): void {\n super.sendMessage(message);\n this.port.postMessage(message);\n }\n\n isConnected(): boolean {\n return this.#listeners != null;\n }\n}\n"],"mappings":";;;;;AACA,OAAOA,iBAAiB,MAAM,cAAc;AAC5C,SAASC,iBAAiB,QAAQ,uBAAuB;;AAEzD;AACA;AACA;AACA;AACA;AAJA,IAAAC,UAAA,oBAAAC,OAAA;AAKA,eAAe,MAAMC,wBAAwB,SAASJ,iBAAiB,CAAC;EAKtE;AACF;AACA;EACEK,WAAWA,CAAC;IAAEC,IAAI;IAAE,GAAGC;EAAiD,CAAC,EAAE;IACzE,KAAK,CAACA,OAAO,CAAC;IANhBC,0BAAA,OAAAN,UAAU;IAOR,IAAI,CAACI,IAAI,GAAGA,IAAI;EAClB;EAESG,UAAUA,CAAA,EAAS;IAC1B,KAAK,CAACA,UAAU,CAAC,CAAC;IAClB,IAAI,CAACH,IAAI,CAACG,UAAU,CAAC,CAAC;IACtB,IAAIC,qBAAA,CAAKR,UAAU,EAAf,IAAc,CAAC,IAAI,IAAI,EAAE,MAAM,IAAID,iBAAiB,CAAC,CAAC;IAC1D,IAAI,CAACK,IAAI,CAACK,SAAS,CAACC,cAAc,CAACF,qBAAA,CAAKR,UAAU,EAAf,IAAc,CAAC,CAAC,CAAC,CAAC,CAAC;IACtD,IAAI,CAACI,IAAI,CAACO,YAAY,CAACD,cAAc,CAACF,qBAAA,CAAKR,UAAU,EAAf,IAAc,CAAC,CAAC,CAAC,CAAC,CAAC;IACzDY,qBAAA,CAAKZ,UAAU,EAAf,IAAI,EAAca,SAAJ,CAAC;EACjB;EAESC,OAAOA,CACdL,SAAuE,EACvEE,YAAwB,EAClB;IACN,KAAK,CAACG,OAAO,CAACL,SAAS,EAAEE,YAAY,CAAC;IACtCC,qBAAA,CAAKZ,UAAU,EAAf,IAAI,EAAc,CAChB,CAACe,OAAO,EAAEX,IAAI,KAAK;MAAA,IAAAY,gBAAA;MACjB,IAAI,CAACC,cAAc,CAACF,OAAO,CAAC;MAC5B;MACAN,SAAS,CAACM,OAAO,GAAAC,gBAAA,GAAEZ,IAAI,CAACc,MAAM,EAAEC,GAAG,cAAAH,gBAAA,cAAAA,gBAAA,GAAI,EAAE,EAAEZ,IAAI,CAAC;IAClD,CAAC,EACDO,YAAY,CANA,CAAC;IAQf,IAAI,CAACP,IAAI,CAACK,SAAS,CAACW,WAAW,CAACZ,qBAAA,CAAKR,UAAU,EAAf,IAAc,CAAC,CAAC,CAAC,CAAC,CAAC;IACnD,IAAI,CAACI,IAAI,CAACO,YAAY,CAACS,WAAW,CAACZ,qBAAA,CAAKR,UAAU,EAAf,IAAc,CAAC,CAAC,CAAC,CAAC,CAAC;EACxD;EAESqB,WAAWA,CAACN,OAAY,EAAQ;IACvC,KAAK,CAACM,WAAW,CAACN,OAAO,CAAC;IAC1B,IAAI,CAACX,IAAI,CAACkB,WAAW,CAACP,OAAO,CAAC;EAChC;EAEAQ,WAAWA,CAAA,EAAY;IACrB,OAAOf,qBAAA,CAAKR,UAAU,EAAf,IAAc,CAAC,IAAI,IAAI;EAChC;AACF","ignoreList":[]}