snapper-sdk
Version:
An SDK for building applications on top of Snapper.
2 lines • 3.09 kB
JavaScript
;var B=Object.create;var T=Object.defineProperty;var x=Object.getOwnPropertyDescriptor;var h=Object.getOwnPropertyNames;var b=Object.getPrototypeOf,P=Object.prototype.hasOwnProperty;var g=(e,n)=>{for(var r in n)T(e,r,{get:n[r],enumerable:!0})},l=(e,n,r,u)=>{if(n&&typeof n=="object"||typeof n=="function")for(let t of h(n))!P.call(e,t)&&t!==r&&T(e,t,{get:()=>n[t],enumerable:!(u=x(n,t))||u.enumerable});return e};var N=(e,n,r)=>(r=e!=null?B(b(e)):{},l(n||!e||!e.__esModule?T(r,"default",{value:e,enumerable:!0}):r,e)),A=e=>l(T({},"__esModule",{value:!0}),e);var I={};g(I,{BNDivCeil:()=>d,getTransferAmountFee:()=>S,getTransferAmountFeeV2:()=>E,minExpirationTime:()=>M});module.exports=A(I);var s=N(require("bn.js")),f=1e4;function S(e,n,r,u){if(n===void 0)return{amount:e,fee:void 0,expirationTime:void 0};let t=r.epoch<n.newerTransferFee.epoch?n.olderTransferFee:n.newerTransferFee,i=new s.default(t.maximumFee.toString()),m=r.epoch<n.newerTransferFee.epoch?(Number(n.newerTransferFee.epoch)*r.slotsInEpoch-r.absoluteSlot)*400/1e3:void 0;if(u)if(t.transferFeeBasisPoints===f){let a=new s.default(t.maximumFee.toString());return{amount:e.add(a),fee:a,expirationTime:m}}else{let a=d(e.mul(new s.default(f)),new s.default(f-t.transferFeeBasisPoints)),o=new s.default(t.maximumFee.toString()),F=a.sub(e).gt(o)?e.add(o):a,c=d(F.mul(new s.default(t.transferFeeBasisPoints)),new s.default(f)),w=c.gt(i)?i:c;return{amount:F,fee:w,expirationTime:m}}else{let a=d(e.mul(new s.default(t.transferFeeBasisPoints)),new s.default(f)),o=a.gt(i)?i:a;return{amount:e,fee:o,expirationTime:m}}}function E(e,n,r,u){if(n===void 0)return{amount:e,fee:void 0,expirationTime:void 0};let t={...n,olderTransferFee:{epoch:BigInt(n.olderTransferFee.epoch),maximumFee:BigInt(n.olderTransferFee.maximumFee),transferFeeBasisPoints:n.olderTransferFee.transferFeeBasisPoints},newerTransferFee:{epoch:BigInt(n.newerTransferFee.epoch),maximumFee:BigInt(n.newerTransferFee.maximumFee),transferFeeBasisPoints:n.newerTransferFee.transferFeeBasisPoints}},i=r.epoch<t.newerTransferFee.epoch?t.olderTransferFee:t.newerTransferFee,m=new s.default(i.maximumFee.toString()),a=r.epoch<t.newerTransferFee.epoch?(Number(t.newerTransferFee.epoch)*r.slotsInEpoch-r.absoluteSlot)*400/1e3:void 0;if(u)if(i.transferFeeBasisPoints===f){let o=new s.default(i.maximumFee.toString());return{amount:e.add(o),fee:o,expirationTime:a}}else{let o=d(e.mul(new s.default(f)),new s.default(f-i.transferFeeBasisPoints)),F=new s.default(i.maximumFee.toString()),c=o.sub(e).gt(F)?e.add(F):o,w=d(c.mul(new s.default(i.transferFeeBasisPoints)),new s.default(f)),p=w.gt(m)?m:w;return{amount:c,fee:p,expirationTime:a}}else{let o=d(e.mul(new s.default(i.transferFeeBasisPoints)),new s.default(f)),F=o.gt(m)?m:o;return{amount:e,fee:F,expirationTime:a}}}function M(e,n){return e===void 0?n:n===void 0?e:Math.min(e,n)}function d(e,n){let{div:r,mod:u}=e.divmod(n);return u.gt(new s.default(0))?r.add(new s.default(1)):r}0&&(module.exports={BNDivCeil,getTransferAmountFee,getTransferAmountFeeV2,minExpirationTime});
//# sourceMappingURL=transfer.js.map