@morambacrypto/connect 0.0.20 → 0.0.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -353,6 +353,44 @@ declare class PayoutDestinationUserAPI {
353
353
  createPayoutDestinationUser(payload: CreatePayoutDestinationUser, jwtToken: string): Promise<PayoutDestinationUserResponse>;
354
354
  }
355
355
 
356
+ interface CreatePayinUser {
357
+ user_id: string;
358
+ user_type: UserType;
359
+ company_id: string;
360
+ merchant_id: string;
361
+ payout_destination_id: string;
362
+ amount: string;
363
+ payment_description?: string;
364
+ bill_date: number;
365
+ is_public: boolean;
366
+ from_wallet_address?: string;
367
+ client_payment_id: string;
368
+ }
369
+ interface PayinUserResponse {
370
+ id: string;
371
+ user_id: string;
372
+ user_type: UserType;
373
+ company_id: string;
374
+ merchant_id: string;
375
+ partner_id: string;
376
+ payout_destination_id: string;
377
+ amount: string;
378
+ payment_description?: string;
379
+ bill_date: number;
380
+ is_public: boolean;
381
+ from_wallet_address?: string;
382
+ payin_status?: string;
383
+ created_at: string;
384
+ updated_at: string;
385
+ client_payment_id: string;
386
+ }
387
+
388
+ declare class PayinUserAPI {
389
+ private http;
390
+ constructor(http: HttpClient);
391
+ createPayinUser(payload: CreatePayinUser, jwtToken: string): Promise<PayinUserResponse>;
392
+ }
393
+
356
394
  interface MorambaClientConfig {
357
395
  baseURL: string;
358
396
  apiKey: string;
@@ -365,6 +403,7 @@ declare class MorambaClient {
365
403
  merchant: MerchantAPI;
366
404
  user: UserAPI;
367
405
  payoutDestinationUser: PayoutDestinationUserAPI;
406
+ payinUser: PayinUserAPI;
368
407
  constructor(config: MorambaClientConfig);
369
408
  }
370
409
 
@@ -390,4 +429,4 @@ declare function sepoliaApprove(options: SepoliaApproveOptions): Promise<{
390
429
  receipt: any;
391
430
  }>;
392
431
 
393
- export { type CompanyData, type CompanyListItem, type CreateCompanyPayload, type CreateCompanyResponse, type CreateJwtPayload, type CreateJwtResponse, type CreateMerchantPayload, type CreateMerchantResponse, type CreatePayoutDestinationUser, type CreateUserPayload, type CreateUserResponse, type FindPayoutDestinationUser, type GetCompaniesQuery, type GetCompaniesResponse, type GetMerchantListResponse, type GetMerchantQuery, type GetMerchantResponse, type GetUserListResponse, type GetUserQuery, type GetUserResponse, type JwtTokenData, type MerchantData, type MerchantListData, type MerchantListQuery, type MonadApproveOptions, MorambaClient, type MorambaClientConfig, type PaginationData, type PaymentMethod, type PayoutDestinationUserResponse, type SepoliaApproveOptions, type UpdateCompanyEmailPayload, type UpdateCompanyEmailResponse, type UpdateCompanyPaymentPayload, type UpdateCompanyPaymentResponse, type UpdateMerchantEmailPayload, type UpdateMerchantEmailResponse, type UpdateMerchantPaymentPayload, type UpdateMerchantPaymentResponse, type UpdatePayoutDestinationUser, type UpdateUserEmailPayload, type UpdateUserEmailResponse, type UpdateUserPaymentPayload, type UpdateUserPaymentResponse, type UserData, type UserListData, type UserListQuery, UserType, monadApprove, sepoliaApprove };
432
+ export { type CompanyData, type CompanyListItem, type CreateCompanyPayload, type CreateCompanyResponse, type CreateJwtPayload, type CreateJwtResponse, type CreateMerchantPayload, type CreateMerchantResponse, type CreatePayinUser, type CreatePayoutDestinationUser, type CreateUserPayload, type CreateUserResponse, type FindPayoutDestinationUser, type GetCompaniesQuery, type GetCompaniesResponse, type GetMerchantListResponse, type GetMerchantQuery, type GetMerchantResponse, type GetUserListResponse, type GetUserQuery, type GetUserResponse, type JwtTokenData, type MerchantData, type MerchantListData, type MerchantListQuery, type MonadApproveOptions, MorambaClient, type MorambaClientConfig, type PaginationData, type PayinUserResponse, type PaymentMethod, type PayoutDestinationUserResponse, type SepoliaApproveOptions, type UpdateCompanyEmailPayload, type UpdateCompanyEmailResponse, type UpdateCompanyPaymentPayload, type UpdateCompanyPaymentResponse, type UpdateMerchantEmailPayload, type UpdateMerchantEmailResponse, type UpdateMerchantPaymentPayload, type UpdateMerchantPaymentResponse, type UpdatePayoutDestinationUser, type UpdateUserEmailPayload, type UpdateUserEmailResponse, type UpdateUserPaymentPayload, type UpdateUserPaymentResponse, type UserData, type UserListData, type UserListQuery, UserType, monadApprove, sepoliaApprove };
package/dist/index.d.ts CHANGED
@@ -353,6 +353,44 @@ declare class PayoutDestinationUserAPI {
353
353
  createPayoutDestinationUser(payload: CreatePayoutDestinationUser, jwtToken: string): Promise<PayoutDestinationUserResponse>;
354
354
  }
355
355
 
356
+ interface CreatePayinUser {
357
+ user_id: string;
358
+ user_type: UserType;
359
+ company_id: string;
360
+ merchant_id: string;
361
+ payout_destination_id: string;
362
+ amount: string;
363
+ payment_description?: string;
364
+ bill_date: number;
365
+ is_public: boolean;
366
+ from_wallet_address?: string;
367
+ client_payment_id: string;
368
+ }
369
+ interface PayinUserResponse {
370
+ id: string;
371
+ user_id: string;
372
+ user_type: UserType;
373
+ company_id: string;
374
+ merchant_id: string;
375
+ partner_id: string;
376
+ payout_destination_id: string;
377
+ amount: string;
378
+ payment_description?: string;
379
+ bill_date: number;
380
+ is_public: boolean;
381
+ from_wallet_address?: string;
382
+ payin_status?: string;
383
+ created_at: string;
384
+ updated_at: string;
385
+ client_payment_id: string;
386
+ }
387
+
388
+ declare class PayinUserAPI {
389
+ private http;
390
+ constructor(http: HttpClient);
391
+ createPayinUser(payload: CreatePayinUser, jwtToken: string): Promise<PayinUserResponse>;
392
+ }
393
+
356
394
  interface MorambaClientConfig {
357
395
  baseURL: string;
358
396
  apiKey: string;
@@ -365,6 +403,7 @@ declare class MorambaClient {
365
403
  merchant: MerchantAPI;
366
404
  user: UserAPI;
367
405
  payoutDestinationUser: PayoutDestinationUserAPI;
406
+ payinUser: PayinUserAPI;
368
407
  constructor(config: MorambaClientConfig);
369
408
  }
370
409
 
@@ -390,4 +429,4 @@ declare function sepoliaApprove(options: SepoliaApproveOptions): Promise<{
390
429
  receipt: any;
391
430
  }>;
392
431
 
393
- export { type CompanyData, type CompanyListItem, type CreateCompanyPayload, type CreateCompanyResponse, type CreateJwtPayload, type CreateJwtResponse, type CreateMerchantPayload, type CreateMerchantResponse, type CreatePayoutDestinationUser, type CreateUserPayload, type CreateUserResponse, type FindPayoutDestinationUser, type GetCompaniesQuery, type GetCompaniesResponse, type GetMerchantListResponse, type GetMerchantQuery, type GetMerchantResponse, type GetUserListResponse, type GetUserQuery, type GetUserResponse, type JwtTokenData, type MerchantData, type MerchantListData, type MerchantListQuery, type MonadApproveOptions, MorambaClient, type MorambaClientConfig, type PaginationData, type PaymentMethod, type PayoutDestinationUserResponse, type SepoliaApproveOptions, type UpdateCompanyEmailPayload, type UpdateCompanyEmailResponse, type UpdateCompanyPaymentPayload, type UpdateCompanyPaymentResponse, type UpdateMerchantEmailPayload, type UpdateMerchantEmailResponse, type UpdateMerchantPaymentPayload, type UpdateMerchantPaymentResponse, type UpdatePayoutDestinationUser, type UpdateUserEmailPayload, type UpdateUserEmailResponse, type UpdateUserPaymentPayload, type UpdateUserPaymentResponse, type UserData, type UserListData, type UserListQuery, UserType, monadApprove, sepoliaApprove };
432
+ export { type CompanyData, type CompanyListItem, type CreateCompanyPayload, type CreateCompanyResponse, type CreateJwtPayload, type CreateJwtResponse, type CreateMerchantPayload, type CreateMerchantResponse, type CreatePayinUser, type CreatePayoutDestinationUser, type CreateUserPayload, type CreateUserResponse, type FindPayoutDestinationUser, type GetCompaniesQuery, type GetCompaniesResponse, type GetMerchantListResponse, type GetMerchantQuery, type GetMerchantResponse, type GetUserListResponse, type GetUserQuery, type GetUserResponse, type JwtTokenData, type MerchantData, type MerchantListData, type MerchantListQuery, type MonadApproveOptions, MorambaClient, type MorambaClientConfig, type PaginationData, type PayinUserResponse, type PaymentMethod, type PayoutDestinationUserResponse, type SepoliaApproveOptions, type UpdateCompanyEmailPayload, type UpdateCompanyEmailResponse, type UpdateCompanyPaymentPayload, type UpdateCompanyPaymentResponse, type UpdateMerchantEmailPayload, type UpdateMerchantEmailResponse, type UpdateMerchantPaymentPayload, type UpdateMerchantPaymentResponse, type UpdatePayoutDestinationUser, type UpdateUserEmailPayload, type UpdateUserEmailResponse, type UpdateUserPaymentPayload, type UpdateUserPaymentResponse, type UserData, type UserListData, type UserListQuery, UserType, monadApprove, sepoliaApprove };
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";var k=Object.create;var h=Object.defineProperty;var D=Object.getOwnPropertyDescriptor;var I=Object.getOwnPropertyNames;var S=Object.getPrototypeOf,L=Object.prototype.hasOwnProperty;var G=(a,e)=>{for(var t in e)h(a,t,{get:e[t],enumerable:!0})},b=(a,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of I(e))!L.call(a,o)&&o!==t&&h(a,o,{get:()=>e[o],enumerable:!(r=D(e,o))||r.enumerable});return a};var T=(a,e,t)=>(t=a!=null?k(S(a)):{},b(e||!a||!a.__esModule?h(t,"default",{value:a,enumerable:!0}):t,a)),$=a=>b(h({},"__esModule",{value:!0}),a);var N={};G(N,{MorambaClient:()=>A,UserType:()=>M,monadApprove:()=>B,sepoliaApprove:()=>z});module.exports=$(N);var w=T(require("axios")),u=class{constructor(e,t={},r=4,o=300){this.client=w.default.create({baseURL:e,headers:t,timeout:1e4}),this.maxRetries=r,this.retryDelay=o,this.setupRetryInterceptor()}get axiosInstance(){return this.client}setupRetryInterceptor(){this.client.interceptors.response.use(e=>e,async e=>{let t=e.config;if(!t||(t._retryCount||(t._retryCount=0),t._retryCount>=this.maxRetries))throw e;t._retryCount++;let r=this.retryDelay*Math.pow(2,t._retryCount);return await new Promise(o=>setTimeout(o,r)),this.client(t)})}post(e,t,r={}){return this.client.post(e,t,{headers:r}).then(o=>o.data)}patch(e,t,r={}){return this.client.patch(e,t,{headers:r}).then(o=>o.data)}get(e,t={}){return this.client.get(e,{headers:t}).then(r=>r.data)}};var g=class{constructor(e,t,r){this.http=e;this.partnerId=t;this.apiKey=r}createJwtToken(e){let t={...e,partner_id:this.partnerId,api_key:this.apiKey};return this.http.post("/morambacrypto/create/jwt_token",t)}};var y=class{constructor(e){this.http=e}createCompany(e,t){return this.http.post("/morambacrypto/create/company",e,{Authorization:`Bearer ${t}`})}updateCompanyEmail(e,t){return this.http.patch("/morambacrypto/update/company/email",e,{Authorization:`Bearer ${t}`})}getCompaniesByPartner(e,t){let r=new URLSearchParams;return t.limit&&r.append("limit",String(t.limit)),t.direction&&r.append("direction",t.direction),t.cursor&&r.append("cursor",t.cursor),this.http.get(`/morambacrypto/companies/partner/${t.partner_id}?${r.toString()}`,{Authorization:`Bearer ${e}`})}updateCompanyPaymentMethod(e,t){return this.http.patch("/morambacrypto/update/company/payment",e,{Authorization:`Bearer ${t}`})}};var f=class{constructor(e){this.http=e}createMerchant(e,t){return this.http.post("/morambacrypto/create/merchant",e,{Authorization:`Bearer ${t}`})}updateMerchantPaymentMethod(e,t){return this.http.patch("/morambacrypto/update/merchant/payment",e,{Authorization:`Bearer ${t}`})}updateMerchantEmail(e,t){return this.http.patch("/morambacrypto/update/merchant/email",e,{Authorization:`Bearer ${t}`})}getMerchantList(e,t={}){let r=new URLSearchParams;return t.company_id&&r.append("company_id",String(t.company_id)),t.limit&&r.append("limit",String(t.limit)),t.cursor&&r.append("cursor",t.cursor),t.forward&&r.append("cursor",t.forward),t.backward&&r.append("cursor",t.backward),this.http.get(`/morambacrypto/merchants/all?${r.toString()}`,{Authorization:`Bearer ${e}`})}getSingleMerchant(e,t={}){let r=new URLSearchParams;return t.merchant_id&&r.append("merchant_id",String(t.merchant_id)),this.http.get(`/morambacrypto/merchants?${r.toString()}`,{Authorization:`Bearer ${e}`})}};var U=class{constructor(e){this.http=e}createUser(e,t){return this.http.post("/morambacrypto/create/user",e,{Authorization:`Bearer ${t}`})}updateUserPaymentMethod(e,t){return this.http.patch("/morambacrypto/update/user/payment",e,{Authorization:`Bearer ${t}`})}updateUserEmail(e,t){return this.http.patch("/morambacrypto/update/user/email",e,{Authorization:`Bearer ${t}`})}getUserList(e,t={}){let r=new URLSearchParams;return t.company_id&&r.append("company_id",String(t.company_id)),t.limit&&r.append("limit",String(t.limit)),t.cursor&&r.append("cursor",t.cursor),t.forward&&r.append("cursor",t.forward),t.backward&&r.append("cursor",t.backward),this.http.get(`/morambacrypto/users/all?${r.toString()}`,{Authorization:`Bearer ${e}`})}getSingleUser(e,t={}){let r=new URLSearchParams;return t.merchant_id&&r.append("merchant_id",String(t.merchant_id)),this.http.get(`/morambacrypto/users?${r.toString()}`,{Authorization:`Bearer ${e}`})}};var P=class{constructor(e){this.http=e}createPayoutDestinationUser(e,t){return this.http.post(`/morambacrypto/create/payout-destination/for/${e.user_type}`,e,{Authorization:`Bearer ${t}`})}};var A=class{constructor(e){this.http=new u(e.baseURL,{"Content-Type":"application/json"}),this.auth=new g(this.http,e.partnerId,e.apiKey),this.company=new y(this.http),this.merchant=new f(this.http),this.user=new U(this.http),this.payoutDestinationUser=new P(this.http)}};var M=(n=>(n.CUSTOMER="customer",n.VENDOR="vendor",n.AI_AGENT="AI_agent",n.DEVICE="device",n.OTHER="other",n))(M||{});var i=require("ethers");var v={rpc:"https://testnet-rpc.monad.xyz",spender:"0xbAcEa624831C5f294a5E7FeC519232AA37ec0a8C",token:"0x62F6c82114809C00a1293be02A43C05a3F917202",decimals:18,defaultAmount:"1000"},E={rpc:"https://rpc.sepolia.org",spender:"0x6E2024Da220C081059f606D9EEAe670c84Ead9Ab",token:"0xbAcEa624831C5f294a5E7FeC519232AA37ec0a8C",decimals:18,defaultAmount:"1000"};async function B(a){let{privateKey:e,unlimited:t=!0,amount:r,decimalsOverride:o}=a,n=v,C=new i.ethers.JsonRpcProvider(n.rpc),m=new i.ethers.Wallet(e,C),_=["function approve(address spender, uint256 value) external returns (bool)"],x=new i.ethers.Contract(n.token,_,m),c=o!=null?o:n.decimals,d=r!=null?r:n.defaultAmount,R=t?i.ethers.MaxUint256:i.ethers.parseUnits(d,c);console.log("\u26A1 Monad approve()"),console.log("RPC:",n.rpc),console.log("Token:",n.token),console.log("Spender:",n.spender),console.log("Decimals:",c),console.log("Amount:",t?"UNLIMITED":d),console.log("From:",await m.getAddress());let s=await x.approve(n.spender,R);console.log("\u{1F4E4} TX:",s.hash);let l=await s.wait();return console.log("\u2705 Block:",l.blockNumber),{hash:s.hash,receipt:l}}var p=require("ethers");async function z(a){let{privateKey:e,unlimited:t=!0,amount:r,decimalsOverride:o}=a,n=E,C=new p.ethers.JsonRpcProvider(n.rpc),m=new p.ethers.Wallet(e,C),_=["function approve(address spender, uint256 value) external returns (bool)"],x=new p.ethers.Contract(n.token,_,m),c=o!=null?o:n.decimals,d=r!=null?r:n.defaultAmount,R=t?p.ethers.MaxUint256:p.ethers.parseUnits(d,c);console.log("\u26A1 Sepolia approve()"),console.log("RPC:",n.rpc),console.log("Token:",n.token),console.log("Spender:",n.spender),console.log("Decimals:",c),console.log("Amount:",t?"UNLIMITED":d),console.log("From:",await m.getAddress());let s=await x.approve(n.spender,R);console.log("\u{1F4E4} TX:",s.hash);let l=await s.wait();return console.log("\u2705 Block:",l.blockNumber),{hash:s.hash,receipt:l}}0&&(module.exports={MorambaClient,UserType,monadApprove,sepoliaApprove});
1
+ "use strict";var I=Object.create;var h=Object.defineProperty;var D=Object.getOwnPropertyDescriptor;var S=Object.getOwnPropertyNames;var L=Object.getPrototypeOf,G=Object.prototype.hasOwnProperty;var T=(a,e)=>{for(var t in e)h(a,t,{get:e[t],enumerable:!0})},w=(a,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of S(e))!G.call(a,o)&&o!==t&&h(a,o,{get:()=>e[o],enumerable:!(r=D(e,o))||r.enumerable});return a};var $=(a,e,t)=>(t=a!=null?I(L(a)):{},w(e||!a||!a.__esModule?h(t,"default",{value:a,enumerable:!0}):t,a)),B=a=>w(h({},"__esModule",{value:!0}),a);var O={};T(O,{MorambaClient:()=>b,UserType:()=>v,monadApprove:()=>z,sepoliaApprove:()=>N});module.exports=B(O);var M=$(require("axios")),u=class{constructor(e,t={},r=4,o=300){this.client=M.default.create({baseURL:e,headers:t,timeout:1e4}),this.maxRetries=r,this.retryDelay=o,this.setupRetryInterceptor()}get axiosInstance(){return this.client}setupRetryInterceptor(){this.client.interceptors.response.use(e=>e,async e=>{let t=e.config;if(!t||(t._retryCount||(t._retryCount=0),t._retryCount>=this.maxRetries))throw e;t._retryCount++;let r=this.retryDelay*Math.pow(2,t._retryCount);return await new Promise(o=>setTimeout(o,r)),this.client(t)})}post(e,t,r={}){return this.client.post(e,t,{headers:r}).then(o=>o.data)}patch(e,t,r={}){return this.client.patch(e,t,{headers:r}).then(o=>o.data)}get(e,t={}){return this.client.get(e,{headers:t}).then(r=>r.data)}};var g=class{constructor(e,t,r){this.http=e;this.partnerId=t;this.apiKey=r}createJwtToken(e){let t={...e,partner_id:this.partnerId,api_key:this.apiKey};return this.http.post("/morambacrypto/create/jwt_token",t)}};var y=class{constructor(e){this.http=e}createCompany(e,t){return this.http.post("/morambacrypto/create/company",e,{Authorization:`Bearer ${t}`})}updateCompanyEmail(e,t){return this.http.patch("/morambacrypto/update/company/email",e,{Authorization:`Bearer ${t}`})}getCompaniesByPartner(e,t){let r=new URLSearchParams;return t.limit&&r.append("limit",String(t.limit)),t.direction&&r.append("direction",t.direction),t.cursor&&r.append("cursor",t.cursor),this.http.get(`/morambacrypto/companies/partner/${t.partner_id}?${r.toString()}`,{Authorization:`Bearer ${e}`})}updateCompanyPaymentMethod(e,t){return this.http.patch("/morambacrypto/update/company/payment",e,{Authorization:`Bearer ${t}`})}};var f=class{constructor(e){this.http=e}createMerchant(e,t){return this.http.post("/morambacrypto/create/merchant",e,{Authorization:`Bearer ${t}`})}updateMerchantPaymentMethod(e,t){return this.http.patch("/morambacrypto/update/merchant/payment",e,{Authorization:`Bearer ${t}`})}updateMerchantEmail(e,t){return this.http.patch("/morambacrypto/update/merchant/email",e,{Authorization:`Bearer ${t}`})}getMerchantList(e,t={}){let r=new URLSearchParams;return t.company_id&&r.append("company_id",String(t.company_id)),t.limit&&r.append("limit",String(t.limit)),t.cursor&&r.append("cursor",t.cursor),t.forward&&r.append("cursor",t.forward),t.backward&&r.append("cursor",t.backward),this.http.get(`/morambacrypto/merchants/all?${r.toString()}`,{Authorization:`Bearer ${e}`})}getSingleMerchant(e,t={}){let r=new URLSearchParams;return t.merchant_id&&r.append("merchant_id",String(t.merchant_id)),this.http.get(`/morambacrypto/merchants?${r.toString()}`,{Authorization:`Bearer ${e}`})}};var U=class{constructor(e){this.http=e}createUser(e,t){return this.http.post("/morambacrypto/create/user",e,{Authorization:`Bearer ${t}`})}updateUserPaymentMethod(e,t){return this.http.patch("/morambacrypto/update/user/payment",e,{Authorization:`Bearer ${t}`})}updateUserEmail(e,t){return this.http.patch("/morambacrypto/update/user/email",e,{Authorization:`Bearer ${t}`})}getUserList(e,t={}){let r=new URLSearchParams;return t.company_id&&r.append("company_id",String(t.company_id)),t.limit&&r.append("limit",String(t.limit)),t.cursor&&r.append("cursor",t.cursor),t.forward&&r.append("cursor",t.forward),t.backward&&r.append("cursor",t.backward),this.http.get(`/morambacrypto/users/all?${r.toString()}`,{Authorization:`Bearer ${e}`})}getSingleUser(e,t={}){let r=new URLSearchParams;return t.merchant_id&&r.append("merchant_id",String(t.merchant_id)),this.http.get(`/morambacrypto/users?${r.toString()}`,{Authorization:`Bearer ${e}`})}};var P=class{constructor(e){this.http=e}createPayoutDestinationUser(e,t){return this.http.post(`/morambacrypto/create/payout-destination/for/${e.user_type}`,e,{Authorization:`Bearer ${t}`})}};var C=class{constructor(e){this.http=e}createPayinUser(e,t){return this.http.post(`/morambacrypto/create/payin/for/${e.user_type}`,e,{Authorization:`Bearer ${t}`})}};var b=class{constructor(e){this.http=new u(e.baseURL,{"Content-Type":"application/json"}),this.auth=new g(this.http,e.partnerId,e.apiKey),this.company=new y(this.http),this.merchant=new f(this.http),this.user=new U(this.http),this.payoutDestinationUser=new P(this.http),this.payinUser=new C(this.http)}};var v=(n=>(n.CUSTOMER="customer",n.VENDOR="vendor",n.AI_AGENT="AI_agent",n.DEVICE="device",n.OTHER="other",n))(v||{});var i=require("ethers");var E={rpc:"https://testnet-rpc.monad.xyz",spender:"0xbAcEa624831C5f294a5E7FeC519232AA37ec0a8C",token:"0x62F6c82114809C00a1293be02A43C05a3F917202",decimals:18,defaultAmount:"1000"},k={rpc:"https://rpc.sepolia.org",spender:"0x6E2024Da220C081059f606D9EEAe670c84Ead9Ab",token:"0xbAcEa624831C5f294a5E7FeC519232AA37ec0a8C",decimals:18,defaultAmount:"1000"};async function z(a){let{privateKey:e,unlimited:t=!0,amount:r,decimalsOverride:o}=a,n=E,_=new i.ethers.JsonRpcProvider(n.rpc),m=new i.ethers.Wallet(e,_),x=["function approve(address spender, uint256 value) external returns (bool)"],R=new i.ethers.Contract(n.token,x,m),c=o!=null?o:n.decimals,d=r!=null?r:n.defaultAmount,A=t?i.ethers.MaxUint256:i.ethers.parseUnits(d,c);console.log("\u26A1 Monad approve()"),console.log("RPC:",n.rpc),console.log("Token:",n.token),console.log("Spender:",n.spender),console.log("Decimals:",c),console.log("Amount:",t?"UNLIMITED":d),console.log("From:",await m.getAddress());let s=await R.approve(n.spender,A);console.log("\u{1F4E4} TX:",s.hash);let l=await s.wait();return console.log("\u2705 Block:",l.blockNumber),{hash:s.hash,receipt:l}}var p=require("ethers");async function N(a){let{privateKey:e,unlimited:t=!0,amount:r,decimalsOverride:o}=a,n=k,_=new p.ethers.JsonRpcProvider(n.rpc),m=new p.ethers.Wallet(e,_),x=["function approve(address spender, uint256 value) external returns (bool)"],R=new p.ethers.Contract(n.token,x,m),c=o!=null?o:n.decimals,d=r!=null?r:n.defaultAmount,A=t?p.ethers.MaxUint256:p.ethers.parseUnits(d,c);console.log("\u26A1 Sepolia approve()"),console.log("RPC:",n.rpc),console.log("Token:",n.token),console.log("Spender:",n.spender),console.log("Decimals:",c),console.log("Amount:",t?"UNLIMITED":d),console.log("From:",await m.getAddress());let s=await R.approve(n.spender,A);console.log("\u{1F4E4} TX:",s.hash);let l=await s.wait();return console.log("\u2705 Block:",l.blockNumber),{hash:s.hash,receipt:l}}0&&(module.exports={MorambaClient,UserType,monadApprove,sepoliaApprove});
2
2
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/client/HttpClient.ts","../src/apis/auth.api.ts","../src/apis/company.api.ts","../src/apis/merchant.api.ts","../src/apis/user.api.ts","../src/apis/payout_destination_user.api.ts","../src/MorambaClient.ts","../src/types/user.types.ts","../src/authorize/monad.approve.ts","../src/utils/networks.ts","../src/authorize/sepolia.approve.ts"],"sourcesContent":["export * from \"./MorambaClient\";\nexport * from \"./types\";\nexport * from \"./authorize\";\n","import axios, { AxiosInstance, AxiosError } from \"axios\";\n\nexport class HttpClient {\n private client: AxiosInstance;\n private maxRetries: number;\n private retryDelay: number; // base delay in milliseconds\n\n constructor(\n baseURL: string,\n headers: Record<string, string> = {},\n maxRetries = 4, // default: 4 retries\n retryDelay = 300 // base delay: 300ms\n ) {\n this.client = axios.create({\n baseURL,\n headers,\n timeout: 10000,\n });\n\n this.maxRetries = maxRetries;\n this.retryDelay = retryDelay;\n\n this.setupRetryInterceptor();\n }\n\n get axiosInstance(): AxiosInstance {\n return this.client;\n }\n\n private setupRetryInterceptor() {\n this.client.interceptors.response.use(\n response => response,\n async (error: AxiosError) => {\n const config: any = error.config;\n\n if (!config) throw error;\n\n // initialize retry counter\n if (!config._retryCount) config._retryCount = 0;\n\n // stop retry if max reached\n if (config._retryCount >= this.maxRetries) {\n throw error;\n }\n\n config._retryCount++;\n\n // exponential delay: delay * 2^(retryCount)\n const delay =\n this.retryDelay * Math.pow(2, config._retryCount);\n\n await new Promise(resolve => setTimeout(resolve, delay));\n\n return this.client(config);\n }\n );\n }\n post<T = any>(url: string, data: any, extraHeaders: Record<string, string> = {}): Promise<T> {\n return this.client\n .post<T>(url, data, { headers: extraHeaders })\n .then((res) => res.data);\n }\n patch<T = any>(\n url: string,\n data: any,\n extraHeaders: Record<string, string> = {}\n ): Promise<T> {\n return this.client\n .patch<T>(url, data, { headers: extraHeaders })\n .then((res) => res.data);\n }\n get<T = any>(url: string, extraHeaders: Record<string, string> = {}): Promise<T> {\n return this.client\n .get<T>(url, { headers: extraHeaders })\n .then((res) => res.data);\n }\n}\n","import { HttpClient } from \"../client/HttpClient\";\nimport {\n CreateJwtPayload,\n CreateJwtResponse,\n} from \"../types/auth.types\";\n\nexport class AuthAPI {\n constructor(\n private http: HttpClient,\n private partnerId: string,\n private apiKey: string\n\n ) { }\n\n createJwtToken(payload: CreateJwtPayload): Promise<CreateJwtResponse> {\n let fullPayload = {\n ...payload,\n partner_id: this.partnerId,\n api_key: this.apiKey,\n };\n\n return this.http.post(\"/morambacrypto/create/jwt_token\", fullPayload);\n }\n}\n","import { HttpClient } from \"../client/HttpClient\";\nimport {\n CreateCompanyPayload,\n CreateCompanyResponse,\n UpdateCompanyEmailPayload,\n UpdateCompanyEmailResponse,\n GetCompaniesQuery,\n GetCompaniesResponse,\n UpdateCompanyPaymentPayload,\n UpdateCompanyPaymentResponse,\n} from \"../types/company.types\";\n\nexport class CompanyAPI {\n constructor(\n private http: HttpClient\n ) { }\n\n createCompany(payload: CreateCompanyPayload, jwtToken: string): Promise<CreateCompanyResponse> {\n\n return this.http.post(\n \"/morambacrypto/create/company\",\n payload,\n {\n Authorization: `Bearer ${jwtToken}`,\n }\n );\n }\n\n updateCompanyEmail(\n payload: UpdateCompanyEmailPayload,\n jwtToken: string\n ): Promise<UpdateCompanyEmailResponse> {\n return this.http.patch(\n \"/morambacrypto/update/company/email\",\n payload,\n {\n Authorization: `Bearer ${jwtToken}`,\n }\n );\n }\n getCompaniesByPartner(\n jwtToken: string,\n query: GetCompaniesQuery\n ): Promise<GetCompaniesResponse> {\n const params = new URLSearchParams();\n\n if (query.limit) params.append(\"limit\", String(query.limit));\n if (query.direction) params.append(\"direction\", query.direction);\n if (query.cursor) params.append(\"cursor\", query.cursor);\n\n return this.http.get(\n `/morambacrypto/companies/partner/${query.partner_id}?${params.toString()}`,\n {\n Authorization: `Bearer ${jwtToken}`,\n }\n );\n }\n\n updateCompanyPaymentMethod(\n payload: UpdateCompanyPaymentPayload,\n jwtToken: string\n ): Promise<UpdateCompanyPaymentResponse> {\n return this.http.patch(\n \"/morambacrypto/update/company/payment\",\n payload,\n {\n Authorization: `Bearer ${jwtToken}`,\n }\n );\n }\n\n\n}\n","import { HttpClient } from \"../client\";\nimport { CreateMerchantPayload, CreateMerchantResponse, GetMerchantListResponse, GetMerchantQuery, GetMerchantResponse, MerchantListQuery, UpdateMerchantEmailPayload, UpdateMerchantEmailResponse, UpdateMerchantPaymentPayload, UpdateMerchantPaymentResponse } from \"../types/merchant.types\";\n\nexport class MerchantAPI {\n constructor(\n private http: HttpClient\n ) { }\n createMerchant(payload: CreateMerchantPayload, jwtToken: string): Promise<CreateMerchantResponse> {\n\n\n return this.http.post(\n \"/morambacrypto/create/merchant\",\n payload,\n {\n Authorization: `Bearer ${jwtToken}`,\n }\n );\n }\n\n updateMerchantPaymentMethod(\n payload: UpdateMerchantPaymentPayload,\n jwtToken: string\n ): Promise<UpdateMerchantPaymentResponse> {\n\n\n return this.http.patch(\n \"/morambacrypto/update/merchant/payment\",\n payload,\n {\n Authorization: `Bearer ${jwtToken}`,\n }\n );\n }\n\n updateMerchantEmail(\n payload: UpdateMerchantEmailPayload,\n jwtToken: string\n ): Promise<UpdateMerchantEmailResponse> {\n\n\n return this.http.patch(\n \"/morambacrypto/update/merchant/email\",\n payload,\n {\n Authorization: `Bearer ${jwtToken}`,\n }\n );\n }\n\n\n getMerchantList(\n jwtToken: string,\n query: MerchantListQuery = {}\n ): Promise<GetMerchantListResponse> {\n const params = new URLSearchParams();\n if (query.company_id) params.append(\"company_id\", String(query.company_id));\n if (query.limit) params.append(\"limit\", String(query.limit));\n if (query.cursor) params.append(\"cursor\", query.cursor);\n if (query.forward) params.append(\"cursor\", query.forward);\n if (query.backward) params.append(\"cursor\", query.backward);\n\n\n return this.http.get(\n `/morambacrypto/merchants/all?${params.toString()}`,\n {\n Authorization: `Bearer ${jwtToken}`,\n }\n );\n }\n getSingleMerchant(\n jwtToken: string,\n query: GetMerchantQuery = {}\n ): Promise<GetMerchantResponse> {\n const params = new URLSearchParams();\n if (query.merchant_id) params.append(\"merchant_id\", String(query.merchant_id));\n\n\n return this.http.get(\n `/morambacrypto/merchants?${params.toString()}`,\n {\n Authorization: `Bearer ${jwtToken}`,\n }\n );\n }\n}","import { HttpClient } from \"../client\";\nimport { CreateUserPayload, CreateUserResponse, GetUserListResponse, GetUserQuery, GetUserResponse, UpdateUserEmailPayload, UpdateUserEmailResponse, UpdateUserPaymentPayload, UpdateUserPaymentResponse, UserListQuery } from \"../types/user.types\";\n\nexport class UserAPI {\n constructor(\n private http: HttpClient\n ) { }\n createUser(payload: CreateUserPayload, jwtToken: string): Promise<CreateUserResponse> {\n\n\n return this.http.post(\n \"/morambacrypto/create/user\",\n payload,\n {\n Authorization: `Bearer ${jwtToken}`,\n }\n );\n }\n\n updateUserPaymentMethod(\n payload: UpdateUserPaymentPayload,\n jwtToken: string\n ): Promise<UpdateUserPaymentResponse> {\n\n\n return this.http.patch(\n \"/morambacrypto/update/user/payment\",\n payload,\n {\n Authorization: `Bearer ${jwtToken}`,\n }\n );\n }\n\n updateUserEmail(\n payload: UpdateUserEmailPayload,\n jwtToken: string\n ): Promise<UpdateUserEmailResponse> {\n\n\n return this.http.patch(\n \"/morambacrypto/update/user/email\",\n payload,\n {\n Authorization: `Bearer ${jwtToken}`,\n }\n );\n }\n\n\n getUserList(\n jwtToken: string,\n query: UserListQuery = {}\n ): Promise<GetUserListResponse> {\n const params = new URLSearchParams();\n if (query.company_id) params.append(\"company_id\", String(query.company_id));\n if (query.limit) params.append(\"limit\", String(query.limit));\n if (query.cursor) params.append(\"cursor\", query.cursor);\n if (query.forward) params.append(\"cursor\", query.forward);\n if (query.backward) params.append(\"cursor\", query.backward);\n\n\n return this.http.get(\n `/morambacrypto/users/all?${params.toString()}`,\n {\n Authorization: `Bearer ${jwtToken}`,\n }\n );\n }\n getSingleUser(\n jwtToken: string,\n query: GetUserQuery = {}\n ): Promise<GetUserResponse> {\n const params = new URLSearchParams();\n if (query.merchant_id) params.append(\"merchant_id\", String(query.merchant_id));\n\n\n return this.http.get(\n `/morambacrypto/users?${params.toString()}`,\n {\n Authorization: `Bearer ${jwtToken}`,\n }\n );\n }\n}","import { HttpClient } from \"../client\";\nimport { CreatePayoutDestinationUser, PayoutDestinationUserResponse } from \"../types/payout_destination_user.types\";\nimport { UserType } from \"../types/user.types\";\nexport class PayoutDestinationUserAPI {\n constructor(\n private http: HttpClient\n ) { }\n createPayoutDestinationUser(payload: CreatePayoutDestinationUser, jwtToken: string): Promise<PayoutDestinationUserResponse> {\n\n\n return this.http.post(\n `/morambacrypto/create/payout-destination/for/${payload.user_type as UserType}`,\n payload,\n {\n Authorization: `Bearer ${jwtToken}`,\n }\n );\n }\n\n}\n\n// updatePayoutDestinationUserPaymentMethod(\n// payload: UpdateUserPaymentPayload,\n// jwtToken: string\n// ): Promise<UpdateUserPaymentResponse> {\n\n\n// return this.http.patch(\n// \"/morambacrypto/update/user/payment\",\n// payload,\n// {\n// Authorization: `Bearer ${jwtToken}`,\n// }\n// );\n// }\n\n// updatePayoutDestinationUserEmail(\n// payload: UpdateUserEmailPayload,\n// jwtToken: string\n// ): Promise<UpdateUserEmailResponse> {\n\n\n// return this.http.patch(\n// \"/morambacrypto/update/user/email\",\n// payload,\n// {\n// Authorization: `Bearer ${jwtToken}`,\n// }\n// );\n// }\n\n\n// getPayoutDestinationUserList(\n// jwtToken: string,\n// query: UserListQuery = {}\n// ): Promise<GetUserListResponse> {\n// const params = new URLSearchParams();\n// if (query.company_id) params.append(\"company_id\", String(query.company_id));\n// if (query.limit) params.append(\"limit\", String(query.limit));\n// if (query.cursor) params.append(\"cursor\", query.cursor);\n// if (query.forward) params.append(\"cursor\", query.forward);\n// if (query.backward) params.append(\"cursor\", query.backward);\n\n\n// return this.http.get(\n// `/morambacrypto/users/all?${params.toString()}`,\n// {\n// Authorization: `Bearer ${jwtToken}`,\n// }\n// );\n// }\n// getSinglePayoutDestinationUser(\n// jwtToken: string,\n// query: GetUserQuery = {}\n// ): Promise<GetUserResponse> {\n// const params = new URLSearchParams();\n// if (query.merchant_id) params.append(\"merchant_id\", String(query.merchant_id));\n\n\n// return this.http.get(\n// `/morambacrypto/users?${params.toString()}`,\n// {\n// Authorization: `Bearer ${jwtToken}`,\n// }\n// );\n// }\n// }","import { HttpClient } from \"./client/HttpClient\";\nimport { AuthAPI } from \"./apis/auth.api\";\nimport { CompanyAPI } from \"./apis/company.api\";\nimport { MerchantAPI } from \"./apis/merchant.api\";\nimport { UserAPI } from \"./apis/user.api\";\nimport { PayoutDestinationUserAPI } from \"./apis\";\n\nexport interface MorambaClientConfig {\n baseURL: string;\n apiKey: string;\n partnerId: string;\n}\n\nexport class MorambaClient {\n public auth: AuthAPI;\n private http: HttpClient;\n public company: CompanyAPI;\n public merchant: MerchantAPI;\n public user: UserAPI;\n public payoutDestinationUser: PayoutDestinationUserAPI;\n\n constructor(config: MorambaClientConfig) {\n this.http = new HttpClient(config.baseURL, {\n \"Content-Type\": \"application/json\",\n });\n\n this.auth = new AuthAPI(this.http, config.partnerId, config.apiKey);\n this.company = new CompanyAPI(this.http);\n this.merchant = new MerchantAPI(this.http);\n this.user = new UserAPI(this.http);\n this.payoutDestinationUser = new PayoutDestinationUserAPI(this.http);\n }\n}\n","import { PaymentMethod } from \"./payment_method.types\";\n\nexport enum UserType {\n CUSTOMER = \"customer\",\n VENDOR = \"vendor\",\n AI_AGENT = \"AI_agent\",\n DEVICE = \"device\",\n OTHER = \"other\",\n}\nexport interface CreateUserPayload {\n payment_method: PaymentMethod;\n user_name: string;\n user_email: string;\n user_type: UserType;\n company_id: string;\n merchant_id: string;\n}\n\nexport interface UserData {\n id: string;\n merchant_id: string;\n user_name: string;\n user_email: string;\n company_id: string;\n partner_id: string;\n user_type: string;\n payment_network: string;\n payment_token_name: string;\n payment_token_address: string;\n created_at: string;\n updated_at: string;\n}\n\nexport interface CreateUserResponse {\n success: boolean;\n message: string;\n data: UserData | null;\n}\n\nexport interface UpdateUserPaymentPayload {\n company_id: string;\n merchant_id: string;\n user_id: string;\n payment_method: PaymentMethod;\n}\nexport interface UpdateUserPaymentResponse {\n success: boolean;\n message: string;\n data: UserData | null;\n}\n\n\nexport interface UpdateUserEmailPayload {\n company_id: string;\n merchant_id: string;\n user_id: string;\n email: string;\n}\n\nexport interface UpdateUserEmailResponse {\n success: boolean;\n message: string;\n data: UserData | null;\n}\n\n\nexport interface UserListQuery {\n company_id?: string;\n limit?: number;\n cursor?: string;\n forward?: string;\n backward?: string;\n}\n\nexport interface UserListData {\n id: string;\n company_id: string;\n merchant_id: string;\n user_name: string;\n user_email: string;\n partner_id: string;\n payment_network: string;\n payment_token_name: string;\n payment_token_address: string;\n created_at: string;\n updated_at: string;\n\n}\nexport interface GetUserListResponse {\n forward_cursor: string;\n backward_cursor: string;\n has_forward: boolean;\n has_backward: boolean;\n data: UserListData | null;\n}\n\nexport interface GetUserQuery {\n merchant_id?: string;\n}\n\nexport interface GetUserResponse {\n success: boolean;\n message: string;\n data: UserData | null;\n}","\nimport { ethers } from \"ethers\";\nimport { MONAD_CONFIG } from \"../utils/networks\";\n\nexport interface MonadApproveOptions {\n privateKey: string;\n unlimited?: boolean; // default: true\n amount?: string; // user-specified amount when limited\n decimalsOverride?: number; // optional override\n}\n\nexport async function monadApprove(options: MonadApproveOptions) {\n const {\n privateKey,\n unlimited = true,\n amount,\n decimalsOverride,\n } = options;\n\n const cfg = MONAD_CONFIG;\n\n const provider = new ethers.JsonRpcProvider(cfg.rpc);\n const wallet = new ethers.Wallet(privateKey, provider);\n\n const abi = [\n \"function approve(address spender, uint256 value) external returns (bool)\"\n ];\n\n const contract = new ethers.Contract(cfg.token, abi, wallet);\n\n const decimals = decimalsOverride ?? cfg.decimals;\n const humanAmount = amount ?? cfg.defaultAmount;\n\n const value = unlimited\n ? ethers.MaxUint256\n : ethers.parseUnits(humanAmount, decimals);\n\n console.log(\"⚡ Monad approve()\");\n console.log(\"RPC:\", cfg.rpc);\n console.log(\"Token:\", cfg.token);\n console.log(\"Spender:\", cfg.spender);\n console.log(\"Decimals:\", decimals);\n console.log(\"Amount:\", unlimited ? \"UNLIMITED\" : humanAmount);\n console.log(\"From:\", await wallet.getAddress());\n\n const tx = await contract.approve(cfg.spender, value);\n console.log(\"📤 TX:\", tx.hash);\n\n const receipt = await tx.wait();\n console.log(\"✅ Block:\", receipt.blockNumber);\n\n return { hash: tx.hash, receipt };\n}\n","\nexport interface TokenNetworkConfig {\n rpc: string;\n spender: string;\n token: string;\n decimals: number;\n defaultAmount: string;\n}\n\n// ▶️ MORAMBA Token (Monad)\nexport const MONAD_CONFIG: TokenNetworkConfig = {\n rpc: \"https://testnet-rpc.monad.xyz\",\n spender: \"0xbAcEa624831C5f294a5E7FeC519232AA37ec0a8C\",\n token: \"0x62F6c82114809C00a1293be02A43C05a3F917202\",\n decimals: 18,\n defaultAmount: \"1000\",\n};\n\n// ▶️ Sepolia \nexport const SEPOLIA_CONFIG: TokenNetworkConfig = {\n rpc: \"https://rpc.sepolia.org\",\n spender: \"0x6E2024Da220C081059f606D9EEAe670c84Ead9Ab\",\n token: \"0xbAcEa624831C5f294a5E7FeC519232AA37ec0a8C\",\n decimals: 18,\n defaultAmount: \"1000\",\n};\n","import { ethers } from \"ethers\";\nimport { SEPOLIA_CONFIG } from \"../utils/networks\";\n\nexport interface SepoliaApproveOptions {\n privateKey: string;\n unlimited?: boolean;\n amount?: string;\n decimalsOverride?: number;\n}\n\nexport async function sepoliaApprove(options: SepoliaApproveOptions) {\n const {\n privateKey,\n unlimited = true,\n amount,\n decimalsOverride,\n } = options;\n\n const cfg = SEPOLIA_CONFIG;\n\n const provider = new ethers.JsonRpcProvider(cfg.rpc);\n const wallet = new ethers.Wallet(privateKey, provider);\n\n const abi = [\n \"function approve(address spender, uint256 value) external returns (bool)\"\n ];\n\n const contract = new ethers.Contract(cfg.token, abi, wallet);\n\n const decimals = decimalsOverride ?? cfg.decimals;\n const humanAmount = amount ?? cfg.defaultAmount;\n\n const value = unlimited\n ? ethers.MaxUint256\n : ethers.parseUnits(humanAmount, decimals);\n\n console.log(\"⚡ Sepolia approve()\");\n console.log(\"RPC:\", cfg.rpc);\n console.log(\"Token:\", cfg.token);\n console.log(\"Spender:\", cfg.spender);\n console.log(\"Decimals:\", decimals);\n console.log(\"Amount:\", unlimited ? \"UNLIMITED\" : humanAmount);\n console.log(\"From:\", await wallet.getAddress());\n\n const tx = await contract.approve(cfg.spender, value);\n console.log(\"📤 TX:\", tx.hash);\n\n const receipt = await tx.wait();\n console.log(\"✅ Block:\", receipt.blockNumber);\n\n return { hash: tx.hash, receipt };\n}\n"],"mappings":"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","names":["index_exports","__export","MorambaClient","UserType","monadApprove","sepoliaApprove","__toCommonJS","import_axios","HttpClient","baseURL","headers","maxRetries","retryDelay","axios","response","error","config","delay","resolve","url","data","extraHeaders","res","AuthAPI","http","partnerId","apiKey","payload","fullPayload","CompanyAPI","http","payload","jwtToken","query","params","MerchantAPI","http","payload","jwtToken","query","params","UserAPI","http","payload","jwtToken","query","params","PayoutDestinationUserAPI","http","payload","jwtToken","MorambaClient","config","HttpClient","AuthAPI","CompanyAPI","MerchantAPI","UserAPI","PayoutDestinationUserAPI","UserType","import_ethers","MONAD_CONFIG","SEPOLIA_CONFIG","monadApprove","options","privateKey","unlimited","amount","decimalsOverride","cfg","MONAD_CONFIG","provider","wallet","abi","contract","decimals","humanAmount","value","tx","receipt","import_ethers","sepoliaApprove","options","privateKey","unlimited","amount","decimalsOverride","cfg","SEPOLIA_CONFIG","provider","wallet","abi","contract","decimals","humanAmount","value","tx","receipt"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/client/HttpClient.ts","../src/apis/auth.api.ts","../src/apis/company.api.ts","../src/apis/merchant.api.ts","../src/apis/user.api.ts","../src/apis/payout_destination_user.api.ts","../src/apis/payin_user.api.ts","../src/MorambaClient.ts","../src/types/user.types.ts","../src/authorize/monad.approve.ts","../src/utils/networks.ts","../src/authorize/sepolia.approve.ts"],"sourcesContent":["export * from \"./MorambaClient\";\nexport * from \"./types\";\nexport * from \"./authorize\";\n","import axios, { AxiosInstance, AxiosError } from \"axios\";\n\nexport class HttpClient {\n private client: AxiosInstance;\n private maxRetries: number;\n private retryDelay: number; // base delay in milliseconds\n\n constructor(\n baseURL: string,\n headers: Record<string, string> = {},\n maxRetries = 4, // default: 4 retries\n retryDelay = 300 // base delay: 300ms\n ) {\n this.client = axios.create({\n baseURL,\n headers,\n timeout: 10000,\n });\n\n this.maxRetries = maxRetries;\n this.retryDelay = retryDelay;\n\n this.setupRetryInterceptor();\n }\n\n get axiosInstance(): AxiosInstance {\n return this.client;\n }\n\n private setupRetryInterceptor() {\n this.client.interceptors.response.use(\n response => response,\n async (error: AxiosError) => {\n const config: any = error.config;\n\n if (!config) throw error;\n\n // initialize retry counter\n if (!config._retryCount) config._retryCount = 0;\n\n // stop retry if max reached\n if (config._retryCount >= this.maxRetries) {\n throw error;\n }\n\n config._retryCount++;\n\n // exponential delay: delay * 2^(retryCount)\n const delay =\n this.retryDelay * Math.pow(2, config._retryCount);\n\n await new Promise(resolve => setTimeout(resolve, delay));\n\n return this.client(config);\n }\n );\n }\n post<T = any>(url: string, data: any, extraHeaders: Record<string, string> = {}): Promise<T> {\n return this.client\n .post<T>(url, data, { headers: extraHeaders })\n .then((res) => res.data);\n }\n patch<T = any>(\n url: string,\n data: any,\n extraHeaders: Record<string, string> = {}\n ): Promise<T> {\n return this.client\n .patch<T>(url, data, { headers: extraHeaders })\n .then((res) => res.data);\n }\n get<T = any>(url: string, extraHeaders: Record<string, string> = {}): Promise<T> {\n return this.client\n .get<T>(url, { headers: extraHeaders })\n .then((res) => res.data);\n }\n}\n","import { HttpClient } from \"../client/HttpClient\";\nimport {\n CreateJwtPayload,\n CreateJwtResponse,\n} from \"../types/auth.types\";\n\nexport class AuthAPI {\n constructor(\n private http: HttpClient,\n private partnerId: string,\n private apiKey: string\n\n ) { }\n\n createJwtToken(payload: CreateJwtPayload): Promise<CreateJwtResponse> {\n let fullPayload = {\n ...payload,\n partner_id: this.partnerId,\n api_key: this.apiKey,\n };\n\n return this.http.post(\"/morambacrypto/create/jwt_token\", fullPayload);\n }\n}\n","import { HttpClient } from \"../client/HttpClient\";\nimport {\n CreateCompanyPayload,\n CreateCompanyResponse,\n UpdateCompanyEmailPayload,\n UpdateCompanyEmailResponse,\n GetCompaniesQuery,\n GetCompaniesResponse,\n UpdateCompanyPaymentPayload,\n UpdateCompanyPaymentResponse,\n} from \"../types/company.types\";\n\nexport class CompanyAPI {\n constructor(\n private http: HttpClient\n ) { }\n\n createCompany(payload: CreateCompanyPayload, jwtToken: string): Promise<CreateCompanyResponse> {\n\n return this.http.post(\n \"/morambacrypto/create/company\",\n payload,\n {\n Authorization: `Bearer ${jwtToken}`,\n }\n );\n }\n\n updateCompanyEmail(\n payload: UpdateCompanyEmailPayload,\n jwtToken: string\n ): Promise<UpdateCompanyEmailResponse> {\n return this.http.patch(\n \"/morambacrypto/update/company/email\",\n payload,\n {\n Authorization: `Bearer ${jwtToken}`,\n }\n );\n }\n getCompaniesByPartner(\n jwtToken: string,\n query: GetCompaniesQuery\n ): Promise<GetCompaniesResponse> {\n const params = new URLSearchParams();\n\n if (query.limit) params.append(\"limit\", String(query.limit));\n if (query.direction) params.append(\"direction\", query.direction);\n if (query.cursor) params.append(\"cursor\", query.cursor);\n\n return this.http.get(\n `/morambacrypto/companies/partner/${query.partner_id}?${params.toString()}`,\n {\n Authorization: `Bearer ${jwtToken}`,\n }\n );\n }\n\n updateCompanyPaymentMethod(\n payload: UpdateCompanyPaymentPayload,\n jwtToken: string\n ): Promise<UpdateCompanyPaymentResponse> {\n return this.http.patch(\n \"/morambacrypto/update/company/payment\",\n payload,\n {\n Authorization: `Bearer ${jwtToken}`,\n }\n );\n }\n\n\n}\n","import { HttpClient } from \"../client\";\nimport { CreateMerchantPayload, CreateMerchantResponse, GetMerchantListResponse, GetMerchantQuery, GetMerchantResponse, MerchantListQuery, UpdateMerchantEmailPayload, UpdateMerchantEmailResponse, UpdateMerchantPaymentPayload, UpdateMerchantPaymentResponse } from \"../types/merchant.types\";\n\nexport class MerchantAPI {\n constructor(\n private http: HttpClient\n ) { }\n createMerchant(payload: CreateMerchantPayload, jwtToken: string): Promise<CreateMerchantResponse> {\n\n\n return this.http.post(\n \"/morambacrypto/create/merchant\",\n payload,\n {\n Authorization: `Bearer ${jwtToken}`,\n }\n );\n }\n\n updateMerchantPaymentMethod(\n payload: UpdateMerchantPaymentPayload,\n jwtToken: string\n ): Promise<UpdateMerchantPaymentResponse> {\n\n\n return this.http.patch(\n \"/morambacrypto/update/merchant/payment\",\n payload,\n {\n Authorization: `Bearer ${jwtToken}`,\n }\n );\n }\n\n updateMerchantEmail(\n payload: UpdateMerchantEmailPayload,\n jwtToken: string\n ): Promise<UpdateMerchantEmailResponse> {\n\n\n return this.http.patch(\n \"/morambacrypto/update/merchant/email\",\n payload,\n {\n Authorization: `Bearer ${jwtToken}`,\n }\n );\n }\n\n\n getMerchantList(\n jwtToken: string,\n query: MerchantListQuery = {}\n ): Promise<GetMerchantListResponse> {\n const params = new URLSearchParams();\n if (query.company_id) params.append(\"company_id\", String(query.company_id));\n if (query.limit) params.append(\"limit\", String(query.limit));\n if (query.cursor) params.append(\"cursor\", query.cursor);\n if (query.forward) params.append(\"cursor\", query.forward);\n if (query.backward) params.append(\"cursor\", query.backward);\n\n\n return this.http.get(\n `/morambacrypto/merchants/all?${params.toString()}`,\n {\n Authorization: `Bearer ${jwtToken}`,\n }\n );\n }\n getSingleMerchant(\n jwtToken: string,\n query: GetMerchantQuery = {}\n ): Promise<GetMerchantResponse> {\n const params = new URLSearchParams();\n if (query.merchant_id) params.append(\"merchant_id\", String(query.merchant_id));\n\n\n return this.http.get(\n `/morambacrypto/merchants?${params.toString()}`,\n {\n Authorization: `Bearer ${jwtToken}`,\n }\n );\n }\n}","import { HttpClient } from \"../client\";\nimport { CreateUserPayload, CreateUserResponse, GetUserListResponse, GetUserQuery, GetUserResponse, UpdateUserEmailPayload, UpdateUserEmailResponse, UpdateUserPaymentPayload, UpdateUserPaymentResponse, UserListQuery } from \"../types/user.types\";\n\nexport class UserAPI {\n constructor(\n private http: HttpClient\n ) { }\n createUser(payload: CreateUserPayload, jwtToken: string): Promise<CreateUserResponse> {\n\n\n return this.http.post(\n \"/morambacrypto/create/user\",\n payload,\n {\n Authorization: `Bearer ${jwtToken}`,\n }\n );\n }\n\n updateUserPaymentMethod(\n payload: UpdateUserPaymentPayload,\n jwtToken: string\n ): Promise<UpdateUserPaymentResponse> {\n\n\n return this.http.patch(\n \"/morambacrypto/update/user/payment\",\n payload,\n {\n Authorization: `Bearer ${jwtToken}`,\n }\n );\n }\n\n updateUserEmail(\n payload: UpdateUserEmailPayload,\n jwtToken: string\n ): Promise<UpdateUserEmailResponse> {\n\n\n return this.http.patch(\n \"/morambacrypto/update/user/email\",\n payload,\n {\n Authorization: `Bearer ${jwtToken}`,\n }\n );\n }\n\n\n getUserList(\n jwtToken: string,\n query: UserListQuery = {}\n ): Promise<GetUserListResponse> {\n const params = new URLSearchParams();\n if (query.company_id) params.append(\"company_id\", String(query.company_id));\n if (query.limit) params.append(\"limit\", String(query.limit));\n if (query.cursor) params.append(\"cursor\", query.cursor);\n if (query.forward) params.append(\"cursor\", query.forward);\n if (query.backward) params.append(\"cursor\", query.backward);\n\n\n return this.http.get(\n `/morambacrypto/users/all?${params.toString()}`,\n {\n Authorization: `Bearer ${jwtToken}`,\n }\n );\n }\n getSingleUser(\n jwtToken: string,\n query: GetUserQuery = {}\n ): Promise<GetUserResponse> {\n const params = new URLSearchParams();\n if (query.merchant_id) params.append(\"merchant_id\", String(query.merchant_id));\n\n\n return this.http.get(\n `/morambacrypto/users?${params.toString()}`,\n {\n Authorization: `Bearer ${jwtToken}`,\n }\n );\n }\n}","import { HttpClient } from \"../client\";\nimport { CreatePayoutDestinationUser, PayoutDestinationUserResponse } from \"../types/payout_destination_user.types\";\nimport { UserType } from \"../types/user.types\";\nexport class PayoutDestinationUserAPI {\n constructor(\n private http: HttpClient\n ) { }\n createPayoutDestinationUser(payload: CreatePayoutDestinationUser, jwtToken: string): Promise<PayoutDestinationUserResponse> {\n\n\n return this.http.post(\n `/morambacrypto/create/payout-destination/for/${payload.user_type as UserType}`,\n payload,\n {\n Authorization: `Bearer ${jwtToken}`,\n }\n );\n }\n\n}\n\n// updatePayoutDestinationUserPaymentMethod(\n// payload: UpdateUserPaymentPayload,\n// jwtToken: string\n// ): Promise<UpdateUserPaymentResponse> {\n\n\n// return this.http.patch(\n// \"/morambacrypto/update/user/payment\",\n// payload,\n// {\n// Authorization: `Bearer ${jwtToken}`,\n// }\n// );\n// }\n\n// updatePayoutDestinationUserEmail(\n// payload: UpdateUserEmailPayload,\n// jwtToken: string\n// ): Promise<UpdateUserEmailResponse> {\n\n\n// return this.http.patch(\n// \"/morambacrypto/update/user/email\",\n// payload,\n// {\n// Authorization: `Bearer ${jwtToken}`,\n// }\n// );\n// }\n\n\n// getPayoutDestinationUserList(\n// jwtToken: string,\n// query: UserListQuery = {}\n// ): Promise<GetUserListResponse> {\n// const params = new URLSearchParams();\n// if (query.company_id) params.append(\"company_id\", String(query.company_id));\n// if (query.limit) params.append(\"limit\", String(query.limit));\n// if (query.cursor) params.append(\"cursor\", query.cursor);\n// if (query.forward) params.append(\"cursor\", query.forward);\n// if (query.backward) params.append(\"cursor\", query.backward);\n\n\n// return this.http.get(\n// `/morambacrypto/users/all?${params.toString()}`,\n// {\n// Authorization: `Bearer ${jwtToken}`,\n// }\n// );\n// }\n// getSinglePayoutDestinationUser(\n// jwtToken: string,\n// query: GetUserQuery = {}\n// ): Promise<GetUserResponse> {\n// const params = new URLSearchParams();\n// if (query.merchant_id) params.append(\"merchant_id\", String(query.merchant_id));\n\n\n// return this.http.get(\n// `/morambacrypto/users?${params.toString()}`,\n// {\n// Authorization: `Bearer ${jwtToken}`,\n// }\n// );\n// }\n// }","import { HttpClient } from \"../client\";\nimport { CreatePayinUser, PayinUserResponse } from \"../types/payin_user.types\";\nimport { UserType } from \"../types/user.types\";\nexport class PayinUserAPI {\n constructor(\n private http: HttpClient\n ) { }\n createPayinUser(payload: CreatePayinUser, jwtToken: string): Promise<PayinUserResponse> {\n\n\n return this.http.post(\n `/morambacrypto/create/payin/for/${payload.user_type as UserType}`,\n payload,\n {\n Authorization: `Bearer ${jwtToken}`,\n }\n );\n }\n\n}\n","import { HttpClient } from \"./client/HttpClient\";\nimport { AuthAPI } from \"./apis/auth.api\";\nimport { CompanyAPI } from \"./apis/company.api\";\nimport { MerchantAPI } from \"./apis/merchant.api\";\nimport { UserAPI } from \"./apis/user.api\";\nimport { PayinUserAPI, PayoutDestinationUserAPI } from \"./apis\";\n\nexport interface MorambaClientConfig {\n baseURL: string;\n apiKey: string;\n partnerId: string;\n}\n\nexport class MorambaClient {\n public auth: AuthAPI;\n private http: HttpClient;\n public company: CompanyAPI;\n public merchant: MerchantAPI;\n public user: UserAPI;\n public payoutDestinationUser: PayoutDestinationUserAPI;\n public payinUser: PayinUserAPI;\n\n constructor(config: MorambaClientConfig) {\n this.http = new HttpClient(config.baseURL, {\n \"Content-Type\": \"application/json\",\n });\n\n this.auth = new AuthAPI(this.http, config.partnerId, config.apiKey);\n this.company = new CompanyAPI(this.http);\n this.merchant = new MerchantAPI(this.http);\n this.user = new UserAPI(this.http);\n this.payoutDestinationUser = new PayoutDestinationUserAPI(this.http);\n this.payinUser = new PayinUserAPI(this.http);\n }\n}\n","import { PaymentMethod } from \"./payment_method.types\";\n\nexport enum UserType {\n CUSTOMER = \"customer\",\n VENDOR = \"vendor\",\n AI_AGENT = \"AI_agent\",\n DEVICE = \"device\",\n OTHER = \"other\",\n}\nexport interface CreateUserPayload {\n payment_method: PaymentMethod;\n user_name: string;\n user_email: string;\n user_type: UserType;\n company_id: string;\n merchant_id: string;\n}\n\nexport interface UserData {\n id: string;\n merchant_id: string;\n user_name: string;\n user_email: string;\n company_id: string;\n partner_id: string;\n user_type: string;\n payment_network: string;\n payment_token_name: string;\n payment_token_address: string;\n created_at: string;\n updated_at: string;\n}\n\nexport interface CreateUserResponse {\n success: boolean;\n message: string;\n data: UserData | null;\n}\n\nexport interface UpdateUserPaymentPayload {\n company_id: string;\n merchant_id: string;\n user_id: string;\n payment_method: PaymentMethod;\n}\nexport interface UpdateUserPaymentResponse {\n success: boolean;\n message: string;\n data: UserData | null;\n}\n\n\nexport interface UpdateUserEmailPayload {\n company_id: string;\n merchant_id: string;\n user_id: string;\n email: string;\n}\n\nexport interface UpdateUserEmailResponse {\n success: boolean;\n message: string;\n data: UserData | null;\n}\n\n\nexport interface UserListQuery {\n company_id?: string;\n limit?: number;\n cursor?: string;\n forward?: string;\n backward?: string;\n}\n\nexport interface UserListData {\n id: string;\n company_id: string;\n merchant_id: string;\n user_name: string;\n user_email: string;\n partner_id: string;\n payment_network: string;\n payment_token_name: string;\n payment_token_address: string;\n created_at: string;\n updated_at: string;\n\n}\nexport interface GetUserListResponse {\n forward_cursor: string;\n backward_cursor: string;\n has_forward: boolean;\n has_backward: boolean;\n data: UserListData | null;\n}\n\nexport interface GetUserQuery {\n merchant_id?: string;\n}\n\nexport interface GetUserResponse {\n success: boolean;\n message: string;\n data: UserData | null;\n}","\nimport { ethers } from \"ethers\";\nimport { MONAD_CONFIG } from \"../utils/networks\";\n\nexport interface MonadApproveOptions {\n privateKey: string;\n unlimited?: boolean; // default: true\n amount?: string; // user-specified amount when limited\n decimalsOverride?: number; // optional override\n}\n\nexport async function monadApprove(options: MonadApproveOptions) {\n const {\n privateKey,\n unlimited = true,\n amount,\n decimalsOverride,\n } = options;\n\n const cfg = MONAD_CONFIG;\n\n const provider = new ethers.JsonRpcProvider(cfg.rpc);\n const wallet = new ethers.Wallet(privateKey, provider);\n\n const abi = [\n \"function approve(address spender, uint256 value) external returns (bool)\"\n ];\n\n const contract = new ethers.Contract(cfg.token, abi, wallet);\n\n const decimals = decimalsOverride ?? cfg.decimals;\n const humanAmount = amount ?? cfg.defaultAmount;\n\n const value = unlimited\n ? ethers.MaxUint256\n : ethers.parseUnits(humanAmount, decimals);\n\n console.log(\"⚡ Monad approve()\");\n console.log(\"RPC:\", cfg.rpc);\n console.log(\"Token:\", cfg.token);\n console.log(\"Spender:\", cfg.spender);\n console.log(\"Decimals:\", decimals);\n console.log(\"Amount:\", unlimited ? \"UNLIMITED\" : humanAmount);\n console.log(\"From:\", await wallet.getAddress());\n\n const tx = await contract.approve(cfg.spender, value);\n console.log(\"📤 TX:\", tx.hash);\n\n const receipt = await tx.wait();\n console.log(\"✅ Block:\", receipt.blockNumber);\n\n return { hash: tx.hash, receipt };\n}\n","\nexport interface TokenNetworkConfig {\n rpc: string;\n spender: string;\n token: string;\n decimals: number;\n defaultAmount: string;\n}\n\n// ▶️ MORAMBA Token (Monad)\nexport const MONAD_CONFIG: TokenNetworkConfig = {\n rpc: \"https://testnet-rpc.monad.xyz\",\n spender: \"0xbAcEa624831C5f294a5E7FeC519232AA37ec0a8C\",\n token: \"0x62F6c82114809C00a1293be02A43C05a3F917202\",\n decimals: 18,\n defaultAmount: \"1000\",\n};\n\n// ▶️ Sepolia \nexport const SEPOLIA_CONFIG: TokenNetworkConfig = {\n rpc: \"https://rpc.sepolia.org\",\n spender: \"0x6E2024Da220C081059f606D9EEAe670c84Ead9Ab\",\n token: \"0xbAcEa624831C5f294a5E7FeC519232AA37ec0a8C\",\n decimals: 18,\n defaultAmount: \"1000\",\n};\n","import { ethers } from \"ethers\";\nimport { SEPOLIA_CONFIG } from \"../utils/networks\";\n\nexport interface SepoliaApproveOptions {\n privateKey: string;\n unlimited?: boolean;\n amount?: string;\n decimalsOverride?: number;\n}\n\nexport async function sepoliaApprove(options: SepoliaApproveOptions) {\n const {\n privateKey,\n unlimited = true,\n amount,\n decimalsOverride,\n } = options;\n\n const cfg = SEPOLIA_CONFIG;\n\n const provider = new ethers.JsonRpcProvider(cfg.rpc);\n const wallet = new ethers.Wallet(privateKey, provider);\n\n const abi = [\n \"function approve(address spender, uint256 value) external returns (bool)\"\n ];\n\n const contract = new ethers.Contract(cfg.token, abi, wallet);\n\n const decimals = decimalsOverride ?? cfg.decimals;\n const humanAmount = amount ?? cfg.defaultAmount;\n\n const value = unlimited\n ? ethers.MaxUint256\n : ethers.parseUnits(humanAmount, decimals);\n\n console.log(\"⚡ Sepolia approve()\");\n console.log(\"RPC:\", cfg.rpc);\n console.log(\"Token:\", cfg.token);\n console.log(\"Spender:\", cfg.spender);\n console.log(\"Decimals:\", decimals);\n console.log(\"Amount:\", unlimited ? \"UNLIMITED\" : humanAmount);\n console.log(\"From:\", await wallet.getAddress());\n\n const tx = await contract.approve(cfg.spender, value);\n console.log(\"📤 TX:\", tx.hash);\n\n const receipt = await tx.wait();\n console.log(\"✅ Block:\", receipt.blockNumber);\n\n return { hash: tx.hash, receipt };\n}\n"],"mappings":"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","names":["index_exports","__export","MorambaClient","UserType","monadApprove","sepoliaApprove","__toCommonJS","import_axios","HttpClient","baseURL","headers","maxRetries","retryDelay","axios","response","error","config","delay","resolve","url","data","extraHeaders","res","AuthAPI","http","partnerId","apiKey","payload","fullPayload","CompanyAPI","http","payload","jwtToken","query","params","MerchantAPI","http","payload","jwtToken","query","params","UserAPI","http","payload","jwtToken","query","params","PayoutDestinationUserAPI","http","payload","jwtToken","PayinUserAPI","http","payload","jwtToken","MorambaClient","config","HttpClient","AuthAPI","CompanyAPI","MerchantAPI","UserAPI","PayoutDestinationUserAPI","PayinUserAPI","UserType","import_ethers","MONAD_CONFIG","SEPOLIA_CONFIG","monadApprove","options","privateKey","unlimited","amount","decimalsOverride","cfg","MONAD_CONFIG","provider","wallet","abi","contract","decimals","humanAmount","value","tx","receipt","import_ethers","sepoliaApprove","options","privateKey","unlimited","amount","decimalsOverride","cfg","SEPOLIA_CONFIG","provider","wallet","abi","contract","decimals","humanAmount","value","tx","receipt"]}
package/dist/index.mjs CHANGED
@@ -1,2 +1,2 @@
1
- import w from"axios";var h=class{constructor(e,t={},r=4,n=300){this.client=w.create({baseURL:e,headers:t,timeout:1e4}),this.maxRetries=r,this.retryDelay=n,this.setupRetryInterceptor()}get axiosInstance(){return this.client}setupRetryInterceptor(){this.client.interceptors.response.use(e=>e,async e=>{let t=e.config;if(!t||(t._retryCount||(t._retryCount=0),t._retryCount>=this.maxRetries))throw e;t._retryCount++;let r=this.retryDelay*Math.pow(2,t._retryCount);return await new Promise(n=>setTimeout(n,r)),this.client(t)})}post(e,t,r={}){return this.client.post(e,t,{headers:r}).then(n=>n.data)}patch(e,t,r={}){return this.client.patch(e,t,{headers:r}).then(n=>n.data)}get(e,t={}){return this.client.get(e,{headers:t}).then(r=>r.data)}};var u=class{constructor(e,t,r){this.http=e;this.partnerId=t;this.apiKey=r}createJwtToken(e){let t={...e,partner_id:this.partnerId,api_key:this.apiKey};return this.http.post("/morambacrypto/create/jwt_token",t)}};var g=class{constructor(e){this.http=e}createCompany(e,t){return this.http.post("/morambacrypto/create/company",e,{Authorization:`Bearer ${t}`})}updateCompanyEmail(e,t){return this.http.patch("/morambacrypto/update/company/email",e,{Authorization:`Bearer ${t}`})}getCompaniesByPartner(e,t){let r=new URLSearchParams;return t.limit&&r.append("limit",String(t.limit)),t.direction&&r.append("direction",t.direction),t.cursor&&r.append("cursor",t.cursor),this.http.get(`/morambacrypto/companies/partner/${t.partner_id}?${r.toString()}`,{Authorization:`Bearer ${e}`})}updateCompanyPaymentMethod(e,t){return this.http.patch("/morambacrypto/update/company/payment",e,{Authorization:`Bearer ${t}`})}};var y=class{constructor(e){this.http=e}createMerchant(e,t){return this.http.post("/morambacrypto/create/merchant",e,{Authorization:`Bearer ${t}`})}updateMerchantPaymentMethod(e,t){return this.http.patch("/morambacrypto/update/merchant/payment",e,{Authorization:`Bearer ${t}`})}updateMerchantEmail(e,t){return this.http.patch("/morambacrypto/update/merchant/email",e,{Authorization:`Bearer ${t}`})}getMerchantList(e,t={}){let r=new URLSearchParams;return t.company_id&&r.append("company_id",String(t.company_id)),t.limit&&r.append("limit",String(t.limit)),t.cursor&&r.append("cursor",t.cursor),t.forward&&r.append("cursor",t.forward),t.backward&&r.append("cursor",t.backward),this.http.get(`/morambacrypto/merchants/all?${r.toString()}`,{Authorization:`Bearer ${e}`})}getSingleMerchant(e,t={}){let r=new URLSearchParams;return t.merchant_id&&r.append("merchant_id",String(t.merchant_id)),this.http.get(`/morambacrypto/merchants?${r.toString()}`,{Authorization:`Bearer ${e}`})}};var f=class{constructor(e){this.http=e}createUser(e,t){return this.http.post("/morambacrypto/create/user",e,{Authorization:`Bearer ${t}`})}updateUserPaymentMethod(e,t){return this.http.patch("/morambacrypto/update/user/payment",e,{Authorization:`Bearer ${t}`})}updateUserEmail(e,t){return this.http.patch("/morambacrypto/update/user/email",e,{Authorization:`Bearer ${t}`})}getUserList(e,t={}){let r=new URLSearchParams;return t.company_id&&r.append("company_id",String(t.company_id)),t.limit&&r.append("limit",String(t.limit)),t.cursor&&r.append("cursor",t.cursor),t.forward&&r.append("cursor",t.forward),t.backward&&r.append("cursor",t.backward),this.http.get(`/morambacrypto/users/all?${r.toString()}`,{Authorization:`Bearer ${e}`})}getSingleUser(e,t={}){let r=new URLSearchParams;return t.merchant_id&&r.append("merchant_id",String(t.merchant_id)),this.http.get(`/morambacrypto/users?${r.toString()}`,{Authorization:`Bearer ${e}`})}};var U=class{constructor(e){this.http=e}createPayoutDestinationUser(e,t){return this.http.post(`/morambacrypto/create/payout-destination/for/${e.user_type}`,e,{Authorization:`Bearer ${t}`})}};var R=class{constructor(e){this.http=new h(e.baseURL,{"Content-Type":"application/json"}),this.auth=new u(this.http,e.partnerId,e.apiKey),this.company=new g(this.http),this.merchant=new y(this.http),this.user=new f(this.http),this.payoutDestinationUser=new U(this.http)}};var M=(a=>(a.CUSTOMER="customer",a.VENDOR="vendor",a.AI_AGENT="AI_agent",a.DEVICE="device",a.OTHER="other",a))(M||{});import{ethers as d}from"ethers";var A={rpc:"https://testnet-rpc.monad.xyz",spender:"0xbAcEa624831C5f294a5E7FeC519232AA37ec0a8C",token:"0x62F6c82114809C00a1293be02A43C05a3F917202",decimals:18,defaultAmount:"1000"},b={rpc:"https://rpc.sepolia.org",spender:"0x6E2024Da220C081059f606D9EEAe670c84Ead9Ab",token:"0xbAcEa624831C5f294a5E7FeC519232AA37ec0a8C",decimals:18,defaultAmount:"1000"};async function it(o){let{privateKey:e,unlimited:t=!0,amount:r,decimalsOverride:n}=o,a=A,P=new d.JsonRpcProvider(a.rpc),i=new d.Wallet(e,P),C=["function approve(address spender, uint256 value) external returns (bool)"],_=new d.Contract(a.token,C,i),p=n!=null?n:a.decimals,m=r!=null?r:a.defaultAmount,x=t?d.MaxUint256:d.parseUnits(m,p);console.log("\u26A1 Monad approve()"),console.log("RPC:",a.rpc),console.log("Token:",a.token),console.log("Spender:",a.spender),console.log("Decimals:",p),console.log("Amount:",t?"UNLIMITED":m),console.log("From:",await i.getAddress());let s=await _.approve(a.spender,x);console.log("\u{1F4E4} TX:",s.hash);let c=await s.wait();return console.log("\u2705 Block:",c.blockNumber),{hash:s.hash,receipt:c}}import{ethers as l}from"ethers";async function dt(o){let{privateKey:e,unlimited:t=!0,amount:r,decimalsOverride:n}=o,a=b,P=new l.JsonRpcProvider(a.rpc),i=new l.Wallet(e,P),C=["function approve(address spender, uint256 value) external returns (bool)"],_=new l.Contract(a.token,C,i),p=n!=null?n:a.decimals,m=r!=null?r:a.defaultAmount,x=t?l.MaxUint256:l.parseUnits(m,p);console.log("\u26A1 Sepolia approve()"),console.log("RPC:",a.rpc),console.log("Token:",a.token),console.log("Spender:",a.spender),console.log("Decimals:",p),console.log("Amount:",t?"UNLIMITED":m),console.log("From:",await i.getAddress());let s=await _.approve(a.spender,x);console.log("\u{1F4E4} TX:",s.hash);let c=await s.wait();return console.log("\u2705 Block:",c.blockNumber),{hash:s.hash,receipt:c}}export{R as MorambaClient,M as UserType,it as monadApprove,dt as sepoliaApprove};
1
+ import M from"axios";var h=class{constructor(e,t={},r=4,n=300){this.client=M.create({baseURL:e,headers:t,timeout:1e4}),this.maxRetries=r,this.retryDelay=n,this.setupRetryInterceptor()}get axiosInstance(){return this.client}setupRetryInterceptor(){this.client.interceptors.response.use(e=>e,async e=>{let t=e.config;if(!t||(t._retryCount||(t._retryCount=0),t._retryCount>=this.maxRetries))throw e;t._retryCount++;let r=this.retryDelay*Math.pow(2,t._retryCount);return await new Promise(n=>setTimeout(n,r)),this.client(t)})}post(e,t,r={}){return this.client.post(e,t,{headers:r}).then(n=>n.data)}patch(e,t,r={}){return this.client.patch(e,t,{headers:r}).then(n=>n.data)}get(e,t={}){return this.client.get(e,{headers:t}).then(r=>r.data)}};var u=class{constructor(e,t,r){this.http=e;this.partnerId=t;this.apiKey=r}createJwtToken(e){let t={...e,partner_id:this.partnerId,api_key:this.apiKey};return this.http.post("/morambacrypto/create/jwt_token",t)}};var g=class{constructor(e){this.http=e}createCompany(e,t){return this.http.post("/morambacrypto/create/company",e,{Authorization:`Bearer ${t}`})}updateCompanyEmail(e,t){return this.http.patch("/morambacrypto/update/company/email",e,{Authorization:`Bearer ${t}`})}getCompaniesByPartner(e,t){let r=new URLSearchParams;return t.limit&&r.append("limit",String(t.limit)),t.direction&&r.append("direction",t.direction),t.cursor&&r.append("cursor",t.cursor),this.http.get(`/morambacrypto/companies/partner/${t.partner_id}?${r.toString()}`,{Authorization:`Bearer ${e}`})}updateCompanyPaymentMethod(e,t){return this.http.patch("/morambacrypto/update/company/payment",e,{Authorization:`Bearer ${t}`})}};var y=class{constructor(e){this.http=e}createMerchant(e,t){return this.http.post("/morambacrypto/create/merchant",e,{Authorization:`Bearer ${t}`})}updateMerchantPaymentMethod(e,t){return this.http.patch("/morambacrypto/update/merchant/payment",e,{Authorization:`Bearer ${t}`})}updateMerchantEmail(e,t){return this.http.patch("/morambacrypto/update/merchant/email",e,{Authorization:`Bearer ${t}`})}getMerchantList(e,t={}){let r=new URLSearchParams;return t.company_id&&r.append("company_id",String(t.company_id)),t.limit&&r.append("limit",String(t.limit)),t.cursor&&r.append("cursor",t.cursor),t.forward&&r.append("cursor",t.forward),t.backward&&r.append("cursor",t.backward),this.http.get(`/morambacrypto/merchants/all?${r.toString()}`,{Authorization:`Bearer ${e}`})}getSingleMerchant(e,t={}){let r=new URLSearchParams;return t.merchant_id&&r.append("merchant_id",String(t.merchant_id)),this.http.get(`/morambacrypto/merchants?${r.toString()}`,{Authorization:`Bearer ${e}`})}};var f=class{constructor(e){this.http=e}createUser(e,t){return this.http.post("/morambacrypto/create/user",e,{Authorization:`Bearer ${t}`})}updateUserPaymentMethod(e,t){return this.http.patch("/morambacrypto/update/user/payment",e,{Authorization:`Bearer ${t}`})}updateUserEmail(e,t){return this.http.patch("/morambacrypto/update/user/email",e,{Authorization:`Bearer ${t}`})}getUserList(e,t={}){let r=new URLSearchParams;return t.company_id&&r.append("company_id",String(t.company_id)),t.limit&&r.append("limit",String(t.limit)),t.cursor&&r.append("cursor",t.cursor),t.forward&&r.append("cursor",t.forward),t.backward&&r.append("cursor",t.backward),this.http.get(`/morambacrypto/users/all?${r.toString()}`,{Authorization:`Bearer ${e}`})}getSingleUser(e,t={}){let r=new URLSearchParams;return t.merchant_id&&r.append("merchant_id",String(t.merchant_id)),this.http.get(`/morambacrypto/users?${r.toString()}`,{Authorization:`Bearer ${e}`})}};var U=class{constructor(e){this.http=e}createPayoutDestinationUser(e,t){return this.http.post(`/morambacrypto/create/payout-destination/for/${e.user_type}`,e,{Authorization:`Bearer ${t}`})}};var P=class{constructor(e){this.http=e}createPayinUser(e,t){return this.http.post(`/morambacrypto/create/payin/for/${e.user_type}`,e,{Authorization:`Bearer ${t}`})}};var A=class{constructor(e){this.http=new h(e.baseURL,{"Content-Type":"application/json"}),this.auth=new u(this.http,e.partnerId,e.apiKey),this.company=new g(this.http),this.merchant=new y(this.http),this.user=new f(this.http),this.payoutDestinationUser=new U(this.http),this.payinUser=new P(this.http)}};var v=(a=>(a.CUSTOMER="customer",a.VENDOR="vendor",a.AI_AGENT="AI_agent",a.DEVICE="device",a.OTHER="other",a))(v||{});import{ethers as d}from"ethers";var b={rpc:"https://testnet-rpc.monad.xyz",spender:"0xbAcEa624831C5f294a5E7FeC519232AA37ec0a8C",token:"0x62F6c82114809C00a1293be02A43C05a3F917202",decimals:18,defaultAmount:"1000"},w={rpc:"https://rpc.sepolia.org",spender:"0x6E2024Da220C081059f606D9EEAe670c84Ead9Ab",token:"0xbAcEa624831C5f294a5E7FeC519232AA37ec0a8C",decimals:18,defaultAmount:"1000"};async function dt(o){let{privateKey:e,unlimited:t=!0,amount:r,decimalsOverride:n}=o,a=b,C=new d.JsonRpcProvider(a.rpc),i=new d.Wallet(e,C),_=["function approve(address spender, uint256 value) external returns (bool)"],x=new d.Contract(a.token,_,i),p=n!=null?n:a.decimals,m=r!=null?r:a.defaultAmount,R=t?d.MaxUint256:d.parseUnits(m,p);console.log("\u26A1 Monad approve()"),console.log("RPC:",a.rpc),console.log("Token:",a.token),console.log("Spender:",a.spender),console.log("Decimals:",p),console.log("Amount:",t?"UNLIMITED":m),console.log("From:",await i.getAddress());let s=await x.approve(a.spender,R);console.log("\u{1F4E4} TX:",s.hash);let c=await s.wait();return console.log("\u2705 Block:",c.blockNumber),{hash:s.hash,receipt:c}}import{ethers as l}from"ethers";async function gt(o){let{privateKey:e,unlimited:t=!0,amount:r,decimalsOverride:n}=o,a=w,C=new l.JsonRpcProvider(a.rpc),i=new l.Wallet(e,C),_=["function approve(address spender, uint256 value) external returns (bool)"],x=new l.Contract(a.token,_,i),p=n!=null?n:a.decimals,m=r!=null?r:a.defaultAmount,R=t?l.MaxUint256:l.parseUnits(m,p);console.log("\u26A1 Sepolia approve()"),console.log("RPC:",a.rpc),console.log("Token:",a.token),console.log("Spender:",a.spender),console.log("Decimals:",p),console.log("Amount:",t?"UNLIMITED":m),console.log("From:",await i.getAddress());let s=await x.approve(a.spender,R);console.log("\u{1F4E4} TX:",s.hash);let c=await s.wait();return console.log("\u2705 Block:",c.blockNumber),{hash:s.hash,receipt:c}}export{A as MorambaClient,v as UserType,dt as monadApprove,gt as sepoliaApprove};
2
2
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/client/HttpClient.ts","../src/apis/auth.api.ts","../src/apis/company.api.ts","../src/apis/merchant.api.ts","../src/apis/user.api.ts","../src/apis/payout_destination_user.api.ts","../src/MorambaClient.ts","../src/types/user.types.ts","../src/authorize/monad.approve.ts","../src/utils/networks.ts","../src/authorize/sepolia.approve.ts"],"sourcesContent":["import axios, { AxiosInstance, AxiosError } from \"axios\";\n\nexport class HttpClient {\n private client: AxiosInstance;\n private maxRetries: number;\n private retryDelay: number; // base delay in milliseconds\n\n constructor(\n baseURL: string,\n headers: Record<string, string> = {},\n maxRetries = 4, // default: 4 retries\n retryDelay = 300 // base delay: 300ms\n ) {\n this.client = axios.create({\n baseURL,\n headers,\n timeout: 10000,\n });\n\n this.maxRetries = maxRetries;\n this.retryDelay = retryDelay;\n\n this.setupRetryInterceptor();\n }\n\n get axiosInstance(): AxiosInstance {\n return this.client;\n }\n\n private setupRetryInterceptor() {\n this.client.interceptors.response.use(\n response => response,\n async (error: AxiosError) => {\n const config: any = error.config;\n\n if (!config) throw error;\n\n // initialize retry counter\n if (!config._retryCount) config._retryCount = 0;\n\n // stop retry if max reached\n if (config._retryCount >= this.maxRetries) {\n throw error;\n }\n\n config._retryCount++;\n\n // exponential delay: delay * 2^(retryCount)\n const delay =\n this.retryDelay * Math.pow(2, config._retryCount);\n\n await new Promise(resolve => setTimeout(resolve, delay));\n\n return this.client(config);\n }\n );\n }\n post<T = any>(url: string, data: any, extraHeaders: Record<string, string> = {}): Promise<T> {\n return this.client\n .post<T>(url, data, { headers: extraHeaders })\n .then((res) => res.data);\n }\n patch<T = any>(\n url: string,\n data: any,\n extraHeaders: Record<string, string> = {}\n ): Promise<T> {\n return this.client\n .patch<T>(url, data, { headers: extraHeaders })\n .then((res) => res.data);\n }\n get<T = any>(url: string, extraHeaders: Record<string, string> = {}): Promise<T> {\n return this.client\n .get<T>(url, { headers: extraHeaders })\n .then((res) => res.data);\n }\n}\n","import { HttpClient } from \"../client/HttpClient\";\nimport {\n CreateJwtPayload,\n CreateJwtResponse,\n} from \"../types/auth.types\";\n\nexport class AuthAPI {\n constructor(\n private http: HttpClient,\n private partnerId: string,\n private apiKey: string\n\n ) { }\n\n createJwtToken(payload: CreateJwtPayload): Promise<CreateJwtResponse> {\n let fullPayload = {\n ...payload,\n partner_id: this.partnerId,\n api_key: this.apiKey,\n };\n\n return this.http.post(\"/morambacrypto/create/jwt_token\", fullPayload);\n }\n}\n","import { HttpClient } from \"../client/HttpClient\";\nimport {\n CreateCompanyPayload,\n CreateCompanyResponse,\n UpdateCompanyEmailPayload,\n UpdateCompanyEmailResponse,\n GetCompaniesQuery,\n GetCompaniesResponse,\n UpdateCompanyPaymentPayload,\n UpdateCompanyPaymentResponse,\n} from \"../types/company.types\";\n\nexport class CompanyAPI {\n constructor(\n private http: HttpClient\n ) { }\n\n createCompany(payload: CreateCompanyPayload, jwtToken: string): Promise<CreateCompanyResponse> {\n\n return this.http.post(\n \"/morambacrypto/create/company\",\n payload,\n {\n Authorization: `Bearer ${jwtToken}`,\n }\n );\n }\n\n updateCompanyEmail(\n payload: UpdateCompanyEmailPayload,\n jwtToken: string\n ): Promise<UpdateCompanyEmailResponse> {\n return this.http.patch(\n \"/morambacrypto/update/company/email\",\n payload,\n {\n Authorization: `Bearer ${jwtToken}`,\n }\n );\n }\n getCompaniesByPartner(\n jwtToken: string,\n query: GetCompaniesQuery\n ): Promise<GetCompaniesResponse> {\n const params = new URLSearchParams();\n\n if (query.limit) params.append(\"limit\", String(query.limit));\n if (query.direction) params.append(\"direction\", query.direction);\n if (query.cursor) params.append(\"cursor\", query.cursor);\n\n return this.http.get(\n `/morambacrypto/companies/partner/${query.partner_id}?${params.toString()}`,\n {\n Authorization: `Bearer ${jwtToken}`,\n }\n );\n }\n\n updateCompanyPaymentMethod(\n payload: UpdateCompanyPaymentPayload,\n jwtToken: string\n ): Promise<UpdateCompanyPaymentResponse> {\n return this.http.patch(\n \"/morambacrypto/update/company/payment\",\n payload,\n {\n Authorization: `Bearer ${jwtToken}`,\n }\n );\n }\n\n\n}\n","import { HttpClient } from \"../client\";\nimport { CreateMerchantPayload, CreateMerchantResponse, GetMerchantListResponse, GetMerchantQuery, GetMerchantResponse, MerchantListQuery, UpdateMerchantEmailPayload, UpdateMerchantEmailResponse, UpdateMerchantPaymentPayload, UpdateMerchantPaymentResponse } from \"../types/merchant.types\";\n\nexport class MerchantAPI {\n constructor(\n private http: HttpClient\n ) { }\n createMerchant(payload: CreateMerchantPayload, jwtToken: string): Promise<CreateMerchantResponse> {\n\n\n return this.http.post(\n \"/morambacrypto/create/merchant\",\n payload,\n {\n Authorization: `Bearer ${jwtToken}`,\n }\n );\n }\n\n updateMerchantPaymentMethod(\n payload: UpdateMerchantPaymentPayload,\n jwtToken: string\n ): Promise<UpdateMerchantPaymentResponse> {\n\n\n return this.http.patch(\n \"/morambacrypto/update/merchant/payment\",\n payload,\n {\n Authorization: `Bearer ${jwtToken}`,\n }\n );\n }\n\n updateMerchantEmail(\n payload: UpdateMerchantEmailPayload,\n jwtToken: string\n ): Promise<UpdateMerchantEmailResponse> {\n\n\n return this.http.patch(\n \"/morambacrypto/update/merchant/email\",\n payload,\n {\n Authorization: `Bearer ${jwtToken}`,\n }\n );\n }\n\n\n getMerchantList(\n jwtToken: string,\n query: MerchantListQuery = {}\n ): Promise<GetMerchantListResponse> {\n const params = new URLSearchParams();\n if (query.company_id) params.append(\"company_id\", String(query.company_id));\n if (query.limit) params.append(\"limit\", String(query.limit));\n if (query.cursor) params.append(\"cursor\", query.cursor);\n if (query.forward) params.append(\"cursor\", query.forward);\n if (query.backward) params.append(\"cursor\", query.backward);\n\n\n return this.http.get(\n `/morambacrypto/merchants/all?${params.toString()}`,\n {\n Authorization: `Bearer ${jwtToken}`,\n }\n );\n }\n getSingleMerchant(\n jwtToken: string,\n query: GetMerchantQuery = {}\n ): Promise<GetMerchantResponse> {\n const params = new URLSearchParams();\n if (query.merchant_id) params.append(\"merchant_id\", String(query.merchant_id));\n\n\n return this.http.get(\n `/morambacrypto/merchants?${params.toString()}`,\n {\n Authorization: `Bearer ${jwtToken}`,\n }\n );\n }\n}","import { HttpClient } from \"../client\";\nimport { CreateUserPayload, CreateUserResponse, GetUserListResponse, GetUserQuery, GetUserResponse, UpdateUserEmailPayload, UpdateUserEmailResponse, UpdateUserPaymentPayload, UpdateUserPaymentResponse, UserListQuery } from \"../types/user.types\";\n\nexport class UserAPI {\n constructor(\n private http: HttpClient\n ) { }\n createUser(payload: CreateUserPayload, jwtToken: string): Promise<CreateUserResponse> {\n\n\n return this.http.post(\n \"/morambacrypto/create/user\",\n payload,\n {\n Authorization: `Bearer ${jwtToken}`,\n }\n );\n }\n\n updateUserPaymentMethod(\n payload: UpdateUserPaymentPayload,\n jwtToken: string\n ): Promise<UpdateUserPaymentResponse> {\n\n\n return this.http.patch(\n \"/morambacrypto/update/user/payment\",\n payload,\n {\n Authorization: `Bearer ${jwtToken}`,\n }\n );\n }\n\n updateUserEmail(\n payload: UpdateUserEmailPayload,\n jwtToken: string\n ): Promise<UpdateUserEmailResponse> {\n\n\n return this.http.patch(\n \"/morambacrypto/update/user/email\",\n payload,\n {\n Authorization: `Bearer ${jwtToken}`,\n }\n );\n }\n\n\n getUserList(\n jwtToken: string,\n query: UserListQuery = {}\n ): Promise<GetUserListResponse> {\n const params = new URLSearchParams();\n if (query.company_id) params.append(\"company_id\", String(query.company_id));\n if (query.limit) params.append(\"limit\", String(query.limit));\n if (query.cursor) params.append(\"cursor\", query.cursor);\n if (query.forward) params.append(\"cursor\", query.forward);\n if (query.backward) params.append(\"cursor\", query.backward);\n\n\n return this.http.get(\n `/morambacrypto/users/all?${params.toString()}`,\n {\n Authorization: `Bearer ${jwtToken}`,\n }\n );\n }\n getSingleUser(\n jwtToken: string,\n query: GetUserQuery = {}\n ): Promise<GetUserResponse> {\n const params = new URLSearchParams();\n if (query.merchant_id) params.append(\"merchant_id\", String(query.merchant_id));\n\n\n return this.http.get(\n `/morambacrypto/users?${params.toString()}`,\n {\n Authorization: `Bearer ${jwtToken}`,\n }\n );\n }\n}","import { HttpClient } from \"../client\";\nimport { CreatePayoutDestinationUser, PayoutDestinationUserResponse } from \"../types/payout_destination_user.types\";\nimport { UserType } from \"../types/user.types\";\nexport class PayoutDestinationUserAPI {\n constructor(\n private http: HttpClient\n ) { }\n createPayoutDestinationUser(payload: CreatePayoutDestinationUser, jwtToken: string): Promise<PayoutDestinationUserResponse> {\n\n\n return this.http.post(\n `/morambacrypto/create/payout-destination/for/${payload.user_type as UserType}`,\n payload,\n {\n Authorization: `Bearer ${jwtToken}`,\n }\n );\n }\n\n}\n\n// updatePayoutDestinationUserPaymentMethod(\n// payload: UpdateUserPaymentPayload,\n// jwtToken: string\n// ): Promise<UpdateUserPaymentResponse> {\n\n\n// return this.http.patch(\n// \"/morambacrypto/update/user/payment\",\n// payload,\n// {\n// Authorization: `Bearer ${jwtToken}`,\n// }\n// );\n// }\n\n// updatePayoutDestinationUserEmail(\n// payload: UpdateUserEmailPayload,\n// jwtToken: string\n// ): Promise<UpdateUserEmailResponse> {\n\n\n// return this.http.patch(\n// \"/morambacrypto/update/user/email\",\n// payload,\n// {\n// Authorization: `Bearer ${jwtToken}`,\n// }\n// );\n// }\n\n\n// getPayoutDestinationUserList(\n// jwtToken: string,\n// query: UserListQuery = {}\n// ): Promise<GetUserListResponse> {\n// const params = new URLSearchParams();\n// if (query.company_id) params.append(\"company_id\", String(query.company_id));\n// if (query.limit) params.append(\"limit\", String(query.limit));\n// if (query.cursor) params.append(\"cursor\", query.cursor);\n// if (query.forward) params.append(\"cursor\", query.forward);\n// if (query.backward) params.append(\"cursor\", query.backward);\n\n\n// return this.http.get(\n// `/morambacrypto/users/all?${params.toString()}`,\n// {\n// Authorization: `Bearer ${jwtToken}`,\n// }\n// );\n// }\n// getSinglePayoutDestinationUser(\n// jwtToken: string,\n// query: GetUserQuery = {}\n// ): Promise<GetUserResponse> {\n// const params = new URLSearchParams();\n// if (query.merchant_id) params.append(\"merchant_id\", String(query.merchant_id));\n\n\n// return this.http.get(\n// `/morambacrypto/users?${params.toString()}`,\n// {\n// Authorization: `Bearer ${jwtToken}`,\n// }\n// );\n// }\n// }","import { HttpClient } from \"./client/HttpClient\";\nimport { AuthAPI } from \"./apis/auth.api\";\nimport { CompanyAPI } from \"./apis/company.api\";\nimport { MerchantAPI } from \"./apis/merchant.api\";\nimport { UserAPI } from \"./apis/user.api\";\nimport { PayoutDestinationUserAPI } from \"./apis\";\n\nexport interface MorambaClientConfig {\n baseURL: string;\n apiKey: string;\n partnerId: string;\n}\n\nexport class MorambaClient {\n public auth: AuthAPI;\n private http: HttpClient;\n public company: CompanyAPI;\n public merchant: MerchantAPI;\n public user: UserAPI;\n public payoutDestinationUser: PayoutDestinationUserAPI;\n\n constructor(config: MorambaClientConfig) {\n this.http = new HttpClient(config.baseURL, {\n \"Content-Type\": \"application/json\",\n });\n\n this.auth = new AuthAPI(this.http, config.partnerId, config.apiKey);\n this.company = new CompanyAPI(this.http);\n this.merchant = new MerchantAPI(this.http);\n this.user = new UserAPI(this.http);\n this.payoutDestinationUser = new PayoutDestinationUserAPI(this.http);\n }\n}\n","import { PaymentMethod } from \"./payment_method.types\";\n\nexport enum UserType {\n CUSTOMER = \"customer\",\n VENDOR = \"vendor\",\n AI_AGENT = \"AI_agent\",\n DEVICE = \"device\",\n OTHER = \"other\",\n}\nexport interface CreateUserPayload {\n payment_method: PaymentMethod;\n user_name: string;\n user_email: string;\n user_type: UserType;\n company_id: string;\n merchant_id: string;\n}\n\nexport interface UserData {\n id: string;\n merchant_id: string;\n user_name: string;\n user_email: string;\n company_id: string;\n partner_id: string;\n user_type: string;\n payment_network: string;\n payment_token_name: string;\n payment_token_address: string;\n created_at: string;\n updated_at: string;\n}\n\nexport interface CreateUserResponse {\n success: boolean;\n message: string;\n data: UserData | null;\n}\n\nexport interface UpdateUserPaymentPayload {\n company_id: string;\n merchant_id: string;\n user_id: string;\n payment_method: PaymentMethod;\n}\nexport interface UpdateUserPaymentResponse {\n success: boolean;\n message: string;\n data: UserData | null;\n}\n\n\nexport interface UpdateUserEmailPayload {\n company_id: string;\n merchant_id: string;\n user_id: string;\n email: string;\n}\n\nexport interface UpdateUserEmailResponse {\n success: boolean;\n message: string;\n data: UserData | null;\n}\n\n\nexport interface UserListQuery {\n company_id?: string;\n limit?: number;\n cursor?: string;\n forward?: string;\n backward?: string;\n}\n\nexport interface UserListData {\n id: string;\n company_id: string;\n merchant_id: string;\n user_name: string;\n user_email: string;\n partner_id: string;\n payment_network: string;\n payment_token_name: string;\n payment_token_address: string;\n created_at: string;\n updated_at: string;\n\n}\nexport interface GetUserListResponse {\n forward_cursor: string;\n backward_cursor: string;\n has_forward: boolean;\n has_backward: boolean;\n data: UserListData | null;\n}\n\nexport interface GetUserQuery {\n merchant_id?: string;\n}\n\nexport interface GetUserResponse {\n success: boolean;\n message: string;\n data: UserData | null;\n}","\nimport { ethers } from \"ethers\";\nimport { MONAD_CONFIG } from \"../utils/networks\";\n\nexport interface MonadApproveOptions {\n privateKey: string;\n unlimited?: boolean; // default: true\n amount?: string; // user-specified amount when limited\n decimalsOverride?: number; // optional override\n}\n\nexport async function monadApprove(options: MonadApproveOptions) {\n const {\n privateKey,\n unlimited = true,\n amount,\n decimalsOverride,\n } = options;\n\n const cfg = MONAD_CONFIG;\n\n const provider = new ethers.JsonRpcProvider(cfg.rpc);\n const wallet = new ethers.Wallet(privateKey, provider);\n\n const abi = [\n \"function approve(address spender, uint256 value) external returns (bool)\"\n ];\n\n const contract = new ethers.Contract(cfg.token, abi, wallet);\n\n const decimals = decimalsOverride ?? cfg.decimals;\n const humanAmount = amount ?? cfg.defaultAmount;\n\n const value = unlimited\n ? ethers.MaxUint256\n : ethers.parseUnits(humanAmount, decimals);\n\n console.log(\"⚡ Monad approve()\");\n console.log(\"RPC:\", cfg.rpc);\n console.log(\"Token:\", cfg.token);\n console.log(\"Spender:\", cfg.spender);\n console.log(\"Decimals:\", decimals);\n console.log(\"Amount:\", unlimited ? \"UNLIMITED\" : humanAmount);\n console.log(\"From:\", await wallet.getAddress());\n\n const tx = await contract.approve(cfg.spender, value);\n console.log(\"📤 TX:\", tx.hash);\n\n const receipt = await tx.wait();\n console.log(\"✅ Block:\", receipt.blockNumber);\n\n return { hash: tx.hash, receipt };\n}\n","\nexport interface TokenNetworkConfig {\n rpc: string;\n spender: string;\n token: string;\n decimals: number;\n defaultAmount: string;\n}\n\n// ▶️ MORAMBA Token (Monad)\nexport const MONAD_CONFIG: TokenNetworkConfig = {\n rpc: \"https://testnet-rpc.monad.xyz\",\n spender: \"0xbAcEa624831C5f294a5E7FeC519232AA37ec0a8C\",\n token: \"0x62F6c82114809C00a1293be02A43C05a3F917202\",\n decimals: 18,\n defaultAmount: \"1000\",\n};\n\n// ▶️ Sepolia \nexport const SEPOLIA_CONFIG: TokenNetworkConfig = {\n rpc: \"https://rpc.sepolia.org\",\n spender: \"0x6E2024Da220C081059f606D9EEAe670c84Ead9Ab\",\n token: \"0xbAcEa624831C5f294a5E7FeC519232AA37ec0a8C\",\n decimals: 18,\n defaultAmount: \"1000\",\n};\n","import { ethers } from \"ethers\";\nimport { SEPOLIA_CONFIG } from \"../utils/networks\";\n\nexport interface SepoliaApproveOptions {\n privateKey: string;\n unlimited?: boolean;\n amount?: string;\n decimalsOverride?: number;\n}\n\nexport async function sepoliaApprove(options: SepoliaApproveOptions) {\n const {\n privateKey,\n unlimited = true,\n amount,\n decimalsOverride,\n } = options;\n\n const cfg = SEPOLIA_CONFIG;\n\n const provider = new ethers.JsonRpcProvider(cfg.rpc);\n const wallet = new ethers.Wallet(privateKey, provider);\n\n const abi = [\n \"function approve(address spender, uint256 value) external returns (bool)\"\n ];\n\n const contract = new ethers.Contract(cfg.token, abi, wallet);\n\n const decimals = decimalsOverride ?? cfg.decimals;\n const humanAmount = amount ?? cfg.defaultAmount;\n\n const value = unlimited\n ? ethers.MaxUint256\n : ethers.parseUnits(humanAmount, decimals);\n\n console.log(\"⚡ Sepolia approve()\");\n console.log(\"RPC:\", cfg.rpc);\n console.log(\"Token:\", cfg.token);\n console.log(\"Spender:\", cfg.spender);\n console.log(\"Decimals:\", decimals);\n console.log(\"Amount:\", unlimited ? \"UNLIMITED\" : humanAmount);\n console.log(\"From:\", await wallet.getAddress());\n\n const tx = await contract.approve(cfg.spender, value);\n console.log(\"📤 TX:\", tx.hash);\n\n const receipt = await tx.wait();\n console.log(\"✅ Block:\", receipt.blockNumber);\n\n return { hash: tx.hash, receipt };\n}\n"],"mappings":"AAAA,OAAOA,MAA0C,QAE1C,IAAMC,EAAN,KAAiB,CAKpB,YACIC,EACAC,EAAkC,CAAC,EACnCC,EAAa,EACbC,EAAa,IACf,CACE,KAAK,OAASL,EAAM,OAAO,CACvB,QAAAE,EACA,QAAAC,EACA,QAAS,GACb,CAAC,EAED,KAAK,WAAaC,EAClB,KAAK,WAAaC,EAElB,KAAK,sBAAsB,CAC/B,CAEA,IAAI,eAA+B,CAC/B,OAAO,KAAK,MAChB,CAEQ,uBAAwB,CAC5B,KAAK,OAAO,aAAa,SAAS,IAC9BC,GAAYA,EACZ,MAAOC,GAAsB,CACzB,IAAMC,EAAcD,EAAM,OAQ1B,GANI,CAACC,IAGAA,EAAO,cAAaA,EAAO,YAAc,GAG1CA,EAAO,aAAe,KAAK,YAC3B,MAAMD,EAGVC,EAAO,cAGP,IAAMC,EACF,KAAK,WAAa,KAAK,IAAI,EAAGD,EAAO,WAAW,EAEpD,aAAM,IAAI,QAAQE,GAAW,WAAWA,EAASD,CAAK,CAAC,EAEhD,KAAK,OAAOD,CAAM,CAC7B,CACJ,CACJ,CACA,KAAcG,EAAaC,EAAWC,EAAuC,CAAC,EAAe,CACzF,OAAO,KAAK,OACP,KAAQF,EAAKC,EAAM,CAAE,QAASC,CAAa,CAAC,EAC5C,KAAMC,GAAQA,EAAI,IAAI,CAC/B,CACA,MACIH,EACAC,EACAC,EAAuC,CAAC,EAC9B,CACV,OAAO,KAAK,OACP,MAASF,EAAKC,EAAM,CAAE,QAASC,CAAa,CAAC,EAC7C,KAAMC,GAAQA,EAAI,IAAI,CAC/B,CACA,IAAaH,EAAaE,EAAuC,CAAC,EAAe,CAC7E,OAAO,KAAK,OACP,IAAOF,EAAK,CAAE,QAASE,CAAa,CAAC,EACrC,KAAMC,GAAQA,EAAI,IAAI,CAC/B,CACJ,ECtEO,IAAMC,EAAN,KAAc,CACjB,YACYC,EACAC,EACAC,EAEV,CAJU,UAAAF,EACA,eAAAC,EACA,YAAAC,CAER,CAEJ,eAAeC,EAAuD,CAClE,IAAIC,EAAc,CACd,GAAGD,EACH,WAAY,KAAK,UACjB,QAAS,KAAK,MAClB,EAEA,OAAO,KAAK,KAAK,KAAK,kCAAmCC,CAAW,CACxE,CACJ,ECXO,IAAMC,EAAN,KAAiB,CACpB,YACYC,EACV,CADU,UAAAA,CACR,CAEJ,cAAcC,EAA+BC,EAAkD,CAE3F,OAAO,KAAK,KAAK,KACb,gCACAD,EACA,CACI,cAAe,UAAUC,CAAQ,EACrC,CACJ,CACJ,CAEA,mBACID,EACAC,EACmC,CACnC,OAAO,KAAK,KAAK,MACb,sCACAD,EACA,CACI,cAAe,UAAUC,CAAQ,EACrC,CACJ,CACJ,CACA,sBACIA,EACAC,EAC6B,CAC7B,IAAMC,EAAS,IAAI,gBAEnB,OAAID,EAAM,OAAOC,EAAO,OAAO,QAAS,OAAOD,EAAM,KAAK,CAAC,EACvDA,EAAM,WAAWC,EAAO,OAAO,YAAaD,EAAM,SAAS,EAC3DA,EAAM,QAAQC,EAAO,OAAO,SAAUD,EAAM,MAAM,EAE/C,KAAK,KAAK,IACb,oCAAoCA,EAAM,UAAU,IAAIC,EAAO,SAAS,CAAC,GACzE,CACI,cAAe,UAAUF,CAAQ,EACrC,CACJ,CACJ,CAEA,2BACID,EACAC,EACqC,CACrC,OAAO,KAAK,KAAK,MACb,wCACAD,EACA,CACI,cAAe,UAAUC,CAAQ,EACrC,CACJ,CACJ,CAGJ,ECrEO,IAAMG,EAAN,KAAkB,CACrB,YACYC,EACV,CADU,UAAAA,CACR,CACJ,eAAeC,EAAgCC,EAAmD,CAG9F,OAAO,KAAK,KAAK,KACb,iCACAD,EACA,CACI,cAAe,UAAUC,CAAQ,EACrC,CACJ,CACJ,CAEA,4BACID,EACAC,EACsC,CAGtC,OAAO,KAAK,KAAK,MACb,yCACAD,EACA,CACI,cAAe,UAAUC,CAAQ,EACrC,CACJ,CACJ,CAEA,oBACID,EACAC,EACoC,CAGpC,OAAO,KAAK,KAAK,MACb,uCACAD,EACA,CACI,cAAe,UAAUC,CAAQ,EACrC,CACJ,CACJ,CAGA,gBACIA,EACAC,EAA2B,CAAC,EACI,CAChC,IAAMC,EAAS,IAAI,gBACnB,OAAID,EAAM,YAAYC,EAAO,OAAO,aAAc,OAAOD,EAAM,UAAU,CAAC,EACtEA,EAAM,OAAOC,EAAO,OAAO,QAAS,OAAOD,EAAM,KAAK,CAAC,EACvDA,EAAM,QAAQC,EAAO,OAAO,SAAUD,EAAM,MAAM,EAClDA,EAAM,SAASC,EAAO,OAAO,SAAUD,EAAM,OAAO,EACpDA,EAAM,UAAUC,EAAO,OAAO,SAAUD,EAAM,QAAQ,EAGnD,KAAK,KAAK,IACb,gCAAgCC,EAAO,SAAS,CAAC,GACjD,CACI,cAAe,UAAUF,CAAQ,EACrC,CACJ,CACJ,CACA,kBACIA,EACAC,EAA0B,CAAC,EACC,CAC5B,IAAMC,EAAS,IAAI,gBACnB,OAAID,EAAM,aAAaC,EAAO,OAAO,cAAe,OAAOD,EAAM,WAAW,CAAC,EAGtE,KAAK,KAAK,IACb,4BAA4BC,EAAO,SAAS,CAAC,GAC7C,CACI,cAAe,UAAUF,CAAQ,EACrC,CACJ,CACJ,CACJ,ECjFO,IAAMG,EAAN,KAAc,CACjB,YACYC,EACV,CADU,UAAAA,CACR,CACJ,WAAWC,EAA4BC,EAA+C,CAGlF,OAAO,KAAK,KAAK,KACb,6BACAD,EACA,CACI,cAAe,UAAUC,CAAQ,EACrC,CACJ,CACJ,CAEA,wBACID,EACAC,EACkC,CAGlC,OAAO,KAAK,KAAK,MACb,qCACAD,EACA,CACI,cAAe,UAAUC,CAAQ,EACrC,CACJ,CACJ,CAEA,gBACID,EACAC,EACgC,CAGhC,OAAO,KAAK,KAAK,MACb,mCACAD,EACA,CACI,cAAe,UAAUC,CAAQ,EACrC,CACJ,CACJ,CAGA,YACIA,EACAC,EAAuB,CAAC,EACI,CAC5B,IAAMC,EAAS,IAAI,gBACnB,OAAID,EAAM,YAAYC,EAAO,OAAO,aAAc,OAAOD,EAAM,UAAU,CAAC,EACtEA,EAAM,OAAOC,EAAO,OAAO,QAAS,OAAOD,EAAM,KAAK,CAAC,EACvDA,EAAM,QAAQC,EAAO,OAAO,SAAUD,EAAM,MAAM,EAClDA,EAAM,SAASC,EAAO,OAAO,SAAUD,EAAM,OAAO,EACpDA,EAAM,UAAUC,EAAO,OAAO,SAAUD,EAAM,QAAQ,EAGnD,KAAK,KAAK,IACb,4BAA4BC,EAAO,SAAS,CAAC,GAC7C,CACI,cAAe,UAAUF,CAAQ,EACrC,CACJ,CACJ,CACA,cACIA,EACAC,EAAsB,CAAC,EACC,CACxB,IAAMC,EAAS,IAAI,gBACnB,OAAID,EAAM,aAAaC,EAAO,OAAO,cAAe,OAAOD,EAAM,WAAW,CAAC,EAGtE,KAAK,KAAK,IACb,wBAAwBC,EAAO,SAAS,CAAC,GACzC,CACI,cAAe,UAAUF,CAAQ,EACrC,CACJ,CACJ,CACJ,ECjFO,IAAMG,EAAN,KAA+B,CAClC,YACYC,EACV,CADU,UAAAA,CACR,CACJ,4BAA4BC,EAAsCC,EAA0D,CAGxH,OAAO,KAAK,KAAK,KACb,gDAAgDD,EAAQ,SAAqB,GAC7EA,EACA,CACI,cAAe,UAAUC,CAAQ,EACrC,CACJ,CACJ,CAEJ,ECNO,IAAMC,EAAN,KAAoB,CAQvB,YAAYC,EAA6B,CACrC,KAAK,KAAO,IAAIC,EAAWD,EAAO,QAAS,CACvC,eAAgB,kBACpB,CAAC,EAED,KAAK,KAAO,IAAIE,EAAQ,KAAK,KAAMF,EAAO,UAAWA,EAAO,MAAM,EAClE,KAAK,QAAU,IAAIG,EAAW,KAAK,IAAI,EACvC,KAAK,SAAW,IAAIC,EAAY,KAAK,IAAI,EACzC,KAAK,KAAO,IAAIC,EAAQ,KAAK,IAAI,EACjC,KAAK,sBAAwB,IAAIC,EAAyB,KAAK,IAAI,CACvE,CACJ,EC9BO,IAAKC,OACRA,EAAA,SAAW,WACXA,EAAA,OAAS,SACTA,EAAA,SAAW,WACXA,EAAA,OAAS,SACTA,EAAA,MAAQ,QALAA,OAAA,ICDZ,OAAS,UAAAC,MAAc,SCShB,IAAMC,EAAmC,CAC5C,IAAK,gCACL,QAAS,6CACT,MAAO,6CACP,SAAU,GACV,cAAe,MACnB,EAGaC,EAAqC,CAC9C,IAAK,0BACL,QAAS,6CACT,MAAO,6CACP,SAAU,GACV,cAAe,MACnB,EDdA,eAAsBC,GAAaC,EAA8B,CAC7D,GAAM,CACF,WAAAC,EACA,UAAAC,EAAY,GACZ,OAAAC,EACA,iBAAAC,CACJ,EAAIJ,EAEEK,EAAMC,EAENC,EAAW,IAAIC,EAAO,gBAAgBH,EAAI,GAAG,EAC7CI,EAAS,IAAID,EAAO,OAAOP,EAAYM,CAAQ,EAE/CG,EAAM,CACR,0EACJ,EAEMC,EAAW,IAAIH,EAAO,SAASH,EAAI,MAAOK,EAAKD,CAAM,EAErDG,EAAWR,GAAA,KAAAA,EAAoBC,EAAI,SACnCQ,EAAcV,GAAA,KAAAA,EAAUE,EAAI,cAE5BS,EAAQZ,EACRM,EAAO,WACPA,EAAO,WAAWK,EAAaD,CAAQ,EAE7C,QAAQ,IAAI,wBAAmB,EAC/B,QAAQ,IAAI,OAAQP,EAAI,GAAG,EAC3B,QAAQ,IAAI,SAAUA,EAAI,KAAK,EAC/B,QAAQ,IAAI,WAAYA,EAAI,OAAO,EACnC,QAAQ,IAAI,YAAaO,CAAQ,EACjC,QAAQ,IAAI,UAAWV,EAAY,YAAcW,CAAW,EAC5D,QAAQ,IAAI,QAAS,MAAMJ,EAAO,WAAW,CAAC,EAE9C,IAAMM,EAAK,MAAMJ,EAAS,QAAQN,EAAI,QAASS,CAAK,EACpD,QAAQ,IAAI,gBAAUC,EAAG,IAAI,EAE7B,IAAMC,EAAU,MAAMD,EAAG,KAAK,EAC9B,eAAQ,IAAI,gBAAYC,EAAQ,WAAW,EAEpC,CAAE,KAAMD,EAAG,KAAM,QAAAC,CAAQ,CACpC,CEpDA,OAAS,UAAAC,MAAc,SAUvB,eAAsBC,GAAeC,EAAgC,CACjE,GAAM,CACF,WAAAC,EACA,UAAAC,EAAY,GACZ,OAAAC,EACA,iBAAAC,CACJ,EAAIJ,EAEEK,EAAMC,EAENC,EAAW,IAAIC,EAAO,gBAAgBH,EAAI,GAAG,EAC7CI,EAAS,IAAID,EAAO,OAAOP,EAAYM,CAAQ,EAE/CG,EAAM,CACR,0EACJ,EAEMC,EAAW,IAAIH,EAAO,SAASH,EAAI,MAAOK,EAAKD,CAAM,EAErDG,EAAWR,GAAA,KAAAA,EAAoBC,EAAI,SACnCQ,EAAcV,GAAA,KAAAA,EAAUE,EAAI,cAE5BS,EAAQZ,EACRM,EAAO,WACPA,EAAO,WAAWK,EAAaD,CAAQ,EAE7C,QAAQ,IAAI,0BAAqB,EACjC,QAAQ,IAAI,OAAQP,EAAI,GAAG,EAC3B,QAAQ,IAAI,SAAUA,EAAI,KAAK,EAC/B,QAAQ,IAAI,WAAYA,EAAI,OAAO,EACnC,QAAQ,IAAI,YAAaO,CAAQ,EACjC,QAAQ,IAAI,UAAWV,EAAY,YAAcW,CAAW,EAC5D,QAAQ,IAAI,QAAS,MAAMJ,EAAO,WAAW,CAAC,EAE9C,IAAMM,EAAK,MAAMJ,EAAS,QAAQN,EAAI,QAASS,CAAK,EACpD,QAAQ,IAAI,gBAAUC,EAAG,IAAI,EAE7B,IAAMC,EAAU,MAAMD,EAAG,KAAK,EAC9B,eAAQ,IAAI,gBAAYC,EAAQ,WAAW,EAEpC,CAAE,KAAMD,EAAG,KAAM,QAAAC,CAAQ,CACpC","names":["axios","HttpClient","baseURL","headers","maxRetries","retryDelay","response","error","config","delay","resolve","url","data","extraHeaders","res","AuthAPI","http","partnerId","apiKey","payload","fullPayload","CompanyAPI","http","payload","jwtToken","query","params","MerchantAPI","http","payload","jwtToken","query","params","UserAPI","http","payload","jwtToken","query","params","PayoutDestinationUserAPI","http","payload","jwtToken","MorambaClient","config","HttpClient","AuthAPI","CompanyAPI","MerchantAPI","UserAPI","PayoutDestinationUserAPI","UserType","ethers","MONAD_CONFIG","SEPOLIA_CONFIG","monadApprove","options","privateKey","unlimited","amount","decimalsOverride","cfg","MONAD_CONFIG","provider","ethers","wallet","abi","contract","decimals","humanAmount","value","tx","receipt","ethers","sepoliaApprove","options","privateKey","unlimited","amount","decimalsOverride","cfg","SEPOLIA_CONFIG","provider","ethers","wallet","abi","contract","decimals","humanAmount","value","tx","receipt"]}
1
+ {"version":3,"sources":["../src/client/HttpClient.ts","../src/apis/auth.api.ts","../src/apis/company.api.ts","../src/apis/merchant.api.ts","../src/apis/user.api.ts","../src/apis/payout_destination_user.api.ts","../src/apis/payin_user.api.ts","../src/MorambaClient.ts","../src/types/user.types.ts","../src/authorize/monad.approve.ts","../src/utils/networks.ts","../src/authorize/sepolia.approve.ts"],"sourcesContent":["import axios, { AxiosInstance, AxiosError } from \"axios\";\n\nexport class HttpClient {\n private client: AxiosInstance;\n private maxRetries: number;\n private retryDelay: number; // base delay in milliseconds\n\n constructor(\n baseURL: string,\n headers: Record<string, string> = {},\n maxRetries = 4, // default: 4 retries\n retryDelay = 300 // base delay: 300ms\n ) {\n this.client = axios.create({\n baseURL,\n headers,\n timeout: 10000,\n });\n\n this.maxRetries = maxRetries;\n this.retryDelay = retryDelay;\n\n this.setupRetryInterceptor();\n }\n\n get axiosInstance(): AxiosInstance {\n return this.client;\n }\n\n private setupRetryInterceptor() {\n this.client.interceptors.response.use(\n response => response,\n async (error: AxiosError) => {\n const config: any = error.config;\n\n if (!config) throw error;\n\n // initialize retry counter\n if (!config._retryCount) config._retryCount = 0;\n\n // stop retry if max reached\n if (config._retryCount >= this.maxRetries) {\n throw error;\n }\n\n config._retryCount++;\n\n // exponential delay: delay * 2^(retryCount)\n const delay =\n this.retryDelay * Math.pow(2, config._retryCount);\n\n await new Promise(resolve => setTimeout(resolve, delay));\n\n return this.client(config);\n }\n );\n }\n post<T = any>(url: string, data: any, extraHeaders: Record<string, string> = {}): Promise<T> {\n return this.client\n .post<T>(url, data, { headers: extraHeaders })\n .then((res) => res.data);\n }\n patch<T = any>(\n url: string,\n data: any,\n extraHeaders: Record<string, string> = {}\n ): Promise<T> {\n return this.client\n .patch<T>(url, data, { headers: extraHeaders })\n .then((res) => res.data);\n }\n get<T = any>(url: string, extraHeaders: Record<string, string> = {}): Promise<T> {\n return this.client\n .get<T>(url, { headers: extraHeaders })\n .then((res) => res.data);\n }\n}\n","import { HttpClient } from \"../client/HttpClient\";\nimport {\n CreateJwtPayload,\n CreateJwtResponse,\n} from \"../types/auth.types\";\n\nexport class AuthAPI {\n constructor(\n private http: HttpClient,\n private partnerId: string,\n private apiKey: string\n\n ) { }\n\n createJwtToken(payload: CreateJwtPayload): Promise<CreateJwtResponse> {\n let fullPayload = {\n ...payload,\n partner_id: this.partnerId,\n api_key: this.apiKey,\n };\n\n return this.http.post(\"/morambacrypto/create/jwt_token\", fullPayload);\n }\n}\n","import { HttpClient } from \"../client/HttpClient\";\nimport {\n CreateCompanyPayload,\n CreateCompanyResponse,\n UpdateCompanyEmailPayload,\n UpdateCompanyEmailResponse,\n GetCompaniesQuery,\n GetCompaniesResponse,\n UpdateCompanyPaymentPayload,\n UpdateCompanyPaymentResponse,\n} from \"../types/company.types\";\n\nexport class CompanyAPI {\n constructor(\n private http: HttpClient\n ) { }\n\n createCompany(payload: CreateCompanyPayload, jwtToken: string): Promise<CreateCompanyResponse> {\n\n return this.http.post(\n \"/morambacrypto/create/company\",\n payload,\n {\n Authorization: `Bearer ${jwtToken}`,\n }\n );\n }\n\n updateCompanyEmail(\n payload: UpdateCompanyEmailPayload,\n jwtToken: string\n ): Promise<UpdateCompanyEmailResponse> {\n return this.http.patch(\n \"/morambacrypto/update/company/email\",\n payload,\n {\n Authorization: `Bearer ${jwtToken}`,\n }\n );\n }\n getCompaniesByPartner(\n jwtToken: string,\n query: GetCompaniesQuery\n ): Promise<GetCompaniesResponse> {\n const params = new URLSearchParams();\n\n if (query.limit) params.append(\"limit\", String(query.limit));\n if (query.direction) params.append(\"direction\", query.direction);\n if (query.cursor) params.append(\"cursor\", query.cursor);\n\n return this.http.get(\n `/morambacrypto/companies/partner/${query.partner_id}?${params.toString()}`,\n {\n Authorization: `Bearer ${jwtToken}`,\n }\n );\n }\n\n updateCompanyPaymentMethod(\n payload: UpdateCompanyPaymentPayload,\n jwtToken: string\n ): Promise<UpdateCompanyPaymentResponse> {\n return this.http.patch(\n \"/morambacrypto/update/company/payment\",\n payload,\n {\n Authorization: `Bearer ${jwtToken}`,\n }\n );\n }\n\n\n}\n","import { HttpClient } from \"../client\";\nimport { CreateMerchantPayload, CreateMerchantResponse, GetMerchantListResponse, GetMerchantQuery, GetMerchantResponse, MerchantListQuery, UpdateMerchantEmailPayload, UpdateMerchantEmailResponse, UpdateMerchantPaymentPayload, UpdateMerchantPaymentResponse } from \"../types/merchant.types\";\n\nexport class MerchantAPI {\n constructor(\n private http: HttpClient\n ) { }\n createMerchant(payload: CreateMerchantPayload, jwtToken: string): Promise<CreateMerchantResponse> {\n\n\n return this.http.post(\n \"/morambacrypto/create/merchant\",\n payload,\n {\n Authorization: `Bearer ${jwtToken}`,\n }\n );\n }\n\n updateMerchantPaymentMethod(\n payload: UpdateMerchantPaymentPayload,\n jwtToken: string\n ): Promise<UpdateMerchantPaymentResponse> {\n\n\n return this.http.patch(\n \"/morambacrypto/update/merchant/payment\",\n payload,\n {\n Authorization: `Bearer ${jwtToken}`,\n }\n );\n }\n\n updateMerchantEmail(\n payload: UpdateMerchantEmailPayload,\n jwtToken: string\n ): Promise<UpdateMerchantEmailResponse> {\n\n\n return this.http.patch(\n \"/morambacrypto/update/merchant/email\",\n payload,\n {\n Authorization: `Bearer ${jwtToken}`,\n }\n );\n }\n\n\n getMerchantList(\n jwtToken: string,\n query: MerchantListQuery = {}\n ): Promise<GetMerchantListResponse> {\n const params = new URLSearchParams();\n if (query.company_id) params.append(\"company_id\", String(query.company_id));\n if (query.limit) params.append(\"limit\", String(query.limit));\n if (query.cursor) params.append(\"cursor\", query.cursor);\n if (query.forward) params.append(\"cursor\", query.forward);\n if (query.backward) params.append(\"cursor\", query.backward);\n\n\n return this.http.get(\n `/morambacrypto/merchants/all?${params.toString()}`,\n {\n Authorization: `Bearer ${jwtToken}`,\n }\n );\n }\n getSingleMerchant(\n jwtToken: string,\n query: GetMerchantQuery = {}\n ): Promise<GetMerchantResponse> {\n const params = new URLSearchParams();\n if (query.merchant_id) params.append(\"merchant_id\", String(query.merchant_id));\n\n\n return this.http.get(\n `/morambacrypto/merchants?${params.toString()}`,\n {\n Authorization: `Bearer ${jwtToken}`,\n }\n );\n }\n}","import { HttpClient } from \"../client\";\nimport { CreateUserPayload, CreateUserResponse, GetUserListResponse, GetUserQuery, GetUserResponse, UpdateUserEmailPayload, UpdateUserEmailResponse, UpdateUserPaymentPayload, UpdateUserPaymentResponse, UserListQuery } from \"../types/user.types\";\n\nexport class UserAPI {\n constructor(\n private http: HttpClient\n ) { }\n createUser(payload: CreateUserPayload, jwtToken: string): Promise<CreateUserResponse> {\n\n\n return this.http.post(\n \"/morambacrypto/create/user\",\n payload,\n {\n Authorization: `Bearer ${jwtToken}`,\n }\n );\n }\n\n updateUserPaymentMethod(\n payload: UpdateUserPaymentPayload,\n jwtToken: string\n ): Promise<UpdateUserPaymentResponse> {\n\n\n return this.http.patch(\n \"/morambacrypto/update/user/payment\",\n payload,\n {\n Authorization: `Bearer ${jwtToken}`,\n }\n );\n }\n\n updateUserEmail(\n payload: UpdateUserEmailPayload,\n jwtToken: string\n ): Promise<UpdateUserEmailResponse> {\n\n\n return this.http.patch(\n \"/morambacrypto/update/user/email\",\n payload,\n {\n Authorization: `Bearer ${jwtToken}`,\n }\n );\n }\n\n\n getUserList(\n jwtToken: string,\n query: UserListQuery = {}\n ): Promise<GetUserListResponse> {\n const params = new URLSearchParams();\n if (query.company_id) params.append(\"company_id\", String(query.company_id));\n if (query.limit) params.append(\"limit\", String(query.limit));\n if (query.cursor) params.append(\"cursor\", query.cursor);\n if (query.forward) params.append(\"cursor\", query.forward);\n if (query.backward) params.append(\"cursor\", query.backward);\n\n\n return this.http.get(\n `/morambacrypto/users/all?${params.toString()}`,\n {\n Authorization: `Bearer ${jwtToken}`,\n }\n );\n }\n getSingleUser(\n jwtToken: string,\n query: GetUserQuery = {}\n ): Promise<GetUserResponse> {\n const params = new URLSearchParams();\n if (query.merchant_id) params.append(\"merchant_id\", String(query.merchant_id));\n\n\n return this.http.get(\n `/morambacrypto/users?${params.toString()}`,\n {\n Authorization: `Bearer ${jwtToken}`,\n }\n );\n }\n}","import { HttpClient } from \"../client\";\nimport { CreatePayoutDestinationUser, PayoutDestinationUserResponse } from \"../types/payout_destination_user.types\";\nimport { UserType } from \"../types/user.types\";\nexport class PayoutDestinationUserAPI {\n constructor(\n private http: HttpClient\n ) { }\n createPayoutDestinationUser(payload: CreatePayoutDestinationUser, jwtToken: string): Promise<PayoutDestinationUserResponse> {\n\n\n return this.http.post(\n `/morambacrypto/create/payout-destination/for/${payload.user_type as UserType}`,\n payload,\n {\n Authorization: `Bearer ${jwtToken}`,\n }\n );\n }\n\n}\n\n// updatePayoutDestinationUserPaymentMethod(\n// payload: UpdateUserPaymentPayload,\n// jwtToken: string\n// ): Promise<UpdateUserPaymentResponse> {\n\n\n// return this.http.patch(\n// \"/morambacrypto/update/user/payment\",\n// payload,\n// {\n// Authorization: `Bearer ${jwtToken}`,\n// }\n// );\n// }\n\n// updatePayoutDestinationUserEmail(\n// payload: UpdateUserEmailPayload,\n// jwtToken: string\n// ): Promise<UpdateUserEmailResponse> {\n\n\n// return this.http.patch(\n// \"/morambacrypto/update/user/email\",\n// payload,\n// {\n// Authorization: `Bearer ${jwtToken}`,\n// }\n// );\n// }\n\n\n// getPayoutDestinationUserList(\n// jwtToken: string,\n// query: UserListQuery = {}\n// ): Promise<GetUserListResponse> {\n// const params = new URLSearchParams();\n// if (query.company_id) params.append(\"company_id\", String(query.company_id));\n// if (query.limit) params.append(\"limit\", String(query.limit));\n// if (query.cursor) params.append(\"cursor\", query.cursor);\n// if (query.forward) params.append(\"cursor\", query.forward);\n// if (query.backward) params.append(\"cursor\", query.backward);\n\n\n// return this.http.get(\n// `/morambacrypto/users/all?${params.toString()}`,\n// {\n// Authorization: `Bearer ${jwtToken}`,\n// }\n// );\n// }\n// getSinglePayoutDestinationUser(\n// jwtToken: string,\n// query: GetUserQuery = {}\n// ): Promise<GetUserResponse> {\n// const params = new URLSearchParams();\n// if (query.merchant_id) params.append(\"merchant_id\", String(query.merchant_id));\n\n\n// return this.http.get(\n// `/morambacrypto/users?${params.toString()}`,\n// {\n// Authorization: `Bearer ${jwtToken}`,\n// }\n// );\n// }\n// }","import { HttpClient } from \"../client\";\nimport { CreatePayinUser, PayinUserResponse } from \"../types/payin_user.types\";\nimport { UserType } from \"../types/user.types\";\nexport class PayinUserAPI {\n constructor(\n private http: HttpClient\n ) { }\n createPayinUser(payload: CreatePayinUser, jwtToken: string): Promise<PayinUserResponse> {\n\n\n return this.http.post(\n `/morambacrypto/create/payin/for/${payload.user_type as UserType}`,\n payload,\n {\n Authorization: `Bearer ${jwtToken}`,\n }\n );\n }\n\n}\n","import { HttpClient } from \"./client/HttpClient\";\nimport { AuthAPI } from \"./apis/auth.api\";\nimport { CompanyAPI } from \"./apis/company.api\";\nimport { MerchantAPI } from \"./apis/merchant.api\";\nimport { UserAPI } from \"./apis/user.api\";\nimport { PayinUserAPI, PayoutDestinationUserAPI } from \"./apis\";\n\nexport interface MorambaClientConfig {\n baseURL: string;\n apiKey: string;\n partnerId: string;\n}\n\nexport class MorambaClient {\n public auth: AuthAPI;\n private http: HttpClient;\n public company: CompanyAPI;\n public merchant: MerchantAPI;\n public user: UserAPI;\n public payoutDestinationUser: PayoutDestinationUserAPI;\n public payinUser: PayinUserAPI;\n\n constructor(config: MorambaClientConfig) {\n this.http = new HttpClient(config.baseURL, {\n \"Content-Type\": \"application/json\",\n });\n\n this.auth = new AuthAPI(this.http, config.partnerId, config.apiKey);\n this.company = new CompanyAPI(this.http);\n this.merchant = new MerchantAPI(this.http);\n this.user = new UserAPI(this.http);\n this.payoutDestinationUser = new PayoutDestinationUserAPI(this.http);\n this.payinUser = new PayinUserAPI(this.http);\n }\n}\n","import { PaymentMethod } from \"./payment_method.types\";\n\nexport enum UserType {\n CUSTOMER = \"customer\",\n VENDOR = \"vendor\",\n AI_AGENT = \"AI_agent\",\n DEVICE = \"device\",\n OTHER = \"other\",\n}\nexport interface CreateUserPayload {\n payment_method: PaymentMethod;\n user_name: string;\n user_email: string;\n user_type: UserType;\n company_id: string;\n merchant_id: string;\n}\n\nexport interface UserData {\n id: string;\n merchant_id: string;\n user_name: string;\n user_email: string;\n company_id: string;\n partner_id: string;\n user_type: string;\n payment_network: string;\n payment_token_name: string;\n payment_token_address: string;\n created_at: string;\n updated_at: string;\n}\n\nexport interface CreateUserResponse {\n success: boolean;\n message: string;\n data: UserData | null;\n}\n\nexport interface UpdateUserPaymentPayload {\n company_id: string;\n merchant_id: string;\n user_id: string;\n payment_method: PaymentMethod;\n}\nexport interface UpdateUserPaymentResponse {\n success: boolean;\n message: string;\n data: UserData | null;\n}\n\n\nexport interface UpdateUserEmailPayload {\n company_id: string;\n merchant_id: string;\n user_id: string;\n email: string;\n}\n\nexport interface UpdateUserEmailResponse {\n success: boolean;\n message: string;\n data: UserData | null;\n}\n\n\nexport interface UserListQuery {\n company_id?: string;\n limit?: number;\n cursor?: string;\n forward?: string;\n backward?: string;\n}\n\nexport interface UserListData {\n id: string;\n company_id: string;\n merchant_id: string;\n user_name: string;\n user_email: string;\n partner_id: string;\n payment_network: string;\n payment_token_name: string;\n payment_token_address: string;\n created_at: string;\n updated_at: string;\n\n}\nexport interface GetUserListResponse {\n forward_cursor: string;\n backward_cursor: string;\n has_forward: boolean;\n has_backward: boolean;\n data: UserListData | null;\n}\n\nexport interface GetUserQuery {\n merchant_id?: string;\n}\n\nexport interface GetUserResponse {\n success: boolean;\n message: string;\n data: UserData | null;\n}","\nimport { ethers } from \"ethers\";\nimport { MONAD_CONFIG } from \"../utils/networks\";\n\nexport interface MonadApproveOptions {\n privateKey: string;\n unlimited?: boolean; // default: true\n amount?: string; // user-specified amount when limited\n decimalsOverride?: number; // optional override\n}\n\nexport async function monadApprove(options: MonadApproveOptions) {\n const {\n privateKey,\n unlimited = true,\n amount,\n decimalsOverride,\n } = options;\n\n const cfg = MONAD_CONFIG;\n\n const provider = new ethers.JsonRpcProvider(cfg.rpc);\n const wallet = new ethers.Wallet(privateKey, provider);\n\n const abi = [\n \"function approve(address spender, uint256 value) external returns (bool)\"\n ];\n\n const contract = new ethers.Contract(cfg.token, abi, wallet);\n\n const decimals = decimalsOverride ?? cfg.decimals;\n const humanAmount = amount ?? cfg.defaultAmount;\n\n const value = unlimited\n ? ethers.MaxUint256\n : ethers.parseUnits(humanAmount, decimals);\n\n console.log(\"⚡ Monad approve()\");\n console.log(\"RPC:\", cfg.rpc);\n console.log(\"Token:\", cfg.token);\n console.log(\"Spender:\", cfg.spender);\n console.log(\"Decimals:\", decimals);\n console.log(\"Amount:\", unlimited ? \"UNLIMITED\" : humanAmount);\n console.log(\"From:\", await wallet.getAddress());\n\n const tx = await contract.approve(cfg.spender, value);\n console.log(\"📤 TX:\", tx.hash);\n\n const receipt = await tx.wait();\n console.log(\"✅ Block:\", receipt.blockNumber);\n\n return { hash: tx.hash, receipt };\n}\n","\nexport interface TokenNetworkConfig {\n rpc: string;\n spender: string;\n token: string;\n decimals: number;\n defaultAmount: string;\n}\n\n// ▶️ MORAMBA Token (Monad)\nexport const MONAD_CONFIG: TokenNetworkConfig = {\n rpc: \"https://testnet-rpc.monad.xyz\",\n spender: \"0xbAcEa624831C5f294a5E7FeC519232AA37ec0a8C\",\n token: \"0x62F6c82114809C00a1293be02A43C05a3F917202\",\n decimals: 18,\n defaultAmount: \"1000\",\n};\n\n// ▶️ Sepolia \nexport const SEPOLIA_CONFIG: TokenNetworkConfig = {\n rpc: \"https://rpc.sepolia.org\",\n spender: \"0x6E2024Da220C081059f606D9EEAe670c84Ead9Ab\",\n token: \"0xbAcEa624831C5f294a5E7FeC519232AA37ec0a8C\",\n decimals: 18,\n defaultAmount: \"1000\",\n};\n","import { ethers } from \"ethers\";\nimport { SEPOLIA_CONFIG } from \"../utils/networks\";\n\nexport interface SepoliaApproveOptions {\n privateKey: string;\n unlimited?: boolean;\n amount?: string;\n decimalsOverride?: number;\n}\n\nexport async function sepoliaApprove(options: SepoliaApproveOptions) {\n const {\n privateKey,\n unlimited = true,\n amount,\n decimalsOverride,\n } = options;\n\n const cfg = SEPOLIA_CONFIG;\n\n const provider = new ethers.JsonRpcProvider(cfg.rpc);\n const wallet = new ethers.Wallet(privateKey, provider);\n\n const abi = [\n \"function approve(address spender, uint256 value) external returns (bool)\"\n ];\n\n const contract = new ethers.Contract(cfg.token, abi, wallet);\n\n const decimals = decimalsOverride ?? cfg.decimals;\n const humanAmount = amount ?? cfg.defaultAmount;\n\n const value = unlimited\n ? ethers.MaxUint256\n : ethers.parseUnits(humanAmount, decimals);\n\n console.log(\"⚡ Sepolia approve()\");\n console.log(\"RPC:\", cfg.rpc);\n console.log(\"Token:\", cfg.token);\n console.log(\"Spender:\", cfg.spender);\n console.log(\"Decimals:\", decimals);\n console.log(\"Amount:\", unlimited ? \"UNLIMITED\" : humanAmount);\n console.log(\"From:\", await wallet.getAddress());\n\n const tx = await contract.approve(cfg.spender, value);\n console.log(\"📤 TX:\", tx.hash);\n\n const receipt = await tx.wait();\n console.log(\"✅ Block:\", receipt.blockNumber);\n\n return { hash: tx.hash, receipt };\n}\n"],"mappings":"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","names":["axios","HttpClient","baseURL","headers","maxRetries","retryDelay","response","error","config","delay","resolve","url","data","extraHeaders","res","AuthAPI","http","partnerId","apiKey","payload","fullPayload","CompanyAPI","http","payload","jwtToken","query","params","MerchantAPI","http","payload","jwtToken","query","params","UserAPI","http","payload","jwtToken","query","params","PayoutDestinationUserAPI","http","payload","jwtToken","PayinUserAPI","http","payload","jwtToken","MorambaClient","config","HttpClient","AuthAPI","CompanyAPI","MerchantAPI","UserAPI","PayoutDestinationUserAPI","PayinUserAPI","UserType","ethers","MONAD_CONFIG","SEPOLIA_CONFIG","monadApprove","options","privateKey","unlimited","amount","decimalsOverride","cfg","MONAD_CONFIG","provider","ethers","wallet","abi","contract","decimals","humanAmount","value","tx","receipt","ethers","sepoliaApprove","options","privateKey","unlimited","amount","decimalsOverride","cfg","SEPOLIA_CONFIG","provider","ethers","wallet","abi","contract","decimals","humanAmount","value","tx","receipt"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@morambacrypto/connect",
3
- "version": "0.0.20",
3
+ "version": "0.0.22",
4
4
  "description": "This library use for interact with moramba-crypto project",
5
5
  "main": "dist/index.cjs",
6
6
  "module": "dist/index.js",