Skip to content

Commit 8dac34e

Browse files
committed
Add method to get contract call transaction
1 parent ba13fe6 commit 8dac34e

2 files changed

Lines changed: 91 additions & 3 deletions

File tree

src/index.js

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -577,6 +577,48 @@ ChainsqlAPI.prototype.getAccountTransactions = function (address, opts, cb) {
577577
}
578578
};
579579

580+
ChainsqlAPI.prototype.getContractTransactions = function (address, opts, cb) {
581+
let callback, newOpt, singleArg;
582+
let isCallback = false;
583+
switch (arguments.length) {
584+
case 1:
585+
newOpt = {};
586+
break;
587+
case 2:
588+
singleArg = arguments[1];
589+
if ((typeof singleArg) === "function") {
590+
callback = singleArg;
591+
isCallback = true;
592+
} else if ((typeof singleArg) === "object") {
593+
newOpt = singleArg;
594+
} else {
595+
throw chainsqlError("wrong params, please check");
596+
}
597+
break;
598+
case 3:
599+
newOpt = opts;
600+
if ((typeof cb) === "function") {
601+
callback = cb;
602+
isCallback = true;
603+
} else {
604+
throw chainsqlError("wrong params, please check");
605+
}
606+
break;
607+
default:
608+
throw chainsqlError("wrong params, please check");
609+
}
610+
611+
if (isCallback) {
612+
this.api.getContractTransactions(address, newOpt).then(function (data) {
613+
callback(null, data);
614+
}).catch(function (err) {
615+
callback(err, null);
616+
});
617+
} else {
618+
return this.api.getContractTransactions(address, newOpt);
619+
}
620+
};
621+
580622
ChainsqlAPI.prototype.getTransaction = function (hash,meta,meta_chain,cb) {
581623
if ((typeof cb) != 'function') {
582624
return this.api.getTransaction(hash,meta,meta_chain);

test/testRipple.js

Lines changed: 49 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ var user3 = {
3333
var tagStep = {
3434
active: 1, gateWay: 2, escrow: 3,
3535
balances: 4, getLedger: 5, getTxs: 6,authorize:7,
36+
getContractTxs:8,getContractTxsAsync:9,
3637
}
3738
var sCurrency = "aaa"
3839
var whiteLists = [
@@ -50,7 +51,7 @@ async function main() {
5051
c.as(root);
5152
c.setRestrict(true);
5253
/**************************************/
53-
let nStep = tagStep.authorize;
54+
let nStep = tagStep.getContractTxs;
5455
switch (nStep) {
5556
case tagStep.active: testActive(); break;// 激活若干账户
5657
case tagStep.gateWay: testGateWay(); break;//部署网管,信任,发行币转账
@@ -59,6 +60,8 @@ async function main() {
5960
case tagStep.getTxs: testTransactions(); break;
6061
case tagStep.getLedger: testGetLedger(); break;
6162
case tagStep.authorize: testAuthorize();break;
63+
case tagStep.getContractTxs: getContractTransactions();break;
64+
case tagStep.getContractTxsAsync: getContractTransactionsAsync();break;
6265
default: break;
6366
}
6467
/**************************************/
@@ -199,7 +202,7 @@ var testBalances = async function () {
199202
var testTransactions = async function () {
200203
let res;
201204
//
202-
let bAll_one = true;
205+
let bAll_one = false;
203206
let bMore = true;
204207
//
205208
if (bAll_one) {
@@ -216,7 +219,7 @@ var testTransactions = async function () {
216219
if (bMore) {
217220
let nLimit = 10;
218221
var options = {
219-
limit: nLimit
222+
limit: nLimit,
220223
};
221224
while (true) {
222225
res = await c.api.getTransactions(root.address, options);
@@ -263,4 +266,47 @@ var testAuthorize = async function(){
263266
console.error("accountAuthorize ", error);
264267
}
265268

269+
}
270+
271+
var getContractTransactions = async function(){
272+
try {
273+
var options = {
274+
limit: 3,
275+
ledgerIndexMin:1,
276+
ledgerIndexMax:100,
277+
marker:{
278+
ledger:53,
279+
seq:5300002
280+
}
281+
};
282+
var obj = await c.getContractTransactions("zwCkG85oeRsmMpQs2auAV8Tc6kQF5aWsr6", options);
283+
console.log("getContractTransactions ", obj);
284+
} catch (error) {
285+
console.error("accountAuthorize ", error);
286+
}
287+
288+
}
289+
290+
var getContractTransactionsAsync = async function(){
291+
try {
292+
var options = {
293+
limit: 3,
294+
ledgerIndexMin:1,
295+
ledgerIndexMax:100,
296+
marker:{
297+
ledger:53,
298+
seq:5300002
299+
}
300+
};
301+
var obj = await c.getContractTransactions("zwCkG85oeRsmMpQs2auAV8Tc6kQF5aWsr6", options, function callback(err,data){
302+
if(err)
303+
console.err("getContractTransactionsAsync", err)
304+
else
305+
console.info("getContractTransactionsAsync", data)
306+
});
307+
//console.log("getContractTransactions ", obj);
308+
} catch (error) {
309+
console.error("accountAuthorize ", error);
310+
}
311+
266312
}

0 commit comments

Comments
 (0)