@aeternity/aepp-sdk 14.0.0 → 14.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -1
- package/README.md +11 -19
- package/dist/aepp-sdk.browser-script.cjs +1 -1
- package/dist/aepp-sdk.browser-script.cjs.LICENSE.txt +2 -0
- package/dist/aepp-sdk.browser-script.cjs.map +1 -1
- package/dist/aepp-sdk.browser.cjs +1 -1
- package/dist/aepp-sdk.browser.cjs.map +1 -1
- package/dist/aepp-sdk.cjs +11678 -6969
- package/dist/aepp-sdk.cjs.map +1 -1
- package/es/AeSdkBase.d.ts +10 -1
- package/es/AeSdkBase.js +12 -2
- package/es/AeSdkBase.js.map +1 -1
- package/es/AeSdkMethods.d.ts +1 -1
- package/es/AeSdkMethods.js.map +1 -1
- package/es/AeSdkWallet.js +1 -1
- package/es/AeSdkWallet.js.map +1 -1
- package/es/Middleware.d.ts +5 -1
- package/es/Middleware.js +7 -2
- package/es/Middleware.js.map +1 -1
- package/es/MiddlewareSubscriber.d.ts +3 -0
- package/es/MiddlewareSubscriber.js +4 -0
- package/es/MiddlewareSubscriber.js.map +1 -1
- package/es/Node.d.ts +6 -1
- package/es/Node.js +28 -4
- package/es/Node.js.map +1 -1
- package/es/account/Base.d.ts +12 -0
- package/es/account/Base.js +1 -0
- package/es/account/Base.js.map +1 -1
- package/es/account/BaseFactory.d.ts +1 -0
- package/es/account/BaseFactory.js +1 -0
- package/es/account/BaseFactory.js.map +1 -1
- package/es/account/Generalized.d.ts +5 -0
- package/es/account/Generalized.js +9 -0
- package/es/account/Generalized.js.map +1 -1
- package/es/account/Ledger.d.ts +5 -0
- package/es/account/Ledger.js +9 -0
- package/es/account/Ledger.js.map +1 -1
- package/es/account/LedgerFactory.d.ts +2 -0
- package/es/account/LedgerFactory.js +10 -4
- package/es/account/LedgerFactory.js.map +1 -1
- package/es/account/Memory.d.ts +5 -0
- package/es/account/Memory.js +14 -5
- package/es/account/Memory.js.map +1 -1
- package/es/account/Metamask.d.ts +8 -0
- package/es/account/Metamask.js +13 -0
- package/es/account/Metamask.js.map +1 -1
- package/es/account/MetamaskFactory.d.ts +20 -2
- package/es/account/MetamaskFactory.js +93 -39
- package/es/account/MetamaskFactory.js.map +1 -1
- package/es/account/MnemonicFactory.d.ts +12 -2
- package/es/account/MnemonicFactory.js +48 -24
- package/es/account/MnemonicFactory.js.map +1 -1
- package/es/account/Rpc.d.ts +5 -0
- package/es/account/Rpc.js +8 -0
- package/es/account/Rpc.js.map +1 -1
- package/es/aens.d.ts +25 -5
- package/es/aens.js +52 -18
- package/es/aens.js.map +1 -1
- package/es/aepp-wallet-communication/connection/BrowserRuntime.d.ts +1 -1
- package/es/aepp-wallet-communication/connection/BrowserRuntime.js.map +1 -1
- package/es/apis/middleware/middleware.d.ts +99 -9
- package/es/apis/middleware/middleware.js +560 -91
- package/es/apis/middleware/middleware.js.map +1 -1
- package/es/apis/middleware/models/index.d.ts +1267 -1582
- package/es/apis/middleware/models/index.js +1 -1363
- package/es/apis/middleware/models/index.js.map +1 -1
- package/es/apis/middleware/models/mappers.d.ts +126 -56
- package/es/apis/middleware/models/mappers.js +6250 -2989
- package/es/apis/middleware/models/mappers.js.map +1 -1
- package/es/apis/middleware/models/parameters.d.ts +54 -33
- package/es/apis/middleware/models/parameters.js +389 -134
- package/es/apis/middleware/models/parameters.js.map +1 -1
- package/es/apis/node/models/index.d.ts +60 -15
- package/es/apis/node/models/index.js.map +1 -1
- package/es/apis/node/models/mappers.d.ts +3 -0
- package/es/apis/node/models/mappers.js +130 -2
- package/es/apis/node/models/mappers.js.map +1 -1
- package/es/apis/node/node.d.ts +13 -1
- package/es/apis/node/node.js +54 -0
- package/es/apis/node/node.js.map +1 -1
- package/es/chain.d.ts +19 -6
- package/es/chain.js +30 -24
- package/es/chain.js.map +1 -1
- package/es/channel/Contract.d.ts +6 -3
- package/es/channel/Contract.js +5 -2
- package/es/channel/Contract.js.map +1 -1
- package/es/channel/Spend.d.ts +1 -1
- package/es/channel/Spend.js.map +1 -1
- package/es/channel/handlers.js +1 -2
- package/es/channel/handlers.js.map +1 -1
- package/es/channel/internal.d.ts +1 -1
- package/es/channel/internal.js +2 -2
- package/es/channel/internal.js.map +1 -1
- package/es/contract/Contract.d.ts +13 -2
- package/es/contract/Contract.js +22 -12
- package/es/contract/Contract.js.map +1 -1
- package/es/contract/compiler/Base.d.ts +1 -0
- package/es/contract/compiler/Base.js +1 -0
- package/es/contract/compiler/Base.js.map +1 -1
- package/es/contract/compiler/Cli.d.ts +2 -1
- package/es/contract/compiler/Cli.js +11 -9
- package/es/contract/compiler/Cli.js.map +1 -1
- package/es/contract/compiler/Http.d.ts +2 -1
- package/es/contract/compiler/Http.js +3 -2
- package/es/contract/compiler/Http.js.map +1 -1
- package/es/contract/compiler/getFileSystem.d.ts +1 -0
- package/es/contract/compiler/getFileSystem.js +1 -0
- package/es/contract/compiler/getFileSystem.js.map +1 -1
- package/es/contract/ga.d.ts +3 -3
- package/es/contract/ga.js +3 -3
- package/es/contract/ga.js.map +1 -1
- package/es/index-browser.d.ts +32 -2
- package/es/index-browser.js +32 -2
- package/es/index-browser.js.map +1 -1
- package/es/oracle/Oracle.d.ts +10 -1
- package/es/oracle/Oracle.js +16 -6
- package/es/oracle/Oracle.js.map +1 -1
- package/es/oracle/OracleBase.d.ts +15 -2
- package/es/oracle/OracleBase.js +23 -1
- package/es/oracle/OracleBase.js.map +1 -1
- package/es/oracle/OracleClient.d.ts +3 -0
- package/es/oracle/OracleClient.js +6 -1
- package/es/oracle/OracleClient.js.map +1 -1
- package/es/spend.js +1 -1
- package/es/spend.js.map +1 -1
- package/es/tx/builder/common.js +6 -3
- package/es/tx/builder/common.js.map +1 -1
- package/es/tx/builder/constants.d.ts +53 -3
- package/es/tx/builder/constants.js +62 -12
- package/es/tx/builder/constants.js.map +1 -1
- package/es/tx/builder/delegation/schema.js +15 -0
- package/es/tx/builder/delegation/schema.js.map +1 -1
- package/es/tx/builder/entry/constants.d.ts +4 -1
- package/es/tx/builder/entry/constants.js +10 -1
- package/es/tx/builder/entry/constants.js.map +1 -1
- package/es/tx/builder/entry/index.js +1 -2
- package/es/tx/builder/entry/index.js.map +1 -1
- package/es/tx/builder/field-types/ct-version.js +1 -2
- package/es/tx/builder/field-types/ct-version.js.map +1 -1
- package/es/tx/builder/field-types/fee.d.ts +1 -1
- package/es/tx/builder/field-types/fee.js +4 -4
- package/es/tx/builder/field-types/fee.js.map +1 -1
- package/es/tx/builder/field-types/gas-price.d.ts +3 -0
- package/es/tx/builder/field-types/gas-price.js +1 -1
- package/es/tx/builder/field-types/gas-price.js.map +1 -1
- package/es/tx/builder/field-types/name-fee.js +1 -1
- package/es/tx/builder/field-types/name-fee.js.map +1 -1
- package/es/tx/builder/field-types/name-id.js +2 -2
- package/es/tx/builder/field-types/name-id.js.map +1 -1
- package/es/tx/builder/field-types/nonce.d.ts +1 -1
- package/es/tx/builder/field-types/nonce.js.map +1 -1
- package/es/tx/builder/field-types/pointers.js +3 -3
- package/es/tx/builder/field-types/pointers.js.map +1 -1
- package/es/tx/builder/field-types/ttl.js +1 -2
- package/es/tx/builder/field-types/ttl.js.map +1 -1
- package/es/tx/builder/helpers.d.ts +18 -12
- package/es/tx/builder/helpers.js +25 -17
- package/es/tx/builder/helpers.js.map +1 -1
- package/es/tx/builder/schema.d.ts +27 -24
- package/es/tx/builder/schema.generated.d.ts +12 -12
- package/es/tx/builder/schema.generated.js.map +1 -1
- package/es/tx/builder/schema.js +5 -3
- package/es/tx/builder/schema.js.map +1 -1
- package/es/tx/execution-cost.d.ts +3 -0
- package/es/tx/execution-cost.js +7 -4
- package/es/tx/execution-cost.js.map +1 -1
- package/es/tx/transaction-signer.d.ts +1 -0
- package/es/tx/transaction-signer.js +1 -0
- package/es/tx/transaction-signer.js.map +1 -1
- package/es/tx/validator.js +4 -3
- package/es/tx/validator.js.map +1 -1
- package/es/utils/MiddlewarePage.d.ts +4 -3
- package/es/utils/MiddlewarePage.js.map +1 -1
- package/es/utils/amount-formatter.d.ts +15 -1
- package/es/utils/amount-formatter.js +17 -1
- package/es/utils/amount-formatter.js.map +1 -1
- package/es/utils/autorest.d.ts +1 -1
- package/es/utils/autorest.js +10 -4
- package/es/utils/autorest.js.map +1 -1
- package/es/utils/bignumber.d.ts +1 -1
- package/es/utils/bignumber.js +1 -1
- package/es/utils/bignumber.js.map +1 -1
- package/es/utils/bytes.d.ts +3 -1
- package/es/utils/bytes.js +3 -1
- package/es/utils/bytes.js.map +1 -1
- package/es/utils/crypto.d.ts +48 -15
- package/es/utils/crypto.js +80 -29
- package/es/utils/crypto.js.map +1 -1
- package/es/utils/encoder-types.d.ts +1 -1
- package/es/utils/encoder-types.js +1 -1
- package/es/utils/encoder-types.js.map +1 -1
- package/es/utils/encoder.d.ts +2 -0
- package/es/utils/encoder.js +2 -0
- package/es/utils/encoder.js.map +1 -1
- package/es/utils/errors.d.ts +2 -2
- package/es/utils/errors.js +2 -2
- package/es/utils/errors.js.map +1 -1
- package/es/utils/json-big.js +1 -1
- package/es/utils/json-big.js.map +1 -1
- package/es/utils/jwt.js +3 -3
- package/es/utils/jwt.js.map +1 -1
- package/es/utils/typed-data.d.ts +5 -0
- package/es/utils/typed-data.js +6 -0
- package/es/utils/typed-data.js.map +1 -1
- package/package.json +50 -51
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MnemonicFactory.js","names":["mnemonicToSeed","tweetnaclAuth","AccountBaseFactory","AccountMemory","encode","Encoding","decode","concatBuffers","
|
|
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":";;;;;;;AAAA,SAASA,cAAc,EAAEC,kBAAkB,QAAQ,cAAc;AACjE,OAAOC,aAAa,MAAM,gBAAgB;AAC1C,OAAOC,kBAAkB,MAAM,kBAAkB;AACjD,OAAOC,aAAa,MAAM,aAAa;AACvC,SAASC,MAAM,EAAEC,QAAQ,EAAWC,MAAM,QAAQ,qBAAqB;AACvE,SAASC,aAAa,QAAQ,mBAAmB;AACjD,SAASC,aAAa,QAAQ,oBAAoB;AAElD,OAAO,MAAMC,aAAa,GAAGC,OAAA,CAAOC,IAAI,CAAC,cAAc,CAAC;AACxD,MAAMC,eAAe,GAAG,UAAU;AAOlC,OAAO,SAASC,SAASA,CAACC,OAAmB,EAAEC,GAAe,EAAe;EAC3E,MAAMC,CAAC,GAAGf,aAAa,CAACgB,IAAI,CAACH,OAAO,EAAEC,GAAG,CAAC;EAC1C,MAAMG,EAAE,GAAGF,CAAC,CAACG,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;EACzB,MAAMC,EAAE,GAAGJ,CAAC,CAACG,KAAK,CAAC,EAAE,CAAC;EACtB,OAAO;IACLE,SAAS,EAAEH,EAAE;IACbI,SAAS,EAAEF;EACb,CAAC;AACH;AAEA,OAAO,SAASG,iBAAiBA,CAACR,GAAgB,EAAES,QAA2B,EAAe;EAC5F,OAAOA,QAAQ,CAACC,MAAM,CAAC,CAAC;IAAEJ,SAAS;IAAEC;EAAU,CAAC,EAAEI,OAAO,KAAK;IAC5D,MAAMC,WAAW,GAAGjB,OAAA,CAAOkB,WAAW,CAAC,CAAC,CAAC;IACzCD,WAAW,CAACE,aAAa,CAACH,OAAO,GAAGd,eAAe,EAAE,CAAC,CAAC;IACvD,MAAMkB,IAAI,GAAGvB,aAAa,CAAC,CAACG,OAAA,CAAOqB,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAEV,SAAS,EAAEM,WAAW,CAAC,CAAC;IACxE,OAAOd,SAAS,CAACiB,IAAI,EAAER,SAAS,CAAC;EACnC,CAAC,EAAEP,GAAG,CAAC;AACT;AAAC,IAAAiB,uBAAA,oBAAAC,OAAA;AAAA,IAAAC,6BAAA,oBAAAC,OAAA;AAOD;AACA;AACA;AACA;AACA,eAAe,MAAMC,sBAAsB,SAASlC,kBAAkB,CAAC;EAGrE;AACF;AACA;AACA;EACEmC,WAAWA,CAACC,sBAAoD,EAAE;IAChE,KAAK,CAAC,CAAC;IAACC,2BAAA,OAAAL,6BAAA;IAPVM,0BAAA,OAAAR,uBAAuB;IAQrBS,qBAAA,CAAKT,uBAAuB,EAA5B,IAAI,EAA2BM,sBAAJ,CAAC;EAC9B;EA2BA;AACF;AACA;AACA;EACE,MAAMI,SAASA,CAAA,EAAoB;IACjC,OAAOC,iBAAA,CAAAT,6BAAA,MAAI,EAACU,UAAS,CAAC,CAAAC,IAAA,CAAf,IAAI,EAAY,KAAK;EAC9B;;EAEA;AACF;AACA;EACEC,aAAaA,CAAA,EAAW;IACtB,OAAOH,iBAAA,CAAAT,6BAAA,MAAI,EAACU,UAAS,CAAC,CAAAC,IAAA,CAAf,IAAI,EAAY,IAAI;EAC7B;EAWA;AACF;AACA;AACA;EACE,MAAME,UAAUA,CAACC,YAAoB,EAA0B;IAC7D,MAAMC,MAAM,GAAG,MAAM,IAAI,CAACP,SAAS,CAAC,CAAC;IACrC,OAAOC,iBAAA,CAAAT,6BAAA,MAAI,EAACgB,mBAAkB,CAAC,CAAAL,IAAA,CAAxB,IAAI,EAAqBG,YAAY,EAAEC,MAAM;EACtD;;EAEA;AACF;AACA;EACEE,cAAcA,CAACH,YAAoB,EAAiB;IAClD,MAAMC,MAAM,GAAG,IAAI,CAACH,aAAa,CAAC,CAAC;IACnC,OAAOH,iBAAA,CAAAT,6BAAA,MAAI,EAACgB,mBAAkB,CAAC,CAAAL,IAAA,CAAxB,IAAI,EAAqBG,YAAY,EAAEC,MAAM;EACtD;AACF;AAAC,SAAAL,WA/DYQ,IAAa,EAA4B;EAClD,MAAMC,eAAe,GAAIC,IAAgB,IAAa;IACpD,MAAMC,SAAS,GAAG1C,SAAS,CAACyC,IAAI,EAAE7C,aAAa,CAAC;IAChD,MAAM+C,SAAS,GAAGjC,iBAAiB,CAACgC,SAAS,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IACzDd,qBAAA,CAAKT,uBAAuB,EAA5B,IAAI,EAA2B;MAC7BX,SAAS,EAAEjB,MAAM,CAACoD,SAAS,CAACnC,SAAS,EAAEhB,QAAQ,CAACoD,SAAS,CAAC;MAC1DnC,SAAS,EAAElB,MAAM,CAACoD,SAAS,CAAClC,SAAS,EAAEjB,QAAQ,CAACoD,SAAS;IAC3D,CAH2B,CAAC;IAI5B,OAAOC,qBAAA,CAAK1B,uBAAuB,EAA5B,IAA2B,CAAC;EACrC,CAAC;EAED,IAAI2B,WAAW,CAACC,MAAM,CAACF,qBAAA,CAAK1B,uBAAuB,EAA5B,IAA2B,CAAC,CAAC,EAAE;IACpD,IAAI0B,qBAAA,CAAK1B,uBAAuB,EAA5B,IAA2B,CAAC,CAAC6B,MAAM,KAAK,EAAE,EAAE;MAC9C,MAAM,IAAIrD,aAAa,CAAC,aAAa,EAAE,EAAE,EAAEkD,qBAAA,CAAK1B,uBAAuB,EAA5B,IAA2B,CAAC,CAAC6B,MAAM,CAAC;IACjF;IACA,OAAOR,eAAe,CAACK,qBAAA,CAAK1B,uBAAuB,EAA5B,IAA2B,CAAC,CAAC;EACtD;EACA,IAAI,OAAO0B,qBAAA,CAAK1B,uBAAuB,EAA5B,IAA2B,CAAC,KAAK,QAAQ,EAAE,OAAO0B,qBAAA,CAAK1B,uBAAuB,EAA5B,IAA2B,CAAC;EACzF,OAAOoB,IAAI,GACPC,eAAe,CAACrD,kBAAkB,CAAC0D,qBAAA,CAAK1B,uBAAuB,EAA5B,IAA2B,CAAC,CAAC,CAAC,GACjEjC,cAAc,CAAC2D,qBAAA,CAAK1B,uBAAuB,EAA5B,IAA2B,CAAC,CAAC,CAAC8B,IAAI,CAACT,eAAe,CAAC;AACxE;AAAC,SAAAH,oBAiBmBF,YAAoB,EAAEC,MAAc,EAAiB;EACvE,MAAMO,SAAS,GAAG;IAChBnC,SAAS,EAAEf,MAAM,CAAC2C,MAAM,CAAC5B,SAAS,CAAC;IACnCC,SAAS,EAAEhB,MAAM,CAAC2C,MAAM,CAAC3B,SAAS;EACpC,CAAC;EACD,MAAMyC,GAAG,GAAGxC,iBAAiB,CAACiC,SAAS,EAAE,CAACR,YAAY,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC3B,SAAS;EACxE,OAAO,IAAIlB,aAAa,CAACC,MAAM,CAAC2D,GAAG,EAAE1D,QAAQ,CAAC2D,gBAAgB,CAAC,CAAC;AAClE","ignoreList":[]}
|
package/es/account/Rpc.d.ts
CHANGED
|
@@ -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
|
package/es/account/Rpc.js.map
CHANGED
|
@@ -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","
|
|
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
|
|
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' | '
|
|
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)
|
|
@@ -135,7 +153,9 @@ export default class Name {
|
|
|
135
153
|
* await name.preclaim({ ttl, fee, nonce })
|
|
136
154
|
* ```
|
|
137
155
|
*/
|
|
138
|
-
preclaim(options?: NamePreclaimOptions): ReturnType<typeof sendTransaction
|
|
156
|
+
preclaim(options?: NamePreclaimOptions): Promise<Awaited<ReturnType<typeof sendTransaction>> & {
|
|
157
|
+
nameSalt: number;
|
|
158
|
+
}>;
|
|
139
159
|
/**
|
|
140
160
|
* Bid to name auction
|
|
141
161
|
* @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,
|
|
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
|
-
|
|
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
|
|
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 =>
|
|
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
|
|
153
|
-
const 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)
|
|
@@ -189,10 +222,10 @@ export default class Name {
|
|
|
189
222
|
};
|
|
190
223
|
const tx = await buildTxAsync({
|
|
191
224
|
_isInternalBuild: true,
|
|
225
|
+
nameSalt: _classPrivateFieldGet(_salt, this),
|
|
192
226
|
...opt,
|
|
193
227
|
tag: Tag.NameClaimTx,
|
|
194
228
|
accountId: opt.onAccount.address,
|
|
195
|
-
nameSalt: _classPrivateFieldGet(_salt, this),
|
|
196
229
|
name: this.value
|
|
197
230
|
});
|
|
198
231
|
return sendTransaction(tx, opt);
|
|
@@ -211,17 +244,20 @@ export default class Name {
|
|
|
211
244
|
...this.options,
|
|
212
245
|
...options
|
|
213
246
|
};
|
|
214
|
-
const
|
|
247
|
+
const nameSalt = genSalt();
|
|
215
248
|
const tx = await buildTxAsync({
|
|
216
249
|
_isInternalBuild: true,
|
|
217
250
|
...opt,
|
|
218
251
|
tag: Tag.NamePreclaimTx,
|
|
219
252
|
accountId: opt.onAccount.address,
|
|
220
|
-
commitmentId: commitmentHash(this.value,
|
|
253
|
+
commitmentId: commitmentHash(this.value, nameSalt)
|
|
221
254
|
});
|
|
222
255
|
const result = await sendTransaction(tx, opt);
|
|
223
|
-
_classPrivateFieldSet(_salt, this,
|
|
224
|
-
return
|
|
256
|
+
_classPrivateFieldSet(_salt, this, nameSalt);
|
|
257
|
+
return {
|
|
258
|
+
...result,
|
|
259
|
+
nameSalt
|
|
260
|
+
};
|
|
225
261
|
}
|
|
226
262
|
|
|
227
263
|
/**
|
|
@@ -236,9 +272,7 @@ export default class Name {
|
|
|
236
272
|
* ```
|
|
237
273
|
*/
|
|
238
274
|
async bid(nameFee, options = {}) {
|
|
239
|
-
if (!isAuctionName(this.value))
|
|
240
|
-
throw new LogicError('This is not auction name, so cant make a bid!');
|
|
241
|
-
}
|
|
275
|
+
if (!isAuctionName(this.value)) throw new NotAuctionNameError(this.value, 'make a bid');
|
|
242
276
|
const opt = {
|
|
243
277
|
...this.options,
|
|
244
278
|
...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 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":[]}
|
|
@@ -13,7 +13,7 @@ export default class BrowserRuntimeConnection extends BrowserConnection {
|
|
|
13
13
|
*/
|
|
14
14
|
constructor({ port, ...options }: {
|
|
15
15
|
port: Runtime.Port;
|
|
16
|
-
debug
|
|
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
|
|
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":[]}
|