@hiero-ledger/sdk 2.73.2 → 2.74.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/dist/umd.js +250 -115
- package/dist/umd.min.js +3 -3
- package/lib/MirrorNode.cjs +46 -0
- package/lib/MirrorNode.d.ts +16 -0
- package/lib/MirrorNode.js +1 -1
- package/lib/MirrorNode.js.map +1 -1
- package/lib/account/AccountAllowanceApproveTransaction.cjs +11 -5
- package/lib/account/AccountAllowanceApproveTransaction.d.ts +4 -5
- package/lib/account/AccountAllowanceApproveTransaction.js +1 -1
- package/lib/account/AccountAllowanceApproveTransaction.js.map +1 -1
- package/lib/account/TokenAllowance.cjs +4 -2
- package/lib/account/TokenAllowance.d.ts +4 -2
- package/lib/account/TokenAllowance.js +1 -1
- package/lib/account/TokenAllowance.js.map +1 -1
- package/lib/account/TokenTransferMap.cjs +7 -2
- package/lib/account/TokenTransferMap.d.ts +6 -2
- package/lib/account/TokenTransferMap.js +1 -1
- package/lib/account/TokenTransferMap.js.map +1 -1
- package/lib/client/Client.cjs +13 -44
- package/lib/client/Client.d.ts +12 -12
- package/lib/client/Client.js +1 -1
- package/lib/client/Client.js.map +1 -1
- package/lib/client/MirrorNetwork.cjs +16 -0
- package/lib/client/MirrorNetwork.d.ts +7 -0
- package/lib/client/MirrorNetwork.js +1 -1
- package/lib/client/MirrorNetwork.js.map +1 -1
- package/lib/client/addressbooks/mainnet.cjs +1 -1
- package/lib/client/addressbooks/mainnet.d.ts +1 -1
- package/lib/client/addressbooks/mainnet.js +1 -1
- package/lib/client/addressbooks/mainnet.js.map +1 -1
- package/lib/client/addressbooks/previewnet.cjs +1 -1
- package/lib/client/addressbooks/previewnet.d.ts +1 -1
- package/lib/client/addressbooks/previewnet.js +1 -1
- package/lib/client/addressbooks/previewnet.js.map +1 -1
- package/lib/client/addressbooks/testnet.cjs +1 -1
- package/lib/client/addressbooks/testnet.d.ts +1 -1
- package/lib/client/addressbooks/testnet.js +1 -1
- package/lib/client/addressbooks/testnet.js.map +1 -1
- package/lib/constants/ClientConstants.cjs +4 -1
- package/lib/constants/ClientConstants.d.ts +2 -0
- package/lib/constants/ClientConstants.js +1 -1
- package/lib/constants/ClientConstants.js.map +1 -1
- package/lib/contract/ContractId.cjs +2 -5
- package/lib/contract/ContractId.js +1 -1
- package/lib/contract/ContractId.js.map +1 -1
- package/lib/query/MirrorNodeContractQuery.cjs +2 -1
- package/lib/query/MirrorNodeContractQuery.js.map +1 -1
- package/lib/token/AbstractTokenTransferTransaction.cjs +12 -8
- package/lib/token/AbstractTokenTransferTransaction.d.ts +14 -11
- package/lib/token/AbstractTokenTransferTransaction.js +1 -1
- package/lib/token/AbstractTokenTransferTransaction.js.map +1 -1
- package/lib/token/AssessedCustomFee.cjs +8 -4
- package/lib/token/AssessedCustomFee.d.ts +8 -5
- package/lib/token/AssessedCustomFee.js +1 -1
- package/lib/token/AssessedCustomFee.js.map +1 -1
- package/lib/token/CustomFixedFee.cjs +8 -4
- package/lib/token/CustomFixedFee.d.ts +8 -5
- package/lib/token/CustomFixedFee.js +1 -1
- package/lib/token/CustomFixedFee.js.map +1 -1
- package/lib/token/PendingAirdropRecord.cjs +7 -2
- package/lib/token/PendingAirdropRecord.d.ts +6 -2
- package/lib/token/PendingAirdropRecord.js +1 -1
- package/lib/token/PendingAirdropRecord.js.map +1 -1
- package/lib/token/TokenAirdropTransaction.cjs +2 -1
- package/lib/token/TokenAirdropTransaction.d.ts +4 -2
- package/lib/token/TokenAirdropTransaction.js.map +1 -1
- package/lib/token/TokenBurnTransaction.cjs +5 -3
- package/lib/token/TokenBurnTransaction.d.ts +6 -4
- package/lib/token/TokenBurnTransaction.js +1 -1
- package/lib/token/TokenBurnTransaction.js.map +1 -1
- package/lib/token/TokenCreateTransaction.cjs +7 -6
- package/lib/token/TokenCreateTransaction.d.ts +8 -8
- package/lib/token/TokenCreateTransaction.js +1 -1
- package/lib/token/TokenCreateTransaction.js.map +1 -1
- package/lib/token/TokenMintTransaction.cjs +5 -4
- package/lib/token/TokenMintTransaction.d.ts +6 -5
- package/lib/token/TokenMintTransaction.js +1 -1
- package/lib/token/TokenMintTransaction.js.map +1 -1
- package/lib/token/TokenTransfer.cjs +3 -2
- package/lib/token/TokenTransfer.d.ts +2 -2
- package/lib/token/TokenTransfer.js +1 -1
- package/lib/token/TokenTransfer.js.map +1 -1
- package/lib/token/TokenWipeTransaction.cjs +5 -3
- package/lib/token/TokenWipeTransaction.d.ts +6 -4
- package/lib/token/TokenWipeTransaction.js +1 -1
- package/lib/token/TokenWipeTransaction.js.map +1 -1
- package/lib/transaction/Transaction.cjs +54 -0
- package/lib/transaction/Transaction.d.ts +10 -0
- package/lib/transaction/Transaction.js +1 -1
- package/lib/transaction/Transaction.js.map +1 -1
- package/lib/util.cjs +25 -0
- package/lib/util.d.ts +8 -0
- package/lib/util.js +1 -1
- package/lib/util.js.map +1 -1
- package/lib/version.js +1 -1
- package/package.json +12 -8
- package/src/MirrorNode.js +49 -0
- package/src/account/AccountAllowanceApproveTransaction.js +11 -11
- package/src/account/TokenAllowance.js +5 -2
- package/src/account/TokenTransferMap.js +7 -2
- package/src/client/Client.js +13 -51
- package/src/client/MirrorNetwork.js +18 -0
- package/src/client/addressbooks/mainnet.js +1 -1
- package/src/client/addressbooks/previewnet.js +1 -1
- package/src/client/addressbooks/testnet.js +1 -1
- package/src/constants/ClientConstants.js +3 -0
- package/src/contract/ContractId.js +2 -10
- package/src/query/MirrorNodeContractQuery.js +2 -1
- package/src/token/AbstractTokenTransferTransaction.js +12 -8
- package/src/token/AssessedCustomFee.js +8 -5
- package/src/token/CustomFixedFee.js +8 -5
- package/src/token/PendingAirdropRecord.js +7 -2
- package/src/token/TokenAirdropTransaction.js +2 -1
- package/src/token/TokenBurnTransaction.js +5 -3
- package/src/token/TokenCreateTransaction.js +7 -9
- package/src/token/TokenMintTransaction.js +5 -4
- package/src/token/TokenTransfer.js +3 -2
- package/src/token/TokenWipeTransaction.js +5 -3
- package/src/transaction/Transaction.js +63 -0
- package/src/util.js +26 -0
package/lib/MirrorNode.cjs
CHANGED
|
@@ -44,5 +44,51 @@ class MirrorNode extends _ManagedNode.default {
|
|
|
44
44
|
getKey() {
|
|
45
45
|
return this._address.toString();
|
|
46
46
|
}
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Gets the base URL for this mirror node's REST API.
|
|
50
|
+
*
|
|
51
|
+
* @returns {string} The base URL for the mirror node REST API
|
|
52
|
+
* @throws {Error} When the mirror node has invalid address configuration
|
|
53
|
+
*/
|
|
54
|
+
get mirrorRestApiBaseUrl() {
|
|
55
|
+
const host = this.address.address;
|
|
56
|
+
const port = this.address.port;
|
|
57
|
+
if (!host || !port) {
|
|
58
|
+
throw new Error("Mirror node has invalid address configuration");
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
// For localhost/127.0.0.1, mirror node gRPC and REST API use different ports
|
|
62
|
+
// gRPC typically uses port 5600, but REST API uses port 5551
|
|
63
|
+
// Note: Contract calls may use port 8545 (handled separately in MirrorNodeContractQuery)
|
|
64
|
+
if (host === "localhost" || host === "127.0.0.1") {
|
|
65
|
+
return `http://${host}:5551/api/v1`;
|
|
66
|
+
}
|
|
67
|
+
const scheme = this._getSchemeFromHostAndPort(host, port);
|
|
68
|
+
return `${scheme}://${host}:${port}/api/v1`;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Determines the appropriate scheme (http/https) based on the host and port.
|
|
73
|
+
*
|
|
74
|
+
* @private
|
|
75
|
+
* @param {string} host - The host address
|
|
76
|
+
* @param {number} port - The port number
|
|
77
|
+
* @returns {string} - The scheme ('http' or 'https')
|
|
78
|
+
*/
|
|
79
|
+
_getSchemeFromHostAndPort(host, port) {
|
|
80
|
+
// For localhost and 127.0.0.1, use HTTP scheme
|
|
81
|
+
if (host === "localhost" || host === "127.0.0.1") {
|
|
82
|
+
return "http";
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
// Standard HTTP ports
|
|
86
|
+
if (port === 80) {
|
|
87
|
+
return "http";
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
// For other ports, assume HTTPS for security
|
|
91
|
+
return "https";
|
|
92
|
+
}
|
|
47
93
|
}
|
|
48
94
|
exports.default = MirrorNode;
|
package/lib/MirrorNode.d.ts
CHANGED
|
@@ -25,6 +25,22 @@ export default class MirrorNode extends ManagedNode<import("./channel/MirrorChan
|
|
|
25
25
|
newNode?: NewNode | undefined;
|
|
26
26
|
cloneNode?: CloneNode | undefined;
|
|
27
27
|
});
|
|
28
|
+
/**
|
|
29
|
+
* Gets the base URL for this mirror node's REST API.
|
|
30
|
+
*
|
|
31
|
+
* @returns {string} The base URL for the mirror node REST API
|
|
32
|
+
* @throws {Error} When the mirror node has invalid address configuration
|
|
33
|
+
*/
|
|
34
|
+
get mirrorRestApiBaseUrl(): string;
|
|
35
|
+
/**
|
|
36
|
+
* Determines the appropriate scheme (http/https) based on the host and port.
|
|
37
|
+
*
|
|
38
|
+
* @private
|
|
39
|
+
* @param {string} host - The host address
|
|
40
|
+
* @param {number} port - The port number
|
|
41
|
+
* @returns {string} - The scheme ('http' or 'https')
|
|
42
|
+
*/
|
|
43
|
+
private _getSchemeFromHostAndPort;
|
|
28
44
|
}
|
|
29
45
|
export type MirrorChannel = import("./channel/MirrorChannel.js").default;
|
|
30
46
|
export type ManagedNodeAddress = import("./ManagedNodeAddress.js").default;
|
package/lib/MirrorNode.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import
|
|
1
|
+
import r from"./ManagedNode.js";class t extends r{constructor(r={}){super(r)}getKey(){return this._address.toString()}get mirrorRestApiBaseUrl(){const r=this.address.address,t=this.address.port;if(!r||!t)throw new Error("Mirror node has invalid address configuration");if("localhost"===r||"127.0.0.1"===r)return`http://${r}:5551/api/v1`;return`${this._getSchemeFromHostAndPort(r,t)}://${r}:${t}/api/v1`}_getSchemeFromHostAndPort(r,t){return"localhost"===r||"127.0.0.1"===r||80===t?"http":"https"}}export{t as default};
|
|
2
2
|
//# sourceMappingURL=MirrorNode.js.map
|
package/lib/MirrorNode.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MirrorNode.js","sources":["../src/MirrorNode.js"],"sourcesContent":["// SPDX-License-Identifier: Apache-2.0\n\nimport ManagedNode from \"./ManagedNode.js\";\n\n/**\n * @typedef {import(\"./channel/MirrorChannel.js\").default} MirrorChannel\n * @typedef {import(\"./ManagedNodeAddress.js\").default} ManagedNodeAddress\n */\n\n/**\n * @typedef {object} NewNode\n * @property {string} address\n * @property {(address: string, cert?: string) => MirrorChannel} channelInitFunction\n */\n\n/**\n * @typedef {object} CloneNode\n * @property {MirrorNode} node\n * @property {ManagedNodeAddress} address\n */\n\n/**\n * @augments {ManagedNode<MirrorChannel>}\n */\nexport default class MirrorNode extends ManagedNode {\n /**\n * @param {object} props\n * @param {NewNode=} [props.newNode]\n * @param {CloneNode=} [props.cloneNode]\n */\n constructor(props = {}) {\n super(props);\n }\n\n /**\n * @returns {string}\n */\n getKey() {\n return this._address.toString();\n }\n}\n"],"names":["MirrorNode","ManagedNode","constructor","props","super","getKey","this","_address","toString"],"mappings":"gCAwBe,MAAMA,UAAmBC,EAMpC,WAAAC,CAAYC,EAAQ,IAChBC,MAAMD,EACd,CAKI,MAAAE,GACI,OAAOC,KAAKC,SAASC,UAC7B"}
|
|
1
|
+
{"version":3,"file":"MirrorNode.js","sources":["../src/MirrorNode.js"],"sourcesContent":["// SPDX-License-Identifier: Apache-2.0\n\nimport ManagedNode from \"./ManagedNode.js\";\n\n/**\n * @typedef {import(\"./channel/MirrorChannel.js\").default} MirrorChannel\n * @typedef {import(\"./ManagedNodeAddress.js\").default} ManagedNodeAddress\n */\n\n/**\n * @typedef {object} NewNode\n * @property {string} address\n * @property {(address: string, cert?: string) => MirrorChannel} channelInitFunction\n */\n\n/**\n * @typedef {object} CloneNode\n * @property {MirrorNode} node\n * @property {ManagedNodeAddress} address\n */\n\n/**\n * @augments {ManagedNode<MirrorChannel>}\n */\nexport default class MirrorNode extends ManagedNode {\n /**\n * @param {object} props\n * @param {NewNode=} [props.newNode]\n * @param {CloneNode=} [props.cloneNode]\n */\n constructor(props = {}) {\n super(props);\n }\n\n /**\n * @returns {string}\n */\n getKey() {\n return this._address.toString();\n }\n\n /**\n * Gets the base URL for this mirror node's REST API.\n *\n * @returns {string} The base URL for the mirror node REST API\n * @throws {Error} When the mirror node has invalid address configuration\n */\n get mirrorRestApiBaseUrl() {\n const host = this.address.address;\n const port = this.address.port;\n\n if (!host || !port) {\n throw new Error(\"Mirror node has invalid address configuration\");\n }\n\n // For localhost/127.0.0.1, mirror node gRPC and REST API use different ports\n // gRPC typically uses port 5600, but REST API uses port 5551\n // Note: Contract calls may use port 8545 (handled separately in MirrorNodeContractQuery)\n if (host === \"localhost\" || host === \"127.0.0.1\") {\n return `http://${host}:5551/api/v1`;\n }\n\n const scheme = this._getSchemeFromHostAndPort(host, port);\n\n return `${scheme}://${host}:${port}/api/v1`;\n }\n\n /**\n * Determines the appropriate scheme (http/https) based on the host and port.\n *\n * @private\n * @param {string} host - The host address\n * @param {number} port - The port number\n * @returns {string} - The scheme ('http' or 'https')\n */\n _getSchemeFromHostAndPort(host, port) {\n // For localhost and 127.0.0.1, use HTTP scheme\n if (host === \"localhost\" || host === \"127.0.0.1\") {\n return \"http\";\n }\n\n // Standard HTTP ports\n if (port === 80) {\n return \"http\";\n }\n\n // For other ports, assume HTTPS for security\n return \"https\";\n }\n}\n"],"names":["MirrorNode","ManagedNode","constructor","props","super","getKey","this","_address","toString","mirrorRestApiBaseUrl","host","address","port","Error","_getSchemeFromHostAndPort"],"mappings":"gCAwBe,MAAMA,UAAmBC,EAMpC,WAAAC,CAAYC,EAAQ,IAChBC,MAAMD,EACd,CAKI,MAAAE,GACI,OAAOC,KAAKC,SAASC,UAC7B,CAQI,wBAAIC,GACA,MAAMC,EAAOJ,KAAKK,QAAQA,QACpBC,EAAON,KAAKK,QAAQC,KAE1B,IAAKF,IAASE,EACV,MAAM,IAAIC,MAAM,iDAMpB,GAAa,cAATH,GAAiC,cAATA,EACxB,MAAO,UAAUA,gBAKrB,MAAO,GAFQJ,KAAKQ,0BAA0BJ,EAAME,QAE9BF,KAAQE,UACtC,CAUI,yBAAAE,CAA0BJ,EAAME,GAE5B,MAAa,cAATF,GAAiC,cAATA,GAKf,KAATE,EAJO,OASJ,OACf"}
|
|
@@ -9,11 +9,11 @@ var _AccountId = _interopRequireDefault(require("./AccountId.cjs"));
|
|
|
9
9
|
var _ContractId = _interopRequireDefault(require("../contract/ContractId.cjs"));
|
|
10
10
|
var _TokenId = _interopRequireDefault(require("../token/TokenId.cjs"));
|
|
11
11
|
var _NftId = _interopRequireDefault(require("../token/NftId.cjs"));
|
|
12
|
-
var _long = _interopRequireDefault(require("long"));
|
|
13
12
|
var _Hbar = _interopRequireDefault(require("../Hbar.cjs"));
|
|
14
13
|
var _HbarAllowance = _interopRequireDefault(require("./HbarAllowance.cjs"));
|
|
15
14
|
var _TokenAllowance = _interopRequireDefault(require("./TokenAllowance.cjs"));
|
|
16
15
|
var _TokenNftAllowance = _interopRequireDefault(require("./TokenNftAllowance.cjs"));
|
|
16
|
+
var _util = require("../util.cjs");
|
|
17
17
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
18
18
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
19
19
|
// SPDX-License-Identifier: Apache-2.0
|
|
@@ -140,16 +140,19 @@ class AccountAllowanceApproveTransaction extends _Transaction.default {
|
|
|
140
140
|
* @param {TokenId | string} tokenId
|
|
141
141
|
* @param {AccountId | string} ownerAccountId
|
|
142
142
|
* @param {AccountId | ContractId | string} spenderAccountId
|
|
143
|
-
* @param {Long | number} amount
|
|
143
|
+
* @param {Long | number | BigNumber | bigint} amount
|
|
144
144
|
* @returns {AccountAllowanceApproveTransaction}
|
|
145
145
|
*/
|
|
146
146
|
approveTokenAllowance(tokenId, ownerAccountId, spenderAccountId, amount) {
|
|
147
147
|
this._requireNotFrozen();
|
|
148
|
+
|
|
149
|
+
// Convert amount to Long
|
|
150
|
+
const amountLong = (0, _util.convertAmountToLong)(amount);
|
|
148
151
|
this._tokenApprovals.push(new _TokenAllowance.default({
|
|
149
152
|
tokenId: typeof tokenId === "string" ? _TokenId.default.fromString(tokenId) : tokenId,
|
|
150
153
|
spenderAccountId: typeof spenderAccountId === "string" ? _AccountId.default.fromString(spenderAccountId) : spenderAccountId instanceof _ContractId.default ? _AccountId.default.fromEvmAddress(spenderAccountId.shard, spenderAccountId.realm, spenderAccountId.toEvmAddress()) : spenderAccountId,
|
|
151
154
|
ownerAccountId: typeof ownerAccountId === "string" ? _AccountId.default.fromString(ownerAccountId) : ownerAccountId instanceof _ContractId.default ? _AccountId.default.fromEvmAddress(ownerAccountId.shard, ownerAccountId.realm, ownerAccountId.toEvmAddress()) : ownerAccountId,
|
|
152
|
-
amount:
|
|
155
|
+
amount: amountLong
|
|
153
156
|
}));
|
|
154
157
|
return this;
|
|
155
158
|
}
|
|
@@ -158,15 +161,18 @@ class AccountAllowanceApproveTransaction extends _Transaction.default {
|
|
|
158
161
|
* @deprecated - Use `approveTokenAllowance()` instead
|
|
159
162
|
* @param {TokenId | string} tokenId
|
|
160
163
|
* @param {AccountId | string} spenderAccountId
|
|
161
|
-
* @param {Long | number} amount
|
|
164
|
+
* @param {Long | number | BigNumber | bigint} amount
|
|
162
165
|
* @returns {AccountAllowanceApproveTransaction}
|
|
163
166
|
*/
|
|
164
167
|
addTokenAllowance(tokenId, spenderAccountId, amount) {
|
|
165
168
|
this._requireNotFrozen();
|
|
169
|
+
|
|
170
|
+
// Convert amount to Long
|
|
171
|
+
const amountLong = (0, _util.convertAmountToLong)(amount);
|
|
166
172
|
this._tokenApprovals.push(new _TokenAllowance.default({
|
|
167
173
|
tokenId: typeof tokenId === "string" ? _TokenId.default.fromString(tokenId) : tokenId,
|
|
168
174
|
spenderAccountId: typeof spenderAccountId === "string" ? _AccountId.default.fromString(spenderAccountId) : spenderAccountId,
|
|
169
|
-
amount:
|
|
175
|
+
amount: amountLong,
|
|
170
176
|
ownerAccountId: null
|
|
171
177
|
}));
|
|
172
178
|
return this;
|
|
@@ -82,18 +82,18 @@ export default class AccountAllowanceApproveTransaction extends Transaction {
|
|
|
82
82
|
* @param {TokenId | string} tokenId
|
|
83
83
|
* @param {AccountId | string} ownerAccountId
|
|
84
84
|
* @param {AccountId | ContractId | string} spenderAccountId
|
|
85
|
-
* @param {Long | number} amount
|
|
85
|
+
* @param {Long | number | BigNumber | bigint} amount
|
|
86
86
|
* @returns {AccountAllowanceApproveTransaction}
|
|
87
87
|
*/
|
|
88
|
-
approveTokenAllowance(tokenId: TokenId | string, ownerAccountId: AccountId | string, spenderAccountId: AccountId | ContractId | string, amount: Long | number): AccountAllowanceApproveTransaction;
|
|
88
|
+
approveTokenAllowance(tokenId: TokenId | string, ownerAccountId: AccountId | string, spenderAccountId: AccountId | ContractId | string, amount: Long | number | BigNumber | bigint): AccountAllowanceApproveTransaction;
|
|
89
89
|
/**
|
|
90
90
|
* @deprecated - Use `approveTokenAllowance()` instead
|
|
91
91
|
* @param {TokenId | string} tokenId
|
|
92
92
|
* @param {AccountId | string} spenderAccountId
|
|
93
|
-
* @param {Long | number} amount
|
|
93
|
+
* @param {Long | number | BigNumber | bigint} amount
|
|
94
94
|
* @returns {AccountAllowanceApproveTransaction}
|
|
95
95
|
*/
|
|
96
|
-
addTokenAllowance(tokenId: TokenId | string, spenderAccountId: AccountId | string, amount: Long | number): AccountAllowanceApproveTransaction;
|
|
96
|
+
addTokenAllowance(tokenId: TokenId | string, spenderAccountId: AccountId | string, amount: Long | number | BigNumber | bigint): AccountAllowanceApproveTransaction;
|
|
97
97
|
/**
|
|
98
98
|
* @deprecated - Use `approveTokenNftAllowance()` instead
|
|
99
99
|
* @param {NftId | string} nftId
|
|
@@ -186,7 +186,6 @@ import Transaction from "../transaction/Transaction.js";
|
|
|
186
186
|
import HbarAllowance from "./HbarAllowance.js";
|
|
187
187
|
import AccountId from "./AccountId.js";
|
|
188
188
|
import ContractId from "../contract/ContractId.js";
|
|
189
|
-
import Long from "long";
|
|
190
189
|
import Hbar from "../Hbar.js";
|
|
191
190
|
import TokenAllowance from "./TokenAllowance.js";
|
|
192
191
|
import TokenId from "../token/TokenId.js";
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import r,{TRANSACTION_REGISTRY as o}from"../transaction/Transaction.js";import t from"./AccountId.js";import e from"../contract/ContractId.js";import n from"../token/TokenId.js";import s from"../token/NftId.js";import a from"
|
|
1
|
+
import r,{TRANSACTION_REGISTRY as o}from"../transaction/Transaction.js";import t from"./AccountId.js";import e from"../contract/ContractId.js";import n from"../token/TokenId.js";import s from"../token/NftId.js";import a from"../Hbar.js";import l from"./HbarAllowance.js";import p from"./TokenAllowance.js";import i from"./TokenNftAllowance.js";import{convertAmountToLong as c}from"../util.js";class A extends r{constructor(r={}){super(),this._hbarApprovals=null!=r.hbarApprovals?r.hbarApprovals:[],this._tokenApprovals=null!=r.tokenApprovals?r.tokenApprovals:[],this._nftApprovals=null!=r.nftApprovals?r.nftApprovals:[]}static _fromProtobuf(o,t,e,n,s){const a=s[0].cryptoApproveAllowance;return r._fromProtobufTransactions(new A({hbarApprovals:(null!=a.cryptoAllowances?a.cryptoAllowances:[]).map(r=>l._fromProtobuf(r)),tokenApprovals:(null!=a.tokenAllowances?a.tokenAllowances:[]).map(r=>p._fromProtobuf(r)),nftApprovals:(null!=a.nftAllowances?a.nftAllowances:[]).map(r=>i._fromProtobuf(r))}),o,t,e,n,s)}get hbarApprovals(){return this._hbarApprovals}approveHbarAllowance(r,o,n){return this._requireNotFrozen(),this._hbarApprovals.push(new l({spenderAccountId:"string"==typeof o?t.fromString(o):o instanceof e?t.fromEvmAddress(o.shard,o.realm,o.toEvmAddress()):o,ownerAccountId:"string"==typeof r?t.fromString(r):r instanceof e?t.fromEvmAddress(r.shard,r.realm,r.toEvmAddress()):r,amount:n instanceof a?n:new a(n)})),this}addHbarAllowance(r,o){return this._requireNotFrozen(),this._hbarApprovals.push(new l({spenderAccountId:"string"==typeof r?t.fromString(r):r,amount:o instanceof a?o:new a(o),ownerAccountId:null})),this}get tokenApprovals(){return this._tokenApprovals}approveTokenAllowance(r,o,s,a){this._requireNotFrozen();const l=c(a);return this._tokenApprovals.push(new p({tokenId:"string"==typeof r?n.fromString(r):r,spenderAccountId:"string"==typeof s?t.fromString(s):s instanceof e?t.fromEvmAddress(s.shard,s.realm,s.toEvmAddress()):s,ownerAccountId:"string"==typeof o?t.fromString(o):o instanceof e?t.fromEvmAddress(o.shard,o.realm,o.toEvmAddress()):o,amount:l})),this}addTokenAllowance(r,o,e){this._requireNotFrozen();const s=c(e);return this._tokenApprovals.push(new p({tokenId:"string"==typeof r?n.fromString(r):r,spenderAccountId:"string"==typeof o?t.fromString(o):o,amount:s,ownerAccountId:null})),this}addTokenNftAllowance(r,o){return this._approveTokenNftAllowance(r,null,o,null)}get tokenNftApprovals(){return this._nftApprovals}_approveTokenNftAllowance(r,o,n,a){this._requireNotFrozen();const l="string"==typeof r?s.fromString(r):r,p="string"==typeof n?t.fromString(n):n instanceof e?t.fromEvmAddress(n.shard,n.realm,n.toEvmAddress()):n;let c=!1;for(const r of this._nftApprovals)if(0===r.tokenId.compare(l.tokenId)&&null!=r.spenderAccountId&&0===r.spenderAccountId.compare(p)){null!=r.serialNumbers&&r.serialNumbers.push(l.serial),c=!0;break}return c||this._nftApprovals.push(new i({tokenId:l.tokenId,spenderAccountId:p,ownerAccountId:"string"==typeof o?t.fromString(o):o instanceof e?t.fromEvmAddress(o.shard,o.realm,o.toEvmAddress()):o,serialNumbers:[l.serial],allSerials:!1,delegatingSpender:"string"==typeof a?t.fromString(a):a})),this}approveTokenNftAllowance(r,o,t){return this._approveTokenNftAllowance(r,o,t,null)}approveTokenNftAllowanceWithDelegatingSpender(r,o,t,e){return this._approveTokenNftAllowance(r,o,t,e)}_approveAllTokenNftAllowance(r,o,s,a){return this._requireNotFrozen(),this._nftApprovals.push(new i({tokenId:"string"==typeof r?n.fromString(r):r,spenderAccountId:"string"==typeof s?t.fromString(s):s instanceof e?t.fromEvmAddress(s.shard,s.realm,s.toEvmAddress()):s,ownerAccountId:"string"==typeof o?t.fromString(o):o instanceof e?t.fromEvmAddress(o.shard,o.realm,o.toEvmAddress()):o,serialNumbers:null,allSerials:a,delegatingSpender:null})),this}addAllTokenNftAllowance(r,o,t){return this._approveAllTokenNftAllowance(r,o,t,!0)}approveTokenNftAllowanceAllSerials(r,o,t){return this._approveAllTokenNftAllowance(r,o,t,!0)}deleteTokenNftAllowanceAllSerials(r,o,t){return this._approveAllTokenNftAllowance(r,o,t,!1)}_validateChecksums(r){this._hbarApprovals.map(o=>o._validateChecksums(r)),this._tokenApprovals.map(o=>o._validateChecksums(r)),this._nftApprovals.map(o=>o._validateChecksums(r))}_execute(r,o){return r.crypto.approveAllowances(o)}_getTransactionDataCase(){return"cryptoApproveAllowance"}_makeTransactionData(){return{cryptoAllowances:this._hbarApprovals.map(r=>r._toProtobuf()),tokenAllowances:this._tokenApprovals.map(r=>r._toProtobuf()),nftAllowances:this._nftApprovals.map(r=>r._toProtobuf())}}_getLogId(){return`AccountAllowanceApproveTransaction:${this._transactionIds.current.validStart.toString()}`}}o.set("cryptoApproveAllowance",A._fromProtobuf);export{A as default};
|
|
2
2
|
//# sourceMappingURL=AccountAllowanceApproveTransaction.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccountAllowanceApproveTransaction.js","sources":["../../src/account/AccountAllowanceApproveTransaction.js"],"sourcesContent":["// SPDX-License-Identifier: Apache-2.0\n\nimport Transaction, {\n TRANSACTION_REGISTRY,\n} from \"../transaction/Transaction.js\";\nimport AccountId from \"./AccountId.js\";\nimport ContractId from \"../contract/ContractId.js\";\nimport TokenId from \"../token/TokenId.js\";\nimport NftId from \"../token/NftId.js\";\nimport Long from \"long\";\nimport Hbar from \"../Hbar.js\";\nimport HbarAllowance from \"./HbarAllowance.js\";\nimport TokenAllowance from \"./TokenAllowance.js\";\nimport TokenNftAllowance from \"./TokenNftAllowance.js\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.ITransaction} HieroProto.proto.ITransaction\n * @typedef {import(\"@hashgraph/proto\").proto.ISignedTransaction} HieroProto.proto.ISignedTransaction\n * @typedef {import(\"@hashgraph/proto\").proto.TransactionBody} HieroProto.proto.TransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionBody} HieroProto.proto.ITransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionResponse} HieroProto.proto.ITransactionResponse\n * @typedef {import(\"@hashgraph/proto\").proto.ICryptoApproveAllowanceTransactionBody} HieroProto.proto.ICryptoApproveAllowanceTransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.IAccountID} HieroProto.proto.IAccountID\n * @typedef {import(\"@hashgraph/proto\").proto.IContractID} HieroProto.proto.IContractID\n */\n\n/**\n * @typedef {import(\"../channel/Channel.js\").default} Channel\n * @typedef {import(\"../client/Client.js\").default<*, *>} Client\n * @typedef {import(\"../transaction/TransactionId.js\").default} TransactionId\n * @typedef {import(\"bignumber.js\").default} BigNumber\n * @typedef {import(\"../long.js\").LongObject} LongObject\n */\n\n/**\n * Change properties for the given account.\n */\nexport default class AccountAllowanceApproveTransaction extends Transaction {\n /**\n * @param {object} [props]\n * @param {HbarAllowance[]} [props.hbarApprovals]\n * @param {TokenAllowance[]} [props.tokenApprovals]\n * @param {TokenNftAllowance[]} [props.nftApprovals]\n */\n constructor(props = {}) {\n super();\n\n /**\n * @private\n * @type {HbarAllowance[]}\n */\n this._hbarApprovals =\n props.hbarApprovals != null ? props.hbarApprovals : [];\n\n /**\n * @private\n * @type {TokenAllowance[]}\n */\n this._tokenApprovals =\n props.tokenApprovals != null ? props.tokenApprovals : [];\n\n /**\n * @private\n * @type {TokenNftAllowance[]}\n */\n this._nftApprovals =\n props.nftApprovals != null ? props.nftApprovals : [];\n }\n\n /**\n * @internal\n * @param {HieroProto.proto.ITransaction[]} transactions\n * @param {HieroProto.proto.ISignedTransaction[]} signedTransactions\n * @param {TransactionId[]} transactionIds\n * @param {AccountId[]} nodeIds\n * @param {HieroProto.proto.ITransactionBody[]} bodies\n * @returns {AccountAllowanceApproveTransaction}\n */\n static _fromProtobuf(\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n ) {\n const body = bodies[0];\n const allowanceApproval =\n /** @type {HieroProto.proto.ICryptoApproveAllowanceTransactionBody} */ (\n body.cryptoApproveAllowance\n );\n\n return Transaction._fromProtobufTransactions(\n new AccountAllowanceApproveTransaction({\n hbarApprovals: (allowanceApproval.cryptoAllowances != null\n ? allowanceApproval.cryptoAllowances\n : []\n ).map((approval) => HbarAllowance._fromProtobuf(approval)),\n tokenApprovals: (allowanceApproval.tokenAllowances != null\n ? allowanceApproval.tokenAllowances\n : []\n ).map((approval) => TokenAllowance._fromProtobuf(approval)),\n nftApprovals: (allowanceApproval.nftAllowances != null\n ? allowanceApproval.nftAllowances\n : []\n ).map((approval) => TokenNftAllowance._fromProtobuf(approval)),\n }),\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n );\n }\n\n /**\n * @returns {HbarAllowance[]}\n */\n get hbarApprovals() {\n return this._hbarApprovals;\n }\n\n /**\n * @param {AccountId | string} ownerAccountId\n * @param {AccountId | ContractId | string} spenderAccountId\n * @param {number | string | Long | LongObject | BigNumber | Hbar} amount\n * @returns {AccountAllowanceApproveTransaction}\n */\n approveHbarAllowance(ownerAccountId, spenderAccountId, amount) {\n this._requireNotFrozen();\n\n this._hbarApprovals.push(\n new HbarAllowance({\n spenderAccountId:\n typeof spenderAccountId === \"string\"\n ? AccountId.fromString(spenderAccountId)\n : spenderAccountId instanceof ContractId\n ? AccountId.fromEvmAddress(\n spenderAccountId.shard,\n spenderAccountId.realm,\n spenderAccountId.toEvmAddress(),\n )\n : spenderAccountId,\n ownerAccountId:\n typeof ownerAccountId === \"string\"\n ? AccountId.fromString(ownerAccountId)\n : ownerAccountId instanceof ContractId\n ? AccountId.fromEvmAddress(\n ownerAccountId.shard,\n ownerAccountId.realm,\n ownerAccountId.toEvmAddress(),\n )\n : ownerAccountId,\n amount: amount instanceof Hbar ? amount : new Hbar(amount),\n }),\n );\n\n return this;\n }\n\n /**\n * @deprecated - Use `approveHbarAllowance()` instead\n * @param {AccountId | string} spenderAccountId\n * @param {number | string | Long | LongObject | BigNumber | Hbar} amount\n * @returns {AccountAllowanceApproveTransaction}\n */\n addHbarAllowance(spenderAccountId, amount) {\n this._requireNotFrozen();\n\n this._hbarApprovals.push(\n new HbarAllowance({\n spenderAccountId:\n typeof spenderAccountId === \"string\"\n ? AccountId.fromString(spenderAccountId)\n : spenderAccountId,\n amount: amount instanceof Hbar ? amount : new Hbar(amount),\n ownerAccountId: null,\n }),\n );\n\n return this;\n }\n\n /**\n * @returns {TokenAllowance[]}\n */\n get tokenApprovals() {\n return this._tokenApprovals;\n }\n\n /**\n * @param {TokenId | string} tokenId\n * @param {AccountId | string} ownerAccountId\n * @param {AccountId | ContractId | string} spenderAccountId\n * @param {Long | number} amount\n * @returns {AccountAllowanceApproveTransaction}\n */\n approveTokenAllowance(tokenId, ownerAccountId, spenderAccountId, amount) {\n this._requireNotFrozen();\n\n this._tokenApprovals.push(\n new TokenAllowance({\n tokenId:\n typeof tokenId === \"string\"\n ? TokenId.fromString(tokenId)\n : tokenId,\n spenderAccountId:\n typeof spenderAccountId === \"string\"\n ? AccountId.fromString(spenderAccountId)\n : spenderAccountId instanceof ContractId\n ? AccountId.fromEvmAddress(\n spenderAccountId.shard,\n spenderAccountId.realm,\n spenderAccountId.toEvmAddress(),\n )\n : spenderAccountId,\n ownerAccountId:\n typeof ownerAccountId === \"string\"\n ? AccountId.fromString(ownerAccountId)\n : ownerAccountId instanceof ContractId\n ? AccountId.fromEvmAddress(\n ownerAccountId.shard,\n ownerAccountId.realm,\n ownerAccountId.toEvmAddress(),\n )\n : ownerAccountId,\n amount:\n typeof amount === \"number\"\n ? Long.fromNumber(amount)\n : amount,\n }),\n );\n\n return this;\n }\n\n /**\n * @deprecated - Use `approveTokenAllowance()` instead\n * @param {TokenId | string} tokenId\n * @param {AccountId | string} spenderAccountId\n * @param {Long | number} amount\n * @returns {AccountAllowanceApproveTransaction}\n */\n addTokenAllowance(tokenId, spenderAccountId, amount) {\n this._requireNotFrozen();\n\n this._tokenApprovals.push(\n new TokenAllowance({\n tokenId:\n typeof tokenId === \"string\"\n ? TokenId.fromString(tokenId)\n : tokenId,\n spenderAccountId:\n typeof spenderAccountId === \"string\"\n ? AccountId.fromString(spenderAccountId)\n : spenderAccountId,\n amount:\n typeof amount === \"number\"\n ? Long.fromNumber(amount)\n : amount,\n ownerAccountId: null,\n }),\n );\n\n return this;\n }\n\n /**\n * @deprecated - Use `approveTokenNftAllowance()` instead\n * @param {NftId | string} nftId\n * @param {AccountId | ContractId | string} spenderAccountId\n * @returns {AccountAllowanceApproveTransaction}\n */\n addTokenNftAllowance(nftId, spenderAccountId) {\n return this._approveTokenNftAllowance(\n nftId,\n null,\n spenderAccountId,\n null,\n );\n }\n\n /**\n * @returns {TokenNftAllowance[]}\n */\n get tokenNftApprovals() {\n return this._nftApprovals;\n }\n\n /**\n * @param {NftId | string} nftId\n * @param {AccountId | string | null} ownerAccountId\n * @param {AccountId | ContractId | string} spenderAccountId\n * @param {AccountId | string | null} delegatingSpender\n * @returns {AccountAllowanceApproveTransaction}\n */\n _approveTokenNftAllowance(\n nftId,\n ownerAccountId,\n spenderAccountId,\n delegatingSpender,\n ) {\n this._requireNotFrozen();\n\n const id = typeof nftId === \"string\" ? NftId.fromString(nftId) : nftId;\n const spender =\n typeof spenderAccountId === \"string\"\n ? AccountId.fromString(spenderAccountId)\n : spenderAccountId instanceof ContractId\n ? AccountId.fromEvmAddress(\n spenderAccountId.shard,\n spenderAccountId.realm,\n spenderAccountId.toEvmAddress(),\n )\n : spenderAccountId;\n let found = false;\n\n for (const allowance of this._nftApprovals) {\n if (\n allowance.tokenId.compare(id.tokenId) === 0 &&\n allowance.spenderAccountId != null &&\n allowance.spenderAccountId.compare(spender) === 0\n ) {\n if (allowance.serialNumbers != null) {\n allowance.serialNumbers.push(id.serial);\n }\n found = true;\n break;\n }\n }\n\n if (!found) {\n this._nftApprovals.push(\n new TokenNftAllowance({\n tokenId: id.tokenId,\n spenderAccountId: spender,\n ownerAccountId:\n typeof ownerAccountId === \"string\"\n ? AccountId.fromString(ownerAccountId)\n : ownerAccountId instanceof ContractId\n ? AccountId.fromEvmAddress(\n ownerAccountId.shard,\n ownerAccountId.realm,\n ownerAccountId.toEvmAddress(),\n )\n : ownerAccountId,\n serialNumbers: [id.serial],\n allSerials: false,\n delegatingSpender:\n typeof delegatingSpender === \"string\"\n ? AccountId.fromString(delegatingSpender)\n : delegatingSpender,\n }),\n );\n }\n\n return this;\n }\n\n /**\n * @param {NftId | string} nftId\n * @param {AccountId | string} ownerAccountId\n * @param {AccountId | ContractId | string} spenderAccountId\n * @returns {AccountAllowanceApproveTransaction}\n */\n approveTokenNftAllowance(nftId, ownerAccountId, spenderAccountId) {\n return this._approveTokenNftAllowance(\n nftId,\n ownerAccountId,\n spenderAccountId,\n null,\n );\n }\n\n /**\n * @param {NftId | string} nftId\n * @param {AccountId | string} ownerAccountId\n * @param {AccountId | ContractId | string} spenderAccountId\n * @param {AccountId | string} delegatingSpender\n * @returns {AccountAllowanceApproveTransaction}\n */\n approveTokenNftAllowanceWithDelegatingSpender(\n nftId,\n ownerAccountId,\n spenderAccountId,\n delegatingSpender,\n ) {\n return this._approveTokenNftAllowance(\n nftId,\n ownerAccountId,\n spenderAccountId,\n delegatingSpender,\n );\n }\n\n /**\n * @param {TokenId | string} tokenId\n * @param {AccountId | string | null} ownerAccountId\n * @param {AccountId | ContractId | string} spenderAccountId\n * @param {boolean} allSerials\n * @returns {AccountAllowanceApproveTransaction}\n */\n _approveAllTokenNftAllowance(\n tokenId,\n ownerAccountId,\n spenderAccountId,\n allSerials,\n ) {\n this._requireNotFrozen();\n\n this._nftApprovals.push(\n new TokenNftAllowance({\n tokenId:\n typeof tokenId === \"string\"\n ? TokenId.fromString(tokenId)\n : tokenId,\n spenderAccountId:\n typeof spenderAccountId === \"string\"\n ? AccountId.fromString(spenderAccountId)\n : spenderAccountId instanceof ContractId\n ? AccountId.fromEvmAddress(\n spenderAccountId.shard,\n spenderAccountId.realm,\n spenderAccountId.toEvmAddress(),\n )\n : spenderAccountId,\n ownerAccountId:\n typeof ownerAccountId === \"string\"\n ? AccountId.fromString(ownerAccountId)\n : ownerAccountId instanceof ContractId\n ? AccountId.fromEvmAddress(\n ownerAccountId.shard,\n ownerAccountId.realm,\n ownerAccountId.toEvmAddress(),\n )\n : ownerAccountId,\n serialNumbers: null,\n allSerials,\n delegatingSpender: null,\n }),\n );\n\n return this;\n }\n\n /**\n * @deprecated - Use `approveTokenNftAllowanceAllSerials()` instead\n * @param {TokenId | string} tokenId\n * @param {AccountId | string} ownerAccountId\n * @param {AccountId | string} spenderAccountId\n * @returns {AccountAllowanceApproveTransaction}\n */\n addAllTokenNftAllowance(tokenId, ownerAccountId, spenderAccountId) {\n return this._approveAllTokenNftAllowance(\n tokenId,\n ownerAccountId,\n spenderAccountId,\n true,\n );\n }\n\n /**\n * @param {TokenId | string} tokenId\n * @param {AccountId | string} ownerAccountId\n * @param {AccountId | ContractId | string} spenderAccountId\n * @returns {AccountAllowanceApproveTransaction}\n */\n approveTokenNftAllowanceAllSerials(\n tokenId,\n ownerAccountId,\n spenderAccountId,\n ) {\n return this._approveAllTokenNftAllowance(\n tokenId,\n ownerAccountId,\n spenderAccountId,\n true,\n );\n }\n\n /**\n * @param {TokenId | string} tokenId\n * @param {AccountId | string} ownerAccountId\n * @param {AccountId | ContractId | string} spenderAccountId\n * @returns {AccountAllowanceApproveTransaction}\n */\n deleteTokenNftAllowanceAllSerials(\n tokenId,\n ownerAccountId,\n spenderAccountId,\n ) {\n return this._approveAllTokenNftAllowance(\n tokenId,\n ownerAccountId,\n spenderAccountId,\n false,\n );\n }\n\n /**\n * @param {Client} client\n */\n _validateChecksums(client) {\n this._hbarApprovals.map((approval) =>\n approval._validateChecksums(client),\n );\n this._tokenApprovals.map((approval) =>\n approval._validateChecksums(client),\n );\n this._nftApprovals.map((approval) =>\n approval._validateChecksums(client),\n );\n }\n\n /**\n * @override\n * @internal\n * @param {Channel} channel\n * @param {HieroProto.proto.ITransaction} request\n * @returns {Promise<HieroProto.proto.ITransactionResponse>}\n */\n _execute(channel, request) {\n return channel.crypto.approveAllowances(request);\n }\n\n /**\n * @override\n * @protected\n * @returns {NonNullable<HieroProto.proto.TransactionBody[\"data\"]>}\n */\n _getTransactionDataCase() {\n return \"cryptoApproveAllowance\";\n }\n\n /**\n * @override\n * @protected\n * @returns {HieroProto.proto.ICryptoApproveAllowanceTransactionBody}\n */\n _makeTransactionData() {\n return {\n cryptoAllowances: this._hbarApprovals.map((approval) =>\n approval._toProtobuf(),\n ),\n tokenAllowances: this._tokenApprovals.map((approval) =>\n approval._toProtobuf(),\n ),\n nftAllowances: this._nftApprovals.map((approval) =>\n approval._toProtobuf(),\n ),\n };\n }\n\n /**\n * @returns {string}\n */\n _getLogId() {\n const timestamp = /** @type {import(\"../Timestamp.js\").default} */ (\n this._transactionIds.current.validStart\n );\n return `AccountAllowanceApproveTransaction:${timestamp.toString()}`;\n }\n}\n\nTRANSACTION_REGISTRY.set(\n \"cryptoApproveAllowance\",\n // eslint-disable-next-line @typescript-eslint/unbound-method\n AccountAllowanceApproveTransaction._fromProtobuf,\n);\n"],"names":["AccountAllowanceApproveTransaction","Transaction","constructor","props","super","this","_hbarApprovals","hbarApprovals","_tokenApprovals","tokenApprovals","_nftApprovals","nftApprovals","_fromProtobuf","transactions","signedTransactions","transactionIds","nodeIds","bodies","allowanceApproval","_fromProtobufTransactions","cryptoAllowances","map","approval","HbarAllowance","tokenAllowances","TokenAllowance","nftAllowances","TokenNftAllowance","approveHbarAllowance","ownerAccountId","spenderAccountId","amount","_requireNotFrozen","push","AccountId","fromString","ContractId","fromEvmAddress","shard","realm","toEvmAddress","Hbar","addHbarAllowance","approveTokenAllowance","tokenId","TokenId","Long","fromNumber","addTokenAllowance","addTokenNftAllowance","nftId","_approveTokenNftAllowance","tokenNftApprovals","delegatingSpender","id","NftId","spender","found","allowance","compare","serialNumbers","serial","allSerials","approveTokenNftAllowance","approveTokenNftAllowanceWithDelegatingSpender","_approveAllTokenNftAllowance","addAllTokenNftAllowance","approveTokenNftAllowanceAllSerials","deleteTokenNftAllowanceAllSerials","_validateChecksums","client","_execute","channel","request","crypto","approveAllowances","_getTransactionDataCase","_makeTransactionData","_toProtobuf","_getLogId","_transactionIds","current","toString","TRANSACTION_REGISTRY","set"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AccountAllowanceApproveTransaction.js","sources":["../../src/account/AccountAllowanceApproveTransaction.js"],"sourcesContent":["// SPDX-License-Identifier: Apache-2.0\n\nimport Transaction, {\n TRANSACTION_REGISTRY,\n} from \"../transaction/Transaction.js\";\nimport AccountId from \"./AccountId.js\";\nimport ContractId from \"../contract/ContractId.js\";\nimport TokenId from \"../token/TokenId.js\";\nimport NftId from \"../token/NftId.js\";\nimport Hbar from \"../Hbar.js\";\nimport HbarAllowance from \"./HbarAllowance.js\";\nimport TokenAllowance from \"./TokenAllowance.js\";\nimport TokenNftAllowance from \"./TokenNftAllowance.js\";\nimport { convertAmountToLong } from \"../util.js\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.ITransaction} HieroProto.proto.ITransaction\n * @typedef {import(\"@hashgraph/proto\").proto.ISignedTransaction} HieroProto.proto.ISignedTransaction\n * @typedef {import(\"@hashgraph/proto\").proto.TransactionBody} HieroProto.proto.TransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionBody} HieroProto.proto.ITransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionResponse} HieroProto.proto.ITransactionResponse\n * @typedef {import(\"@hashgraph/proto\").proto.ICryptoApproveAllowanceTransactionBody} HieroProto.proto.ICryptoApproveAllowanceTransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.IAccountID} HieroProto.proto.IAccountID\n * @typedef {import(\"@hashgraph/proto\").proto.IContractID} HieroProto.proto.IContractID\n */\n\n/**\n * @typedef {import(\"../channel/Channel.js\").default} Channel\n * @typedef {import(\"../client/Client.js\").default<*, *>} Client\n * @typedef {import(\"../transaction/TransactionId.js\").default} TransactionId\n * @typedef {import(\"bignumber.js\").default} BigNumber\n * @typedef {import(\"../long.js\").LongObject} LongObject\n */\n\n/**\n * Change properties for the given account.\n */\nexport default class AccountAllowanceApproveTransaction extends Transaction {\n /**\n * @param {object} [props]\n * @param {HbarAllowance[]} [props.hbarApprovals]\n * @param {TokenAllowance[]} [props.tokenApprovals]\n * @param {TokenNftAllowance[]} [props.nftApprovals]\n */\n constructor(props = {}) {\n super();\n\n /**\n * @private\n * @type {HbarAllowance[]}\n */\n this._hbarApprovals =\n props.hbarApprovals != null ? props.hbarApprovals : [];\n\n /**\n * @private\n * @type {TokenAllowance[]}\n */\n this._tokenApprovals =\n props.tokenApprovals != null ? props.tokenApprovals : [];\n\n /**\n * @private\n * @type {TokenNftAllowance[]}\n */\n this._nftApprovals =\n props.nftApprovals != null ? props.nftApprovals : [];\n }\n\n /**\n * @internal\n * @param {HieroProto.proto.ITransaction[]} transactions\n * @param {HieroProto.proto.ISignedTransaction[]} signedTransactions\n * @param {TransactionId[]} transactionIds\n * @param {AccountId[]} nodeIds\n * @param {HieroProto.proto.ITransactionBody[]} bodies\n * @returns {AccountAllowanceApproveTransaction}\n */\n static _fromProtobuf(\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n ) {\n const body = bodies[0];\n const allowanceApproval =\n /** @type {HieroProto.proto.ICryptoApproveAllowanceTransactionBody} */ (\n body.cryptoApproveAllowance\n );\n\n return Transaction._fromProtobufTransactions(\n new AccountAllowanceApproveTransaction({\n hbarApprovals: (allowanceApproval.cryptoAllowances != null\n ? allowanceApproval.cryptoAllowances\n : []\n ).map((approval) => HbarAllowance._fromProtobuf(approval)),\n tokenApprovals: (allowanceApproval.tokenAllowances != null\n ? allowanceApproval.tokenAllowances\n : []\n ).map((approval) => TokenAllowance._fromProtobuf(approval)),\n nftApprovals: (allowanceApproval.nftAllowances != null\n ? allowanceApproval.nftAllowances\n : []\n ).map((approval) => TokenNftAllowance._fromProtobuf(approval)),\n }),\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n );\n }\n\n /**\n * @returns {HbarAllowance[]}\n */\n get hbarApprovals() {\n return this._hbarApprovals;\n }\n\n /**\n * @param {AccountId | string} ownerAccountId\n * @param {AccountId | ContractId | string} spenderAccountId\n * @param {number | string | Long | LongObject | BigNumber | Hbar} amount\n * @returns {AccountAllowanceApproveTransaction}\n */\n approveHbarAllowance(ownerAccountId, spenderAccountId, amount) {\n this._requireNotFrozen();\n\n this._hbarApprovals.push(\n new HbarAllowance({\n spenderAccountId:\n typeof spenderAccountId === \"string\"\n ? AccountId.fromString(spenderAccountId)\n : spenderAccountId instanceof ContractId\n ? AccountId.fromEvmAddress(\n spenderAccountId.shard,\n spenderAccountId.realm,\n spenderAccountId.toEvmAddress(),\n )\n : spenderAccountId,\n ownerAccountId:\n typeof ownerAccountId === \"string\"\n ? AccountId.fromString(ownerAccountId)\n : ownerAccountId instanceof ContractId\n ? AccountId.fromEvmAddress(\n ownerAccountId.shard,\n ownerAccountId.realm,\n ownerAccountId.toEvmAddress(),\n )\n : ownerAccountId,\n amount: amount instanceof Hbar ? amount : new Hbar(amount),\n }),\n );\n\n return this;\n }\n\n /**\n * @deprecated - Use `approveHbarAllowance()` instead\n * @param {AccountId | string} spenderAccountId\n * @param {number | string | Long | LongObject | BigNumber | Hbar} amount\n * @returns {AccountAllowanceApproveTransaction}\n */\n addHbarAllowance(spenderAccountId, amount) {\n this._requireNotFrozen();\n\n this._hbarApprovals.push(\n new HbarAllowance({\n spenderAccountId:\n typeof spenderAccountId === \"string\"\n ? AccountId.fromString(spenderAccountId)\n : spenderAccountId,\n amount: amount instanceof Hbar ? amount : new Hbar(amount),\n ownerAccountId: null,\n }),\n );\n\n return this;\n }\n\n /**\n * @returns {TokenAllowance[]}\n */\n get tokenApprovals() {\n return this._tokenApprovals;\n }\n\n /**\n * @param {TokenId | string} tokenId\n * @param {AccountId | string} ownerAccountId\n * @param {AccountId | ContractId | string} spenderAccountId\n * @param {Long | number | BigNumber | bigint} amount\n * @returns {AccountAllowanceApproveTransaction}\n */\n approveTokenAllowance(tokenId, ownerAccountId, spenderAccountId, amount) {\n this._requireNotFrozen();\n\n // Convert amount to Long\n const amountLong = convertAmountToLong(amount);\n\n this._tokenApprovals.push(\n new TokenAllowance({\n tokenId:\n typeof tokenId === \"string\"\n ? TokenId.fromString(tokenId)\n : tokenId,\n spenderAccountId:\n typeof spenderAccountId === \"string\"\n ? AccountId.fromString(spenderAccountId)\n : spenderAccountId instanceof ContractId\n ? AccountId.fromEvmAddress(\n spenderAccountId.shard,\n spenderAccountId.realm,\n spenderAccountId.toEvmAddress(),\n )\n : spenderAccountId,\n ownerAccountId:\n typeof ownerAccountId === \"string\"\n ? AccountId.fromString(ownerAccountId)\n : ownerAccountId instanceof ContractId\n ? AccountId.fromEvmAddress(\n ownerAccountId.shard,\n ownerAccountId.realm,\n ownerAccountId.toEvmAddress(),\n )\n : ownerAccountId,\n amount: amountLong,\n }),\n );\n\n return this;\n }\n\n /**\n * @deprecated - Use `approveTokenAllowance()` instead\n * @param {TokenId | string} tokenId\n * @param {AccountId | string} spenderAccountId\n * @param {Long | number | BigNumber | bigint} amount\n * @returns {AccountAllowanceApproveTransaction}\n */\n addTokenAllowance(tokenId, spenderAccountId, amount) {\n this._requireNotFrozen();\n\n // Convert amount to Long\n const amountLong = convertAmountToLong(amount);\n\n this._tokenApprovals.push(\n new TokenAllowance({\n tokenId:\n typeof tokenId === \"string\"\n ? TokenId.fromString(tokenId)\n : tokenId,\n spenderAccountId:\n typeof spenderAccountId === \"string\"\n ? AccountId.fromString(spenderAccountId)\n : spenderAccountId,\n amount: amountLong,\n ownerAccountId: null,\n }),\n );\n\n return this;\n }\n\n /**\n * @deprecated - Use `approveTokenNftAllowance()` instead\n * @param {NftId | string} nftId\n * @param {AccountId | ContractId | string} spenderAccountId\n * @returns {AccountAllowanceApproveTransaction}\n */\n addTokenNftAllowance(nftId, spenderAccountId) {\n return this._approveTokenNftAllowance(\n nftId,\n null,\n spenderAccountId,\n null,\n );\n }\n\n /**\n * @returns {TokenNftAllowance[]}\n */\n get tokenNftApprovals() {\n return this._nftApprovals;\n }\n\n /**\n * @param {NftId | string} nftId\n * @param {AccountId | string | null} ownerAccountId\n * @param {AccountId | ContractId | string} spenderAccountId\n * @param {AccountId | string | null} delegatingSpender\n * @returns {AccountAllowanceApproveTransaction}\n */\n _approveTokenNftAllowance(\n nftId,\n ownerAccountId,\n spenderAccountId,\n delegatingSpender,\n ) {\n this._requireNotFrozen();\n\n const id = typeof nftId === \"string\" ? NftId.fromString(nftId) : nftId;\n const spender =\n typeof spenderAccountId === \"string\"\n ? AccountId.fromString(spenderAccountId)\n : spenderAccountId instanceof ContractId\n ? AccountId.fromEvmAddress(\n spenderAccountId.shard,\n spenderAccountId.realm,\n spenderAccountId.toEvmAddress(),\n )\n : spenderAccountId;\n let found = false;\n\n for (const allowance of this._nftApprovals) {\n if (\n allowance.tokenId.compare(id.tokenId) === 0 &&\n allowance.spenderAccountId != null &&\n allowance.spenderAccountId.compare(spender) === 0\n ) {\n if (allowance.serialNumbers != null) {\n allowance.serialNumbers.push(id.serial);\n }\n found = true;\n break;\n }\n }\n\n if (!found) {\n this._nftApprovals.push(\n new TokenNftAllowance({\n tokenId: id.tokenId,\n spenderAccountId: spender,\n ownerAccountId:\n typeof ownerAccountId === \"string\"\n ? AccountId.fromString(ownerAccountId)\n : ownerAccountId instanceof ContractId\n ? AccountId.fromEvmAddress(\n ownerAccountId.shard,\n ownerAccountId.realm,\n ownerAccountId.toEvmAddress(),\n )\n : ownerAccountId,\n serialNumbers: [id.serial],\n allSerials: false,\n delegatingSpender:\n typeof delegatingSpender === \"string\"\n ? AccountId.fromString(delegatingSpender)\n : delegatingSpender,\n }),\n );\n }\n\n return this;\n }\n\n /**\n * @param {NftId | string} nftId\n * @param {AccountId | string} ownerAccountId\n * @param {AccountId | ContractId | string} spenderAccountId\n * @returns {AccountAllowanceApproveTransaction}\n */\n approveTokenNftAllowance(nftId, ownerAccountId, spenderAccountId) {\n return this._approveTokenNftAllowance(\n nftId,\n ownerAccountId,\n spenderAccountId,\n null,\n );\n }\n\n /**\n * @param {NftId | string} nftId\n * @param {AccountId | string} ownerAccountId\n * @param {AccountId | ContractId | string} spenderAccountId\n * @param {AccountId | string} delegatingSpender\n * @returns {AccountAllowanceApproveTransaction}\n */\n approveTokenNftAllowanceWithDelegatingSpender(\n nftId,\n ownerAccountId,\n spenderAccountId,\n delegatingSpender,\n ) {\n return this._approveTokenNftAllowance(\n nftId,\n ownerAccountId,\n spenderAccountId,\n delegatingSpender,\n );\n }\n\n /**\n * @param {TokenId | string} tokenId\n * @param {AccountId | string | null} ownerAccountId\n * @param {AccountId | ContractId | string} spenderAccountId\n * @param {boolean} allSerials\n * @returns {AccountAllowanceApproveTransaction}\n */\n _approveAllTokenNftAllowance(\n tokenId,\n ownerAccountId,\n spenderAccountId,\n allSerials,\n ) {\n this._requireNotFrozen();\n\n this._nftApprovals.push(\n new TokenNftAllowance({\n tokenId:\n typeof tokenId === \"string\"\n ? TokenId.fromString(tokenId)\n : tokenId,\n spenderAccountId:\n typeof spenderAccountId === \"string\"\n ? AccountId.fromString(spenderAccountId)\n : spenderAccountId instanceof ContractId\n ? AccountId.fromEvmAddress(\n spenderAccountId.shard,\n spenderAccountId.realm,\n spenderAccountId.toEvmAddress(),\n )\n : spenderAccountId,\n ownerAccountId:\n typeof ownerAccountId === \"string\"\n ? AccountId.fromString(ownerAccountId)\n : ownerAccountId instanceof ContractId\n ? AccountId.fromEvmAddress(\n ownerAccountId.shard,\n ownerAccountId.realm,\n ownerAccountId.toEvmAddress(),\n )\n : ownerAccountId,\n serialNumbers: null,\n allSerials,\n delegatingSpender: null,\n }),\n );\n\n return this;\n }\n\n /**\n * @deprecated - Use `approveTokenNftAllowanceAllSerials()` instead\n * @param {TokenId | string} tokenId\n * @param {AccountId | string} ownerAccountId\n * @param {AccountId | string} spenderAccountId\n * @returns {AccountAllowanceApproveTransaction}\n */\n addAllTokenNftAllowance(tokenId, ownerAccountId, spenderAccountId) {\n return this._approveAllTokenNftAllowance(\n tokenId,\n ownerAccountId,\n spenderAccountId,\n true,\n );\n }\n\n /**\n * @param {TokenId | string} tokenId\n * @param {AccountId | string} ownerAccountId\n * @param {AccountId | ContractId | string} spenderAccountId\n * @returns {AccountAllowanceApproveTransaction}\n */\n approveTokenNftAllowanceAllSerials(\n tokenId,\n ownerAccountId,\n spenderAccountId,\n ) {\n return this._approveAllTokenNftAllowance(\n tokenId,\n ownerAccountId,\n spenderAccountId,\n true,\n );\n }\n\n /**\n * @param {TokenId | string} tokenId\n * @param {AccountId | string} ownerAccountId\n * @param {AccountId | ContractId | string} spenderAccountId\n * @returns {AccountAllowanceApproveTransaction}\n */\n deleteTokenNftAllowanceAllSerials(\n tokenId,\n ownerAccountId,\n spenderAccountId,\n ) {\n return this._approveAllTokenNftAllowance(\n tokenId,\n ownerAccountId,\n spenderAccountId,\n false,\n );\n }\n\n /**\n * @param {Client} client\n */\n _validateChecksums(client) {\n this._hbarApprovals.map((approval) =>\n approval._validateChecksums(client),\n );\n this._tokenApprovals.map((approval) =>\n approval._validateChecksums(client),\n );\n this._nftApprovals.map((approval) =>\n approval._validateChecksums(client),\n );\n }\n\n /**\n * @override\n * @internal\n * @param {Channel} channel\n * @param {HieroProto.proto.ITransaction} request\n * @returns {Promise<HieroProto.proto.ITransactionResponse>}\n */\n _execute(channel, request) {\n return channel.crypto.approveAllowances(request);\n }\n\n /**\n * @override\n * @protected\n * @returns {NonNullable<HieroProto.proto.TransactionBody[\"data\"]>}\n */\n _getTransactionDataCase() {\n return \"cryptoApproveAllowance\";\n }\n\n /**\n * @override\n * @protected\n * @returns {HieroProto.proto.ICryptoApproveAllowanceTransactionBody}\n */\n _makeTransactionData() {\n return {\n cryptoAllowances: this._hbarApprovals.map((approval) =>\n approval._toProtobuf(),\n ),\n tokenAllowances: this._tokenApprovals.map((approval) =>\n approval._toProtobuf(),\n ),\n nftAllowances: this._nftApprovals.map((approval) =>\n approval._toProtobuf(),\n ),\n };\n }\n\n /**\n * @returns {string}\n */\n _getLogId() {\n const timestamp = /** @type {import(\"../Timestamp.js\").default} */ (\n this._transactionIds.current.validStart\n );\n return `AccountAllowanceApproveTransaction:${timestamp.toString()}`;\n }\n}\n\nTRANSACTION_REGISTRY.set(\n \"cryptoApproveAllowance\",\n // eslint-disable-next-line @typescript-eslint/unbound-method\n AccountAllowanceApproveTransaction._fromProtobuf,\n);\n"],"names":["AccountAllowanceApproveTransaction","Transaction","constructor","props","super","this","_hbarApprovals","hbarApprovals","_tokenApprovals","tokenApprovals","_nftApprovals","nftApprovals","_fromProtobuf","transactions","signedTransactions","transactionIds","nodeIds","bodies","allowanceApproval","_fromProtobufTransactions","cryptoAllowances","map","approval","HbarAllowance","tokenAllowances","TokenAllowance","nftAllowances","TokenNftAllowance","approveHbarAllowance","ownerAccountId","spenderAccountId","amount","_requireNotFrozen","push","AccountId","fromString","ContractId","fromEvmAddress","shard","realm","toEvmAddress","Hbar","addHbarAllowance","approveTokenAllowance","tokenId","amountLong","convertAmountToLong","TokenId","addTokenAllowance","addTokenNftAllowance","nftId","_approveTokenNftAllowance","tokenNftApprovals","delegatingSpender","id","NftId","spender","found","allowance","compare","serialNumbers","serial","allSerials","approveTokenNftAllowance","approveTokenNftAllowanceWithDelegatingSpender","_approveAllTokenNftAllowance","addAllTokenNftAllowance","approveTokenNftAllowanceAllSerials","deleteTokenNftAllowanceAllSerials","_validateChecksums","client","_execute","channel","request","crypto","approveAllowances","_getTransactionDataCase","_makeTransactionData","_toProtobuf","_getLogId","_transactionIds","current","toString","TRANSACTION_REGISTRY","set"],"mappings":"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"}
|
|
@@ -7,6 +7,7 @@ exports.default = void 0;
|
|
|
7
7
|
var _TokenId = _interopRequireDefault(require("../token/TokenId.cjs"));
|
|
8
8
|
var _AccountId = _interopRequireDefault(require("./AccountId.cjs"));
|
|
9
9
|
var _long = _interopRequireDefault(require("long"));
|
|
10
|
+
var _util = require("../util.cjs");
|
|
10
11
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
11
12
|
// SPDX-License-Identifier: Apache-2.0
|
|
12
13
|
|
|
@@ -20,6 +21,7 @@ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e
|
|
|
20
21
|
|
|
21
22
|
/**
|
|
22
23
|
* @typedef {import("../client/Client.js").default<*, *>} Client
|
|
24
|
+
* @typedef {import("bignumber.js").default} BigNumber
|
|
23
25
|
*/
|
|
24
26
|
|
|
25
27
|
/**
|
|
@@ -36,7 +38,7 @@ class TokenAllowance {
|
|
|
36
38
|
* @param {TokenId} props.tokenId
|
|
37
39
|
* @param {AccountId | null} props.spenderAccountId
|
|
38
40
|
* @param {AccountId | null} props.ownerAccountId
|
|
39
|
-
* @param {Long | null} props.amount
|
|
41
|
+
* @param {Long | number | BigNumber | bigint | null} props.amount
|
|
40
42
|
*/
|
|
41
43
|
constructor(props) {
|
|
42
44
|
/**
|
|
@@ -67,7 +69,7 @@ class TokenAllowance {
|
|
|
67
69
|
*
|
|
68
70
|
* @readonly
|
|
69
71
|
*/
|
|
70
|
-
this.amount = props.amount;
|
|
72
|
+
this.amount = props.amount != null ? (0, _util.convertAmountToLong)(props.amount) : null;
|
|
71
73
|
Object.freeze(this);
|
|
72
74
|
}
|
|
73
75
|
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
*/
|
|
8
8
|
/**
|
|
9
9
|
* @typedef {import("../client/Client.js").default<*, *>} Client
|
|
10
|
+
* @typedef {import("bignumber.js").default} BigNumber
|
|
10
11
|
*/
|
|
11
12
|
/**
|
|
12
13
|
* Represents a token allowance granted to a spender account by an owner account.
|
|
@@ -35,13 +36,13 @@ export default class TokenAllowance {
|
|
|
35
36
|
* @param {TokenId} props.tokenId
|
|
36
37
|
* @param {AccountId | null} props.spenderAccountId
|
|
37
38
|
* @param {AccountId | null} props.ownerAccountId
|
|
38
|
-
* @param {Long | null} props.amount
|
|
39
|
+
* @param {Long | number | BigNumber | bigint | null} props.amount
|
|
39
40
|
*/
|
|
40
41
|
constructor(props: {
|
|
41
42
|
tokenId: TokenId;
|
|
42
43
|
spenderAccountId: AccountId | null;
|
|
43
44
|
ownerAccountId: AccountId | null;
|
|
44
|
-
amount: Long | null;
|
|
45
|
+
amount: Long | number | BigNumber | bigint | null;
|
|
45
46
|
});
|
|
46
47
|
/**
|
|
47
48
|
* The token that the allowance pertains to.
|
|
@@ -88,6 +89,7 @@ export namespace HieroProto {
|
|
|
88
89
|
}
|
|
89
90
|
}
|
|
90
91
|
export type Client = import("../client/Client.js").default<any, any>;
|
|
92
|
+
export type BigNumber = import("bignumber.js").default;
|
|
91
93
|
import TokenId from "../token/TokenId.js";
|
|
92
94
|
import AccountId from "./AccountId.js";
|
|
93
95
|
import Long from "long";
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import o from"../token/TokenId.js";import t from"./AccountId.js";import n from"long";class
|
|
1
|
+
import o from"../token/TokenId.js";import t from"./AccountId.js";import n from"long";import{convertAmountToLong as e}from"../util.js";class u{constructor(o){this.tokenId=o.tokenId,this.spenderAccountId=o.spenderAccountId,this.ownerAccountId=o.ownerAccountId,this.amount=null!=o.amount?e(o.amount):null,Object.freeze(this)}static _fromProtobuf(e){return new u({tokenId:o._fromProtobuf(e.tokenId),spenderAccountId:t._fromProtobuf(e.spender),ownerAccountId:null!=e.owner?t._fromProtobuf(e.owner):null,amount:null!=e.amount?n.fromValue(e.amount):null})}static _fromGrantedProtobuf(e,r){return new u({tokenId:o._fromProtobuf(e.tokenId),spenderAccountId:t._fromProtobuf(e.spender),ownerAccountId:r,amount:null!=e.amount?n.fromValue(e.amount):null})}_toProtobuf(){return{tokenId:this.tokenId._toProtobuf(),spender:null!=this.spenderAccountId?this.spenderAccountId._toProtobuf():null,owner:null!=this.ownerAccountId?this.ownerAccountId._toProtobuf():null,amount:this.amount}}_validateChecksums(o){this.tokenId.validateChecksum(o),null!=this.ownerAccountId&&this.ownerAccountId.validateChecksum(o),null!=this.spenderAccountId&&this.spenderAccountId.validateChecksum(o)}}export{u as default};
|
|
2
2
|
//# sourceMappingURL=TokenAllowance.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TokenAllowance.js","sources":["../../src/account/TokenAllowance.js"],"sourcesContent":["// SPDX-License-Identifier: Apache-2.0\n\nimport TokenId from \"../token/TokenId.js\";\nimport AccountId from \"./AccountId.js\";\nimport Long from \"long\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.IGrantedTokenAllowance} HieroProto.proto.IGrantedTokenAllowance\n * @typedef {import(\"@hashgraph/proto\").proto.ITokenAllowance} HieroProto.proto.ITokenAllowance\n * @typedef {import(\"@hashgraph/proto\").proto.ITokenID} HieroProto.proto.ITokenID\n * @typedef {import(\"@hashgraph/proto\").proto.IAccountID} HieroProto.proto.IAccountID\n */\n\n/**\n * @typedef {import(\"../client/Client.js\").default<*, *>} Client\n */\n\n/**\n * Represents a token allowance granted to a spender account by an owner account.\n *\n * The `TokenAllowance` class manages the permissions for one account to spend a specified\n * amount of tokens on behalf of another account. It includes details about the token, the\n * spender, the owner, and the amount allowed.\n */\nexport default class TokenAllowance {\n /**\n * @internal\n * @param {object} props\n * @param {TokenId} props.tokenId\n * @param {AccountId | null} props.spenderAccountId\n * @param {AccountId | null} props.ownerAccountId\n * @param {Long | null} props.amount\n */\n constructor(props) {\n /**\n * The token that the allowance pertains to.\n *\n * @readonly\n */\n this.tokenId = props.tokenId;\n\n /**\n * The account ID of the spender of the hbar allowance.\n *\n * @readonly\n */\n this.spenderAccountId = props.spenderAccountId;\n\n /**\n * The account ID of the owner of the hbar allowance.\n *\n * @readonly\n */\n this.ownerAccountId = props.ownerAccountId;\n\n /**\n * The current balance of the spender's token allowance.\n * **NOTE**: If `null`, the spender has access to all of the account owner's NFT instances\n * (currently owned and any in the future).\n *\n * @readonly\n */\n this.amount
|
|
1
|
+
{"version":3,"file":"TokenAllowance.js","sources":["../../src/account/TokenAllowance.js"],"sourcesContent":["// SPDX-License-Identifier: Apache-2.0\n\nimport TokenId from \"../token/TokenId.js\";\nimport AccountId from \"./AccountId.js\";\nimport Long from \"long\";\nimport { convertAmountToLong } from \"../util.js\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.IGrantedTokenAllowance} HieroProto.proto.IGrantedTokenAllowance\n * @typedef {import(\"@hashgraph/proto\").proto.ITokenAllowance} HieroProto.proto.ITokenAllowance\n * @typedef {import(\"@hashgraph/proto\").proto.ITokenID} HieroProto.proto.ITokenID\n * @typedef {import(\"@hashgraph/proto\").proto.IAccountID} HieroProto.proto.IAccountID\n */\n\n/**\n * @typedef {import(\"../client/Client.js\").default<*, *>} Client\n * @typedef {import(\"bignumber.js\").default} BigNumber\n */\n\n/**\n * Represents a token allowance granted to a spender account by an owner account.\n *\n * The `TokenAllowance` class manages the permissions for one account to spend a specified\n * amount of tokens on behalf of another account. It includes details about the token, the\n * spender, the owner, and the amount allowed.\n */\nexport default class TokenAllowance {\n /**\n * @internal\n * @param {object} props\n * @param {TokenId} props.tokenId\n * @param {AccountId | null} props.spenderAccountId\n * @param {AccountId | null} props.ownerAccountId\n * @param {Long | number | BigNumber | bigint | null} props.amount\n */\n constructor(props) {\n /**\n * The token that the allowance pertains to.\n *\n * @readonly\n */\n this.tokenId = props.tokenId;\n\n /**\n * The account ID of the spender of the hbar allowance.\n *\n * @readonly\n */\n this.spenderAccountId = props.spenderAccountId;\n\n /**\n * The account ID of the owner of the hbar allowance.\n *\n * @readonly\n */\n this.ownerAccountId = props.ownerAccountId;\n\n /**\n * The current balance of the spender's token allowance.\n * **NOTE**: If `null`, the spender has access to all of the account owner's NFT instances\n * (currently owned and any in the future).\n *\n * @readonly\n */\n this.amount =\n props.amount != null ? convertAmountToLong(props.amount) : null;\n\n Object.freeze(this);\n }\n\n /**\n * @internal\n * @param {HieroProto.proto.ITokenAllowance} allowance\n * @returns {TokenAllowance}\n */\n static _fromProtobuf(allowance) {\n return new TokenAllowance({\n tokenId: TokenId._fromProtobuf(\n /** @type {HieroProto.proto.ITokenID} */ (allowance.tokenId),\n ),\n spenderAccountId: AccountId._fromProtobuf(\n /** @type {HieroProto.proto.IAccountID} */ (allowance.spender),\n ),\n ownerAccountId:\n allowance.owner != null\n ? AccountId._fromProtobuf(\n /**@type {HieroProto.proto.IAccountID}*/ (\n allowance.owner\n ),\n )\n : null,\n amount:\n allowance.amount != null\n ? Long.fromValue(/** @type {Long} */ (allowance.amount))\n : null,\n });\n }\n\n /**\n * @internal\n * @param {HieroProto.proto.IGrantedTokenAllowance} allowance\n * @param {AccountId} ownerAccountId\n * @returns {TokenAllowance}\n */\n static _fromGrantedProtobuf(allowance, ownerAccountId) {\n return new TokenAllowance({\n tokenId: TokenId._fromProtobuf(\n /** @type {HieroProto.proto.ITokenID} */ (allowance.tokenId),\n ),\n spenderAccountId: AccountId._fromProtobuf(\n /** @type {HieroProto.proto.IAccountID} */ (allowance.spender),\n ),\n ownerAccountId,\n amount:\n allowance.amount != null\n ? Long.fromValue(/** @type {Long} */ (allowance.amount))\n : null,\n });\n }\n\n /**\n * @internal\n * @returns {HieroProto.proto.ITokenAllowance}\n */\n _toProtobuf() {\n return {\n tokenId: this.tokenId._toProtobuf(),\n spender:\n this.spenderAccountId != null\n ? this.spenderAccountId._toProtobuf()\n : null,\n owner:\n this.ownerAccountId != null\n ? this.ownerAccountId._toProtobuf()\n : null,\n amount: this.amount,\n };\n }\n\n /**\n * @param {Client} client\n */\n _validateChecksums(client) {\n this.tokenId.validateChecksum(client);\n\n if (this.ownerAccountId != null) {\n this.ownerAccountId.validateChecksum(client);\n }\n\n if (this.spenderAccountId != null) {\n this.spenderAccountId.validateChecksum(client);\n }\n }\n}\n"],"names":["TokenAllowance","constructor","props","this","tokenId","spenderAccountId","ownerAccountId","amount","convertAmountToLong","Object","freeze","_fromProtobuf","allowance","TokenId","AccountId","owner","Long","fromValue","_fromGrantedProtobuf","_toProtobuf","spender","_validateChecksums","client","validateChecksum"],"mappings":"sIA2Be,MAAMA,EASjB,WAAAC,CAAYC,GAMRC,KAAKC,QAAUF,EAAME,QAOrBD,KAAKE,iBAAmBH,EAAMG,iBAO9BF,KAAKG,eAAiBJ,EAAMI,eAS5BH,KAAKI,OACe,MAAhBL,EAAMK,OAAiBC,EAAoBN,EAAMK,QAAU,KAE/DE,OAAOC,OAAOP,KACtB,CAOI,oBAAOQ,CAAcC,GACjB,OAAO,IAAIZ,EAAe,CACtBI,QAASS,EAAQF,cAC6BC,EAAiB,SAE/DP,iBAAkBS,EAAUH,cACoBC,EAAiB,SAEjEN,eACuB,MAAnBM,EAAUG,MACJD,EAAUH,cAEFC,EAC9B,OAEsB,KACVL,OACwB,MAApBK,EAAUL,OACJS,EAAKC,UAA+BL,EAAgB,QACpD,MAEtB,CAQI,2BAAOM,CAAqBN,EAAWN,GACnC,OAAO,IAAIN,EAAe,CACtBI,QAASS,EAAQF,cAC6BC,EAAiB,SAE/DP,iBAAkBS,EAAUH,cACoBC,EAAiB,SAEjEN,iBACAC,OACwB,MAApBK,EAAUL,OACJS,EAAKC,UAA+BL,EAAgB,QACpD,MAEtB,CAMI,WAAAO,GACI,MAAO,CACHf,QAASD,KAAKC,QAAQe,cACtBC,QAC6B,MAAzBjB,KAAKE,iBACCF,KAAKE,iBAAiBc,cACtB,KACVJ,MAC2B,MAAvBZ,KAAKG,eACCH,KAAKG,eAAea,cACpB,KACVZ,OAAQJ,KAAKI,OAEzB,CAKI,kBAAAc,CAAmBC,GACfnB,KAAKC,QAAQmB,iBAAiBD,GAEH,MAAvBnB,KAAKG,gBACLH,KAAKG,eAAeiB,iBAAiBD,GAGZ,MAAzBnB,KAAKE,kBACLF,KAAKE,iBAAiBkB,iBAAiBD,EAEnD"}
|
|
@@ -8,6 +8,7 @@ var _TokenId = _interopRequireDefault(require("../token/TokenId.cjs"));
|
|
|
8
8
|
var _AccountId = _interopRequireDefault(require("../account/AccountId.cjs"));
|
|
9
9
|
var _TokenTransferAccountMap = _interopRequireDefault(require("./TokenTransferAccountMap.cjs"));
|
|
10
10
|
var _ObjectMap = _interopRequireDefault(require("../ObjectMap.cjs"));
|
|
11
|
+
var _util = require("../util.cjs");
|
|
11
12
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
12
13
|
// SPDX-License-Identifier: Apache-2.0
|
|
13
14
|
|
|
@@ -19,6 +20,10 @@ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e
|
|
|
19
20
|
* @typedef {import("@hashgraph/proto").proto.IAccountID} HieroProto.proto.IAccountID
|
|
20
21
|
*/
|
|
21
22
|
|
|
23
|
+
/**
|
|
24
|
+
* @typedef {import("bignumber.js").default} BigNumber
|
|
25
|
+
*/
|
|
26
|
+
|
|
22
27
|
/**
|
|
23
28
|
* @augments {ObjectMap<TokenId, TokenTransferAccountMap>}
|
|
24
29
|
*/
|
|
@@ -31,7 +36,7 @@ class TokenTransferMap extends _ObjectMap.default {
|
|
|
31
36
|
* @internal
|
|
32
37
|
* @param {TokenId} tokenId
|
|
33
38
|
* @param {AccountId} accountId
|
|
34
|
-
* @param {Long} amount
|
|
39
|
+
* @param {Long | number | BigNumber | bigint} amount
|
|
35
40
|
*/
|
|
36
41
|
__set(tokenId, accountId, amount) {
|
|
37
42
|
const token = tokenId.toString();
|
|
@@ -41,7 +46,7 @@ class TokenTransferMap extends _ObjectMap.default {
|
|
|
41
46
|
this._map.set(token, _map);
|
|
42
47
|
this.__map.set(tokenId, _map);
|
|
43
48
|
}
|
|
44
|
-
_map._set(accountId, amount);
|
|
49
|
+
_map._set(accountId, (0, _util.convertAmountToLong)(amount));
|
|
45
50
|
}
|
|
46
51
|
|
|
47
52
|
/**
|
|
@@ -5,6 +5,9 @@
|
|
|
5
5
|
* @typedef {import("@hashgraph/proto").proto.ITokenID} HieroProto.proto.ITokenID
|
|
6
6
|
* @typedef {import("@hashgraph/proto").proto.IAccountID} HieroProto.proto.IAccountID
|
|
7
7
|
*/
|
|
8
|
+
/**
|
|
9
|
+
* @typedef {import("bignumber.js").default} BigNumber
|
|
10
|
+
*/
|
|
8
11
|
/**
|
|
9
12
|
* @augments {ObjectMap<TokenId, TokenTransferAccountMap>}
|
|
10
13
|
*/
|
|
@@ -19,9 +22,9 @@ export default class TokenTransferMap extends ObjectMap<TokenId, TokenTransferAc
|
|
|
19
22
|
* @internal
|
|
20
23
|
* @param {TokenId} tokenId
|
|
21
24
|
* @param {AccountId} accountId
|
|
22
|
-
* @param {Long} amount
|
|
25
|
+
* @param {Long | number | BigNumber | bigint} amount
|
|
23
26
|
*/
|
|
24
|
-
__set(tokenId: TokenId, accountId: AccountId, amount: Long): void;
|
|
27
|
+
__set(tokenId: TokenId, accountId: AccountId, amount: Long | number | BigNumber | bigint): void;
|
|
25
28
|
/**
|
|
26
29
|
* @returns {HieroProto.proto.ITokenTransferList[]}
|
|
27
30
|
*/
|
|
@@ -35,6 +38,7 @@ export namespace HieroProto {
|
|
|
35
38
|
type IAccountID = import("@hashgraph/proto").proto.IAccountID;
|
|
36
39
|
}
|
|
37
40
|
}
|
|
41
|
+
export type BigNumber = import("bignumber.js").default;
|
|
38
42
|
import TokenId from "../token/TokenId.js";
|
|
39
43
|
import TokenTransferAccountMap from "./TokenTransferAccountMap.js";
|
|
40
44
|
import ObjectMap from "../ObjectMap.js";
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import o from"../token/TokenId.js";import t from"./AccountId.js";import r from"./TokenTransferAccountMap.js";import s from"../ObjectMap.js";
|
|
1
|
+
import o from"../token/TokenId.js";import t from"./AccountId.js";import r from"./TokenTransferAccountMap.js";import s from"../ObjectMap.js";import{convertAmountToLong as n}from"../util.js";class f extends s{constructor(){super(t=>o.fromString(t))}__set(o,t,s){const f=o.toString();let e=this._map.get(f);null==e&&(e=new r,this._map.set(f,e),this.__map.set(o,e)),e._set(t,n(s))}static _fromProtobuf(r){const s=new f;for(const n of r){const r=o._fromProtobuf(n.token);for(const o of null!=n.transfers?n.transfers:[]){const n=t._fromProtobuf(o.accountID);s.__set(r,n,o.amount)}}return s}_toProtobuf(){const o=[];for(const[t,r]of this){const s=[];for(const[o,t]of r)s.push({accountID:o._toProtobuf(),amount:t});o.push({token:t._toProtobuf(),transfers:s})}return o}}export{f as default};
|
|
2
2
|
//# sourceMappingURL=TokenTransferMap.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TokenTransferMap.js","sources":["../../src/account/TokenTransferMap.js"],"sourcesContent":["// SPDX-License-Identifier: Apache-2.0\n\nimport TokenId from \"../token/TokenId.js\";\nimport AccountId from \"../account/AccountId.js\";\nimport TokenTransferAccountMap from \"./TokenTransferAccountMap.js\";\nimport ObjectMap from \"../ObjectMap.js\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.ITokenTransferList} HieroProto.proto.ITokenTransferList\n * @typedef {import(\"@hashgraph/proto\").proto.IAccountAmount} HieroProto.proto.IAccountAmount\n * @typedef {import(\"@hashgraph/proto\").proto.ITokenID} HieroProto.proto.ITokenID\n * @typedef {import(\"@hashgraph/proto\").proto.IAccountID} HieroProto.proto.IAccountID\n */\n\n/**\n * @augments {ObjectMap<TokenId, TokenTransferAccountMap>}\n */\nexport default class TokenTransferMap extends ObjectMap {\n constructor() {\n super((s) => TokenId.fromString(s));\n }\n\n /**\n * @internal\n * @param {TokenId} tokenId\n * @param {AccountId} accountId\n * @param {Long} amount\n */\n __set(tokenId, accountId, amount) {\n const token = tokenId.toString();\n\n let _map = this._map.get(token);\n if (_map == null) {\n _map = new TokenTransferAccountMap();\n this._map.set(token, _map);\n this.__map.set(tokenId, _map);\n }\n\n _map._set(accountId, amount);\n }\n\n /**\n * @param {HieroProto.proto.ITokenTransferList[]} transfers\n * @returns {TokenTransferMap}\n */\n static _fromProtobuf(transfers) {\n const tokenTransfersMap = new TokenTransferMap();\n\n for (const transfer of transfers) {\n const token = TokenId._fromProtobuf(\n /** @type {HieroProto.proto.ITokenID} */ (transfer.token),\n );\n\n for (const aa of transfer.transfers != null\n ? transfer.transfers\n : []) {\n const account = AccountId._fromProtobuf(\n /** @type {HieroProto.proto.IAccountID} */ (aa.accountID),\n );\n\n tokenTransfersMap.__set(\n token,\n account,\n /** @type {Long} */ (aa.amount),\n );\n }\n }\n\n return tokenTransfersMap;\n }\n\n /**\n * @returns {HieroProto.proto.ITokenTransferList[]}\n */\n _toProtobuf() {\n /** @type {HieroProto.proto.ITokenTransferList[]} */\n const tokenTransferList = [];\n\n for (const [tokenId, value] of this) {\n /** @type {HieroProto.proto.IAccountAmount[]} */\n const transfers = [];\n\n for (const [accountId, amount] of value) {\n transfers.push({\n accountID: accountId._toProtobuf(),\n amount: amount,\n });\n }\n\n tokenTransferList.push({\n token: tokenId._toProtobuf(),\n transfers: transfers,\n });\n }\n\n return tokenTransferList;\n }\n}\n"],"names":["TokenTransferMap","ObjectMap","constructor","super","s","TokenId","fromString","__set","tokenId","accountId","amount","token","toString","_map","this","get","TokenTransferAccountMap","set","__map","_set","_fromProtobuf","transfers","tokenTransfersMap","transfer","aa","account","AccountId","_toProtobuf","tokenTransferList","value","push","accountID"],"mappings":"
|
|
1
|
+
{"version":3,"file":"TokenTransferMap.js","sources":["../../src/account/TokenTransferMap.js"],"sourcesContent":["// SPDX-License-Identifier: Apache-2.0\n\nimport TokenId from \"../token/TokenId.js\";\nimport AccountId from \"../account/AccountId.js\";\nimport TokenTransferAccountMap from \"./TokenTransferAccountMap.js\";\nimport ObjectMap from \"../ObjectMap.js\";\nimport { convertAmountToLong } from \"../util.js\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.ITokenTransferList} HieroProto.proto.ITokenTransferList\n * @typedef {import(\"@hashgraph/proto\").proto.IAccountAmount} HieroProto.proto.IAccountAmount\n * @typedef {import(\"@hashgraph/proto\").proto.ITokenID} HieroProto.proto.ITokenID\n * @typedef {import(\"@hashgraph/proto\").proto.IAccountID} HieroProto.proto.IAccountID\n */\n\n/**\n * @typedef {import(\"bignumber.js\").default} BigNumber\n */\n\n/**\n * @augments {ObjectMap<TokenId, TokenTransferAccountMap>}\n */\nexport default class TokenTransferMap extends ObjectMap {\n constructor() {\n super((s) => TokenId.fromString(s));\n }\n\n /**\n * @internal\n * @param {TokenId} tokenId\n * @param {AccountId} accountId\n * @param {Long | number | BigNumber | bigint} amount\n */\n __set(tokenId, accountId, amount) {\n const token = tokenId.toString();\n\n let _map = this._map.get(token);\n if (_map == null) {\n _map = new TokenTransferAccountMap();\n this._map.set(token, _map);\n this.__map.set(tokenId, _map);\n }\n\n _map._set(accountId, convertAmountToLong(amount));\n }\n\n /**\n * @param {HieroProto.proto.ITokenTransferList[]} transfers\n * @returns {TokenTransferMap}\n */\n static _fromProtobuf(transfers) {\n const tokenTransfersMap = new TokenTransferMap();\n\n for (const transfer of transfers) {\n const token = TokenId._fromProtobuf(\n /** @type {HieroProto.proto.ITokenID} */ (transfer.token),\n );\n\n for (const aa of transfer.transfers != null\n ? transfer.transfers\n : []) {\n const account = AccountId._fromProtobuf(\n /** @type {HieroProto.proto.IAccountID} */ (aa.accountID),\n );\n\n tokenTransfersMap.__set(\n token,\n account,\n /** @type {Long} */ (aa.amount),\n );\n }\n }\n\n return tokenTransfersMap;\n }\n\n /**\n * @returns {HieroProto.proto.ITokenTransferList[]}\n */\n _toProtobuf() {\n /** @type {HieroProto.proto.ITokenTransferList[]} */\n const tokenTransferList = [];\n\n for (const [tokenId, value] of this) {\n /** @type {HieroProto.proto.IAccountAmount[]} */\n const transfers = [];\n\n for (const [accountId, amount] of value) {\n transfers.push({\n accountID: accountId._toProtobuf(),\n amount: amount,\n });\n }\n\n tokenTransferList.push({\n token: tokenId._toProtobuf(),\n transfers: transfers,\n });\n }\n\n return tokenTransferList;\n }\n}\n"],"names":["TokenTransferMap","ObjectMap","constructor","super","s","TokenId","fromString","__set","tokenId","accountId","amount","token","toString","_map","this","get","TokenTransferAccountMap","set","__map","_set","convertAmountToLong","_fromProtobuf","transfers","tokenTransfersMap","transfer","aa","account","AccountId","_toProtobuf","tokenTransferList","value","push","accountID"],"mappings":"6LAuBe,MAAMA,UAAyBC,EAC1C,WAAAC,GACIC,MAAOC,GAAMC,EAAQC,WAAWF,GACxC,CAQI,KAAAG,CAAMC,EAASC,EAAWC,GACtB,MAAMC,EAAQH,EAAQI,WAEtB,IAAIC,EAAOC,KAAKD,KAAKE,IAAIJ,GACb,MAARE,IACAA,EAAO,IAAIG,EACXF,KAAKD,KAAKI,IAAIN,EAAOE,GACrBC,KAAKI,MAAMD,IAAIT,EAASK,IAG5BA,EAAKM,KAAKV,EAAWW,EAAoBV,GACjD,CAMI,oBAAOW,CAAcC,GACjB,MAAMC,EAAoB,IAAIvB,EAE9B,IAAK,MAAMwB,KAAYF,EAAW,CAC9B,MAAMX,EAAQN,EAAQgB,cACwBG,EAAc,OAG5D,IAAK,MAAMC,KAA4B,MAAtBD,EAASF,UACpBE,EAASF,UACT,GAAI,CACN,MAAMI,EAAUC,EAAUN,cACsBI,EAAY,WAG5DF,EAAkBhB,MACdI,EACAe,EACqBD,EAAS,OAElD,CACA,CAEQ,OAAOF,CACf,CAKI,WAAAK,GAEI,MAAMC,EAAoB,GAE1B,IAAK,MAAOrB,EAASsB,KAAUhB,KAAM,CAEjC,MAAMQ,EAAY,GAElB,IAAK,MAAOb,EAAWC,KAAWoB,EAC9BR,EAAUS,KAAK,CACXC,UAAWvB,EAAUmB,cACrBlB,OAAQA,IAIhBmB,EAAkBE,KAAK,CACnBpB,MAAOH,EAAQoB,cACfN,UAAWA,GAE3B,CAEQ,OAAOO,CACf"}
|