evm-contracts-tools 0.0.54 → 0.0.57

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.
Files changed (48) hide show
  1. package/dist/evm-contract-call/evm-contract-call.js +1 -0
  2. package/dist/evm-contract-call/fs-worker.js +1 -0
  3. package/dist/evm-contract-deployment-abi/evm-contract-deployment-abi.js +1 -0
  4. package/dist/evm-contract-deployment-abi/fs-worker.js +1 -0
  5. package/dist/evm-contract-deployment-address/evm-contract-deployment-address.js +1 -0
  6. package/dist/evm-contract-deployment-address/fs-worker.js +1 -0
  7. package/dist/evm-contract-deployment-bytecode/evm-contract-deployment-bytecode.js +1 -0
  8. package/dist/evm-contract-deployment-bytecode/fs-worker.js +1 -0
  9. package/dist/evm-contract-deployment-compiler-output/evm-contract-deployment-compiler-output.js +1 -0
  10. package/dist/evm-contract-deployment-compiler-output/fs-worker.js +1 -0
  11. package/dist/evm-contract-deployment-deployment-networks +1 -0
  12. package/dist/evm-contract-deployment-networks/evm-contract-deployment-networks.js +1 -0
  13. package/dist/evm-contract-deployment-versions/evm-contract-deployment-versions.js +1 -0
  14. package/dist/evm-contract-deployment-versions/fs-worker.js +1 -0
  15. package/dist/evm-contract-deployments-dir/evm-contract-deployments-dir.js +1 -0
  16. package/dist/evm-contract-deployments-dir/fs-worker.js +1 -0
  17. package/dist/evm-contracts-tools/evm-contracts-tools.js +1 -0
  18. package/dist/evm-contracts-tools/fs-worker.js +1 -0
  19. package/dist/libevm-contract-call/fs-worker.js +1 -0
  20. package/dist/libevm-contract-call/libevm-contract-call.js +1 -0
  21. package/dist/libevm-contract-deployment-abi/fs-worker.js +1 -0
  22. package/dist/libevm-contract-deployment-abi/libevm-contract-deployment-abi.js +1 -0
  23. package/dist/libevm-contract-deployment-address/fs-worker.js +1 -0
  24. package/dist/libevm-contract-deployment-address/libevm-contract-deployment-address.js +1 -0
  25. package/dist/libevm-contract-deployment-bytecode/fs-worker.js +1 -0
  26. package/dist/libevm-contract-deployment-bytecode/libevm-contract-deployment-bytecode.js +1 -0
  27. package/dist/libevm-contract-deployment-compiler-output/fs-worker.js +1 -0
  28. package/dist/libevm-contract-deployment-compiler-output/libevm-contract-deployment-compiler-output.js +1 -0
  29. package/dist/libevm-contract-deployment-deployment-networks +1 -0
  30. package/dist/libevm-contract-deployment-networks/libevm-contract-deployment-networks.js +1 -0
  31. package/dist/libevm-contract-deployment-versions/fs-worker.js +1 -0
  32. package/dist/libevm-contract-deployment-versions/libevm-contract-deployment-versions.js +1 -0
  33. package/dist/libevm-contract-deployments-dir/fs-worker.js +1 -0
  34. package/dist/libevm-contract-deployments-dir/libevm-contract-deployments-dir.js +1 -0
  35. package/dist/libevm-contracts-tools +1 -0
  36. package/evm-contract-call +133 -6
  37. package/lib/address-check +0 -4
  38. package/lib/bytecode-creation-get +74 -32
  39. package/lib/bytecode-runtime-get +171 -69
  40. package/lib/contract-get +189 -93
  41. package/lib/deployer-get +145 -61
  42. package/lib/deployer-verify +226 -113
  43. package/lib/evm-contract-call-dynamic +331 -194
  44. package/lib/evm-contract-call-static +121 -44
  45. package/libevm-contract-call +405 -0
  46. package/libevm-contract-deployment +3 -3
  47. package/libevm-contract-deployment-address +31 -18
  48. package/package.json +9 -9
