@hashgraph/sdk
Version:
3 lines (2 loc) • 4.82 kB
JavaScript
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"long";import l from"../Hbar.js";import p from"./HbarAllowance.js";import i from"./TokenAllowance.js";import f from"./TokenNftAllowance.js";class c 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 c({hbarApprovals:(null!=a.cryptoAllowances?a.cryptoAllowances:[]).map(r=>p._fromProtobuf(r)),tokenApprovals:(null!=a.tokenAllowances?a.tokenAllowances:[]).map(r=>i._fromProtobuf(r)),nftApprovals:(null!=a.nftAllowances?a.nftAllowances:[]).map(r=>f._fromProtobuf(r))}),o,t,e,n,s)}get hbarApprovals(){return this._hbarApprovals}approveHbarAllowance(r,o,n){return this._requireNotFrozen(),this._hbarApprovals.push(new p({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 l?n:new l(n)})),this}addHbarAllowance(r,o){return this._requireNotFrozen(),this._hbarApprovals.push(new p({spenderAccountId:"string"==typeof r?t.fromString(r):r,amount:o instanceof l?o:new l(o),ownerAccountId:null})),this}get tokenApprovals(){return this._tokenApprovals}approveTokenAllowance(r,o,s,l){return this._requireNotFrozen(),this._tokenApprovals.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,amount:"number"==typeof l?a.fromNumber(l):l})),this}addTokenAllowance(r,o,e){return this._requireNotFrozen(),this._tokenApprovals.push(new i({tokenId:"string"==typeof r?n.fromString(r):r,spenderAccountId:"string"==typeof o?t.fromString(o):o,amount:"number"==typeof e?a.fromNumber(e):e,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 i=!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),i=!0;break}return i||this._nftApprovals.push(new f({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 f({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",c._fromProtobuf);export{c as default};
//# sourceMappingURL=AccountAllowanceApproveTransaction.js.map