stxer 0.2.6 → 0.3.1
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/batch-api.d.ts +30 -0
- package/dist/index.d.ts +2 -52
- package/dist/sample/read.d.ts +1 -0
- package/dist/simulation.d.ts +53 -0
- package/dist/stxer.cjs.development.js +210 -39
- package/dist/stxer.cjs.development.js.map +1 -1
- package/dist/stxer.cjs.production.min.js +1 -1
- package/dist/stxer.cjs.production.min.js.map +1 -1
- package/dist/stxer.esm.js +209 -40
- package/dist/stxer.esm.js.map +1 -1
- package/package.json +3 -2
- package/src/batch-api.ts +157 -0
- package/src/index.ts +2 -388
- package/src/sample/counter.ts +7 -43
- package/src/sample/read.ts +127 -0
- package/src/simulation.ts +409 -0
package/dist/stxer.esm.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import { deserializeCV, serializeCV, tupleCV, uintCV, bufferCV, serializeCVBytes, contractPrincipalCV, stringAsciiCV, ClarityVersion, makeUnsignedContractDeploy, PostConditionMode, makeUnsignedSTXTokenTransfer, makeUnsignedContractCall, deserializeTransaction } from '@stacks/transactions';
|
|
1
2
|
import { richFetch, getNodeInfo } from 'ts-clarity';
|
|
2
3
|
import { STACKS_MAINNET, STACKS_TESTNET } from '@stacks/network';
|
|
3
|
-
import { tupleCV, uintCV, bufferCV, serializeCVBytes, contractPrincipalCV, stringAsciiCV, ClarityVersion, makeUnsignedContractDeploy, PostConditionMode, makeUnsignedSTXTokenTransfer, makeUnsignedContractCall } from '@stacks/transactions';
|
|
4
4
|
import { c32addressDecode } from 'c32check';
|
|
5
5
|
|
|
6
6
|
function _arrayLikeToArray(r, a) {
|
|
@@ -368,6 +368,145 @@ function _unsupportedIterableToArray(r, a) {
|
|
|
368
368
|
}
|
|
369
369
|
}
|
|
370
370
|
|
|
371
|
+
var DEFAULT_STXER_API = 'https://api.stxer.xyz';
|
|
372
|
+
function batchRead(_x, _x2) {
|
|
373
|
+
return _batchRead.apply(this, arguments);
|
|
374
|
+
}
|
|
375
|
+
function _batchRead() {
|
|
376
|
+
_batchRead = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(reads, options) {
|
|
377
|
+
var _options$stxerApi;
|
|
378
|
+
var payload, _iterator, _step, variable, _iterator2, _step2, map, ibh, url, data, text, results, rs, variablesLength, i, result, _i, _result;
|
|
379
|
+
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
380
|
+
while (1) switch (_context.prev = _context.next) {
|
|
381
|
+
case 0:
|
|
382
|
+
if (options === void 0) {
|
|
383
|
+
options = {};
|
|
384
|
+
}
|
|
385
|
+
payload = [];
|
|
386
|
+
if (reads.variables != null) {
|
|
387
|
+
for (_iterator = _createForOfIteratorHelperLoose(reads.variables); !(_step = _iterator()).done;) {
|
|
388
|
+
variable = _step.value;
|
|
389
|
+
payload.push([serializeCV(variable.contract), variable.variableName]);
|
|
390
|
+
}
|
|
391
|
+
}
|
|
392
|
+
if (reads.maps != null) {
|
|
393
|
+
for (_iterator2 = _createForOfIteratorHelperLoose(reads.maps); !(_step2 = _iterator2()).done;) {
|
|
394
|
+
map = _step2.value;
|
|
395
|
+
payload.push([serializeCV(map.contract), map.mapName, serializeCV(map.mapKey)]);
|
|
396
|
+
}
|
|
397
|
+
}
|
|
398
|
+
ibh = reads.index_block_hash == null ? null : reads.index_block_hash.startsWith('0x') ? reads.index_block_hash.substring(2) : reads.index_block_hash;
|
|
399
|
+
url = ((_options$stxerApi = options.stxerApi) != null ? _options$stxerApi : DEFAULT_STXER_API) + "/sidecar/v2/batch-reads" + (ibh == null ? '' : "?tip=" + ibh);
|
|
400
|
+
_context.next = 8;
|
|
401
|
+
return fetch(url, {
|
|
402
|
+
method: 'POST',
|
|
403
|
+
body: JSON.stringify(payload)
|
|
404
|
+
});
|
|
405
|
+
case 8:
|
|
406
|
+
data = _context.sent;
|
|
407
|
+
_context.next = 11;
|
|
408
|
+
return data.text();
|
|
409
|
+
case 11:
|
|
410
|
+
text = _context.sent;
|
|
411
|
+
if (!(!text.includes('Ok') && !text.includes('Err'))) {
|
|
412
|
+
_context.next = 14;
|
|
413
|
+
break;
|
|
414
|
+
}
|
|
415
|
+
throw new Error("Requesting batch reads failed: " + text + ", url: " + url + ", payload: " + JSON.stringify(payload));
|
|
416
|
+
case 14:
|
|
417
|
+
results = JSON.parse(text);
|
|
418
|
+
rs = {
|
|
419
|
+
variables: [],
|
|
420
|
+
maps: []
|
|
421
|
+
};
|
|
422
|
+
variablesLength = 0;
|
|
423
|
+
if (reads.variables != null) {
|
|
424
|
+
variablesLength = reads.variables.length;
|
|
425
|
+
for (i = 0; i < variablesLength; i++) {
|
|
426
|
+
result = results[i];
|
|
427
|
+
if ('Ok' in result) {
|
|
428
|
+
rs.variables.push(deserializeCV(result.Ok));
|
|
429
|
+
} else {
|
|
430
|
+
rs.variables.push(new Error(result.Err));
|
|
431
|
+
}
|
|
432
|
+
}
|
|
433
|
+
}
|
|
434
|
+
if (reads.maps != null) {
|
|
435
|
+
for (_i = 0; _i < reads.maps.length; _i++) {
|
|
436
|
+
_result = results[_i + variablesLength];
|
|
437
|
+
if ('Ok' in _result) {
|
|
438
|
+
rs.maps.push(deserializeCV(_result.Ok));
|
|
439
|
+
} else {
|
|
440
|
+
rs.maps.push(new Error(_result.Err));
|
|
441
|
+
}
|
|
442
|
+
}
|
|
443
|
+
}
|
|
444
|
+
return _context.abrupt("return", rs);
|
|
445
|
+
case 20:
|
|
446
|
+
case "end":
|
|
447
|
+
return _context.stop();
|
|
448
|
+
}
|
|
449
|
+
}, _callee);
|
|
450
|
+
}));
|
|
451
|
+
return _batchRead.apply(this, arguments);
|
|
452
|
+
}
|
|
453
|
+
function batchReadonly(_x3, _x4) {
|
|
454
|
+
return _batchReadonly.apply(this, arguments);
|
|
455
|
+
}
|
|
456
|
+
function _batchReadonly() {
|
|
457
|
+
_batchReadonly = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2(req, options) {
|
|
458
|
+
var _options$stxerApi2;
|
|
459
|
+
var payload, ibh, url, data, text, results, rs, _iterator3, _step3, result;
|
|
460
|
+
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
461
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
462
|
+
case 0:
|
|
463
|
+
if (options === void 0) {
|
|
464
|
+
options = {};
|
|
465
|
+
}
|
|
466
|
+
payload = req.readonly.map(function (r) {
|
|
467
|
+
return [serializeCV(r.contract), r.functionName].concat(r.functionArgs.map(function (arg) {
|
|
468
|
+
return serializeCV(arg);
|
|
469
|
+
}));
|
|
470
|
+
});
|
|
471
|
+
ibh = req.index_block_hash == null ? null : req.index_block_hash.startsWith('0x') ? req.index_block_hash.substring(2) : req.index_block_hash;
|
|
472
|
+
url = ((_options$stxerApi2 = options.stxerApi) != null ? _options$stxerApi2 : DEFAULT_STXER_API) + "/sidecar/v2/batch-readonly" + (ibh == null ? '' : "?tip=" + ibh);
|
|
473
|
+
_context2.next = 6;
|
|
474
|
+
return fetch(url, {
|
|
475
|
+
method: 'POST',
|
|
476
|
+
body: JSON.stringify(payload)
|
|
477
|
+
});
|
|
478
|
+
case 6:
|
|
479
|
+
data = _context2.sent;
|
|
480
|
+
_context2.next = 9;
|
|
481
|
+
return data.text();
|
|
482
|
+
case 9:
|
|
483
|
+
text = _context2.sent;
|
|
484
|
+
if (!(!text.includes('Ok') && !text.includes('Err'))) {
|
|
485
|
+
_context2.next = 12;
|
|
486
|
+
break;
|
|
487
|
+
}
|
|
488
|
+
throw new Error("Requesting batch readonly failed: " + text + ", url: " + url + ", payload: " + JSON.stringify(payload));
|
|
489
|
+
case 12:
|
|
490
|
+
results = JSON.parse(text);
|
|
491
|
+
rs = [];
|
|
492
|
+
for (_iterator3 = _createForOfIteratorHelperLoose(results); !(_step3 = _iterator3()).done;) {
|
|
493
|
+
result = _step3.value;
|
|
494
|
+
if ('Ok' in result) {
|
|
495
|
+
rs.push(deserializeCV(result.Ok));
|
|
496
|
+
} else {
|
|
497
|
+
rs.push(new Error(result.Err));
|
|
498
|
+
}
|
|
499
|
+
}
|
|
500
|
+
return _context2.abrupt("return", rs);
|
|
501
|
+
case 16:
|
|
502
|
+
case "end":
|
|
503
|
+
return _context2.stop();
|
|
504
|
+
}
|
|
505
|
+
}, _callee2);
|
|
506
|
+
}));
|
|
507
|
+
return _batchReadonly.apply(this, arguments);
|
|
508
|
+
}
|
|
509
|
+
|
|
371
510
|
function runTx(tx) {
|
|
372
511
|
// type 0: run transaction
|
|
373
512
|
return tupleCV({
|
|
@@ -395,7 +534,7 @@ function runSimulation(_x, _x2, _x3, _x4) {
|
|
|
395
534
|
}
|
|
396
535
|
function _runSimulation() {
|
|
397
536
|
_runSimulation = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee5(apiEndpoint, block_hash, block_height, txs) {
|
|
398
|
-
var header, heightBytes, view, hashHex, matches, hashBytes, txBytes, totalLength, body, offset,
|
|
537
|
+
var header, heightBytes, view, hashHex, matches, hashBytes, txBytes, totalLength, body, offset, _iterator3, _step4, tx, rs;
|
|
399
538
|
return _regeneratorRuntime().wrap(function _callee5$(_context5) {
|
|
400
539
|
while (1) switch (_context5.prev = _context5.next) {
|
|
401
540
|
case 0:
|
|
@@ -432,8 +571,8 @@ function _runSimulation() {
|
|
|
432
571
|
offset += heightBytes.length;
|
|
433
572
|
body.set(hashBytes, offset);
|
|
434
573
|
offset += hashBytes.length;
|
|
435
|
-
for (
|
|
436
|
-
tx =
|
|
574
|
+
for (_iterator3 = _createForOfIteratorHelperLoose(txBytes); !(_step4 = _iterator3()).done;) {
|
|
575
|
+
tx = _step4.value;
|
|
437
576
|
body.set(tx, offset);
|
|
438
577
|
offset += tx.length;
|
|
439
578
|
}
|
|
@@ -508,6 +647,12 @@ var SimulationBuilder = /*#__PURE__*/function () {
|
|
|
508
647
|
this.sender = address;
|
|
509
648
|
return this;
|
|
510
649
|
};
|
|
650
|
+
_proto.inlineSimulation = function inlineSimulation(simulationId) {
|
|
651
|
+
this.steps.push({
|
|
652
|
+
simulationId: simulationId
|
|
653
|
+
});
|
|
654
|
+
return this;
|
|
655
|
+
};
|
|
511
656
|
_proto.addSTXTransfer = function addSTXTransfer(params) {
|
|
512
657
|
var _params$sender, _params$fee;
|
|
513
658
|
if (params.sender == null && this.sender === '') {
|
|
@@ -613,7 +758,7 @@ var SimulationBuilder = /*#__PURE__*/function () {
|
|
|
613
758
|
_proto.run = /*#__PURE__*/function () {
|
|
614
759
|
var _run = /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {
|
|
615
760
|
var _this = this;
|
|
616
|
-
var block, txs, nonce_by_address, nextNonce, _iterator, _step, step,
|
|
761
|
+
var block, txs, nonce_by_address, nextNonce, network, _iterator, _step, step, previousSimulation, _iterator2, _step2, _step3, _step$function_args, nonce, _step$contract_id$spl, contractAddress, contractName, tx, _nonce, _tx, _nonce2, _tx2, id;
|
|
617
762
|
return _regeneratorRuntime().wrap(function _callee3$(_context3) {
|
|
618
763
|
while (1) switch (_context3.prev = _context3.next) {
|
|
619
764
|
case 0:
|
|
@@ -658,13 +803,6 @@ var SimulationBuilder = /*#__PURE__*/function () {
|
|
|
658
803
|
return _ref2.apply(this, arguments);
|
|
659
804
|
};
|
|
660
805
|
}();
|
|
661
|
-
_iterator = _createForOfIteratorHelperLoose(this.steps);
|
|
662
|
-
case 9:
|
|
663
|
-
if ((_step = _iterator()).done) {
|
|
664
|
-
_context3.next = 50;
|
|
665
|
-
break;
|
|
666
|
-
}
|
|
667
|
-
step = _step.value;
|
|
668
806
|
network = this.network === 'mainnet' ? STACKS_MAINNET : STACKS_TESTNET;
|
|
669
807
|
if (this.stacksNodeAPI) {
|
|
670
808
|
network = _extends({}, network, {
|
|
@@ -673,16 +811,47 @@ var SimulationBuilder = /*#__PURE__*/function () {
|
|
|
673
811
|
})
|
|
674
812
|
});
|
|
675
813
|
}
|
|
676
|
-
|
|
677
|
-
|
|
814
|
+
_iterator = _createForOfIteratorHelperLoose(this.steps);
|
|
815
|
+
case 11:
|
|
816
|
+
if ((_step = _iterator()).done) {
|
|
817
|
+
_context3.next = 57;
|
|
818
|
+
break;
|
|
819
|
+
}
|
|
820
|
+
step = _step.value;
|
|
821
|
+
if (!('simulationId' in step)) {
|
|
822
|
+
_context3.next = 20;
|
|
678
823
|
break;
|
|
679
824
|
}
|
|
680
825
|
_context3.next = 16;
|
|
681
|
-
return
|
|
826
|
+
return fetch("https://api.stxer.xyz/simulations/" + step.simulationId + "/request").then(function (x) {
|
|
827
|
+
return x.json();
|
|
828
|
+
});
|
|
682
829
|
case 16:
|
|
830
|
+
previousSimulation = _context3.sent;
|
|
831
|
+
for (_iterator2 = _createForOfIteratorHelperLoose(previousSimulation.steps); !(_step2 = _iterator2()).done;) {
|
|
832
|
+
_step3 = _step2.value;
|
|
833
|
+
if ('tx' in _step3) {
|
|
834
|
+
txs.push(deserializeTransaction(_step3.tx));
|
|
835
|
+
} else if ('code' in _step3 && 'contract' in _step3) {
|
|
836
|
+
txs.push({
|
|
837
|
+
contract_id: _step3.contract,
|
|
838
|
+
code: _step3.code
|
|
839
|
+
});
|
|
840
|
+
}
|
|
841
|
+
}
|
|
842
|
+
_context3.next = 55;
|
|
843
|
+
break;
|
|
844
|
+
case 20:
|
|
845
|
+
if (!('sender' in step && 'function_name' in step)) {
|
|
846
|
+
_context3.next = 32;
|
|
847
|
+
break;
|
|
848
|
+
}
|
|
849
|
+
_context3.next = 23;
|
|
850
|
+
return nextNonce(step.sender);
|
|
851
|
+
case 23:
|
|
683
852
|
nonce = _context3.sent;
|
|
684
853
|
_step$contract_id$spl = step.contract_id.split('.'), contractAddress = _step$contract_id$spl[0], contractName = _step$contract_id$spl[1];
|
|
685
|
-
_context3.next =
|
|
854
|
+
_context3.next = 27;
|
|
686
855
|
return makeUnsignedContractCall({
|
|
687
856
|
contractAddress: contractAddress,
|
|
688
857
|
contractName: contractName,
|
|
@@ -694,22 +863,22 @@ var SimulationBuilder = /*#__PURE__*/function () {
|
|
|
694
863
|
postConditionMode: PostConditionMode.Allow,
|
|
695
864
|
fee: step.fee
|
|
696
865
|
});
|
|
697
|
-
case
|
|
866
|
+
case 27:
|
|
698
867
|
tx = _context3.sent;
|
|
699
868
|
tx.auth.spendingCondition.signer = c32addressDecode(step.sender)[1];
|
|
700
869
|
txs.push(tx);
|
|
701
|
-
_context3.next =
|
|
870
|
+
_context3.next = 55;
|
|
702
871
|
break;
|
|
703
|
-
case
|
|
872
|
+
case 32:
|
|
704
873
|
if (!('sender' in step && 'recipient' in step)) {
|
|
705
|
-
_context3.next =
|
|
874
|
+
_context3.next = 43;
|
|
706
875
|
break;
|
|
707
876
|
}
|
|
708
|
-
_context3.next =
|
|
877
|
+
_context3.next = 35;
|
|
709
878
|
return nextNonce(step.sender);
|
|
710
|
-
case
|
|
879
|
+
case 35:
|
|
711
880
|
_nonce = _context3.sent;
|
|
712
|
-
_context3.next =
|
|
881
|
+
_context3.next = 38;
|
|
713
882
|
return makeUnsignedSTXTokenTransfer({
|
|
714
883
|
recipient: step.recipient,
|
|
715
884
|
amount: step.amount,
|
|
@@ -718,22 +887,22 @@ var SimulationBuilder = /*#__PURE__*/function () {
|
|
|
718
887
|
publicKey: '',
|
|
719
888
|
fee: step.fee
|
|
720
889
|
});
|
|
721
|
-
case
|
|
890
|
+
case 38:
|
|
722
891
|
_tx = _context3.sent;
|
|
723
892
|
_tx.auth.spendingCondition.signer = c32addressDecode(step.sender)[1];
|
|
724
893
|
txs.push(_tx);
|
|
725
|
-
_context3.next =
|
|
894
|
+
_context3.next = 55;
|
|
726
895
|
break;
|
|
727
|
-
case
|
|
896
|
+
case 43:
|
|
728
897
|
if (!('deployer' in step)) {
|
|
729
|
-
_context3.next =
|
|
898
|
+
_context3.next = 54;
|
|
730
899
|
break;
|
|
731
900
|
}
|
|
732
|
-
_context3.next =
|
|
901
|
+
_context3.next = 46;
|
|
733
902
|
return nextNonce(step.deployer);
|
|
734
|
-
case
|
|
903
|
+
case 46:
|
|
735
904
|
_nonce2 = _context3.sent;
|
|
736
|
-
_context3.next =
|
|
905
|
+
_context3.next = 49;
|
|
737
906
|
return makeUnsignedContractDeploy({
|
|
738
907
|
contractName: step.contract_name,
|
|
739
908
|
codeBody: step.source_code,
|
|
@@ -743,30 +912,30 @@ var SimulationBuilder = /*#__PURE__*/function () {
|
|
|
743
912
|
postConditionMode: PostConditionMode.Allow,
|
|
744
913
|
fee: step.fee
|
|
745
914
|
});
|
|
746
|
-
case
|
|
915
|
+
case 49:
|
|
747
916
|
_tx2 = _context3.sent;
|
|
748
917
|
_tx2.auth.spendingCondition.signer = c32addressDecode(step.deployer)[1];
|
|
749
918
|
txs.push(_tx2);
|
|
750
|
-
_context3.next =
|
|
919
|
+
_context3.next = 55;
|
|
751
920
|
break;
|
|
752
|
-
case
|
|
921
|
+
case 54:
|
|
753
922
|
if ('code' in step) {
|
|
754
923
|
txs.push(step);
|
|
755
924
|
} else {
|
|
756
925
|
// biome-ignore lint/style/noUnusedTemplateLiteral: <explanation>
|
|
757
926
|
console.log("Invalid simulation step:", step);
|
|
758
927
|
}
|
|
759
|
-
case
|
|
760
|
-
_context3.next =
|
|
928
|
+
case 55:
|
|
929
|
+
_context3.next = 11;
|
|
761
930
|
break;
|
|
762
|
-
case
|
|
763
|
-
_context3.next =
|
|
931
|
+
case 57:
|
|
932
|
+
_context3.next = 59;
|
|
764
933
|
return runSimulation(this.apiEndpoint + "/simulations", block.block_hash, block.block_height, txs);
|
|
765
|
-
case
|
|
934
|
+
case 59:
|
|
766
935
|
id = _context3.sent;
|
|
767
936
|
console.log("Simulation will be available at: https://stxer.xyz/simulations/" + this.network + "/" + id);
|
|
768
937
|
return _context3.abrupt("return", id);
|
|
769
|
-
case
|
|
938
|
+
case 62:
|
|
770
939
|
case "end":
|
|
771
940
|
return _context3.stop();
|
|
772
941
|
}
|
|
@@ -783,5 +952,5 @@ var SimulationBuilder = /*#__PURE__*/function () {
|
|
|
783
952
|
return SimulationBuilder;
|
|
784
953
|
}();
|
|
785
954
|
|
|
786
|
-
export { SimulationBuilder, runEval, runSimulation };
|
|
955
|
+
export { SimulationBuilder, batchRead, batchReadonly, runEval, runSimulation };
|
|
787
956
|
//# sourceMappingURL=stxer.esm.js.map
|
package/dist/stxer.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stxer.esm.js","sources":["../src/index.ts"],"sourcesContent":["import { type AccountDataResponse, getNodeInfo, richFetch } from 'ts-clarity';\nimport type { Block } from '@stacks/stacks-blockchain-api-types';\nimport {\n networkFrom,\n STACKS_MAINNET,\n STACKS_TESTNET,\n type StacksNetworkName,\n} from '@stacks/network';\nimport {\n type ClarityValue,\n ClarityVersion,\n PostConditionMode,\n type StacksTransactionWire,\n bufferCV,\n contractPrincipalCV,\n makeUnsignedContractCall,\n makeUnsignedContractDeploy,\n makeUnsignedSTXTokenTransfer,\n serializeCVBytes,\n stringAsciiCV,\n tupleCV,\n uintCV,\n} from '@stacks/transactions';\nimport { c32addressDecode } from 'c32check';\n\nfunction runTx(tx: StacksTransactionWire) {\n // type 0: run transaction\n return tupleCV({ type: uintCV(0), data: bufferCV(tx.serializeBytes()) });\n}\n\nexport interface SimulationEval {\n contract_id: string;\n code: string;\n}\n\nexport function runEval({ contract_id, code }: SimulationEval) {\n const [contract_address, contract_name] = contract_id.split('.');\n // type 1: eval arbitrary code inside a contract\n return tupleCV({\n type: uintCV(1),\n data: bufferCV(\n serializeCVBytes(\n tupleCV({\n contract: contractPrincipalCV(contract_address, contract_name),\n code: stringAsciiCV(code),\n })\n )\n ),\n });\n}\n\nexport async function runSimulation(\n apiEndpoint: string,\n block_hash: string,\n block_height: number,\n txs: (StacksTransactionWire | SimulationEval)[]\n) {\n // Convert 'sim-v1' to Uint8Array\n const header = new TextEncoder().encode('sim-v1');\n // Create 8 bytes for block height\n const heightBytes = new Uint8Array(8);\n // Convert block height to bytes\n const view = new DataView(heightBytes.buffer);\n view.setBigUint64(0, BigInt(block_height), false); // false for big-endian\n\n // Convert block hash to bytes\n const hashHex = block_hash.startsWith('0x')\n ? block_hash.substring(2)\n : block_hash;\n // Replace non-null assertion with null check\n const matches = hashHex.match(/.{1,2}/g);\n if (!matches) {\n throw new Error('Invalid block hash format');\n }\n const hashBytes = new Uint8Array(\n matches.map((byte) => Number.parseInt(byte, 16))\n );\n\n // Convert transactions to bytes\n const txBytes = txs\n .map((t) => ('contract_id' in t && 'code' in t ? runEval(t) : runTx(t)))\n .map((t) => serializeCVBytes(t));\n\n // Combine all byte arrays\n const totalLength =\n header.length +\n heightBytes.length +\n hashBytes.length +\n txBytes.reduce((acc, curr) => acc + curr.length, 0);\n const body = new Uint8Array(totalLength);\n\n let offset = 0;\n body.set(header, offset);\n offset += header.length;\n body.set(heightBytes, offset);\n offset += heightBytes.length;\n body.set(hashBytes, offset);\n offset += hashBytes.length;\n for (const tx of txBytes) {\n body.set(tx, offset);\n offset += tx.length;\n }\n\n const rs = await fetch(apiEndpoint, {\n method: 'POST',\n body,\n }).then(async (rs) => {\n const response = await rs.text();\n if (!response.startsWith('{')) {\n throw new Error(`failed to submit simulation: ${response}`);\n }\n return JSON.parse(response) as { id: string };\n });\n return rs.id;\n}\n\ninterface SimulationBuilderOptions {\n apiEndpoint?: string;\n stacksNodeAPI?: string;\n network?: StacksNetworkName | string;\n}\n\nexport class SimulationBuilder {\n private apiEndpoint: string;\n private stacksNodeAPI: string;\n private network: StacksNetworkName | string;\n\n private constructor(options: SimulationBuilderOptions = {}) {\n this.apiEndpoint = options.apiEndpoint ?? 'https://api.stxer.xyz';\n this.stacksNodeAPI = options.stacksNodeAPI ?? 'https://api.hiro.so';\n this.network = options.network ?? 'mainnet';\n }\n\n public static new(options?: SimulationBuilderOptions) {\n return new SimulationBuilder(options);\n }\n\n // biome-ignore lint/style/useNumberNamespace: <explanation>\n private block = NaN;\n private sender = '';\n private steps: (\n | {\n // contract call\n contract_id: string;\n function_name: string;\n function_args?: ClarityValue[];\n sender: string;\n fee: number;\n }\n | {\n // contract deploy\n contract_name: string;\n source_code: string;\n deployer: string;\n fee: number;\n clarity_version: ClarityVersion;\n }\n | {\n // STX transfer\n recipient: string;\n amount: number;\n sender: string;\n fee: number;\n }\n | SimulationEval\n )[] = [];\n\n public useBlockHeight(block: number) {\n this.block = block;\n return this;\n }\n public withSender(address: string) {\n this.sender = address;\n return this;\n }\n public addSTXTransfer(params: {\n recipient: string;\n amount: number;\n sender?: string;\n fee?: number;\n }) {\n if (params.sender == null && this.sender === '') {\n throw new Error(\n 'Please specify a sender with useSender or adding a sender paramenter'\n );\n }\n this.steps.push({\n ...params,\n sender: params.sender ?? this.sender,\n fee: params.fee ?? 0,\n });\n return this;\n }\n public addContractCall(params: {\n contract_id: string;\n function_name: string;\n function_args?: ClarityValue[];\n sender?: string;\n fee?: number;\n }) {\n if (params.sender == null && this.sender === '') {\n throw new Error(\n 'Please specify a sender with useSender or adding a sender paramenter'\n );\n }\n this.steps.push({\n ...params,\n sender: params.sender ?? this.sender,\n fee: params.fee ?? 0,\n });\n return this;\n }\n public addContractDeploy(params: {\n contract_name: string;\n source_code: string;\n deployer?: string;\n fee?: number;\n clarity_version?: ClarityVersion;\n }) {\n if (params.deployer == null && this.sender === '') {\n throw new Error(\n 'Please specify a deployer with useSender or adding a deployer paramenter'\n );\n }\n this.steps.push({\n ...params,\n deployer: params.deployer ?? this.sender,\n fee: params.fee ?? 0,\n clarity_version: params.clarity_version ?? ClarityVersion.Clarity3,\n });\n return this;\n }\n public addEvalCode(inside_contract_id: string, code: string) {\n this.steps.push({\n contract_id: inside_contract_id,\n code,\n });\n return this;\n }\n public addMapRead(contract_id: string, map: string, key: string) {\n this.steps.push({\n contract_id,\n code: `(map-get ${map} ${key})`,\n });\n return this;\n }\n public addVarRead(contract_id: string, variable: string) {\n this.steps.push({\n contract_id,\n code: `(var-get ${variable})`,\n });\n return this;\n }\n\n private async getBlockInfo() {\n if (Number.isNaN(this.block)) {\n const { stacks_tip_height } = await getNodeInfo({\n stacksEndpoint: this.stacksNodeAPI,\n });\n this.block = stacks_tip_height;\n }\n const info: Block = await richFetch(\n `${this.stacksNodeAPI}/extended/v1/block/by_height/${this.block}?unanchored=true`\n ).then((r) => r.json());\n if (\n info.height !== this.block ||\n typeof info.hash !== 'string' ||\n !info.hash.startsWith('0x')\n ) {\n throw new Error(\n `failed to get block info for block height ${this.block}`\n );\n }\n return {\n block_height: this.block,\n block_hash: info.hash.substring(2),\n index_block_hash: info.index_block_hash.substring(2),\n };\n }\n\n public async run() {\n console.log(\n `--------------------------------\nThis product can never exist without your support!\n\nWe receive sponsorship funds with:\nSP212Y5JKN59YP3GYG07K3S8W5SSGE4KH6B5STXER\n\nFeedbacks and feature requests are welcome.\nTo get in touch: contact@stxer.xyz\n--------------------------------`\n );\n const block = await this.getBlockInfo();\n console.log(\n `Using block height ${block.block_height} hash 0x${block.block_hash} to run simulation.`\n );\n const txs: (StacksTransactionWire | SimulationEval)[] = [];\n const nonce_by_address = new Map<string, number>();\n const nextNonce = async (sender: string) => {\n const nonce = nonce_by_address.get(sender);\n if (nonce == null) {\n const url = `${\n this.stacksNodeAPI\n }/v2/accounts/${sender}?proof=${false}&tip=${block.index_block_hash}`;\n const account: AccountDataResponse = await richFetch(url).then((r) =>\n r.json()\n );\n nonce_by_address.set(sender, account.nonce + 1);\n return account.nonce;\n }\n nonce_by_address.set(sender, nonce + 1);\n return nonce;\n };\n for (const step of this.steps) {\n let network = this.network === 'mainnet' ? STACKS_MAINNET : STACKS_TESTNET;\n if (this.stacksNodeAPI) {\n network = {\n ...network,\n client: {\n ...network.client,\n baseUrl: this.stacksNodeAPI,\n },\n };\n }\n if ('sender' in step && 'function_name' in step) {\n const nonce = await nextNonce(step.sender);\n const [contractAddress, contractName] = step.contract_id.split('.');\n const tx = await makeUnsignedContractCall({\n contractAddress,\n contractName,\n functionName: step.function_name,\n functionArgs: step.function_args ?? [],\n nonce,\n network,\n publicKey: '',\n postConditionMode: PostConditionMode.Allow,\n fee: step.fee,\n });\n tx.auth.spendingCondition.signer = c32addressDecode(step.sender)[1];\n txs.push(tx);\n } else if ('sender' in step && 'recipient' in step) {\n const nonce = await nextNonce(step.sender);\n const tx = await makeUnsignedSTXTokenTransfer({\n recipient: step.recipient,\n amount: step.amount,\n nonce,\n network,\n publicKey: '',\n fee: step.fee,\n });\n tx.auth.spendingCondition.signer = c32addressDecode(step.sender)[1];\n txs.push(tx);\n } else if ('deployer' in step) {\n const nonce = await nextNonce(step.deployer);\n const tx = await makeUnsignedContractDeploy({\n contractName: step.contract_name,\n codeBody: step.source_code,\n nonce,\n network,\n publicKey: '',\n postConditionMode: PostConditionMode.Allow,\n fee: step.fee,\n });\n tx.auth.spendingCondition.signer = c32addressDecode(step.deployer)[1];\n txs.push(tx);\n } else if ('code' in step) {\n txs.push(step);\n } else {\n // biome-ignore lint/style/noUnusedTemplateLiteral: <explanation>\n console.log(`Invalid simulation step:`, step);\n }\n }\n const id = await runSimulation(\n `${this.apiEndpoint}/simulations`,\n block.block_hash,\n block.block_height,\n txs\n );\n console.log(\n `Simulation will be available at: https://stxer.xyz/simulations/${this.network}/${id}`\n );\n return id;\n }\n\n public pipe(transform: (builder: SimulationBuilder) => SimulationBuilder): SimulationBuilder {\n return transform(this);\n }\n}\n"],"names":["runTx","tx","tupleCV","type","uintCV","data","bufferCV","serializeBytes","runEval","_ref","contract_id","code","_contract_id$split","split","contract_address","contract_name","serializeCVBytes","contract","contractPrincipalCV","stringAsciiCV","runSimulation","_x","_x2","_x3","_x4","_runSimulation","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee5","apiEndpoint","block_hash","block_height","txs","header","heightBytes","view","hashHex","matches","hashBytes","txBytes","totalLength","body","offset","_iterator2","_step2","rs","wrap","_callee5$","_context5","prev","next","TextEncoder","encode","Uint8Array","DataView","buffer","setBigUint64","BigInt","startsWith","substring","match","Error","map","byte","Number","parseInt","t","length","reduce","acc","curr","set","_createForOfIteratorHelperLoose","done","value","fetch","method","then","_ref3","_callee4","response","_callee4$","_context4","text","sent","abrupt","JSON","parse","stop","_x6","id","SimulationBuilder","options","_options$apiEndpoint","_options$stacksNodeAP","_options$network","stacksNodeAPI","network","block","NaN","sender","steps","new","_proto","prototype","useBlockHeight","withSender","address","addSTXTransfer","params","_params$sender","_params$fee","push","_extends","fee","addContractCall","_params$sender2","_params$fee2","addContractDeploy","_params$deployer","_params$fee3","_params$clarity_versi","deployer","clarity_version","ClarityVersion","Clarity3","addEvalCode","inside_contract_id","addMapRead","key","addVarRead","variable","getBlockInfo","_getBlockInfo","_callee","_yield$getNodeInfo","stacks_tip_height","info","_callee$","_context","isNaN","getNodeInfo","stacksEndpoint","richFetch","r","json","height","hash","index_block_hash","run","_run","_callee3","_this","nonce_by_address","nextNonce","_iterator","_step","step","_step$function_args","nonce","_step$contract_id$spl","contractAddress","contractName","_nonce","_tx","_nonce2","_tx2","_callee3$","_context3","console","log","Map","_ref2","_callee2","url","account","_callee2$","_context2","get","_x5","STACKS_MAINNET","STACKS_TESTNET","client","baseUrl","makeUnsignedContractCall","functionName","function_name","functionArgs","function_args","publicKey","postConditionMode","PostConditionMode","Allow","auth","spendingCondition","signer","c32addressDecode","makeUnsignedSTXTokenTransfer","recipient","amount","makeUnsignedContractDeploy","codeBody","source_code","pipe","transform"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"stxer.esm.js","sources":["../src/batch-api.ts","../src/simulation.ts"],"sourcesContent":["import {\n type ClarityValue,\n type ContractPrincipalCV,\n deserializeCV,\n type OptionalCV,\n serializeCV,\n } from '@stacks/transactions';\n \n export interface BatchReads {\n variables?: {\n contract: ContractPrincipalCV;\n variableName: string;\n }[];\n maps?: {\n contract: ContractPrincipalCV;\n mapName: string;\n mapKey: ClarityValue;\n }[];\n index_block_hash?: string;\n }\n \n export interface BatchReadsResult {\n variables: (ClarityValue | Error)[];\n maps: (OptionalCV | Error)[];\n }\n \n export interface BatchApiOptions {\n stxerApi?: string;\n }\n \n const DEFAULT_STXER_API = 'https://api.stxer.xyz';\n \n export async function batchRead(\n reads: BatchReads,\n options: BatchApiOptions = {}\n ): Promise<BatchReadsResult> {\n const payload: string[][] = [];\n if (reads.variables != null) {\n for (const variable of reads.variables) {\n payload.push([serializeCV(variable.contract), variable.variableName]);\n }\n }\n if (reads.maps != null) {\n for (const map of reads.maps) {\n payload.push([\n serializeCV(map.contract),\n map.mapName,\n serializeCV(map.mapKey),\n ]);\n }\n }\n \n const ibh =\n reads.index_block_hash == null\n ? null\n : reads.index_block_hash.startsWith('0x')\n ? reads.index_block_hash.substring(2)\n : reads.index_block_hash;\n \n const url = `${options.stxerApi ?? DEFAULT_STXER_API}/sidecar/v2/batch-reads${\n ibh == null ? '' : `?tip=${ibh}`\n }`;\n const data = await fetch(url, {\n method: 'POST',\n body: JSON.stringify(payload),\n });\n const text = await data.text();\n if (!text.includes('Ok') && !text.includes('Err')) {\n throw new Error(\n `Requesting batch reads failed: ${text}, url: ${url}, payload: ${JSON.stringify(\n payload\n )}`\n );\n }\n const results = JSON.parse(text) as [{ Ok: string } | { Err: string }];\n const rs: BatchReadsResult = {\n variables: [],\n maps: [],\n };\n let variablesLength = 0;\n if (reads.variables != null) {\n variablesLength = reads.variables.length;\n for (let i = 0; i < variablesLength; i++) {\n const result = results[i];\n if ('Ok' in result) {\n rs.variables.push(deserializeCV(result.Ok));\n } else {\n rs.variables.push(new Error(result.Err));\n }\n }\n }\n if (reads.maps != null) {\n for (let i = 0; i < reads.maps.length; i++) {\n const result = results[i + variablesLength];\n if ('Ok' in result) {\n rs.maps.push(deserializeCV(result.Ok) as OptionalCV);\n } else {\n rs.maps.push(new Error(result.Err));\n }\n }\n }\n return rs;\n }\n \n export interface BatchReadonlyRequest {\n readonly: {\n contract: ContractPrincipalCV;\n functionName: string;\n functionArgs: ClarityValue[];\n }[];\n index_block_hash?: string;\n }\n \n export async function batchReadonly(\n req: BatchReadonlyRequest,\n options: BatchApiOptions = {}\n ): Promise<(ClarityValue | Error)[]> {\n const payload = req.readonly.map((r) => [\n serializeCV(r.contract),\n r.functionName,\n ...r.functionArgs.map((arg) => serializeCV(arg)),\n ]);\n \n const ibh =\n req.index_block_hash == null\n ? null\n : req.index_block_hash.startsWith('0x')\n ? req.index_block_hash.substring(2)\n : req.index_block_hash;\n \n const url = `${options.stxerApi ?? DEFAULT_STXER_API}/sidecar/v2/batch-readonly${\n ibh == null ? '' : `?tip=${ibh}`\n }`;\n const data = await fetch(url, {\n method: 'POST',\n body: JSON.stringify(payload),\n });\n const text = await data.text();\n if (!text.includes('Ok') && !text.includes('Err')) {\n throw new Error(\n `Requesting batch readonly failed: ${text}, url: ${url}, payload: ${JSON.stringify(\n payload\n )}`\n );\n }\n const results = JSON.parse(text) as [{ Ok: string } | { Err: string }];\n const rs: (ClarityValue | Error)[] = [];\n for (const result of results) {\n if ('Ok' in result) {\n rs.push(deserializeCV(result.Ok));\n } else {\n rs.push(new Error(result.Err));\n }\n }\n return rs;\n }\n ","import { type AccountDataResponse, getNodeInfo, richFetch } from 'ts-clarity';\nimport type { Block } from '@stacks/stacks-blockchain-api-types';\nimport {\n STACKS_MAINNET,\n STACKS_TESTNET,\n type StacksNetworkName,\n} from '@stacks/network';\nimport {\n type ClarityValue,\n ClarityVersion,\n PostConditionMode,\n type StacksTransactionWire,\n bufferCV,\n contractPrincipalCV,\n deserializeTransaction,\n makeUnsignedContractCall,\n makeUnsignedContractDeploy,\n makeUnsignedSTXTokenTransfer,\n serializeCVBytes,\n stringAsciiCV,\n tupleCV,\n uintCV,\n} from '@stacks/transactions';\nimport { c32addressDecode } from 'c32check';\n\nfunction runTx(tx: StacksTransactionWire) {\n // type 0: run transaction\n return tupleCV({ type: uintCV(0), data: bufferCV(tx.serializeBytes()) });\n}\n\nexport interface SimulationEval {\n contract_id: string;\n code: string;\n}\n\nexport function runEval({ contract_id, code }: SimulationEval) {\n const [contract_address, contract_name] = contract_id.split('.');\n // type 1: eval arbitrary code inside a contract\n return tupleCV({\n type: uintCV(1),\n data: bufferCV(\n serializeCVBytes(\n tupleCV({\n contract: contractPrincipalCV(contract_address, contract_name),\n code: stringAsciiCV(code),\n })\n )\n ),\n });\n}\n\nexport async function runSimulation(\n apiEndpoint: string,\n block_hash: string,\n block_height: number,\n txs: (StacksTransactionWire | SimulationEval)[]\n) {\n // Convert 'sim-v1' to Uint8Array\n const header = new TextEncoder().encode('sim-v1');\n // Create 8 bytes for block height\n const heightBytes = new Uint8Array(8);\n // Convert block height to bytes\n const view = new DataView(heightBytes.buffer);\n view.setBigUint64(0, BigInt(block_height), false); // false for big-endian\n\n // Convert block hash to bytes\n const hashHex = block_hash.startsWith('0x')\n ? block_hash.substring(2)\n : block_hash;\n // Replace non-null assertion with null check\n const matches = hashHex.match(/.{1,2}/g);\n if (!matches) {\n throw new Error('Invalid block hash format');\n }\n const hashBytes = new Uint8Array(\n matches.map((byte) => Number.parseInt(byte, 16))\n );\n\n // Convert transactions to bytes\n const txBytes = txs\n .map((t) => ('contract_id' in t && 'code' in t ? runEval(t) : runTx(t)))\n .map((t) => serializeCVBytes(t));\n\n // Combine all byte arrays\n const totalLength =\n header.length +\n heightBytes.length +\n hashBytes.length +\n txBytes.reduce((acc, curr) => acc + curr.length, 0);\n const body = new Uint8Array(totalLength);\n\n let offset = 0;\n body.set(header, offset);\n offset += header.length;\n body.set(heightBytes, offset);\n offset += heightBytes.length;\n body.set(hashBytes, offset);\n offset += hashBytes.length;\n for (const tx of txBytes) {\n body.set(tx, offset);\n offset += tx.length;\n }\n\n const rs = await fetch(apiEndpoint, {\n method: 'POST',\n body,\n }).then(async (rs) => {\n const response = await rs.text();\n if (!response.startsWith('{')) {\n throw new Error(`failed to submit simulation: ${response}`);\n }\n return JSON.parse(response) as { id: string };\n });\n return rs.id;\n}\n\ninterface SimulationBuilderOptions {\n apiEndpoint?: string;\n stacksNodeAPI?: string;\n network?: StacksNetworkName | string;\n}\n\nexport class SimulationBuilder {\n private apiEndpoint: string;\n private stacksNodeAPI: string;\n private network: StacksNetworkName | string;\n\n private constructor(options: SimulationBuilderOptions = {}) {\n this.apiEndpoint = options.apiEndpoint ?? 'https://api.stxer.xyz';\n this.stacksNodeAPI = options.stacksNodeAPI ?? 'https://api.hiro.so';\n this.network = options.network ?? 'mainnet';\n }\n\n public static new(options?: SimulationBuilderOptions) {\n return new SimulationBuilder(options);\n }\n\n // biome-ignore lint/style/useNumberNamespace: <explanation>\n private block = NaN;\n private sender = '';\n private steps: (\n | {\n // inline simulation\n simulationId: string;\n }\n | {\n // contract call\n contract_id: string;\n function_name: string;\n function_args?: ClarityValue[];\n sender: string;\n fee: number;\n }\n | {\n // contract deploy\n contract_name: string;\n source_code: string;\n deployer: string;\n fee: number;\n clarity_version: ClarityVersion;\n }\n | {\n // STX transfer\n recipient: string;\n amount: number;\n sender: string;\n fee: number;\n }\n | SimulationEval\n )[] = [];\n\n public useBlockHeight(block: number) {\n this.block = block;\n return this;\n }\n public withSender(address: string) {\n this.sender = address;\n return this;\n }\n public inlineSimulation(simulationId: string) {\n this.steps.push({\n simulationId,\n })\n return this;\n }\n public addSTXTransfer(params: {\n recipient: string;\n amount: number;\n sender?: string;\n fee?: number;\n }) {\n if (params.sender == null && this.sender === '') {\n throw new Error(\n 'Please specify a sender with useSender or adding a sender paramenter'\n );\n }\n this.steps.push({\n ...params,\n sender: params.sender ?? this.sender,\n fee: params.fee ?? 0,\n });\n return this;\n }\n public addContractCall(params: {\n contract_id: string;\n function_name: string;\n function_args?: ClarityValue[];\n sender?: string;\n fee?: number;\n }) {\n if (params.sender == null && this.sender === '') {\n throw new Error(\n 'Please specify a sender with useSender or adding a sender paramenter'\n );\n }\n this.steps.push({\n ...params,\n sender: params.sender ?? this.sender,\n fee: params.fee ?? 0,\n });\n return this;\n }\n public addContractDeploy(params: {\n contract_name: string;\n source_code: string;\n deployer?: string;\n fee?: number;\n clarity_version?: ClarityVersion;\n }) {\n if (params.deployer == null && this.sender === '') {\n throw new Error(\n 'Please specify a deployer with useSender or adding a deployer paramenter'\n );\n }\n this.steps.push({\n ...params,\n deployer: params.deployer ?? this.sender,\n fee: params.fee ?? 0,\n clarity_version: params.clarity_version ?? ClarityVersion.Clarity3,\n });\n return this;\n }\n public addEvalCode(inside_contract_id: string, code: string) {\n this.steps.push({\n contract_id: inside_contract_id,\n code,\n });\n return this;\n }\n public addMapRead(contract_id: string, map: string, key: string) {\n this.steps.push({\n contract_id,\n code: `(map-get ${map} ${key})`,\n });\n return this;\n }\n public addVarRead(contract_id: string, variable: string) {\n this.steps.push({\n contract_id,\n code: `(var-get ${variable})`,\n });\n return this;\n }\n\n private async getBlockInfo() {\n if (Number.isNaN(this.block)) {\n const { stacks_tip_height } = await getNodeInfo({\n stacksEndpoint: this.stacksNodeAPI,\n });\n this.block = stacks_tip_height;\n }\n const info: Block = await richFetch(\n `${this.stacksNodeAPI}/extended/v1/block/by_height/${this.block}?unanchored=true`\n ).then((r) => r.json());\n if (\n info.height !== this.block ||\n typeof info.hash !== 'string' ||\n !info.hash.startsWith('0x')\n ) {\n throw new Error(\n `failed to get block info for block height ${this.block}`\n );\n }\n return {\n block_height: this.block,\n block_hash: info.hash.substring(2),\n index_block_hash: info.index_block_hash.substring(2),\n };\n }\n\n public async run() {\n console.log(\n `--------------------------------\nThis product can never exist without your support!\n\nWe receive sponsorship funds with:\nSP212Y5JKN59YP3GYG07K3S8W5SSGE4KH6B5STXER\n\nFeedbacks and feature requests are welcome.\nTo get in touch: contact@stxer.xyz\n--------------------------------`\n );\n const block = await this.getBlockInfo();\n console.log(\n `Using block height ${block.block_height} hash 0x${block.block_hash} to run simulation.`\n );\n const txs: (StacksTransactionWire | SimulationEval)[] = [];\n const nonce_by_address = new Map<string, number>();\n const nextNonce = async (sender: string) => {\n const nonce = nonce_by_address.get(sender);\n if (nonce == null) {\n const url = `${this.stacksNodeAPI\n }/v2/accounts/${sender}?proof=${false}&tip=${block.index_block_hash}`;\n const account: AccountDataResponse = await richFetch(url).then((r) =>\n r.json()\n );\n nonce_by_address.set(sender, account.nonce + 1);\n return account.nonce;\n }\n nonce_by_address.set(sender, nonce + 1);\n return nonce;\n };\n let network = this.network === 'mainnet' ? STACKS_MAINNET : STACKS_TESTNET;\n if (this.stacksNodeAPI) {\n network = {\n ...network,\n client: {\n ...network.client,\n baseUrl: this.stacksNodeAPI,\n },\n };\n }\n for (const step of this.steps) {\n if ('simulationId' in step) {\n const previousSimulation: {steps: ({tx: string} | {code: string, contract: string})[]} = await fetch(`https://api.stxer.xyz/simulations/${step.simulationId}/request`).then(x => x.json())\n for (const step of previousSimulation.steps) {\n if ('tx' in step) {\n txs.push(deserializeTransaction(step.tx));\n } else if ('code' in step && 'contract' in step) {\n txs.push({\n contract_id: step.contract,\n code: step.code,\n });\n }\n }\n } else if ('sender' in step && 'function_name' in step) {\n const nonce = await nextNonce(step.sender);\n const [contractAddress, contractName] = step.contract_id.split('.');\n const tx = await makeUnsignedContractCall({\n contractAddress,\n contractName,\n functionName: step.function_name,\n functionArgs: step.function_args ?? [],\n nonce,\n network,\n publicKey: '',\n postConditionMode: PostConditionMode.Allow,\n fee: step.fee,\n });\n tx.auth.spendingCondition.signer = c32addressDecode(step.sender)[1];\n txs.push(tx);\n } else if ('sender' in step && 'recipient' in step) {\n const nonce = await nextNonce(step.sender);\n const tx = await makeUnsignedSTXTokenTransfer({\n recipient: step.recipient,\n amount: step.amount,\n nonce,\n network,\n publicKey: '',\n fee: step.fee,\n });\n tx.auth.spendingCondition.signer = c32addressDecode(step.sender)[1];\n txs.push(tx);\n } else if ('deployer' in step) {\n const nonce = await nextNonce(step.deployer);\n const tx = await makeUnsignedContractDeploy({\n contractName: step.contract_name,\n codeBody: step.source_code,\n nonce,\n network,\n publicKey: '',\n postConditionMode: PostConditionMode.Allow,\n fee: step.fee,\n });\n tx.auth.spendingCondition.signer = c32addressDecode(step.deployer)[1];\n txs.push(tx);\n } else if ('code' in step) {\n txs.push(step);\n } else {\n // biome-ignore lint/style/noUnusedTemplateLiteral: <explanation>\n console.log(`Invalid simulation step:`, step);\n }\n }\n const id = await runSimulation(\n `${this.apiEndpoint}/simulations`,\n block.block_hash,\n block.block_height,\n txs\n );\n console.log(\n `Simulation will be available at: https://stxer.xyz/simulations/${this.network}/${id}`\n );\n return id;\n }\n\n public pipe(transform: (builder: SimulationBuilder) => SimulationBuilder): SimulationBuilder {\n return transform(this);\n }\n}\n"],"names":["DEFAULT_STXER_API","batchRead","_x","_x2","_batchRead","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","reads","options","payload","variables","_iterator","_createForOfIteratorHelperLoose","_step","done","variable","value","push","serializeCV","contract","variableName","maps","_iterator2","_step2","map","mapName","mapKey","ibh","index_block_hash","startsWith","substring","url","_options$stxerApi","stxerApi","_context","next","fetch","method","body","JSON","stringify","data","sent","text","includes","Error","results","parse","rs","variablesLength","length","i","result","deserializeCV","Ok","Err","abrupt","stop","batchReadonly","_x3","_x4","_batchReadonly","_callee2","req","readonly","r","functionName","concat","functionArgs","arg","_options$stxerApi2","_context2","_iterator3","_step3","runTx","tx","tupleCV","type","uintCV","bufferCV","serializeBytes","runEval","_ref","contract_id","code","_contract_id$split","split","contract_address","contract_name","serializeCVBytes","contractPrincipalCV","stringAsciiCV","runSimulation","_runSimulation","_callee5","apiEndpoint","block_hash","block_height","txs","header","heightBytes","view","hashHex","matches","hashBytes","txBytes","totalLength","offset","_step4","wrap","_callee5$","_context5","prev","TextEncoder","encode","Uint8Array","DataView","buffer","setBigUint64","BigInt","match","byte","Number","parseInt","t","reduce","acc","curr","set","then","_ref3","_callee4","response","_callee4$","_context4","_x6","id","SimulationBuilder","_options$apiEndpoint","_options$stacksNodeAP","_options$network","stacksNodeAPI","network","block","NaN","sender","steps","new","_proto","prototype","useBlockHeight","withSender","address","inlineSimulation","simulationId","addSTXTransfer","params","_params$sender","_params$fee","_extends","fee","addContractCall","_params$sender2","_params$fee2","addContractDeploy","_params$deployer","_params$fee3","_params$clarity_versi","deployer","clarity_version","ClarityVersion","Clarity3","addEvalCode","inside_contract_id","addMapRead","key","addVarRead","getBlockInfo","_getBlockInfo","_yield$getNodeInfo","stacks_tip_height","info","_callee$","isNaN","getNodeInfo","stacksEndpoint","richFetch","json","height","hash","run","_run","_callee3","_this","nonce_by_address","nextNonce","step","previousSimulation","_step$function_args","nonce","_step$contract_id$spl","contractAddress","contractName","_nonce","_tx","_nonce2","_tx2","_callee3$","_context3","console","log","Map","_ref2","account","_callee2$","get","_x5","STACKS_MAINNET","STACKS_TESTNET","client","baseUrl","x","deserializeTransaction","makeUnsignedContractCall","function_name","function_args","publicKey","postConditionMode","PostConditionMode","Allow","auth","spendingCondition","signer","c32addressDecode","makeUnsignedSTXTokenTransfer","recipient","amount","makeUnsignedContractDeploy","codeBody","source_code","pipe","transform"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "stxer",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.1",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"author": "Kyle Fang",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -61,6 +61,7 @@
|
|
|
61
61
|
"size": "size-limit",
|
|
62
62
|
"start": "dts watch",
|
|
63
63
|
"test": "dts test",
|
|
64
|
-
"sample": "tsx src/sample/counter.ts"
|
|
64
|
+
"sample:counter": "tsx src/sample/counter.ts",
|
|
65
|
+
"sample:read": "tsx src/sample/read.ts"
|
|
65
66
|
}
|
|
66
67
|
}
|