@@ -65,6 +65,11 @@ const
65
65
  _libcrash_module =
66
66
  await import(
67
67
  "libcrash-js");
68
+ /* global
69
+ _dir_exists */
70
+ const
71
+ _dir_exists =
72
+ _libcrash_module._dir_exists;
68
73
  /* global
69
74
  _dirname */
70
75
  const
@@ -95,6 +100,11 @@ const
95
100
  const
96
101
  _lib_get =
97
102
  _libcrash_module._lib_get;
103
+ /* global
104
+ _ls */
105
+ const
106
+ _ls =
107
+ _libcrash_module._ls;
98
108
  /* global
99
109
  _msg_info */
100
110
  const
@@ -139,6 +149,15 @@ const
139
149
  const
140
150
  _address_check =
141
151
  _evm_contracts_tools_module._address_check;
152
+ const
153
+ _evm_contract_deployment_address_module =
154
+ await import(
155
+ "./libevm-contract-deployment-address");
156
+ /* global
157
+ _evm_contract_deployment_address */
158
+ const
159
+ _evm_contract_deployment_address =
160
+ _evm_contract_deployment_address_module._evm_contract_deployment_address;
142
161
  const
143
162
  _ethereum_data_module =
144
163
  await _require(
@@ -513,17 +532,393 @@ function
513
532
  }
514
533
  }
515
534
 
