@primuslabs/fund-js-sdk 0.1.1 → 0.1.3

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.js CHANGED
@@ -94,8 +94,14 @@ var Contract = class {
94
94
  }
95
95
  this.address = address;
96
96
  this.provider = provider;
97
- const signer = this.provider.getSigner();
98
- this.contractInstance = new import_ethers.ethers.Contract(this.address, abiJson, signer);
97
+ let formatProvider;
98
+ if (provider instanceof import_ethers.ethers.providers.JsonRpcProvider) {
99
+ formatProvider = provider;
100
+ } else {
101
+ const web3Provider = new import_ethers.ethers.providers.Web3Provider(provider);
102
+ formatProvider = web3Provider.getSigner();
103
+ }
104
+ this.contractInstance = new import_ethers.ethers.Contract(this.address, abiJson, formatProvider);
99
105
  }
100
106
  // Example method to read from the contract
101
107
  async callMethod(functionName, functionParams) {
@@ -125,15 +131,18 @@ var Contract = class {
125
131
  resolve(txreceipt);
126
132
  } catch (error) {
127
133
  console.log("sendTransaction error:", error);
128
- if (error?.code === "ACTION_REJECTED") {
134
+ const errStr = error?.toString()?.toLowerCase() || "";
135
+ const userRejectErrStrArr = ["user rejected", "approval denied"];
136
+ const isUserRejected = userRejectErrStrArr.some((str) => errStr.indexOf(str) > -1);
137
+ if (error?.code === "ACTION_REJECTED" || isUserRejected) {
129
138
  return reject("user rejected transaction");
130
139
  }
131
- if (error?.reason) {
132
- return reject(error.reason);
133
- }
134
- if (error?.data?.message === "insufficient balance") {
135
- return reject(error?.data?.message);
140
+ const insufficientBalanceErrStrArr = ["insufficient balance", "unpredictable_gas_limit"];
141
+ const isInsufficientBalance = insufficientBalanceErrStrArr.some((str) => errStr.indexOf(str) > -1);
142
+ if (isInsufficientBalance) {
143
+ return reject("insufficient balance");
136
144
  }
145
+ return reject(error);
137
146
  }
138
147
  });
139
148
  }
@@ -1090,7 +1099,13 @@ var Fund = class {
1090
1099
  async init(provider, chainId, appId) {
1091
1100
  return new Promise(async (resolve, reject) => {
1092
1101
  try {
1093
- const network = await provider.getNetwork();
1102
+ let formatProvider;
1103
+ if (provider instanceof import_ethers2.ethers.providers.JsonRpcProvider) {
1104
+ formatProvider = provider;
1105
+ } else {
1106
+ formatProvider = new import_ethers2.ethers.providers.Web3Provider(provider);
1107
+ }
1108
+ const network = await formatProvider.getNetwork();
1094
1109
  const providerChainId = network.chainId;
1095
1110
  console.log("init provider", provider, network);
1096
1111
  if (providerChainId !== chainId) {
@@ -1377,13 +1392,7 @@ var PrimusFund = class {
1377
1392
  return reject("chainId is not supported");
1378
1393
  }
1379
1394
  this._fund = new Fund();
1380
- let formatProvider;
1381
- if (provider instanceof import_ethers3.ethers.providers.JsonRpcProvider) {
1382
- formatProvider = new import_ethers3.ethers.providers.JsonRpcProvider(defaultRpcUrl);
1383
- } else {
1384
- formatProvider = new import_ethers3.ethers.providers.Web3Provider(provider);
1385
- }
1386
- const result = await this._fund.init(formatProvider, chainId, appId);
1395
+ const result = await this._fund.init(provider, chainId, appId);
1387
1396
  return resolve(result);
1388
1397
  } catch (error) {
1389
1398
  return reject(error);
package/dist/index.mjs CHANGED
@@ -70,8 +70,14 @@ var Contract = class {
70
70
  }
71
71
  this.address = address;
72
72
  this.provider = provider;
73
- const signer = this.provider.getSigner();
74
- this.contractInstance = new ethers.Contract(this.address, abiJson, signer);
73
+ let formatProvider;
74
+ if (provider instanceof ethers.providers.JsonRpcProvider) {
75
+ formatProvider = provider;
76
+ } else {
77
+ const web3Provider = new ethers.providers.Web3Provider(provider);
78
+ formatProvider = web3Provider.getSigner();
79
+ }
80
+ this.contractInstance = new ethers.Contract(this.address, abiJson, formatProvider);
75
81
  }
76
82
  // Example method to read from the contract
77
83
  async callMethod(functionName, functionParams) {
@@ -101,15 +107,18 @@ var Contract = class {
101
107
  resolve(txreceipt);
102
108
  } catch (error) {
103
109
  console.log("sendTransaction error:", error);
104
- if (error?.code === "ACTION_REJECTED") {
110
+ const errStr = error?.toString()?.toLowerCase() || "";
111
+ const userRejectErrStrArr = ["user rejected", "approval denied"];
112
+ const isUserRejected = userRejectErrStrArr.some((str) => errStr.indexOf(str) > -1);
113
+ if (error?.code === "ACTION_REJECTED" || isUserRejected) {
105
114
  return reject("user rejected transaction");
106
115
  }
107
- if (error?.reason) {
108
- return reject(error.reason);
109
- }
110
- if (error?.data?.message === "insufficient balance") {
111
- return reject(error?.data?.message);
116
+ const insufficientBalanceErrStrArr = ["insufficient balance", "unpredictable_gas_limit"];
117
+ const isInsufficientBalance = insufficientBalanceErrStrArr.some((str) => errStr.indexOf(str) > -1);
118
+ if (isInsufficientBalance) {
119
+ return reject("insufficient balance");
112
120
  }
121
+ return reject(error);
113
122
  }
114
123
  });
115
124
  }
@@ -1066,7 +1075,13 @@ var Fund = class {
1066
1075
  async init(provider, chainId, appId) {
1067
1076
  return new Promise(async (resolve, reject) => {
1068
1077
  try {
1069
- const network = await provider.getNetwork();
1078
+ let formatProvider;
1079
+ if (provider instanceof ethers2.providers.JsonRpcProvider) {
1080
+ formatProvider = provider;
1081
+ } else {
1082
+ formatProvider = new ethers2.providers.Web3Provider(provider);
1083
+ }
1084
+ const network = await formatProvider.getNetwork();
1070
1085
  const providerChainId = network.chainId;
1071
1086
  console.log("init provider", provider, network);
1072
1087
  if (providerChainId !== chainId) {
@@ -1353,13 +1368,7 @@ var PrimusFund = class {
1353
1368
  return reject("chainId is not supported");
1354
1369
  }
1355
1370
  this._fund = new Fund();
1356
- let formatProvider;
1357
- if (provider instanceof ethers3.providers.JsonRpcProvider) {
1358
- formatProvider = new ethers3.providers.JsonRpcProvider(defaultRpcUrl);
1359
- } else {
1360
- formatProvider = new ethers3.providers.Web3Provider(provider);
1361
- }
1362
- const result = await this._fund.init(formatProvider, chainId, appId);
1371
+ const result = await this._fund.init(provider, chainId, appId);
1363
1372
  return resolve(result);
1364
1373
  } catch (error) {
1365
1374
  return reject(error);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@primuslabs/fund-js-sdk",
3
- "version": "0.1.1",
3
+ "version": "0.1.3",
4
4
  "author": "Primus Labs <dev@primuslabs.org>",
5
5
  "description": "Primus fund js sdk",
6
6
  "repository": {