@sofaws/dapp-core
Version:
A library to hold the main logic for a dapp on the Elrond Network
3 lines (2 loc) • 2.27 kB
JavaScript
import{a as E}from"./chunk-Y4FTYTPB.js";import{a as R}from"./chunk-7I7NVYZT.js";import{a as w,b as $}from"./chunk-NCV4QGRH.js";import{a as c,j as m,m as P}from"./chunk-HBP5N4FR.js";P();import{useEffect as nn,useState as g}from"react";$();var T={};function ln({isLedger:v=!1,transactionsToSign:U,egldLabel:W,address:B,onCancel:f,onSignTransaction:C,onTransactionsSignError:N,onTransactionsSignSuccess:V,onGetScamAddressData:y}){var I,M,A;let[o,a]=g(0),[u,x]=g(),[t,j]=g(null),[O,d]=g(!1),{getTxInfoByDataField:q,allTransactions:s}=E({transactions:U}),p=o===s.length-1;nn(()=>{z()},[o,s]);function z(){return m(this,null,function*(){var k;let n=s[o];if(n==null)return;let{transaction:e,multiTxData:i}=n,S=e.getData().toString(),F=q(e.getData().toString(),i),{tokenId:L}=F,r=e.getReceiver().toString(),Y=B!==r,Z=r in T;if(Y&&!Z&&y!=null){let l=yield y(r);T=c(c({},T),l!=null&&l.scamInfo?{[r]:l.scamInfo}:{})}let _=Boolean(L&&R({tokenId:L,erdLabel:W}));j({transaction:e,receiverScamInfo:((k=T[r])==null?void 0:k.info)||null,transactionTokenInfo:F,isTokenTransaction:_,dataField:S})})}function b(){a(0),x(void 0),d(!1)}function h(){return m(this,null,function*(){try{if(t==null)return;d(v);let n=yield C(t.transaction),e={[o]:n},i=u?c(c({},u),e):e;x(i),p?i&&(V(Object.values(i)),b()):(a(S=>S+1),d(!1))}catch(n){console.error(n,"sign error");let{message:e}=n,i=v?w(n).errorMessage:null;b(),N(i!=null?i:e)}})}function G(){try{if(t==null)return;t.transaction.getSignature().hex()?p||a(e=>e+1):h()}catch(n){h()}}let H=o===0;function J(){H?f==null||f():a(n=>n-1)}let D=Boolean(((I=t==null?void 0:t.transactionTokenInfo)==null?void 0:I.type)&&((M=t==null?void 0:t.transactionTokenInfo)==null?void 0:M.multiTxData)&&!(t!=null&&t.dataField.endsWith((A=t==null?void 0:t.transactionTokenInfo)==null?void 0:A.multiTxData)));function K(){D?a(n=>n+1):G()}function Q(){a(n=>{let e=n+1;return e>(s==null?void 0:s.length)?n:e})}function X(){a(n=>{let e=n-1;return e<0?n:e})}return{allTransactions:s,onSignTransaction:K,onNext:Q,onPrev:X,waitingForDevice:O,onAbort:J,isLastTransaction:p,isFirstTransaction:o===0,hasMultipleTransactions:s.length>1,shouldContinueWithoutSigning:D,currentStep:o,signedTransactions:u,currentTransaction:t}}export{ln as a};
//# sourceMappingURL=chunk-NZKC5BUS.js.map