535
+ async function
536
+ _target_app_get(
537
+ _contract_address) {
538
+ let
539
+ _target_app;
540
+ _target_app =
541
+ "";
542
+ const
543
+ _contract_address_type =
544
+ typeof(
545
+ _contract_address);
546
+ if ( _contract_address_type != "undefined" &&
547
+ _contract_address != "" ) {
548
+ const
549
+ _address_valid =
550
+ _address_check(
551
+ _contract_address);
552
+ if ( ! _address_valid ) {
553
+ _target_app =
554
+ await _app_lookup_contract(
555
+ _contract_address);
556
+ }
557
+ }
558
+ return _target_app;
559
+ }
560
+
561
+ async function
562
+ _contract_lookup_address(
563
+ _target_app,
564
+ _address,
565
+ _target_network) {
566
+ let
567
+ _contract,
568
+ _contract_address,
569
+ _contract_dir,
570
+ _contract_networks,
571
+ _evm_contract_deployment_address_args,
572
+ _exception,
573
+ _msg,
574
+ _network;
575
+ const
576
+ _target_contracts =
577
+ {};
578
+ const
579
+ _lib =
580
+ await _lib_get();
581
+ const
582
+ _deployments_dir =
583
+ _path_join([
584
+ _lib,
585
+ _target_app,
586
+ "deployments"
587
+ ]);
588
+ const
589
+ _contracts =
590
+ await _ls(
591
+ _deployments_dir);
592
+ for ( _contract of _contracts ) {
593
+ _contract_dir =
594
+ _path_join([
595
+ _deployments_dir,
596
+ _contract
597
+ ]);
598
+ _contract_networks =
599
+ await _ls(
600
+ _contract_dir);
601
+ for ( _network in _contract_networks ) {
602
+ _evm_contract_deployment_address_args = [
603
+ [ _target_network ], // target networks
604
+ [ _target_network ], // target chain ids
605
+ "n", // all networks
606
+ _target_app,
607
+ _contract,
608
+ "", // contract version
609
+ "n", // user-level
610
+ "", // configuration format
611
+ _deployments_dir
612
+ ];
613
+ _contract_address =
614
+ await _evm_contract_deployment_address.apply(
615
+ null,
616
+ _evm_contract_deployment_address_args);
617
+ if ( _address == _contract_address ) {
618
+ if ( _target_network == "" ) {
619
+ _target_contracts[
620
+ _contract] =
621
+ 1;
622
+ }
623
+ else {
624
+ if ( _network == _target_network ) {
625
+ _target_contracts[
626
+ _contract] =
627
+ 1;
628
+ }
629
+ }
630
+ }
631
+ }
632
+ }
633
+ const
634
+ _target_contracts_set =
635
+ Object.keys(
636
+ _target_contracts);
637
+ const
638
+ _target_contracts_amount =
639
+ _target_contracts_set.length;
640
+ if ( _target_contracts_amount < 1 ) {
641
+ _msg =
642
+ "No contract found for " +
643
+ `address '${_address}' ` +
644
+ `on network '${_network}' in '${_lib}'.`;
645
+ _msg_error(
646
+ _msg,
647
+ 0);
648
+ _exception = {
649
+ "msg":
650
+ _msg
651
+ };
652
+ throw _exception;
653
+ }
654
+ if ( 1 < _target_contracts_amount ) {
655
+ _msg =
656
+ "Found more than one contract for " +
657
+ `contract '${_contract}' ` +
658
+ `in '${_lib}':\n`;
659
+ for ( _contract of _target_contracts_set ) {
660
+ _msg =
661
+ _msg + `${_contract}\n`;
662
+ }
663
+ _msg_error(
664
+ _msg,
665
+ 0);
666
+ _exception = {
667
+ "msg":
668
+ _msg
669
+ };
670
+ throw _exception;
671
+ }
672
+ else {
673
+ return _target_contracts_set;
674
+ }
675
+ }
676
+
677
+ async function
678
+ _app_lookup_contract(
679
+ _contract_name) {
680
+ let
681
+ _app,
682
+ _contract_dir,
683
+ _msg;
684
+ const
685
+ _lib =
686
+ await _lib_get();
687
+ const
688
+ _target_apps =
689
+ {};
690
+ const
691
+ _apps =
692
+ await _ls(
693
+ _lib);
694
+ for ( _app of _apps ) {
695
+ _contract_dir =
696
+ _path_join([
697
+ _lib,
698
+ _app,
699
+ "deployments",
700
+ _contract_name
701
+ ]);
702
+ if ( _dir_exists(
703
+ _contract_dir) ) {
704
+ _target_apps[
705
+ _app] =
706
+ 1;
707
+ }
708
+ }
709
+ const
710
+ _target_apps_set =
711
+ Object.keys(
712
+ _target_apps);
713
+ const
714
+ _target_apps_amount =
715
+ _target_apps_set.length;
716
+ if ( _target_apps_amount < 1 ) {
717
+ _msg =
718
+ "No apps found for " +
719
+ `contract '${_contract_name}' ` +
720
+ `in '${_lib}'.`;
721
+ _msg_error(
722
+ _msg,
723
+ 0);
724
+ const
725
+ _exception = {
726
+ "msg":
727
+ _msg
728
+ };
729
+ throw _exception;
730
+ }
731
+ else if ( 1 < _target_apps_amount ) {
732
+ _msg =
733
+ "Found more than one app for " +
734
+ `contract '${_contract_name}' ` +
735
+ `in '${_lib}': '${_target_apps_set}'.`;
736
+ _msg_error(
737
+ _msg,
738
+ 0);
739
+ const
740
+ _exception = {
741
+ "msg":
742
+ _msg
743
+ };
744
+ throw _exception;
745
+ }
746
+ return _target_apps_set[
747
+ 0];
748
+ }
749
+
750
+ function
751
+ _target_app_auto_detect() {
752
+ let
753
+ _target_app;
754
+ _target_app =
755
+ "";
756
+ const
757
+ _contract_address =
758
+ _get(
759
+ "contract",
760
+ "address");
761
+ const
762
+ _contract_address_type =
763
+ typeof(
764
+ _contract_address);
765
+ if ( _contract_address_type != "undefined" &&
766
+ _contract_address != "" ) {
767
+ _target_app =
768
+ _target_app_get(
769
+ _contract_address);
770
+ }
771
+ _override_set(
772
+ "target",
773
+ "app",
774
+ _target_app);
775
+ }
776
+
777
+ async function
778
+ _contract_address_auto_detect() {
779
+ let
780
+ _contract_address,
781
+ _evm_contract_deployment_address_args,
782
+ _msg;
783
+ _contract_address =
784
+ _get(
785
+ "contract",
786
+ "address");
787
+ const
788
+ _target_app =
789
+ _get(
790
+ "target",
791
+ "app");
792
+ const
793
+ _target_network =
794
+ _get(
795
+ "target",
796
+ "network");
797
+ const
798
+ _target_contract =
799
+ _get(
800
+ "target",
801
+ "contract");
802
+ const
803
+ _deployments_dir =
804
+ _get(
805
+ "deployments",
806
+ "dir");
807
+ if ( _contract_address != "" ) {
808
+ const
809
+ _address_valid =
810
+ await _address_check(
811
+ _contract_address);
812
+ if ( ! _address_valid ) {
813
+ if ( _target_app != "" &&
814
+ _target_network != "" &&
815
+ _target_contract != "" ) {
816
+ _msg =
817
+ "Looking for address " +
818
+ "corresponding to contract " +
819
+ `'${_target_contract}' for the ` +
820
+ `'${_target_app}' ` +
821
+ "libEVM application on network " +
822
+ `'${_target_network}'.`;
823
+ _msg_info(
824
+ _msg);
825
+ _evm_contract_deployment_address_args = [
826
+ [ _target_network ], // target networks
827
+ [ _target_network ], // target chain ids
828
+ "n", // all networks
829
+ _target_app,
830
+ _target_contract,
831
+ "", // contract version
832
+ "n", // user-level
833
+ "", // configuration format
834
+ _deployments_dir
835
+ ];
836
+ _contract_address =
837
+ await _evm_contract_deployment_address.apply(
838
+ null,
839
+ _evm_contract_deployment_address_args);
840
+ }
841
+ else {
842
+ _msg =
843
+ "One between the " +
844
+ `application '${_target_app}', ` +
845
+ `the network '${_target_network}' ` +
846
+ `or the contract '${_target_contract}' ` +
847
+ `has not been specified.`;
848
+ _msg_info(
849
+ _msg);
850
+ }
851
+ }
852
+ }
853
+ _set(
854
+ "contract",
855
+ "address",
856
+ _contract_address);
857
+ }
858
+
859
+ function
860
+ _data_dir_auto_detect() {
861
+ const
862
+ _homedir =
863
+ _homedir_get();
864
+ const
865
+ _app_name =
866
+ _get(
867
+ "app",
868
+ "name");
869
+ const
870
+ _data_dir =
871
+ _path_join([
872
+ _homedir,
873
+ ".local",
874
+ "share",
875
+ _app_name
876
+ ]);
877
+ _override_set(
878
+ "data",
879
+ "dir",
880
+ _data_dir);
881
+ }
882
+
883
+ function
884
+ _cache_dir_auto_detect() {
885
+ const
886
+ _homedir =
887
+ _homedir_get();
888
+ const
889
+ _app_name =
890
+ _get(
891
+ "app",
892
+ "name");
893
+ const
894
+ _cache_dir =
895
+ _path_join([
896
+ _homedir,
897
+ ".cache",
898
+ _app_name
899
+ ]);
900
+ _override_set(
901
+ "cache",
902
+ "dir",
903
+ _cache_dir);
904
+ }
905
+
516
906
  // ES6 module exports
