@hashgraph/sdk
Version:
3 lines (2 loc) • 4.54 kB
JavaScript
import e from"../transaction/Transaction.js";import n from"./AccountId.js";import t from"../contract/ContractId.js";import r from"../token/TokenId.js";import o from"../token/NftId.js";import s from"long";import a from"../Hbar.js";import l from"./HbarAllowance.js";import i from"./TokenAllowance.js";import c from"./TokenNftAllowance.js";import{requireNotNegative as d}from"../util.js";class u extends e{constructor(e={}){super(),this._hbarAllowances=null!=e.hbarAllowances?e.hbarAllowances:[],this._tokenAllowances=null!=e.tokenAllowances?e.tokenAllowances:[],this._nftAllowances=null!=e.nftAllowances?e.nftAllowances:[]}get hbarAllowances(){return this._hbarAllowances}addHbarAllowance(e,n){const t=n instanceof a?n:new a(n);return this._adjustHbarAllowance(null,e,d(t))}_adjustHbarAllowance(e,r,o){return this._requireNotFrozen(),this._hbarAllowances.push(new l({spenderAccountId:"string"==typeof r?n.fromString(r):r instanceof t?n.fromEvmAddress(r.shard,r.realm,r.toEvmAddress()):r,ownerAccountId:"string"==typeof e?n.fromString(e):e instanceof t?n.fromEvmAddress(e.shard,e.realm,e.toEvmAddress()):e,amount:o})),this}grantHbarAllowance(e,n,t){const r=t instanceof a?t:new a(t);return this._adjustHbarAllowance(e,n,d(r))}revokeHbarAllowance(e,n,t){const r=t instanceof a?t:new a(t);return this._adjustHbarAllowance(e,n,d(r).negated())}get tokenAllowances(){return this._tokenAllowances}addTokenAllowance(e,n,t){return this._adjustTokenAllowance(e,null,n,d(s.fromValue(t)))}_adjustTokenAllowance(e,o,a,l){return this._requireNotFrozen(),this._tokenAllowances.push(new i({tokenId:"string"==typeof e?r.fromString(e):e,spenderAccountId:"string"==typeof a?n.fromString(a):a instanceof t?n.fromEvmAddress(a.shard,a.realm,a.toEvmAddress()):a,ownerAccountId:"string"==typeof o?n.fromString(o):o instanceof t?n.fromEvmAddress(o.shard,o.realm,o.toEvmAddress()):o,amount:"number"==typeof l?s.fromNumber(l):l})),this}grantTokenAllowance(e,n,t,r){return this._adjustTokenAllowance(e,n,t,d(s.fromValue(r)))}revokeTokenAllowance(e,n,t,r){return this._adjustTokenAllowance(e,n,t,d(s.fromValue(r)))}addTokenNftAllowance(e,n){const t="string"==typeof e?o.fromString(e):e;return this._adjustTokenNftAllowance(t,null,n)}_adjustTokenNftAllowance(e,r,o){this._requireNotFrozen();const s="string"==typeof o?n.fromString(o):o instanceof t?n.fromEvmAddress(o.shard,o.realm,o.toEvmAddress()):o,a="string"==typeof r?n.fromString(r):r instanceof t?n.fromEvmAddress(r.shard,r.realm,r.toEvmAddress()):r;let l=!1;for(const n of this._nftAllowances)if(0===n.tokenId.compare(e.tokenId)&&null!=n.spenderAccountId&&0===n.spenderAccountId.compare(s)){null!=n.serialNumbers&&n.serialNumbers.push(e.serial),l=!0;break}return l||this._nftAllowances.push(new c({tokenId:e.tokenId,spenderAccountId:s,serialNumbers:[e.serial],ownerAccountId:a,allSerials:!1,delegatingSpender:null})),this}grantTokenNftAllowance(e,n,t){const r="string"==typeof e?o.fromString(e):e;return d(r.serial),this._adjustTokenNftAllowance(r,n,t)}revokeTokenNftAllowance(e,n,t){const r="string"==typeof e?o.fromString(e):e;return d(r.serial),this._adjustTokenNftAllowance(new o(r.tokenId,r.serial.negate()),n,t)}addAllTokenNftAllowance(e,n){return this._adjustTokenNftAllowanceAllSerials(e,null,n,!0)}grantTokenNftAllowanceAllSerials(e,n,t){return this._adjustTokenNftAllowanceAllSerials(e,n,t,!0)}revokeTokenNftAllowanceAllSerials(e,n,t){return this._adjustTokenNftAllowanceAllSerials(e,n,t,!1)}_adjustTokenNftAllowanceAllSerials(e,o,s,a){return this._requireNotFrozen(),this._nftAllowances.push(new c({tokenId:"string"==typeof e?r.fromString(e):e,ownerAccountId:null!=o?"string"==typeof o?n.fromString(o):o instanceof t?n.fromEvmAddress(o.shard,o.realm,o.toEvmAddress()):o:null,spenderAccountId:"string"==typeof s?n.fromString(s):s instanceof t?n.fromEvmAddress(s.shard,s.realm,s.toEvmAddress()):s,serialNumbers:null,allSerials:a,delegatingSpender:null})),this}_validateChecksums(e){this._hbarAllowances.map(n=>n._validateChecksums(e)),this._tokenAllowances.map(n=>n._validateChecksums(e)),this._nftAllowances.map(n=>n._validateChecksums(e))}_execute(e,n){return Promise.reject(new Error("This feature has been deprecated for this class."))}_getTransactionDataCase(){throw new Error("This feature has been deprecated for this class.")}_makeTransactionData(){throw new Error("This feature has been deprecated.")}_getLogId(){return`AccountAllowanceAdjustTransaction:${this._transactionIds.current.validStart.toString()}`}}export{u as default};
//# sourceMappingURL=AccountAllowanceAdjustTransaction.js.map