@morambacrypto/connect 0.0.15 → 0.0.17

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
@@ -34,19 +34,20 @@ declare class AuthAPI {
34
34
  }
35
35
 
36
36
  interface PaymentMethod {
37
- network: string;
38
- token: string;
39
- address: string;
37
+ payment_network: string;
38
+ payment_token_name: string;
39
+ payment_token_address: string;
40
40
  }
41
+
41
42
  interface CreateCompanyPayload {
42
43
  payment_method: PaymentMethod;
43
- name: string;
44
- email: string;
44
+ company_name: string;
45
+ company_email: string;
45
46
  }
46
47
  interface CompanyData {
47
48
  id: string;
48
- name: string;
49
- email: string;
49
+ company_name: string;
50
+ company_email: string;
50
51
  partner_id: string;
51
52
  created_at: string;
52
53
  updated_at: string;
@@ -66,14 +67,15 @@ interface UpdateCompanyEmailResponse {
66
67
  data: CompanyData | null;
67
68
  }
68
69
  interface GetCompaniesQuery {
70
+ partner_id: string;
69
71
  limit?: number;
70
72
  direction?: "forward" | "backward";
71
73
  cursor?: string;
72
74
  }
73
75
  interface CompanyListItem {
74
76
  id: string;
75
- name: string;
76
- email: string;
77
+ company_name: string;
78
+ company_email: string;
77
79
  partner_id: string;
78
80
  network: string;
79
81
  token: string;
@@ -113,15 +115,117 @@ interface UpdateCompanyPaymentResponse {
113
115
 
114
116
  declare class CompanyAPI {
115
117
  private http;
116
- private partnerId;
117
- private apiKey;
118
- constructor(http: HttpClient, partnerId: string, apiKey: string);
118
+ constructor(http: HttpClient);
119
119
  createCompany(payload: CreateCompanyPayload, jwtToken: string): Promise<CreateCompanyResponse>;
120
120
  updateCompanyEmail(payload: UpdateCompanyEmailPayload, jwtToken: string): Promise<UpdateCompanyEmailResponse>;
121
- getCompaniesByPartner(jwtToken: string, query?: GetCompaniesQuery): Promise<GetCompaniesResponse>;
121
+ getCompaniesByPartner(jwtToken: string, query: GetCompaniesQuery): Promise<GetCompaniesResponse>;
122
122
  updateCompanyPaymentMethod(payload: UpdateCompanyPaymentPayload, jwtToken: string): Promise<UpdateCompanyPaymentResponse>;
123
123
  }
124
124
 
125
+ interface CreateMerchantPayload {
126
+ payment_method: PaymentMethod;
127
+ name: string;
128
+ email: string;
129
+ company_id: string;
130
+ }
131
+ interface CreateMerchantResponse {
132
+ success: boolean;
133
+ message: string;
134
+ data: MerchantData | null;
135
+ }
136
+ interface UpdateMerchantPaymentPayload {
137
+ company_id: string;
138
+ merchant_id: string;
139
+ payment_method: {
140
+ network: string;
141
+ token: string;
142
+ address: string;
143
+ };
144
+ }
145
+ interface UpdateMerchantPaymentResponse {
146
+ success: boolean;
147
+ message: string;
148
+ data: MerchantData | null;
149
+ }
150
+ interface UpdateMerchantEmailPayload {
151
+ company_id: string;
152
+ merchant_id: string;
153
+ email: string;
154
+ }
155
+ interface UpdateMerchantEmailResponse {
156
+ success: boolean;
157
+ message: string;
158
+ data: MerchantData | null;
159
+ }
160
+ interface MerchantListQuery {
161
+ company_id?: string;
162
+ limit?: number;
163
+ cursor?: string;
164
+ forward?: string;
165
+ backward?: string;
166
+ }
167
+ interface MerchantListData {
168
+ id: string;
169
+ company_id: string;
170
+ name: string;
171
+ email: string;
172
+ partner_id: string;
173
+ network: string;
174
+ token: string;
175
+ address: string;
176
+ created_at: string;
177
+ updated_at: string;
178
+ }
179
+ interface GetMerchantListResponse {
180
+ forward_cursor: string;
181
+ backward_cursor: string;
182
+ has_forward: boolean;
183
+ has_backward: boolean;
184
+ data: MerchantListData | null;
185
+ }
186
+ interface GetMerchantQuery {
187
+ merchant_id?: string;
188
+ }
189
+ interface MerchantData {
190
+ id: string;
191
+ name: string;
192
+ email: string;
193
+ company_id: string;
194
+ partner_id: string;
195
+ network: string;
196
+ token: string;
197
+ address: string;
198
+ created_at: string;
199
+ updated_at: string;
200
+ }
201
+ interface MerchantData {
202
+ id: string;
203
+ company_id: string;
204
+ name: string;
205
+ email: string;
206
+ partner_id: string;
207
+ network: string;
208
+ token: string;
209
+ address: string;
210
+ created_at: string;
211
+ updated_at: string;
212
+ }
213
+ interface GetMerchantResponse {
214
+ success: boolean;
215
+ message: string;
216
+ data: MerchantData | null;
217
+ }
218
+
219
+ declare class MerchantAPI {
220
+ private http;
221
+ constructor(http: HttpClient);
222
+ createMerchant(payload: CreateMerchantPayload, jwtToken: string): Promise<CreateMerchantResponse>;
223
+ updateMerchantPaymentMethod(payload: UpdateMerchantPaymentPayload, jwtToken: string): Promise<UpdateMerchantPaymentResponse>;
224
+ updateMerchantEmail(payload: UpdateMerchantEmailPayload, jwtToken: string): Promise<UpdateMerchantEmailResponse>;
225
+ getMerchantList(jwtToken: string, query?: MerchantListQuery): Promise<GetMerchantListResponse>;
226
+ getSingleMerchant(jwtToken: string, query?: GetMerchantQuery): Promise<GetMerchantResponse>;
227
+ }
228
+
125
229
  interface MorambaClientConfig {
126
230
  baseURL: string;
127
231
  apiKey: string;
@@ -131,6 +235,7 @@ declare class MorambaClient {
131
235
  auth: AuthAPI;
132
236
  private http;
133
237
  company: CompanyAPI;
238
+ merchant: MerchantAPI;
134
239
  constructor(config: MorambaClientConfig);
135
240
  }
136
241
 
@@ -156,4 +261,4 @@ declare function sepoliaApprove(options: SepoliaApproveOptions): Promise<{
156
261
  receipt: any;
157
262
  }>;
158
263
 
159
- export { type CompanyData, type CompanyListItem, type CreateCompanyPayload, type CreateCompanyResponse, type CreateJwtPayload, type CreateJwtResponse, type GetCompaniesQuery, type GetCompaniesResponse, type JwtTokenData, type MonadApproveOptions, MorambaClient, type MorambaClientConfig, type PaginationData, type PaymentMethod, type SepoliaApproveOptions, type UpdateCompanyEmailPayload, type UpdateCompanyEmailResponse, type UpdateCompanyPaymentPayload, type UpdateCompanyPaymentResponse, monadApprove, sepoliaApprove };
264
+ export { type CompanyData, type CompanyListItem, type CreateCompanyPayload, type CreateCompanyResponse, type CreateJwtPayload, type CreateJwtResponse, type GetCompaniesQuery, type GetCompaniesResponse, type JwtTokenData, type MonadApproveOptions, MorambaClient, type MorambaClientConfig, type PaginationData, type SepoliaApproveOptions, type UpdateCompanyEmailPayload, type UpdateCompanyEmailResponse, type UpdateCompanyPaymentPayload, type UpdateCompanyPaymentResponse, monadApprove, sepoliaApprove };
package/dist/index.d.ts CHANGED
@@ -34,19 +34,20 @@ declare class AuthAPI {
34
34
  }
35
35
 
36
36
  interface PaymentMethod {
37
- network: string;
38
- token: string;
39
- address: string;
37
+ payment_network: string;
38
+ payment_token_name: string;
39
+ payment_token_address: string;
40
40
  }
41
+
41
42
  interface CreateCompanyPayload {
42
43
  payment_method: PaymentMethod;
43
- name: string;
44
- email: string;
44
+ company_name: string;
45
+ company_email: string;
45
46
  }
46
47
  interface CompanyData {
47
48
  id: string;
48
- name: string;
49
- email: string;
49
+ company_name: string;
50
+ company_email: string;
50
51
  partner_id: string;
51
52
  created_at: string;
52
53
  updated_at: string;
@@ -66,14 +67,15 @@ interface UpdateCompanyEmailResponse {
66
67
  data: CompanyData | null;
67
68
  }
68
69
  interface GetCompaniesQuery {
70
+ partner_id: string;
69
71
  limit?: number;
70
72
  direction?: "forward" | "backward";
71
73
  cursor?: string;
72
74
  }
73
75
  interface CompanyListItem {
74
76
  id: string;
75
- name: string;
76
- email: string;
77
+ company_name: string;
78
+ company_email: string;
77
79
  partner_id: string;
78
80
  network: string;
79
81
  token: string;
@@ -113,15 +115,117 @@ interface UpdateCompanyPaymentResponse {
113
115
 
114
116
  declare class CompanyAPI {
115
117
  private http;
116
- private partnerId;
117
- private apiKey;
118
- constructor(http: HttpClient, partnerId: string, apiKey: string);
118
+ constructor(http: HttpClient);
119
119
  createCompany(payload: CreateCompanyPayload, jwtToken: string): Promise<CreateCompanyResponse>;
120
120
  updateCompanyEmail(payload: UpdateCompanyEmailPayload, jwtToken: string): Promise<UpdateCompanyEmailResponse>;
121
- getCompaniesByPartner(jwtToken: string, query?: GetCompaniesQuery): Promise<GetCompaniesResponse>;
121
+ getCompaniesByPartner(jwtToken: string, query: GetCompaniesQuery): Promise<GetCompaniesResponse>;
122
122
  updateCompanyPaymentMethod(payload: UpdateCompanyPaymentPayload, jwtToken: string): Promise<UpdateCompanyPaymentResponse>;
123
123
  }
124
124
 
125
+ interface CreateMerchantPayload {
126
+ payment_method: PaymentMethod;
127
+ name: string;
128
+ email: string;
129
+ company_id: string;
130
+ }
131
+ interface CreateMerchantResponse {
132
+ success: boolean;
133
+ message: string;
134
+ data: MerchantData | null;
135
+ }
136
+ interface UpdateMerchantPaymentPayload {
137
+ company_id: string;
138
+ merchant_id: string;
139
+ payment_method: {
140
+ network: string;
141
+ token: string;
142
+ address: string;
143
+ };
144
+ }
145
+ interface UpdateMerchantPaymentResponse {
146
+ success: boolean;
147
+ message: string;
148
+ data: MerchantData | null;
149
+ }
150
+ interface UpdateMerchantEmailPayload {
151
+ company_id: string;
152
+ merchant_id: string;
153
+ email: string;
154
+ }
155
+ interface UpdateMerchantEmailResponse {
156
+ success: boolean;
157
+ message: string;
158
+ data: MerchantData | null;
159
+ }
160
+ interface MerchantListQuery {
161
+ company_id?: string;
162
+ limit?: number;
163
+ cursor?: string;
164
+ forward?: string;
165
+ backward?: string;
166
+ }
167
+ interface MerchantListData {
168
+ id: string;
169
+ company_id: string;
170
+ name: string;
171
+ email: string;
172
+ partner_id: string;
173
+ network: string;
174
+ token: string;
175
+ address: string;
176
+ created_at: string;
177
+ updated_at: string;
178
+ }
179
+ interface GetMerchantListResponse {
180
+ forward_cursor: string;
181
+ backward_cursor: string;
182
+ has_forward: boolean;
183
+ has_backward: boolean;
184
+ data: MerchantListData | null;
185
+ }
186
+ interface GetMerchantQuery {
187
+ merchant_id?: string;
188
+ }
189
+ interface MerchantData {
190
+ id: string;
191
+ name: string;
192
+ email: string;
193
+ company_id: string;
194
+ partner_id: string;
195
+ network: string;
196
+ token: string;
197
+ address: string;
198
+ created_at: string;
199
+ updated_at: string;
200
+ }
201
+ interface MerchantData {
202
+ id: string;
203
+ company_id: string;
204
+ name: string;
205
+ email: string;
206
+ partner_id: string;
207
+ network: string;
208
+ token: string;
209
+ address: string;
210
+ created_at: string;
211
+ updated_at: string;
212
+ }
213
+ interface GetMerchantResponse {
214
+ success: boolean;
215
+ message: string;
216
+ data: MerchantData | null;
217
+ }
218
+
219
+ declare class MerchantAPI {
220
+ private http;
221
+ constructor(http: HttpClient);
222
+ createMerchant(payload: CreateMerchantPayload, jwtToken: string): Promise<CreateMerchantResponse>;
223
+ updateMerchantPaymentMethod(payload: UpdateMerchantPaymentPayload, jwtToken: string): Promise<UpdateMerchantPaymentResponse>;
224
+ updateMerchantEmail(payload: UpdateMerchantEmailPayload, jwtToken: string): Promise<UpdateMerchantEmailResponse>;
225
+ getMerchantList(jwtToken: string, query?: MerchantListQuery): Promise<GetMerchantListResponse>;
226
+ getSingleMerchant(jwtToken: string, query?: GetMerchantQuery): Promise<GetMerchantResponse>;
227
+ }
228
+
125
229
  interface MorambaClientConfig {
126
230
  baseURL: string;
127
231
  apiKey: string;
@@ -131,6 +235,7 @@ declare class MorambaClient {
131
235
  auth: AuthAPI;
132
236
  private http;
133
237
  company: CompanyAPI;
238
+ merchant: MerchantAPI;
134
239
  constructor(config: MorambaClientConfig);
135
240
  }
136
241
 
@@ -156,4 +261,4 @@ declare function sepoliaApprove(options: SepoliaApproveOptions): Promise<{
156
261
  receipt: any;
157
262
  }>;
158
263
 
159
- export { type CompanyData, type CompanyListItem, type CreateCompanyPayload, type CreateCompanyResponse, type CreateJwtPayload, type CreateJwtResponse, type GetCompaniesQuery, type GetCompaniesResponse, type JwtTokenData, type MonadApproveOptions, MorambaClient, type MorambaClientConfig, type PaginationData, type PaymentMethod, type SepoliaApproveOptions, type UpdateCompanyEmailPayload, type UpdateCompanyEmailResponse, type UpdateCompanyPaymentPayload, type UpdateCompanyPaymentResponse, monadApprove, sepoliaApprove };
264
+ export { type CompanyData, type CompanyListItem, type CreateCompanyPayload, type CreateCompanyResponse, type CreateJwtPayload, type CreateJwtResponse, type GetCompaniesQuery, type GetCompaniesResponse, type JwtTokenData, type MonadApproveOptions, MorambaClient, type MorambaClientConfig, type PaginationData, type SepoliaApproveOptions, type UpdateCompanyEmailPayload, type UpdateCompanyEmailResponse, type UpdateCompanyPaymentPayload, type UpdateCompanyPaymentResponse, monadApprove, sepoliaApprove };
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";var R=Object.create;var u=Object.defineProperty;var k=Object.getOwnPropertyDescriptor;var T=Object.getOwnPropertyNames;var E=Object.getPrototypeOf,_=Object.prototype.hasOwnProperty;var U=(r,t)=>{for(var e in t)u(r,e,{get:t[e],enumerable:!0})},w=(r,t,e,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of T(t))!_.call(r,n)&&n!==e&&u(r,n,{get:()=>t[n],enumerable:!(o=k(t,n))||o.enumerable});return r};var K=(r,t,e)=>(e=r!=null?R(E(r)):{},w(t||!r||!r.__esModule?u(e,"default",{value:r,enumerable:!0}):e,r)),N=r=>w(u({},"__esModule",{value:!0}),r);var B={};U(B,{MorambaClient:()=>x,monadApprove:()=>M,sepoliaApprove:()=>O});module.exports=N(B);var P=K(require("axios")),y=class{constructor(t,e={},o=4,n=300){this.client=P.default.create({baseURL:t,headers:e,timeout:1e4}),this.maxRetries=o,this.retryDelay=n,this.setupRetryInterceptor()}get axiosInstance(){return this.client}setupRetryInterceptor(){this.client.interceptors.response.use(t=>t,async t=>{let e=t.config;if(!e||(e._retryCount||(e._retryCount=0),e._retryCount>=this.maxRetries))throw t;e._retryCount++;let o=this.retryDelay*Math.pow(2,e._retryCount);return await new Promise(n=>setTimeout(n,o)),this.client(e)})}post(t,e,o={}){return this.client.post(t,e,{headers:o}).then(n=>n.data)}patch(t,e,o={}){return this.client.patch(t,e,{headers:o}).then(n=>n.data)}get(t,e={}){return this.client.get(t,{headers:e}).then(o=>o.data)}};var h=class{constructor(t,e,o){this.http=t;this.partnerId=e;this.apiKey=o}createJwtToken(t){let e={...t,partner_id:this.partnerId,api_key:this.apiKey};return this.http.post("/api/v1/morambacypto/create/jwt_token",e)}};var g=class{constructor(t,e,o){this.http=t;this.partnerId=e;this.apiKey=o}createCompany(t,e){let o={...t,partner_id:this.partnerId,api_key:this.apiKey};return this.http.post("/api/v1/morambacypto/create/company",o,{Authorization:`Bearer ${e}`})}updateCompanyEmail(t,e){let o={...t,partner_id:this.partnerId,api_key:this.apiKey};return this.http.patch("/api/v1/morambacypto/update/company/email",o,{Authorization:`Bearer ${e}`})}getCompaniesByPartner(t,e={}){let o=new URLSearchParams;return e.limit&&o.append("limit",String(e.limit)),e.direction&&o.append("direction",e.direction),e.cursor&&o.append("cursor",e.cursor),this.http.get(`/api/v1/morambacypto/companies/partner/${this.partnerId}?${o.toString()}`,{Authorization:`Bearer ${t}`})}updateCompanyPaymentMethod(t,e){let o={...t,partner_id:this.partnerId,api_key:this.apiKey};return this.http.patch("/api/v1/morambacypto/update/company/payment",o,{Authorization:`Bearer ${e}`})}};var x=class{constructor(t){this.http=new y(t.baseURL,{"Content-Type":"application/json"}),this.auth=new h(this.http,t.partnerId,t.apiKey),this.company=new g(this.http,t.partnerId,t.apiKey)}};var s=require("ethers");var b={rpc:"https://testnet-rpc.monad.xyz",spender:"0xbAcEa624831C5f294a5E7FeC519232AA37ec0a8C",token:"0x62F6c82114809C00a1293be02A43C05a3F917202",decimals:18,defaultAmount:"1000"},I={rpc:"https://rpc.sepolia.org",spender:"0x6E2024Da220C081059f606D9EEAe670c84Ead9Ab",token:"0xbAcEa624831C5f294a5E7FeC519232AA37ec0a8C",decimals:18,defaultAmount:"1000"};async function M(r){let{privateKey:t,unlimited:e=!0,amount:o,decimalsOverride:n}=r,a=b,C=new s.ethers.JsonRpcProvider(a.rpc),c=new s.ethers.Wallet(t,C),f=["function approve(address spender, uint256 value) external returns (bool)"],A=new s.ethers.Contract(a.token,f,c),m=n!=null?n:a.decimals,l=o!=null?o:a.defaultAmount,v=e?s.ethers.MaxUint256:s.ethers.parseUnits(l,m);console.log("\u26A1 Monad approve()"),console.log("RPC:",a.rpc),console.log("Token:",a.token),console.log("Spender:",a.spender),console.log("Decimals:",m),console.log("Amount:",e?"UNLIMITED":l),console.log("From:",await c.getAddress());let i=await A.approve(a.spender,v);console.log("\u{1F4E4} TX:",i.hash);let d=await i.wait();return console.log("\u2705 Block:",d.blockNumber),{hash:i.hash,receipt:d}}var p=require("ethers");async function O(r){let{privateKey:t,unlimited:e=!0,amount:o,decimalsOverride:n}=r,a=I,C=new p.ethers.JsonRpcProvider(a.rpc),c=new p.ethers.Wallet(t,C),f=["function approve(address spender, uint256 value) external returns (bool)"],A=new p.ethers.Contract(a.token,f,c),m=n!=null?n:a.decimals,l=o!=null?o:a.defaultAmount,v=e?p.ethers.MaxUint256:p.ethers.parseUnits(l,m);console.log("\u26A1 Sepolia approve()"),console.log("RPC:",a.rpc),console.log("Token:",a.token),console.log("Spender:",a.spender),console.log("Decimals:",m),console.log("Amount:",e?"UNLIMITED":l),console.log("From:",await c.getAddress());let i=await A.approve(a.spender,v);console.log("\u{1F4E4} TX:",i.hash);let d=await i.wait();return console.log("\u2705 Block:",d.blockNumber),{hash:i.hash,receipt:d}}0&&(module.exports={MorambaClient,monadApprove,sepoliaApprove});
1
+ "use strict";var U=Object.create;var d=Object.defineProperty;var k=Object.getOwnPropertyDescriptor;var E=Object.getOwnPropertyNames;var I=Object.getPrototypeOf,T=Object.prototype.hasOwnProperty;var _=(o,e)=>{for(var t in e)d(o,t,{get:e[t],enumerable:!0})},M=(o,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of E(e))!T.call(o,a)&&a!==t&&d(o,a,{get:()=>e[a],enumerable:!(r=k(e,a))||r.enumerable});return o};var S=(o,e,t)=>(t=o!=null?U(I(o)):{},M(e||!o||!o.__esModule?d(t,"default",{value:o,enumerable:!0}):t,o)),G=o=>M(d({},"__esModule",{value:!0}),o);var $={};_($,{MorambaClient:()=>x,monadApprove:()=>L,sepoliaApprove:()=>N});module.exports=G($);var R=S(require("axios")),u=class{constructor(e,t={},r=4,a=300){this.client=R.default.create({baseURL:e,headers:t,timeout:1e4}),this.maxRetries=r,this.retryDelay=a,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(a=>setTimeout(a,r)),this.client(t)})}post(e,t,r={}){return this.client.post(e,t,{headers:r}).then(a=>a.data)}patch(e,t,r={}){return this.client.patch(e,t,{headers:r}).then(a=>a.data)}get(e,t={}){return this.client.get(e,{headers:t}).then(r=>r.data)}};var y=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 C=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 x=class{constructor(e){this.http=new u(e.baseURL,{"Content-Type":"application/json"}),this.auth=new y(this.http,e.partnerId,e.apiKey),this.company=new g(this.http),this.merchant=new C(this.http)}};var s=require("ethers");var b={rpc:"https://testnet-rpc.monad.xyz",spender:"0xbAcEa624831C5f294a5E7FeC519232AA37ec0a8C",token:"0x62F6c82114809C00a1293be02A43C05a3F917202",decimals:18,defaultAmount:"1000"},v={rpc:"https://rpc.sepolia.org",spender:"0x6E2024Da220C081059f606D9EEAe670c84Ead9Ab",token:"0xbAcEa624831C5f294a5E7FeC519232AA37ec0a8C",decimals:18,defaultAmount:"1000"};async function L(o){let{privateKey:e,unlimited:t=!0,amount:r,decimalsOverride:a}=o,n=b,f=new s.ethers.JsonRpcProvider(n.rpc),c=new s.ethers.Wallet(e,f),P=["function approve(address spender, uint256 value) external returns (bool)"],A=new s.ethers.Contract(n.token,P,c),m=a!=null?a:n.decimals,l=r!=null?r:n.defaultAmount,w=t?s.ethers.MaxUint256:s.ethers.parseUnits(l,m);console.log("\u26A1 Monad approve()"),console.log("RPC:",n.rpc),console.log("Token:",n.token),console.log("Spender:",n.spender),console.log("Decimals:",m),console.log("Amount:",t?"UNLIMITED":l),console.log("From:",await c.getAddress());let i=await A.approve(n.spender,w);console.log("\u{1F4E4} TX:",i.hash);let h=await i.wait();return console.log("\u2705 Block:",h.blockNumber),{hash:i.hash,receipt:h}}var p=require("ethers");async function N(o){let{privateKey:e,unlimited:t=!0,amount:r,decimalsOverride:a}=o,n=v,f=new p.ethers.JsonRpcProvider(n.rpc),c=new p.ethers.Wallet(e,f),P=["function approve(address spender, uint256 value) external returns (bool)"],A=new p.ethers.Contract(n.token,P,c),m=a!=null?a:n.decimals,l=r!=null?r:n.defaultAmount,w=t?p.ethers.MaxUint256:p.ethers.parseUnits(l,m);console.log("\u26A1 Sepolia approve()"),console.log("RPC:",n.rpc),console.log("Token:",n.token),console.log("Spender:",n.spender),console.log("Decimals:",m),console.log("Amount:",t?"UNLIMITED":l),console.log("From:",await c.getAddress());let i=await A.approve(n.spender,w);console.log("\u{1F4E4} TX:",i.hash);let h=await i.wait();return console.log("\u2705 Block:",h.blockNumber),{hash:i.hash,receipt:h}}0&&(module.exports={MorambaClient,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/MorambaClient.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 createJwtToken(payload: CreateJwtPayload): Promise<CreateJwtResponse> {\n const fullBody = {\n ...payload, // { userid }\n partner_id: this.partnerId,\n api_key: this.apiKey,\n };\n\n\n return this.http.post(\"/api/v1/morambacypto/create/jwt_token\", fullBody);\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 private partnerId: string,\n private apiKey: string\n ) { }\n\n createCompany(payload: CreateCompanyPayload, jwtToken: string): Promise<CreateCompanyResponse> {\n const fullBody = {\n ...payload,\n partner_id: this.partnerId,\n api_key: this.apiKey,\n };\n\n return this.http.post(\n \"/api/v1/morambacypto/create/company\",\n fullBody,\n {\n Authorization: `Bearer ${jwtToken}`,\n }\n );\n }\n\n updateCompanyEmail(\n payload: UpdateCompanyEmailPayload,\n jwtToken: string\n ): Promise<UpdateCompanyEmailResponse> {\n const fullBody = {\n ...payload,\n partner_id: this.partnerId,\n api_key: this.apiKey,\n };\n\n return this.http.patch(\n \"/api/v1/morambacypto/update/company/email\",\n fullBody,\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 `/api/v1/morambacypto/companies/partner/${this.partnerId}?${params.toString()}`,\n {\n Authorization: `Bearer ${jwtToken}`,\n }\n );\n }\n\n updateCompanyPaymentMethod(\n payload: UpdateCompanyPaymentPayload,\n jwtToken: string\n ): Promise<UpdateCompanyPaymentResponse> {\n const fullBody = {\n ...payload,\n partner_id: this.partnerId,\n api_key: this.apiKey,\n };\n\n return this.http.patch(\n \"/api/v1/morambacypto/update/company/payment\",\n fullBody,\n {\n Authorization: `Bearer ${jwtToken}`,\n }\n );\n }\n\n\n}\n","import { HttpClient } from \"./client/HttpClient\";\nimport { AuthAPI } from \"./apis/auth.api\";\nimport { CompanyAPI } from \"./apis/company.api\";\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\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, config.partnerId, config.apiKey);\n }\n}\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","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","fullBody","CompanyAPI","http","partnerId","apiKey","payload","jwtToken","fullBody","query","params","MorambaClient","config","HttpClient","AuthAPI","CompanyAPI","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/MorambaClient.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/HttpClient\";\nimport { AuthAPI } from \"./apis/auth.api\";\nimport { CompanyAPI } from \"./apis/company.api\";\nimport { MerchantAPI } from \"./apis/merchant.api\";\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\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 }\n}\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","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","MorambaClient","config","HttpClient","AuthAPI","CompanyAPI","MerchantAPI","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 P from"axios";var u=class{constructor(e,t={},o=4,n=300){this.client=P.create({baseURL:e,headers:t,timeout:1e4}),this.maxRetries=o,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 o=this.retryDelay*Math.pow(2,t._retryCount);return await new Promise(n=>setTimeout(n,o)),this.client(t)})}post(e,t,o={}){return this.client.post(e,t,{headers:o}).then(n=>n.data)}patch(e,t,o={}){return this.client.patch(e,t,{headers:o}).then(n=>n.data)}get(e,t={}){return this.client.get(e,{headers:t}).then(o=>o.data)}};var y=class{constructor(e,t,o){this.http=e;this.partnerId=t;this.apiKey=o}createJwtToken(e){let t={...e,partner_id:this.partnerId,api_key:this.apiKey};return this.http.post("/api/v1/morambacypto/create/jwt_token",t)}};var h=class{constructor(e,t,o){this.http=e;this.partnerId=t;this.apiKey=o}createCompany(e,t){let o={...e,partner_id:this.partnerId,api_key:this.apiKey};return this.http.post("/api/v1/morambacypto/create/company",o,{Authorization:`Bearer ${t}`})}updateCompanyEmail(e,t){let o={...e,partner_id:this.partnerId,api_key:this.apiKey};return this.http.patch("/api/v1/morambacypto/update/company/email",o,{Authorization:`Bearer ${t}`})}getCompaniesByPartner(e,t={}){let o=new URLSearchParams;return t.limit&&o.append("limit",String(t.limit)),t.direction&&o.append("direction",t.direction),t.cursor&&o.append("cursor",t.cursor),this.http.get(`/api/v1/morambacypto/companies/partner/${this.partnerId}?${o.toString()}`,{Authorization:`Bearer ${e}`})}updateCompanyPaymentMethod(e,t){let o={...e,partner_id:this.partnerId,api_key:this.apiKey};return this.http.patch("/api/v1/morambacypto/update/company/payment",o,{Authorization:`Bearer ${t}`})}};var v=class{constructor(e){this.http=new u(e.baseURL,{"Content-Type":"application/json"}),this.auth=new y(this.http,e.partnerId,e.apiKey),this.company=new h(this.http,e.partnerId,e.apiKey)}};import{ethers as l}from"ethers";var x={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 S(a){let{privateKey:e,unlimited:t=!0,amount:o,decimalsOverride:n}=a,r=x,g=new l.JsonRpcProvider(r.rpc),s=new l.Wallet(e,g),C=["function approve(address spender, uint256 value) external returns (bool)"],f=new l.Contract(r.token,C,s),p=n!=null?n:r.decimals,c=o!=null?o:r.defaultAmount,A=t?l.MaxUint256:l.parseUnits(c,p);console.log("\u26A1 Monad approve()"),console.log("RPC:",r.rpc),console.log("Token:",r.token),console.log("Spender:",r.spender),console.log("Decimals:",p),console.log("Amount:",t?"UNLIMITED":c),console.log("From:",await s.getAddress());let i=await f.approve(r.spender,A);console.log("\u{1F4E4} TX:",i.hash);let m=await i.wait();return console.log("\u2705 Block:",m.blockNumber),{hash:i.hash,receipt:m}}import{ethers as d}from"ethers";async function $(a){let{privateKey:e,unlimited:t=!0,amount:o,decimalsOverride:n}=a,r=w,g=new d.JsonRpcProvider(r.rpc),s=new d.Wallet(e,g),C=["function approve(address spender, uint256 value) external returns (bool)"],f=new d.Contract(r.token,C,s),p=n!=null?n:r.decimals,c=o!=null?o:r.defaultAmount,A=t?d.MaxUint256:d.parseUnits(c,p);console.log("\u26A1 Sepolia approve()"),console.log("RPC:",r.rpc),console.log("Token:",r.token),console.log("Spender:",r.spender),console.log("Decimals:",p),console.log("Amount:",t?"UNLIMITED":c),console.log("From:",await s.getAddress());let i=await f.approve(r.spender,A);console.log("\u{1F4E4} TX:",i.hash);let m=await i.wait();return console.log("\u2705 Block:",m.blockNumber),{hash:i.hash,receipt:m}}export{v as MorambaClient,S as monadApprove,$ as sepoliaApprove};
1
+ import R from"axios";var d=class{constructor(e,t={},r=4,a=300){this.client=R.create({baseURL:e,headers:t,timeout:1e4}),this.maxRetries=r,this.retryDelay=a,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(a=>setTimeout(a,r)),this.client(t)})}post(e,t,r={}){return this.client.post(e,t,{headers:r}).then(a=>a.data)}patch(e,t,r={}){return this.client.patch(e,t,{headers:r}).then(a=>a.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 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 g=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 w=class{constructor(e){this.http=new d(e.baseURL,{"Content-Type":"application/json"}),this.auth=new u(this.http,e.partnerId,e.apiKey),this.company=new y(this.http),this.merchant=new g(this.http)}};import{ethers as l}from"ethers";var x={rpc:"https://testnet-rpc.monad.xyz",spender:"0xbAcEa624831C5f294a5E7FeC519232AA37ec0a8C",token:"0x62F6c82114809C00a1293be02A43C05a3F917202",decimals:18,defaultAmount:"1000"},M={rpc:"https://rpc.sepolia.org",spender:"0x6E2024Da220C081059f606D9EEAe670c84Ead9Ab",token:"0xbAcEa624831C5f294a5E7FeC519232AA37ec0a8C",decimals:18,defaultAmount:"1000"};async function F(n){let{privateKey:e,unlimited:t=!0,amount:r,decimalsOverride:a}=n,o=x,C=new l.JsonRpcProvider(o.rpc),s=new l.Wallet(e,C),f=["function approve(address spender, uint256 value) external returns (bool)"],P=new l.Contract(o.token,f,s),p=a!=null?a:o.decimals,c=r!=null?r:o.defaultAmount,A=t?l.MaxUint256:l.parseUnits(c,p);console.log("\u26A1 Monad approve()"),console.log("RPC:",o.rpc),console.log("Token:",o.token),console.log("Spender:",o.spender),console.log("Decimals:",p),console.log("Amount:",t?"UNLIMITED":c),console.log("From:",await s.getAddress());let i=await P.approve(o.spender,A);console.log("\u{1F4E4} TX:",i.hash);let m=await i.wait();return console.log("\u2705 Block:",m.blockNumber),{hash:i.hash,receipt:m}}import{ethers as h}from"ethers";async function Q(n){let{privateKey:e,unlimited:t=!0,amount:r,decimalsOverride:a}=n,o=M,C=new h.JsonRpcProvider(o.rpc),s=new h.Wallet(e,C),f=["function approve(address spender, uint256 value) external returns (bool)"],P=new h.Contract(o.token,f,s),p=a!=null?a:o.decimals,c=r!=null?r:o.defaultAmount,A=t?h.MaxUint256:h.parseUnits(c,p);console.log("\u26A1 Sepolia approve()"),console.log("RPC:",o.rpc),console.log("Token:",o.token),console.log("Spender:",o.spender),console.log("Decimals:",p),console.log("Amount:",t?"UNLIMITED":c),console.log("From:",await s.getAddress());let i=await P.approve(o.spender,A);console.log("\u{1F4E4} TX:",i.hash);let m=await i.wait();return console.log("\u2705 Block:",m.blockNumber),{hash:i.hash,receipt:m}}export{w as MorambaClient,F as monadApprove,Q 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/MorambaClient.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 createJwtToken(payload: CreateJwtPayload): Promise<CreateJwtResponse> {\n const fullBody = {\n ...payload, // { userid }\n partner_id: this.partnerId,\n api_key: this.apiKey,\n };\n\n\n return this.http.post(\"/api/v1/morambacypto/create/jwt_token\", fullBody);\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 private partnerId: string,\n private apiKey: string\n ) { }\n\n createCompany(payload: CreateCompanyPayload, jwtToken: string): Promise<CreateCompanyResponse> {\n const fullBody = {\n ...payload,\n partner_id: this.partnerId,\n api_key: this.apiKey,\n };\n\n return this.http.post(\n \"/api/v1/morambacypto/create/company\",\n fullBody,\n {\n Authorization: `Bearer ${jwtToken}`,\n }\n );\n }\n\n updateCompanyEmail(\n payload: UpdateCompanyEmailPayload,\n jwtToken: string\n ): Promise<UpdateCompanyEmailResponse> {\n const fullBody = {\n ...payload,\n partner_id: this.partnerId,\n api_key: this.apiKey,\n };\n\n return this.http.patch(\n \"/api/v1/morambacypto/update/company/email\",\n fullBody,\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 `/api/v1/morambacypto/companies/partner/${this.partnerId}?${params.toString()}`,\n {\n Authorization: `Bearer ${jwtToken}`,\n }\n );\n }\n\n updateCompanyPaymentMethod(\n payload: UpdateCompanyPaymentPayload,\n jwtToken: string\n ): Promise<UpdateCompanyPaymentResponse> {\n const fullBody = {\n ...payload,\n partner_id: this.partnerId,\n api_key: this.apiKey,\n };\n\n return this.http.patch(\n \"/api/v1/morambacypto/update/company/payment\",\n fullBody,\n {\n Authorization: `Bearer ${jwtToken}`,\n }\n );\n }\n\n\n}\n","import { HttpClient } from \"./client/HttpClient\";\nimport { AuthAPI } from \"./apis/auth.api\";\nimport { CompanyAPI } from \"./apis/company.api\";\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\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, config.partnerId, config.apiKey);\n }\n}\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","fullBody","CompanyAPI","http","partnerId","apiKey","payload","jwtToken","fullBody","query","params","MorambaClient","config","HttpClient","AuthAPI","CompanyAPI","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/MorambaClient.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/HttpClient\";\nimport { AuthAPI } from \"./apis/auth.api\";\nimport { CompanyAPI } from \"./apis/company.api\";\nimport { MerchantAPI } from \"./apis/merchant.api\";\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\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 }\n}\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","MorambaClient","config","HttpClient","AuthAPI","CompanyAPI","MerchantAPI","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.15",
3
+ "version": "0.0.17",
4
4
  "description": "This library use for interact with moramba-crypto project",
5
5
  "main": "dist/index.cjs",
6
6
  "module": "dist/index.js",
@@ -9,7 +9,8 @@
9
9
  "build": "tsup",
10
10
  "clean": "rm -rf dist",
11
11
  "prepublishOnly": "npm run clean && npm run build",
12
- "test": "jest"
12
+ "test": "jest",
13
+ "spellcheck": "cspell \"**/*\""
13
14
  },
14
15
  "files": [
15
16
  "dist"
@@ -27,7 +28,9 @@
27
28
  },
28
29
  "devDependencies": {
29
30
  "@types/jest": "^30.0.0",
31
+ "@types/node": "^24.10.1",
30
32
  "axios-mock-adapter": "^2.1.0",
33
+ "cspell": "^9.4.0",
31
34
  "jest": "^30.2.0",
32
35
  "ts-jest": "^29.4.5",
33
36
  "tsup": "^8.5.1"