517
907
 
518
908
  export {
519
909
  _address_check,
910
+ _app_lookup_contract,
520
911
  _artifact_local_auto_detect,
912
+ _cache_dir_auto_detect,
521
913
  _call_auth_auto_detect,
522
914
  _call_auth_get,
523
915
  _contract_abi_auto_detect,
524
916
  _contract_abi_get,
917
+ _contract_address_auto_detect,
918
+ _data_dir_auto_detect,
525
919
  _default_artifact_path_get,
526
920
  _evm_contract_call,
921
+ _target_app_auto_detect,
527
922
  _target_networks_auto_detect,
528
923
  _target_networks_get
529
924
  };
@@ -533,8 +928,12 @@ export {
533
928
  // module.exports = {
534
929
  // _address_check:
535
930
  // _address_check,
931
+ // _app_lookup_contract:
932
+ // _app_lookup_contract,
536
933
  // _artifact_local_auto_detect:
537
934
  // _artifact_local_auto_detect,
935
+ // _cache_dir_auto_detect:
936
+ // _cache_dir_auto_detect,
538
937
  // _call_auth_auto_detect:
539
938
  // _call_auth_auto_detect,
540
939
  // _call_auth_get:
@@ -543,10 +942,16 @@ export {
543
942
  // _contract_abi_auto_detect,
544
943
  // _contract_abi_get:
545
944
  // _contract_abi_get,
945
+ // _contract_address_auto_detect:
946
+ // _contract_address_auto_detect,
947
+ // _data_dir_auto_detect:
948
+ // _data_dir_auto_detect,
546
949
  // _default_artifact_path_get:
547
950
  // _default_artifact_path_get,
548
951
  // _evm_contract_call:
549
952
  // _evm_contract_call,
953
+ // _target_app_auto_detect:
954
+ // _target_app_auto_detect,
550
955
  // _target_networks_auto_detect:
551
956
  // _target_networks_auto_detect,
552
957
  // _target_networks_get:
@@ -156,7 +156,7 @@ const
156
156
  _evm_chains_info_module._evm_chains_info;
157
157
  const
158
158
  _libevm_contract_deployments_dir_module =
159
- await _require(
159
+ await import(
160
160
  "./libevm-contract-deployments-dir");
161
161
  /* global
162
162
  _evm_contract_deployments_dir */
@@ -165,7 +165,7 @@ const
165
165
  _libevm_contract_deployments_dir_module._evm_contract_deployments_dir;
166
166
  const
167
167
  _libevm_contract_deployment_networks_module =
168
- await _require(
168
+ await import(
169
169
  "./libevm-contract-deployment-networks");
170
170
  /* global
171
171
  _evm_contract_deployment_networks */
@@ -174,7 +174,7 @@ const
174
174
  _libevm_contract_deployment_networks_module._evm_contract_deployment_networks;
175
175
  const
176
176
  _libevm_contract_deployment_versions_module =
177
- await _require(
177
+ await import(
178
178
  "./libevm-contract-deployment-versions");
179
179
  /* global
180
180
  _evm_contract_deployment_versions */
@@ -61,8 +61,8 @@
61
61
 
62
62
  const
63
63
  _libcrash_module =
64
- require(
65
- "crash-js");
64
+ await import(
65
+ "libcrash-js");
66
66
  /* global
67
67
  _basename */
68
68
  const
@@ -143,9 +143,14 @@ const
143
143
  const
144
144
  _pwd =
145
145
  _libcrash_module._pwd;
146
+ /* global
147
+ _require */
148
+ const
149
+ _require =
150
+ _libcrash_module._require;
146
151
  const
147
152
  _evm_chains_info_module =
148
- require(
153
+ await _require(
149
154
  "evm-chains-info");
150
155
  /* global
151
156
  _evm_chains_info */
@@ -154,7 +159,7 @@ const
154
159
  _evm_chains_info_module._evm_chains_info;
155
160
  const
156
161
  _libevm_contract_deployments_dir_module =
157
- require(
162
+ await import(
158
163
  "./libevm-contract-deployments-dir");
159
164
  /* global
160
165
  _evm_contract_deployments_dir */
@@ -163,7 +168,7 @@ const
163
168
  _libevm_contract_deployments_dir_module._evm_contract_deployments_dir;
164
169
  const
165
170
  _libevm_contract_deployment_module =
166
- require(
171
+ await import(
167
172
  "./libevm-contract-deployment");
168
173
  /* global
169
174
  _contract_version_auto_detect */
@@ -197,7 +202,7 @@ const
197
202
  _libevm_contract_deployment_module._user_deployments_check;
198
203
  const
199
204
  _libevm_contract_deployment_networks_module =
200
- require(
205
+ await import(
201
206
  "./libevm-contract-deployment-networks");
202
207
  /* global
203
208
  _evm_contract_deployment_networks */
@@ -206,7 +211,7 @@ const
206
211
  _libevm_contract_deployment_networks_module._evm_contract_deployment_networks;
207
212
  const
208
213
  _libevm_contract_deployment_versions_module =
209
- require(
214
+ await import(
210
215
  "./libevm-contract-deployment-versions");
211
216
  /* global
212
217
  _evm_contract_deployment_versions */
@@ -472,15 +477,23 @@ async function
472
477
  return _contracts_addresses;
473
478
  }
474
479
 
475
- module.exports = {
476
- _contract_version_auto_detect:
477
- _contract_version_auto_detect,
478
- _deployments_dir_auto_detect:
479
- _deployments_dir_auto_detect,
480
- _evm_contract_deployment_address:
481
- _evm_contract_deployment_address,
482
- _networks_all_auto_detect:
483
- _networks_all_auto_detect,
484
- _target_app_auto_detect:
485
- _target_app_auto_detect
480
+ export {
481
+ _contract_version_auto_detect,
482
+ _deployments_dir_auto_detect,
483
+ _evm_contract_deployment_address,
484
+ _networks_all_auto_detect,
485
+ _target_app_auto_detect
486
486
  };
487
+
488
+ // module.exports = {
489
+ // _contract_version_auto_detect:
490
+ // _contract_version_auto_detect,
491
+ // _deployments_dir_auto_detect:
492
+ // _deployments_dir_auto_detect,
493
+ // _evm_contract_deployment_address:
494
+ // _evm_contract_deployment_address,
495
+ // _networks_all_auto_detect:
496
+ // _networks_all_auto_detect,
497
+ // _target_app_auto_detect:
498
+ // _target_app_auto_detect
499
+ // };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  { "name": "evm-contracts-tools",
2
2
  "version":
3
- "0.0.54",
3
+ "0.0.57",
4
4
  "description":
5
5
  "JavaScript programs and libraries to enable seamless development of native computer applications designed to interact with Ethereum Virtual Machine-compatible networks.",
6
6
  "funding": {
@@ -100,7 +100,7 @@
100
100
  },
101
101
  "devDependencies": {
102
102
  "crash-js-webpack":
103
- "^0.0.67",
103
+ "^0.0.69",
104
104
  "brace-expansion":
105
105
  "^5.0.9",
106
106
  "eslint":
@@ -120,17 +120,17 @@
120
120
  },
121
121
  "dependencies": {
122
122
  "libcrash-js":
123
- "npm:crash-js@^10000000000001.1000000000000001.1000000000000001",
123
+ "npm:crash-js@^100000000000001.1000000000000001.1000000000000001",
124
124
  "ethers":
125
125
  "^6.13.2",
126
126
  "evm-chains-info":
127
127
  "^0.0.34",
128
128
  "evm-transactions-tools":
129
- "^0.0.111111",
129
+ "^0.0.1111111111",
130
130
  "evm-wallet":
131
- "npm:evm-wallet.js@^0.0.86",
131
+ "npm:evm-wallet.js@^0.0.93",
132
132
  "libevm":
133
- "^0.0.37",
133
+ "^0.0.39",
134
134
  "ws":
135
135
  "^8.21.0",
136
136
  "yargs":
@@ -140,11 +140,11 @@
140
140
  "evm-contracts-tools":
141
141
  "./evm-contracts-tools",
142
142
  "evm-wallet":
143
- "npm:evm-wallet.js@^0.0.86",
143
+ "npm:evm-wallet.js@^0.0.93",
144
144
  "evm-wallet.js":
145
- "npm:evm-wallet.js@^0.0.86",
145
+ "npm:evm-wallet.js@^0.0.93",
146
146
  "libevm":
147
- "^0.0.37"
147
+ "^0.0.39"
148
148
  },
149
149
  "type":
150
150
  "module",