@raydium-io/raydium-sdk-v2
Version:
An SDK for building applications on top of Raydium.
2 lines • 3.92 kB
JavaScript
var h=Object.defineProperty,b=Object.defineProperties;var P=Object.getOwnPropertyDescriptors;var T=Object.getOwnPropertySymbols;var N=Object.prototype.hasOwnProperty,g=Object.prototype.propertyIsEnumerable;var p=(n,e,t)=>e in n?h(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,x=(n,e)=>{for(var t in e||(e={}))N.call(e,t)&&p(n,t,e[t]);if(T)for(var t of T(e))g.call(e,t)&&p(n,t,e[t]);return n},B=(n,e)=>b(n,P(e));import r from"bn.js";var f=1e4;function v(n,e,t,F){if(e===void 0)return{amount:n,fee:void 0,expirationTime:void 0};let s=t.epoch<e.newerTransferFee.epoch?e.olderTransferFee:e.newerTransferFee,i=new r(s.maximumFee.toString()),u=t.epoch<e.newerTransferFee.epoch?(Number(e.newerTransferFee.epoch)*t.slotsInEpoch-t.absoluteSlot)*400/1e3:void 0;if(F)if(s.transferFeeBasisPoints===f){let o=new r(s.maximumFee.toString());return{amount:n.add(o),fee:o,expirationTime:u}}else{let o=d(n.mul(new r(f)),new r(f-s.transferFeeBasisPoints)),a=new r(s.maximumFee.toString()),m=o.sub(n).gt(a)?n.add(a):o,c=d(m.mul(new r(s.transferFeeBasisPoints)),new r(f)),w=c.gt(i)?i:c;return{amount:m,fee:w,expirationTime:u}}else{let o=d(n.mul(new r(s.transferFeeBasisPoints)),new r(f)),a=o.gt(i)?i:o;return{amount:n,fee:a,expirationTime:u}}}function G(n,e,t,F){if(e===void 0)return{amount:n,fee:void 0,expirationTime:void 0};let s=B(x({},e),{olderTransferFee:{epoch:BigInt(e.olderTransferFee.epoch),maximumFee:BigInt(e.olderTransferFee.maximumFee),transferFeeBasisPoints:e.olderTransferFee.transferFeeBasisPoints},newerTransferFee:{epoch:BigInt(e.newerTransferFee.epoch),maximumFee:BigInt(e.newerTransferFee.maximumFee),transferFeeBasisPoints:e.newerTransferFee.transferFeeBasisPoints}}),i=t.epoch<s.newerTransferFee.epoch?s.olderTransferFee:s.newerTransferFee,u=new r(i.maximumFee.toString()),o=t.epoch<s.newerTransferFee.epoch?(Number(s.newerTransferFee.epoch)*t.slotsInEpoch-t.absoluteSlot)*400/1e3:void 0;if(F)if(i.transferFeeBasisPoints===f){let a=new r(i.maximumFee.toString());return{amount:n.add(a),fee:a,expirationTime:o}}else{let a=d(n.mul(new r(f)),new r(f-i.transferFeeBasisPoints)),m=new r(i.maximumFee.toString()),c=a.sub(n).gt(m)?n.add(m):a,w=d(c.mul(new r(i.transferFeeBasisPoints)),new r(f)),l=w.gt(u)?u:w;return{amount:c,fee:l,expirationTime:o}}else{let a=d(n.mul(new r(i.transferFeeBasisPoints)),new r(f)),m=a.gt(u)?u:a;return{amount:n,fee:m,expirationTime:o}}}function D(n,e){return n===void 0?e:e===void 0?n:Math.min(n,e)}function d(n,e){let{div:t,mod:F}=n.divmod(e);return F.gt(new r(0))?t.add(new r(1)):t}function I(n,e){if(n.isZero())return new r(0);let t=n.div(e);return t.isZero()?new r(1):n.mod(e).gt(new r(0))?t.add(new r(1)):t}function _(n,e,t){if(e===void 0)return{amount:n,fee:void 0,expirationTime:void 0};let F=Math.floor(t/432e3),s=F<e.newerTransferFee.epoch?e.olderTransferFee:e.newerTransferFee,i=new r(s.maximumFee.toString()),u=F<e.newerTransferFee.epoch?(Number(e.newerTransferFee.epoch)*432e3-t)*400/1e3:void 0,o=d(n.mul(new r(s.transferFeeBasisPoints)),new r(f)),a=o.gt(i)?i:o;return{amount:n,fee:a,expirationTime:u}}function y(n,e,t){if(e===void 0)return{amount:n,fee:void 0,expirationTime:void 0};let F=Math.floor(t/432e3),s=F<e.newerTransferFee.epoch?e.olderTransferFee:e.newerTransferFee,i=new r(s.maximumFee.toString()),u=F<e.newerTransferFee.epoch?(Number(e.newerTransferFee.epoch)*432e3-t)*400/1e3:void 0;if(s.transferFeeBasisPoints===f){let o=new r(s.maximumFee.toString());return{amount:n.add(o),fee:o,expirationTime:u}}else{let o=d(n.mul(new r(f)),new r(f-s.transferFeeBasisPoints)),a=new r(s.maximumFee.toString()),m=o.sub(n).gt(a)?n.add(a):o,c=d(m.mul(new r(s.transferFeeBasisPoints)),new r(f)),w=c.gt(i)?i:c;return{amount:m,fee:w,expirationTime:u}}}export{d as BNDivCeil,I as ceilDivBN,v as getTransferAmountFee,y as getTransferAmountFeeFromPost,_ as getTransferAmountFeeFromPre,G as getTransferAmountFeeV2,D as minExpirationTime};
//# sourceMappingURL=transfer.mjs.map