How to use TOKEN_FACTORY1 method in ng-mocks

Best JavaScript code snippet using ng-mocks

maker.js

Source:maker.js Github

copy

Full Screen

1'use strict';2/*3// For geth4if (typeof Dapple === 'undefined') {5 var Dapple = {};6}7// For browsers8if (typeof window !== 'undefined') {9 window.Dapple = Dapple;10}11// For Node12if (typeof web3 === 'undefined' && typeof Web3 === 'undefined') {13 var Web3 = require('web3');14}15*/16// Dappsys definition17Dapple['dappsys'] = (function builder () {18 var environments = {19 'ropsten': {20 'objects': {21 'auth_factory1': {22 'class': 'DSAuthFactory',23 'address': '0x0000000000000000000000000000000000000000'24 },25 'data_factory1': {26 'class': 'DSDataFactory',27 'address': '0x0000000000000000000000000000000000000000'28 },29 'multisig_factory1': {30 'class': 'DSMultisigFactory',31 'address': '0x0000000000000000000000000000000000000000'32 },33 'token_factory1': {34 'class': 'DSTokenFactory',35 'address': '0x0000000000000000000000000000000000000000'36 },37 'token_installer1': {38 'class': 'DSTokenInstaller',39 'address': '0x0000000000000000000000000000000000000000'40 },41 'factory1': {42 'class': 'DSFactory1',43 'address': '0x0000000000000000000000000000000000000000'44 },45 'eth_token1': {46 'class': 'DSEthToken',47 'address': '0x0000000000000000000000000000000000000000'48 },49 'token_registry': {50 'class': 'DSTokenRegistry',51 'address': '0x0000000000000000000000000000000000000000'52 },53 'multisig': {54 'class': 'DSEasyMultisig',55 'address': '0x0000000000000000000000000000000000000000'56 },57 'echo': {58 'class': 'DSEcho',59 'address': '0x0000000000000000000000000000000000000000'60 }61 }62 },63 'morden': {64 'objects': {65 'auth_factory1': {66 'class': 'DSAuthFactory',67 'address': '0x7639a37b8ecbd68e15b8e173897c6c0dea462452'68 },69 'data_factory1': {70 'class': 'DSDataFactory',71 'address': '0x619104fd4f8abdd2ee651f0ec4985719dbb2c599'72 },73 'multisig_factory1': {74 'class': 'DSMultisigFactory',75 'address': '0x0b30a24e7257e1842d681b0f2f8aff4182eb2a78'76 },77 'token_factory1': {78 'class': 'DSTokenFactory',79 'address': '0x9fc46bdfa075c2aad6437e9cc771e1bf6b72a9d4'80 },81 'token_installer1': {82 'class': 'DSTokenInstaller',83 'address': '0x5b605da3a721ba809be030d225312c4c39ead11b'84 },85 'factory1': {86 'class': 'DSFactory1',87 'address': '0x3da0d9695d0099f98582f58a64b2e2616fcbaa00'88 },89 'eth_token1': {90 'class': 'DSEthToken',91 'address': '0x52fe88b987c7829e5d5a61c98f67c9c14e6a7a90'92 },93 'token_registry': {94 'class': 'DSTokenRegistry',95 'address': '0x877c5369c747d24d9023c88c1aed1724f1993efe'96 },97 'multisig': {98 'class': 'DSEasyMultisig',99 'address': '0xcd85c33878a7f378483c6422eee32631ea6f8001'100 },101 'echo': {102 'class': 'DSEcho',103 'address': '0x002956c57c04f4b0469fa5cfa137a0b823e49293'104 }105 }106 },107 'live': {108 'objects': {109 'auth_factory1': {110 'class': 'DSAuthFactory',111 'address': '0x671bed5a8402cd6c250a17e5f02e08c85d51542f'112 },113 'data_factory1': {114 'class': 'DSDataFactory',115 'address': '0x5d7af7715dfbbfc86e2505c308468f78702a99d9'116 },117 'multisig_factory1': {118 'class': 'DSMultisigFactory',119 'address': '0x82f39d996d1e9ab119e4b33d581c3eeb4133acf6'120 },121 'token_factory1': {122 'class': 'DSTokenFactory',123 'address': '0x12bcc9daffda452b6c4b0a1571360925a64fcc79'124 },125 'token_installer1': {126 'class': 'DSTokenInstaller',127 'address': '0x460df00675f994928457771eb3b9732a99314cbe'128 },129 'factory1': {130 'class': 'DSFactory1',131 'address': '0x2c139c5a8dd6be98067c5b4258e0dedcdbbff78b'132 },133 'eth_token1': {134 'class': 'DSEthToken',135 'address': '0xecf8f87f810ecf450940c9f60066b4a7a501d6a7'136 },137 'token_registry': {138 'class': 'DSTokenRegistry',139 'address': '0xc6882fbffd309dc976dd6e4c79cc91e4c1482140'140 },141 'multisig': {142 'class': 'DSEasyMultisig',143 'address': '0xe02640be68df835aa3327ea6473c02c8f6c3815a'144 },145 'echo': {146 'class': 'DSEcho',147 'address': '0x992c64ac907ef9e531e7ff8d06cec599778a0e72'148 }149 }150 }151 };152 function constructor (_web3, env) {153 if (!env) {154 env = 'default';155 }156 while (typeof env !== 'object') {157 env = environments[env];158 }159 if (typeof _web3 === 'undefined') {160 if (!env.rpcURL) {161 throw new Error('Need either a Web3 instance or an RPC URL!');162 }163 _web3 = new Web3(new Web3.providers.HttpProvider(env.rpcURL));164 }165 this.web3 = _web3;166 this.headers = {167 'DSApprovalDB': {168 'interface': [169 {170 'constant': false,171 'inputs': [172 {173 'name': 'holder',174 'type': 'address'175 },176 {177 'name': 'spender',178 'type': 'address'179 },180 {181 'name': 'amount',182 'type': 'uint256'183 }184 ],185 'name': 'setApproval',186 'outputs': [],187 'type': 'function'188 },189 {190 'constant': false,191 'inputs': [192 {193 'name': 'new_authority',194 'type': 'address'195 },196 {197 'name': 'mode',198 'type': 'uint8'199 }200 ],201 'name': 'updateAuthority',202 'outputs': [],203 'type': 'function'204 },205 {206 'constant': false,207 'inputs': [208 {209 'name': 'holder',210 'type': 'address'211 },212 {213 'name': 'spender',214 'type': 'address'215 }216 ],217 'name': 'getApproval',218 'outputs': [219 {220 'name': 'amount',221 'type': 'uint256'222 }223 ],224 'type': 'function'225 },226 {227 'constant': true,228 'inputs': [],229 'name': '_authority',230 'outputs': [231 {232 'name': '',233 'type': 'address'234 }235 ],236 'type': 'function'237 },238 {239 'constant': true,240 'inputs': [],241 'name': '_auth_mode',242 'outputs': [243 {244 'name': '',245 'type': 'uint8'246 }247 ],248 'type': 'function'249 },250 {251 'anonymous': false,252 'inputs': [253 {254 'indexed': true,255 'name': 'owner',256 'type': 'address'257 },258 {259 'indexed': true,260 'name': 'spender',261 'type': 'address'262 },263 {264 'indexed': false,265 'name': 'value',266 'type': 'uint256'267 }268 ],269 'name': 'Approval',270 'type': 'event'271 },272 {273 'anonymous': false,274 'inputs': [275 {276 'indexed': true,277 'name': 'auth',278 'type': 'address'279 },280 {281 'indexed': true,282 'name': 'mode',283 'type': 'DSAuthModesEnum.DSAuthModes'284 }285 ],286 'name': 'DSAuthUpdate',287 'type': 'event'288 }289 ]290 },291 'DSApprovalDBEvents': {292 'interface': [293 {294 'anonymous': false,295 'inputs': [296 {297 'indexed': true,298 'name': 'owner',299 'type': 'address'300 },301 {302 'indexed': true,303 'name': 'spender',304 'type': 'address'305 },306 {307 'indexed': false,308 'name': 'value',309 'type': 'uint256'310 }311 ],312 'name': 'Approval',313 'type': 'event'314 }315 ]316 },317 'DSAuth': {318 'interface': [319 {320 'constant': false,321 'inputs': [322 {323 'name': 'new_authority',324 'type': 'address'325 },326 {327 'name': 'mode',328 'type': 'uint8'329 }330 ],331 'name': 'updateAuthority',332 'outputs': [],333 'type': 'function'334 },335 {336 'constant': true,337 'inputs': [],338 'name': '_authority',339 'outputs': [340 {341 'name': '',342 'type': 'address'343 }344 ],345 'type': 'function'346 },347 {348 'constant': true,349 'inputs': [],350 'name': '_auth_mode',351 'outputs': [352 {353 'name': '',354 'type': 'uint8'355 }356 ],357 'type': 'function'358 },359 {360 'anonymous': false,361 'inputs': [362 {363 'indexed': true,364 'name': 'auth',365 'type': 'address'366 },367 {368 'indexed': true,369 'name': 'mode',370 'type': 'DSAuthModesEnum.DSAuthModes'371 }372 ],373 'name': 'DSAuthUpdate',374 'type': 'event'375 }376 ]377 },378 'DSAuthFactory': {379 'interface': [380 {381 'constant': false,382 'inputs': [],383 'name': 'buildDSBasicAuthority',384 'outputs': [385 {386 'name': 'ret',387 'type': 'address'388 }389 ],390 'type': 'function'391 }392 ]393 },394 'DSAuthority': {395 'interface': [396 {397 'constant': true,398 'inputs': [399 {400 'name': 'caller',401 'type': 'address'402 },403 {404 'name': 'callee',405 'type': 'address'406 },407 {408 'name': 'sig',409 'type': 'bytes4'410 }411 ],412 'name': 'canCall',413 'outputs': [414 {415 'name': '',416 'type': 'bool'417 }418 ],419 'type': 'function'420 }421 ]422 },423 'DSAuthorized': {424 'interface': [425 {426 'constant': false,427 'inputs': [428 {429 'name': 'new_authority',430 'type': 'address'431 },432 {433 'name': 'mode',434 'type': 'uint8'435 }436 ],437 'name': 'updateAuthority',438 'outputs': [],439 'type': 'function'440 },441 {442 'constant': true,443 'inputs': [],444 'name': '_authority',445 'outputs': [446 {447 'name': '',448 'type': 'address'449 }450 ],451 'type': 'function'452 },453 {454 'constant': true,455 'inputs': [],456 'name': '_auth_mode',457 'outputs': [458 {459 'name': '',460 'type': 'uint8'461 }462 ],463 'type': 'function'464 },465 {466 'inputs': [],467 'type': 'constructor'468 },469 {470 'anonymous': false,471 'inputs': [472 {473 'indexed': true,474 'name': 'auth',475 'type': 'address'476 },477 {478 'indexed': true,479 'name': 'mode',480 'type': 'DSAuthModesEnum.DSAuthModes'481 }482 ],483 'name': 'DSAuthUpdate',484 'type': 'event'485 }486 ]487 },488 'DSAuthorizedEvents': {489 'interface': [490 {491 'anonymous': false,492 'inputs': [493 {494 'indexed': true,495 'name': 'auth',496 'type': 'address'497 },498 {499 'indexed': true,500 'name': 'mode',501 'type': 'DSAuthModesEnum.DSAuthModes'502 }503 ],504 'name': 'DSAuthUpdate',505 'type': 'event'506 }507 ]508 },509 'DSAuthorizedUser': {510 'interface': [511 {512 'constant': false,513 'inputs': [],514 'name': 'triggerAuth',515 'outputs': [516 {517 'name': '',518 'type': 'bool'519 }520 ],521 'type': 'function'522 },523 {524 'constant': false,525 'inputs': [],526 'name': 'triggerTryAuth',527 'outputs': [528 {529 'name': '',530 'type': 'bool'531 }532 ],533 'type': 'function'534 },535 {536 'constant': false,537 'inputs': [538 {539 'name': 'new_authority',540 'type': 'address'541 },542 {543 'name': 'mode',544 'type': 'uint8'545 }546 ],547 'name': 'updateAuthority',548 'outputs': [],549 'type': 'function'550 },551 {552 'constant': true,553 'inputs': [],554 'name': '_authority',555 'outputs': [556 {557 'name': '',558 'type': 'address'559 }560 ],561 'type': 'function'562 },563 {564 'constant': true,565 'inputs': [],566 'name': '_auth_mode',567 'outputs': [568 {569 'name': '',570 'type': 'uint8'571 }572 ],573 'type': 'function'574 },575 {576 'anonymous': false,577 'inputs': [578 {579 'indexed': true,580 'name': 'auth',581 'type': 'address'582 },583 {584 'indexed': true,585 'name': 'mode',586 'type': 'DSAuthModesEnum.DSAuthModes'587 }588 ],589 'name': 'DSAuthUpdate',590 'type': 'event'591 }592 ]593 },594 'DSBalanceDB': {595 'interface': [596 {597 'constant': false,598 'inputs': [599 {600 'name': 'to',601 'type': 'address'602 },603 {604 'name': 'amount',605 'type': 'uint256'606 }607 ],608 'name': 'addBalance',609 'outputs': [],610 'type': 'function'611 },612 {613 'constant': true,614 'inputs': [],615 'name': 'getSupply',616 'outputs': [617 {618 'name': '',619 'type': 'uint256'620 }621 ],622 'type': 'function'623 },624 {625 'constant': false,626 'inputs': [627 {628 'name': 'new_authority',629 'type': 'address'630 },631 {632 'name': 'mode',633 'type': 'uint8'634 }635 ],636 'name': 'updateAuthority',637 'outputs': [],638 'type': 'function'639 },640 {641 'constant': true,642 'inputs': [],643 'name': '_authority',644 'outputs': [645 {646 'name': '',647 'type': 'address'648 }649 ],650 'type': 'function'651 },652 {653 'constant': false,654 'inputs': [655 {656 'name': 'from',657 'type': 'address'658 },659 {660 'name': 'amount',661 'type': 'uint256'662 }663 ],664 'name': 'subBalance',665 'outputs': [],666 'type': 'function'667 },668 {669 'constant': true,670 'inputs': [],671 'name': '_auth_mode',672 'outputs': [673 {674 'name': '',675 'type': 'uint8'676 }677 ],678 'type': 'function'679 },680 {681 'constant': false,682 'inputs': [683 {684 'name': 'from',685 'type': 'address'686 },687 {688 'name': 'to',689 'type': 'address'690 },691 {692 'name': 'amount',693 'type': 'uint256'694 }695 ],696 'name': 'moveBalance',697 'outputs': [],698 'type': 'function'699 },700 {701 'constant': false,702 'inputs': [703 {704 'name': 'who',705 'type': 'address'706 },707 {708 'name': 'new_balance',709 'type': 'uint256'710 }711 ],712 'name': 'setBalance',713 'outputs': [],714 'type': 'function'715 },716 {717 'constant': true,718 'inputs': [719 {720 'name': 'who',721 'type': 'address'722 }723 ],724 'name': 'getBalance',725 'outputs': [726 {727 'name': '',728 'type': 'uint256'729 }730 ],731 'type': 'function'732 },733 {734 'anonymous': false,735 'inputs': [736 {737 'indexed': true,738 'name': 'who',739 'type': 'address'740 },741 {742 'indexed': false,743 'name': 'new_amount',744 'type': 'uint256'745 }746 ],747 'name': 'BalanceUpdate',748 'type': 'event'749 },750 {751 'anonymous': false,752 'inputs': [753 {754 'indexed': true,755 'name': 'auth',756 'type': 'address'757 },758 {759 'indexed': true,760 'name': 'mode',761 'type': 'DSAuthModesEnum.DSAuthModes'762 }763 ],764 'name': 'DSAuthUpdate',765 'type': 'event'766 }767 ]768 },769 'DSBalanceDBEvents': {770 'interface': [771 {772 'anonymous': false,773 'inputs': [774 {775 'indexed': true,776 'name': 'who',777 'type': 'address'778 },779 {780 'indexed': false,781 'name': 'new_amount',782 'type': 'uint256'783 }784 ],785 'name': 'BalanceUpdate',786 'type': 'event'787 }788 ]789 },790 'DSBasicAuthority': {791 'interface': [792 {793 'constant': false,794 'inputs': [795 {796 'name': 'caller_address',797 'type': 'address'798 },799 {800 'name': 'code_address',801 'type': 'address'802 },803 {804 'name': 'signature',805 'type': 'string'806 },807 {808 'name': 'can',809 'type': 'bool'810 }811 ],812 'name': 'setCanCall',813 'outputs': [],814 'type': 'function'815 },816 {817 'constant': false,818 'inputs': [819 {820 'name': 'new_authority',821 'type': 'address'822 },823 {824 'name': 'mode',825 'type': 'uint8'826 }827 ],828 'name': 'updateAuthority',829 'outputs': [],830 'type': 'function'831 },832 {833 'constant': false,834 'inputs': [835 {836 'name': 'caller_address',837 'type': 'address'838 },839 {840 'name': 'code_address',841 'type': 'address'842 },843 {844 'name': 'sig',845 'type': 'bytes4'846 },847 {848 'name': 'can',849 'type': 'bool'850 }851 ],852 'name': 'setCanCall',853 'outputs': [],854 'type': 'function'855 },856 {857 'constant': true,858 'inputs': [859 {860 'name': 'caller_address',861 'type': 'address'862 },863 {864 'name': 'code_address',865 'type': 'address'866 },867 {868 'name': 'sig',869 'type': 'bytes4'870 }871 ],872 'name': 'canCall',873 'outputs': [874 {875 'name': '',876 'type': 'bool'877 }878 ],879 'type': 'function'880 },881 {882 'constant': true,883 'inputs': [],884 'name': '_authority',885 'outputs': [886 {887 'name': '',888 'type': 'address'889 }890 ],891 'type': 'function'892 },893 {894 'constant': true,895 'inputs': [],896 'name': '_auth_mode',897 'outputs': [898 {899 'name': '',900 'type': 'uint8'901 }902 ],903 'type': 'function'904 },905 {906 'anonymous': false,907 'inputs': [908 {909 'indexed': true,910 'name': 'auth',911 'type': 'address'912 },913 {914 'indexed': true,915 'name': 'mode',916 'type': 'DSAuthModesEnum.DSAuthModes'917 }918 ],919 'name': 'DSAuthUpdate',920 'type': 'event'921 },922 {923 'anonymous': false,924 'inputs': [925 {926 'indexed': false,927 'name': 'caller_address',928 'type': 'address'929 },930 {931 'indexed': false,932 'name': 'code_address',933 'type': 'address'934 },935 {936 'indexed': false,937 'name': 'sig',938 'type': 'bytes4'939 },940 {941 'indexed': false,942 'name': 'can',943 'type': 'bool'944 }945 ],946 'name': 'DSSetCanCall',947 'type': 'event'948 }949 ]950 },951 'DSBasicAuthorityEvents': {952 'interface': [953 {954 'anonymous': false,955 'inputs': [956 {957 'indexed': false,958 'name': 'caller_address',959 'type': 'address'960 },961 {962 'indexed': false,963 'name': 'code_address',964 'type': 'address'965 },966 {967 'indexed': false,968 'name': 'sig',969 'type': 'bytes4'970 },971 {972 'indexed': false,973 'name': 'can',974 'type': 'bool'975 }976 ],977 'name': 'DSSetCanCall',978 'type': 'event'979 }980 ]981 },982 'DSDataFactory': {983 'interface': [984 {985 'constant': false,986 'inputs': [],987 'name': 'buildDSMap',988 'outputs': [989 {990 'name': 'ret',991 'type': 'address'992 }993 ],994 'type': 'function'995 },996 {997 'constant': false,998 'inputs': [],999 'name': 'buildDSBalanceDB',1000 'outputs': [1001 {1002 'name': 'ret',1003 'type': 'address'1004 }1005 ],1006 'type': 'function'1007 },1008 {1009 'constant': false,1010 'inputs': [],1011 'name': 'buildDSApprovalDB',1012 'outputs': [1013 {1014 'name': 'ret',1015 'type': 'address'1016 }1017 ],1018 'type': 'function'1019 },1020 {1021 'constant': false,1022 'inputs': [],1023 'name': 'buildDSNullMap',1024 'outputs': [1025 {1026 'name': 'ret',1027 'type': 'address'1028 }1029 ],1030 'type': 'function'1031 }1032 ]1033 },1034 'DSEasyMultisig': {1035 'interface': [1036 {1037 'constant': false,1038 'inputs': [1039 {1040 'name': 'target',1041 'type': 'address'1042 },1043 {1044 'name': 'calldata',1045 'type': 'bytes'1046 },1047 {1048 'name': 'value',1049 'type': 'uint256'1050 }1051 ],1052 'name': 'propose',1053 'outputs': [1054 {1055 'name': 'action_id',1056 'type': 'uint256'1057 }1058 ],1059 'type': 'function'1060 },1061 {1062 'constant': true,1063 'inputs': [],1064 'name': 'getInfo',1065 'outputs': [1066 {1067 'name': 'required',1068 'type': 'uint256'1069 },1070 {1071 'name': 'members',1072 'type': 'uint256'1073 },1074 {1075 'name': 'expiration',1076 'type': 'uint256'1077 },1078 {1079 'name': 'last_proposed_action',1080 'type': 'uint256'1081 }1082 ],1083 'type': 'function'1084 },1085 {1086 'constant': false,1087 'inputs': [1088 {1089 'name': 'new_authority',1090 'type': 'address'1091 },1092 {1093 'name': 'mode',1094 'type': 'uint8'1095 }1096 ],1097 'name': 'updateAuthority',1098 'outputs': [],1099 'type': 'function'1100 },1101 {1102 'constant': true,1103 'inputs': [1104 {1105 'name': 'who',1106 'type': 'address'1107 }1108 ],1109 'name': 'isMember',1110 'outputs': [1111 {1112 'name': '',1113 'type': 'bool'1114 }1115 ],1116 'type': 'function'1117 },1118 {1119 'constant': false,1120 'inputs': [1121 {1122 'name': 'action_id',1123 'type': 'uint256'1124 }1125 ],1126 'name': 'confirm',1127 'outputs': [1128 {1129 'name': 'confirmed',1130 'type': 'bool'1131 }1132 ],1133 'type': 'function'1134 },1135 {1136 'constant': true,1137 'inputs': [],1138 'name': '_authority',1139 'outputs': [1140 {1141 'name': '',1142 'type': 'address'1143 }1144 ],1145 'type': 'function'1146 },1147 {1148 'constant': false,1149 'inputs': [1150 {1151 'name': 'target',1152 'type': 'address'1153 },1154 {1155 'name': 'value',1156 'type': 'uint256'1157 }1158 ],1159 'name': 'easyPropose',1160 'outputs': [1161 {1162 'name': 'action_id',1163 'type': 'uint256'1164 }1165 ],1166 'type': 'function'1167 },1168 {1169 'constant': false,1170 'inputs': [1171 {1172 'name': 'who',1173 'type': 'address'1174 }1175 ],1176 'name': 'addMember',1177 'outputs': [],1178 'type': 'function'1179 },1180 {1181 'constant': true,1182 'inputs': [],1183 'name': '_auth_mode',1184 'outputs': [1185 {1186 'name': '',1187 'type': 'uint8'1188 }1189 ],1190 'type': 'function'1191 },1192 {1193 'constant': false,1194 'inputs': [1195 {1196 'name': 'action_id',1197 'type': 'uint256'1198 }1199 ],1200 'name': 'trigger',1201 'outputs': [],1202 'type': 'function'1203 },1204 {1205 'constant': true,1206 'inputs': [1207 {1208 'name': 'action_id',1209 'type': 'uint256'1210 }1211 ],1212 'name': 'getActionStatus',1213 'outputs': [1214 {1215 'name': 'confirmations',1216 'type': 'uint256'1217 },1218 {1219 'name': 'expiration',1220 'type': 'uint256'1221 },1222 {1223 'name': 'triggered',1224 'type': 'bool'1225 }1226 ],1227 'type': 'function'1228 },1229 {1230 'inputs': [1231 {1232 'name': 'required',1233 'type': 'uint256'1234 },1235 {1236 'name': 'member_count',1237 'type': 'uint256'1238 },1239 {1240 'name': 'expiration',1241 'type': 'uint256'1242 }1243 ],1244 'type': 'constructor'1245 },1246 {1247 'anonymous': false,1248 'inputs': [1249 {1250 'indexed': true,1251 'name': 'auth',1252 'type': 'address'1253 },1254 {1255 'indexed': true,1256 'name': 'mode',1257 'type': 'DSAuthModesEnum.DSAuthModes'1258 }1259 ],1260 'name': 'DSAuthUpdate',1261 'type': 'event'1262 },1263 {1264 'anonymous': false,1265 'inputs': [1266 {1267 'indexed': false,1268 'name': 'who',1269 'type': 'address'1270 }1271 ],1272 'name': 'MemberAdded',1273 'type': 'event'1274 },1275 {1276 'anonymous': false,1277 'inputs': [1278 {1279 'indexed': true,1280 'name': 'action_id',1281 'type': 'uint256'1282 },1283 {1284 'indexed': false,1285 'name': 'calldata',1286 'type': 'bytes'1287 }1288 ],1289 'name': 'Proposed',1290 'type': 'event'1291 },1292 {1293 'anonymous': false,1294 'inputs': [1295 {1296 'indexed': true,1297 'name': 'action_id',1298 'type': 'uint256'1299 },1300 {1301 'indexed': false,1302 'name': 'who',1303 'type': 'address'1304 }1305 ],1306 'name': 'Confirmed',1307 'type': 'event'1308 },1309 {1310 'anonymous': false,1311 'inputs': [1312 {1313 'indexed': true,1314 'name': 'action_id',1315 'type': 'uint256'1316 }1317 ],1318 'name': 'Triggered',1319 'type': 'event'1320 }1321 ]1322 },1323 'DSEasyMultisigEvents': {1324 'interface': [1325 {1326 'anonymous': false,1327 'inputs': [1328 {1329 'indexed': false,1330 'name': 'who',1331 'type': 'address'1332 }1333 ],1334 'name': 'MemberAdded',1335 'type': 'event'1336 },1337 {1338 'anonymous': false,1339 'inputs': [1340 {1341 'indexed': true,1342 'name': 'action_id',1343 'type': 'uint256'1344 },1345 {1346 'indexed': false,1347 'name': 'calldata',1348 'type': 'bytes'1349 }1350 ],1351 'name': 'Proposed',1352 'type': 'event'1353 },1354 {1355 'anonymous': false,1356 'inputs': [1357 {1358 'indexed': true,1359 'name': 'action_id',1360 'type': 'uint256'1361 },1362 {1363 'indexed': false,1364 'name': 'who',1365 'type': 'address'1366 }1367 ],1368 'name': 'Confirmed',1369 'type': 'event'1370 },1371 {1372 'anonymous': false,1373 'inputs': [1374 {1375 'indexed': true,1376 'name': 'action_id',1377 'type': 'uint256'1378 }1379 ],1380 'name': 'Triggered',1381 'type': 'event'1382 }1383 ]1384 },1385 'DSEthToken': {1386 'interface': [1387 {1388 'constant': false,1389 'inputs': [1390 {1391 'name': 'spender',1392 'type': 'address'1393 },1394 {1395 'name': 'value',1396 'type': 'uint256'1397 }1398 ],1399 'name': 'approve',1400 'outputs': [1401 {1402 'name': 'ok',1403 'type': 'bool'1404 }1405 ],1406 'type': 'function'1407 },1408 {1409 'constant': true,1410 'inputs': [],1411 'name': 'totalSupply',1412 'outputs': [1413 {1414 'name': 'supply',1415 'type': 'uint256'1416 }1417 ],1418 'type': 'function'1419 },1420 {1421 'constant': false,1422 'inputs': [1423 {1424 'name': 'from',1425 'type': 'address'1426 },1427 {1428 'name': 'to',1429 'type': 'address'1430 },1431 {1432 'name': 'value',1433 'type': 'uint256'1434 }1435 ],1436 'name': 'transferFrom',1437 'outputs': [1438 {1439 'name': 'ok',1440 'type': 'bool'1441 }1442 ],1443 'type': 'function'1444 },1445 {1446 'constant': false,1447 'inputs': [1448 {1449 'name': 'amount',1450 'type': 'uint256'1451 }1452 ],1453 'name': 'withdraw',1454 'outputs': [1455 {1456 'name': 'ok',1457 'type': 'bool'1458 }1459 ],1460 'type': 'function'1461 },1462 {1463 'constant': true,1464 'inputs': [1465 {1466 'name': 'who',1467 'type': 'address'1468 }1469 ],1470 'name': 'balanceOf',1471 'outputs': [1472 {1473 'name': 'value',1474 'type': 'uint256'1475 }1476 ],1477 'type': 'function'1478 },1479 {1480 'constant': false,1481 'inputs': [1482 {1483 'name': 'to',1484 'type': 'address'1485 },1486 {1487 'name': 'value',1488 'type': 'uint256'1489 }1490 ],1491 'name': 'transfer',1492 'outputs': [1493 {1494 'name': 'ok',1495 'type': 'bool'1496 }1497 ],1498 'type': 'function'1499 },1500 {1501 'constant': false,1502 'inputs': [],1503 'name': 'deposit',1504 'outputs': [1505 {1506 'name': 'ok',1507 'type': 'bool'1508 }1509 ],1510 'type': 'function',1511 'payable': true1512 },1513 {1514 'constant': true,1515 'inputs': [1516 {1517 'name': 'owner',1518 'type': 'address'1519 },1520 {1521 'name': 'spender',1522 'type': 'address'1523 }1524 ],1525 'name': 'allowance',1526 'outputs': [1527 {1528 'name': '_allowance',1529 'type': 'uint256'1530 }1531 ],1532 'type': 'function'1533 },1534 {1535 'anonymous': false,1536 'inputs': [1537 {1538 'indexed': true,1539 'name': 'who',1540 'type': 'address'1541 },1542 {1543 'indexed': false,1544 'name': 'amount',1545 'type': 'uint256'1546 }1547 ],1548 'name': 'Deposit',1549 'type': 'event'1550 },1551 {1552 'anonymous': false,1553 'inputs': [1554 {1555 'indexed': true,1556 'name': 'who',1557 'type': 'address'1558 },1559 {1560 'indexed': false,1561 'name': 'amount',1562 'type': 'uint256'1563 }1564 ],1565 'name': 'Withdrawal',1566 'type': 'event'1567 },1568 {1569 'anonymous': false,1570 'inputs': [1571 {1572 'indexed': true,1573 'name': 'from',1574 'type': 'address'1575 },1576 {1577 'indexed': true,1578 'name': 'to',1579 'type': 'address'1580 },1581 {1582 'indexed': false,1583 'name': 'value',1584 'type': 'uint256'1585 }1586 ],1587 'name': 'Transfer',1588 'type': 'event'1589 },1590 {1591 'anonymous': false,1592 'inputs': [1593 {1594 'indexed': true,1595 'name': 'owner',1596 'type': 'address'1597 },1598 {1599 'indexed': true,1600 'name': 'spender',1601 'type': 'address'1602 },1603 {1604 'indexed': false,1605 'name': 'value',1606 'type': 'uint256'1607 }1608 ],1609 'name': 'Approval',1610 'type': 'event'1611 }1612 ]1613 },1614 'DSEthTokenEvents': {1615 'interface': [1616 {1617 'anonymous': false,1618 'inputs': [1619 {1620 'indexed': true,1621 'name': 'who',1622 'type': 'address'1623 },1624 {1625 'indexed': false,1626 'name': 'amount',1627 'type': 'uint256'1628 }1629 ],1630 'name': 'Deposit',1631 'type': 'event'1632 },1633 {1634 'anonymous': false,1635 'inputs': [1636 {1637 'indexed': true,1638 'name': 'who',1639 'type': 'address'1640 },1641 {1642 'indexed': false,1643 'name': 'amount',1644 'type': 'uint256'1645 }1646 ],1647 'name': 'Withdrawal',1648 'type': 'event'1649 }1650 ]1651 },1652 'DSFactory': {1653 'interface': [1654 {1655 'constant': false,1656 'inputs': [],1657 'name': 'buildDSMap',1658 'outputs': [1659 {1660 'name': '',1661 'type': 'address'1662 }1663 ],1664 'type': 'function'1665 },1666 {1667 'constant': false,1668 'inputs': [1669 {1670 'name': 'n',1671 'type': 'uint256'1672 },1673 {1674 'name': 'm',1675 'type': 'uint256'1676 },1677 {1678 'name': 'expiration',1679 'type': 'uint256'1680 }1681 ],1682 'name': 'buildDSEasyMultisig',1683 'outputs': [1684 {1685 'name': '',1686 'type': 'address'1687 }1688 ],1689 'type': 'function'1690 },1691 {1692 'constant': false,1693 'inputs': [],1694 'name': 'buildDSTokenFrontend',1695 'outputs': [1696 {1697 'name': '',1698 'type': 'address'1699 }1700 ],1701 'type': 'function'1702 },1703 {1704 'constant': false,1705 'inputs': [1706 {1707 'name': 'frontend',1708 'type': 'address'1709 },1710 {1711 'name': 'bal_db',1712 'type': 'address'1713 },1714 {1715 'name': 'appr_db',1716 'type': 'address'1717 }1718 ],1719 'name': 'buildDSTokenController',1720 'outputs': [1721 {1722 'name': '',1723 'type': 'address'1724 }1725 ],1726 'type': 'function'1727 },1728 {1729 'constant': false,1730 'inputs': [],1731 'name': 'buildDSBasicAuthority',1732 'outputs': [1733 {1734 'name': '',1735 'type': 'address'1736 }1737 ],1738 'type': 'function'1739 },1740 {1741 'constant': false,1742 'inputs': [],1743 'name': 'buildDSBalanceDB',1744 'outputs': [1745 {1746 'name': '',1747 'type': 'address'1748 }1749 ],1750 'type': 'function'1751 },1752 {1753 'constant': false,1754 'inputs': [],1755 'name': 'buildDSTokenRegistry',1756 'outputs': [1757 {1758 'name': '',1759 'type': 'address'1760 }1761 ],1762 'type': 'function'1763 },1764 {1765 'constant': false,1766 'inputs': [],1767 'name': 'buildDSApprovalDB',1768 'outputs': [1769 {1770 'name': '',1771 'type': 'address'1772 }1773 ],1774 'type': 'function'1775 },1776 {1777 'constant': false,1778 'inputs': [1779 {1780 'name': 'authority',1781 'type': 'address'1782 }1783 ],1784 'name': 'installDSTokenBasicSystem',1785 'outputs': [1786 {1787 'name': 'token_frontend',1788 'type': 'address'1789 }1790 ],1791 'type': 'function'1792 },1793 {1794 'constant': false,1795 'inputs': [],1796 'name': 'buildDSNullMap',1797 'outputs': [1798 {1799 'name': '',1800 'type': 'address'1801 }1802 ],1803 'type': 'function'1804 }1805 ]1806 },1807 'DSFactory1': {1808 'interface': [1809 {1810 'constant': false,1811 'inputs': [],1812 'name': 'buildDSMap',1813 'outputs': [1814 {1815 'name': 'ret',1816 'type': 'address'1817 }1818 ],1819 'type': 'function'1820 },1821 {1822 'constant': false,1823 'inputs': [1824 {1825 'name': 'n',1826 'type': 'uint256'1827 },1828 {1829 'name': 'm',1830 'type': 'uint256'1831 },1832 {1833 'name': 'expiration',1834 'type': 'uint256'1835 }1836 ],1837 'name': 'buildDSEasyMultisig',1838 'outputs': [1839 {1840 'name': 'ret',1841 'type': 'address'1842 }1843 ],1844 'type': 'function'1845 },1846 {1847 'constant': false,1848 'inputs': [],1849 'name': 'buildDSTokenFrontend',1850 'outputs': [1851 {1852 'name': 'ret',1853 'type': 'address'1854 }1855 ],1856 'type': 'function'1857 },1858 {1859 'constant': false,1860 'inputs': [1861 {1862 'name': 'frontend',1863 'type': 'address'1864 },1865 {1866 'name': 'bal_db',1867 'type': 'address'1868 },1869 {1870 'name': 'appr_db',1871 'type': 'address'1872 }1873 ],1874 'name': 'buildDSTokenController',1875 'outputs': [1876 {1877 'name': 'ret',1878 'type': 'address'1879 }1880 ],1881 'type': 'function'1882 },1883 {1884 'constant': false,1885 'inputs': [],1886 'name': 'buildDSBasicAuthority',1887 'outputs': [1888 {1889 'name': 'ret',1890 'type': 'address'1891 }1892 ],1893 'type': 'function'1894 },1895 {1896 'constant': false,1897 'inputs': [],1898 'name': 'buildDSBalanceDB',1899 'outputs': [1900 {1901 'name': 'ret',1902 'type': 'address'1903 }1904 ],1905 'type': 'function'1906 },1907 {1908 'constant': false,1909 'inputs': [],1910 'name': 'buildDSTokenRegistry',1911 'outputs': [1912 {1913 'name': 'ret',1914 'type': 'address'1915 }1916 ],1917 'type': 'function'1918 },1919 {1920 'constant': false,1921 'inputs': [],1922 'name': 'buildDSApprovalDB',1923 'outputs': [1924 {1925 'name': 'ret',1926 'type': 'address'1927 }1928 ],1929 'type': 'function'1930 },1931 {1932 'constant': false,1933 'inputs': [1934 {1935 'name': 'authority',1936 'type': 'address'1937 }1938 ],1939 'name': 'installDSTokenBasicSystem',1940 'outputs': [1941 {1942 'name': 'frontend',1943 'type': 'address'1944 }1945 ],1946 'type': 'function'1947 },1948 {1949 'constant': false,1950 'inputs': [],1951 'name': 'buildDSNullMap',1952 'outputs': [1953 {1954 'name': 'ret',1955 'type': 'address'1956 }1957 ],1958 'type': 'function'1959 },1960 {1961 'inputs': [1962 {1963 'name': 'auth',1964 'type': 'address'1965 },1966 {1967 'name': 'data',1968 'type': 'address'1969 },1970 {1971 'name': 'ms',1972 'type': 'address'1973 },1974 {1975 'name': 'token',1976 'type': 'address'1977 },1978 {1979 'name': 'token_install',1980 'type': 'address'1981 }1982 ],1983 'type': 'constructor'1984 }1985 ]1986 },1987 'DSFactory1Morden': {1988 'interface': [1989 {1990 'constant': false,1991 'inputs': [],1992 'name': 'buildDSMap',1993 'outputs': [1994 {1995 'name': 'ret',1996 'type': 'address'1997 }1998 ],1999 'type': 'function'2000 },2001 {2002 'constant': false,2003 'inputs': [2004 {2005 'name': 'n',2006 'type': 'uint256'2007 },2008 {2009 'name': 'm',2010 'type': 'uint256'2011 },2012 {2013 'name': 'expiration',2014 'type': 'uint256'2015 }2016 ],2017 'name': 'buildDSEasyMultisig',2018 'outputs': [2019 {2020 'name': 'ret',2021 'type': 'address'2022 }2023 ],2024 'type': 'function'2025 },2026 {2027 'constant': false,2028 'inputs': [],2029 'name': 'buildDSTokenFrontend',2030 'outputs': [2031 {2032 'name': 'ret',2033 'type': 'address'2034 }2035 ],2036 'type': 'function'2037 },2038 {2039 'constant': false,2040 'inputs': [2041 {2042 'name': 'frontend',2043 'type': 'address'2044 },2045 {2046 'name': 'bal_db',2047 'type': 'address'2048 },2049 {2050 'name': 'appr_db',2051 'type': 'address'2052 }2053 ],2054 'name': 'buildDSTokenController',2055 'outputs': [2056 {2057 'name': 'ret',2058 'type': 'address'2059 }2060 ],2061 'type': 'function'2062 },2063 {2064 'constant': false,2065 'inputs': [],2066 'name': 'buildDSBasicAuthority',2067 'outputs': [2068 {2069 'name': 'ret',2070 'type': 'address'2071 }2072 ],2073 'type': 'function'2074 },2075 {2076 'constant': false,2077 'inputs': [],2078 'name': 'buildDSBalanceDB',2079 'outputs': [2080 {2081 'name': 'ret',2082 'type': 'address'2083 }2084 ],2085 'type': 'function'2086 },2087 {2088 'constant': false,2089 'inputs': [],2090 'name': 'buildDSTokenRegistry',2091 'outputs': [2092 {2093 'name': 'ret',2094 'type': 'address'2095 }2096 ],2097 'type': 'function'2098 },2099 {2100 'constant': false,2101 'inputs': [],2102 'name': 'buildDSApprovalDB',2103 'outputs': [2104 {2105 'name': 'ret',2106 'type': 'address'2107 }2108 ],2109 'type': 'function'2110 },2111 {2112 'constant': false,2113 'inputs': [2114 {2115 'name': 'authority',2116 'type': 'address'2117 }2118 ],2119 'name': 'installDSTokenBasicSystem',2120 'outputs': [2121 {2122 'name': 'frontend',2123 'type': 'address'2124 }2125 ],2126 'type': 'function'2127 },2128 {2129 'constant': false,2130 'inputs': [],2131 'name': 'buildDSNullMap',2132 'outputs': [2133 {2134 'name': 'ret',2135 'type': 'address'2136 }2137 ],2138 'type': 'function'2139 }2140 ]2141 },2142 'DSFactoryUser': {2143 'interface': [2144 {2145 'constant': false,2146 'inputs': [2147 {2148 'name': 'f',2149 'type': 'address'2150 }2151 ],2152 'name': 'FactoryUser',2153 'outputs': [],2154 'type': 'function'2155 }2156 ]2157 },2158 'DSMap': {2159 'interface': [2160 {2161 'constant': false,2162 'inputs': [2163 {2164 'name': 'new_authority',2165 'type': 'address'2166 },2167 {2168 'name': 'mode',2169 'type': 'uint8'2170 }2171 ],2172 'name': 'updateAuthority',2173 'outputs': [],2174 'type': 'function'2175 },2176 {2177 'constant': true,2178 'inputs': [2179 {2180 'name': 'key',2181 'type': 'bytes32'2182 }2183 ],2184 'name': 'get',2185 'outputs': [2186 {2187 'name': 'value',2188 'type': 'bytes32'2189 }2190 ],2191 'type': 'function'2192 },2193 {2194 'constant': true,2195 'inputs': [],2196 'name': '_authority',2197 'outputs': [2198 {2199 'name': '',2200 'type': 'address'2201 }2202 ],2203 'type': 'function'2204 },2205 {2206 'constant': true,2207 'inputs': [],2208 'name': '_auth_mode',2209 'outputs': [2210 {2211 'name': '',2212 'type': 'uint8'2213 }2214 ],2215 'type': 'function'2216 },2217 {2218 'constant': false,2219 'inputs': [2220 {2221 'name': 'key',2222 'type': 'bytes32'2223 },2224 {2225 'name': 'value',2226 'type': 'bytes32'2227 }2228 ],2229 'name': 'set',2230 'outputs': [],2231 'type': 'function'2232 },2233 {2234 'anonymous': false,2235 'inputs': [2236 {2237 'indexed': true,2238 'name': 'key',2239 'type': 'bytes32'2240 },2241 {2242 'indexed': true,2243 'name': 'value',2244 'type': 'bytes32'2245 }2246 ],2247 'name': 'Set',2248 'type': 'event'2249 },2250 {2251 'anonymous': false,2252 'inputs': [2253 {2254 'indexed': true,2255 'name': 'auth',2256 'type': 'address'2257 },2258 {2259 'indexed': true,2260 'name': 'mode',2261 'type': 'DSAuthModesEnum.DSAuthModes'2262 }2263 ],2264 'name': 'DSAuthUpdate',2265 'type': 'event'2266 }2267 ]2268 },2269 'DSMapEvents': {2270 'interface': [2271 {2272 'anonymous': false,2273 'inputs': [2274 {2275 'indexed': true,2276 'name': 'key',2277 'type': 'bytes32'2278 },2279 {2280 'indexed': true,2281 'name': 'value',2282 'type': 'bytes32'2283 }2284 ],2285 'name': 'Set',2286 'type': 'event'2287 }2288 ]2289 },2290 'DSMultisigFactory': {2291 'interface': [2292 {2293 'constant': false,2294 'inputs': [2295 {2296 'name': 'n',2297 'type': 'uint256'2298 },2299 {2300 'name': 'm',2301 'type': 'uint256'2302 },2303 {2304 'name': 'expiration',2305 'type': 'uint256'2306 }2307 ],2308 'name': 'buildDSEasyMultisig',2309 'outputs': [2310 {2311 'name': 'ret',2312 'type': 'address'2313 }2314 ],2315 'type': 'function'2316 }2317 ]2318 },2319 'DSNullMap': {2320 'interface': [2321 {2322 'constant': false,2323 'inputs': [2324 {2325 'name': 'new_authority',2326 'type': 'address'2327 },2328 {2329 'name': 'mode',2330 'type': 'uint8'2331 }2332 ],2333 'name': 'updateAuthority',2334 'outputs': [],2335 'type': 'function'2336 },2337 {2338 'constant': true,2339 'inputs': [2340 {2341 'name': 'key',2342 'type': 'bytes32'2343 }2344 ],2345 'name': 'get',2346 'outputs': [2347 {2348 'name': 'value',2349 'type': 'bytes32'2350 }2351 ],2352 'type': 'function'2353 },2354 {2355 'constant': false,2356 'inputs': [2357 {2358 'name': 'key',2359 'type': 'bytes32'2360 }2361 ],2362 'name': 'unset',2363 'outputs': [],2364 'type': 'function'2365 },2366 {2367 'constant': true,2368 'inputs': [],2369 'name': '_authority',2370 'outputs': [2371 {2372 'name': '',2373 'type': 'address'2374 }2375 ],2376 'type': 'function'2377 },2378 {2379 'constant': true,2380 'inputs': [],2381 'name': '_auth_mode',2382 'outputs': [2383 {2384 'name': '',2385 'type': 'uint8'2386 }2387 ],2388 'type': 'function'2389 },2390 {2391 'constant': true,2392 'inputs': [2393 {2394 'name': 'key',2395 'type': 'bytes32'2396 }2397 ],2398 'name': 'tryGet',2399 'outputs': [2400 {2401 'name': 'value',2402 'type': 'bytes32'2403 },2404 {2405 'name': 'ok',2406 'type': 'bool'2407 }2408 ],2409 'type': 'function'2410 },2411 {2412 'constant': false,2413 'inputs': [2414 {2415 'name': 'key',2416 'type': 'bytes32'2417 },2418 {2419 'name': 'value',2420 'type': 'bytes32'2421 }2422 ],2423 'name': 'set',2424 'outputs': [],2425 'type': 'function'2426 },2427 {2428 'anonymous': false,2429 'inputs': [2430 {2431 'indexed': true,2432 'name': 'key',2433 'type': 'bytes32'2434 },2435 {2436 'indexed': true,2437 'name': 'value',2438 'type': 'bytes32'2439 },2440 {2441 'indexed': true,2442 'name': 'is_set',2443 'type': 'bool'2444 }2445 ],2446 'name': 'SetNullable',2447 'type': 'event'2448 },2449 {2450 'anonymous': false,2451 'inputs': [2452 {2453 'indexed': true,2454 'name': 'auth',2455 'type': 'address'2456 },2457 {2458 'indexed': true,2459 'name': 'mode',2460 'type': 'DSAuthModesEnum.DSAuthModes'2461 }2462 ],2463 'name': 'DSAuthUpdate',2464 'type': 'event'2465 }2466 ]2467 },2468 'DSNullMapEvents': {2469 'interface': [2470 {2471 'anonymous': false,2472 'inputs': [2473 {2474 'indexed': true,2475 'name': 'key',2476 'type': 'bytes32'2477 },2478 {2479 'indexed': true,2480 'name': 'value',2481 'type': 'bytes32'2482 },2483 {2484 'indexed': true,2485 'name': 'is_set',2486 'type': 'bool'2487 }2488 ],2489 'name': 'SetNullable',2490 'type': 'event'2491 }2492 ]2493 },2494 'DSSimpleActor': {2495 'interface': [2496 {2497 'constant': false,2498 'inputs': [2499 {2500 'name': 'target',2501 'type': 'address'2502 },2503 {2504 'name': 'calldata',2505 'type': 'bytes'2506 },2507 {2508 'name': 'value',2509 'type': 'uint256'2510 }2511 ],2512 'name': 'tryExecute',2513 'outputs': [2514 {2515 'name': 'call_ret',2516 'type': 'bool'2517 }2518 ],2519 'type': 'function'2520 },2521 {2522 'constant': false,2523 'inputs': [2524 {2525 'name': 'target',2526 'type': 'address'2527 },2528 {2529 'name': 'calldata',2530 'type': 'bytes'2531 },2532 {2533 'name': 'value',2534 'type': 'uint256'2535 }2536 ],2537 'name': 'execute',2538 'outputs': [],2539 'type': 'function'2540 }2541 ]2542 },2543 'DSToken': {2544 'interface': [2545 {2546 'constant': false,2547 'inputs': [2548 {2549 'name': 'spender',2550 'type': 'address'2551 },2552 {2553 'name': 'value',2554 'type': 'uint256'2555 }2556 ],2557 'name': 'approve',2558 'outputs': [2559 {2560 'name': 'ok',2561 'type': 'bool'2562 }2563 ],2564 'type': 'function'2565 },2566 {2567 'constant': true,2568 'inputs': [],2569 'name': 'totalSupply',2570 'outputs': [2571 {2572 'name': 'supply',2573 'type': 'uint256'2574 }2575 ],2576 'type': 'function'2577 },2578 {2579 'constant': false,2580 'inputs': [2581 {2582 'name': 'from',2583 'type': 'address'2584 },2585 {2586 'name': 'to',2587 'type': 'address'2588 },2589 {2590 'name': 'value',2591 'type': 'uint256'2592 }2593 ],2594 'name': 'transferFrom',2595 'outputs': [2596 {2597 'name': 'ok',2598 'type': 'bool'2599 }2600 ],2601 'type': 'function'2602 },2603 {2604 'constant': true,2605 'inputs': [2606 {2607 'name': 'who',2608 'type': 'address'2609 }2610 ],2611 'name': 'balanceOf',2612 'outputs': [2613 {2614 'name': 'value',2615 'type': 'uint256'2616 }2617 ],2618 'type': 'function'2619 },2620 {2621 'constant': false,2622 'inputs': [2623 {2624 'name': 'to',2625 'type': 'address'2626 },2627 {2628 'name': 'value',2629 'type': 'uint256'2630 }2631 ],2632 'name': 'transfer',2633 'outputs': [2634 {2635 'name': 'ok',2636 'type': 'bool'2637 }2638 ],2639 'type': 'function'2640 },2641 {2642 'constant': true,2643 'inputs': [2644 {2645 'name': 'owner',2646 'type': 'address'2647 },2648 {2649 'name': 'spender',2650 'type': 'address'2651 }2652 ],2653 'name': 'allowance',2654 'outputs': [2655 {2656 'name': '_allowance',2657 'type': 'uint256'2658 }2659 ],2660 'type': 'function'2661 },2662 {2663 'anonymous': false,2664 'inputs': [2665 {2666 'indexed': true,2667 'name': 'from',2668 'type': 'address'2669 },2670 {2671 'indexed': true,2672 'name': 'to',2673 'type': 'address'2674 },2675 {2676 'indexed': false,2677 'name': 'value',2678 'type': 'uint256'2679 }2680 ],2681 'name': 'Transfer',2682 'type': 'event'2683 },2684 {2685 'anonymous': false,2686 'inputs': [2687 {2688 'indexed': true,2689 'name': 'owner',2690 'type': 'address'2691 },2692 {2693 'indexed': true,2694 'name': 'spender',2695 'type': 'address'2696 },2697 {2698 'indexed': false,2699 'name': 'value',2700 'type': 'uint256'2701 }2702 ],2703 'name': 'Approval',2704 'type': 'event'2705 }2706 ]2707 },2708 'DSTokenBase': {2709 'interface': [2710 {2711 'constant': false,2712 'inputs': [2713 {2714 'name': 'spender',2715 'type': 'address'2716 },2717 {2718 'name': 'value',2719 'type': 'uint256'2720 }2721 ],2722 'name': 'approve',2723 'outputs': [2724 {2725 'name': 'ok',2726 'type': 'bool'2727 }2728 ],2729 'type': 'function'2730 },2731 {2732 'constant': true,2733 'inputs': [],2734 'name': 'totalSupply',2735 'outputs': [2736 {2737 'name': 'supply',2738 'type': 'uint256'2739 }2740 ],2741 'type': 'function'2742 },2743 {2744 'constant': false,2745 'inputs': [2746 {2747 'name': 'from',2748 'type': 'address'2749 },2750 {2751 'name': 'to',2752 'type': 'address'2753 },2754 {2755 'name': 'value',2756 'type': 'uint256'2757 }2758 ],2759 'name': 'transferFrom',2760 'outputs': [2761 {2762 'name': 'ok',2763 'type': 'bool'2764 }2765 ],2766 'type': 'function'2767 },2768 {2769 'constant': true,2770 'inputs': [2771 {2772 'name': 'who',2773 'type': 'address'2774 }2775 ],2776 'name': 'balanceOf',2777 'outputs': [2778 {2779 'name': 'value',2780 'type': 'uint256'2781 }2782 ],2783 'type': 'function'2784 },2785 {2786 'constant': false,2787 'inputs': [2788 {2789 'name': 'to',2790 'type': 'address'2791 },2792 {2793 'name': 'value',2794 'type': 'uint256'2795 }2796 ],2797 'name': 'transfer',2798 'outputs': [2799 {2800 'name': 'ok',2801 'type': 'bool'2802 }2803 ],2804 'type': 'function'2805 },2806 {2807 'constant': true,2808 'inputs': [2809 {2810 'name': 'owner',2811 'type': 'address'2812 },2813 {2814 'name': 'spender',2815 'type': 'address'2816 }2817 ],2818 'name': 'allowance',2819 'outputs': [2820 {2821 'name': '_allowance',2822 'type': 'uint256'2823 }2824 ],2825 'type': 'function'2826 },2827 {2828 'inputs': [2829 {2830 'name': 'initial_balance',2831 'type': 'uint256'2832 }2833 ],2834 'type': 'constructor'2835 },2836 {2837 'anonymous': false,2838 'inputs': [2839 {2840 'indexed': true,2841 'name': 'from',2842 'type': 'address'2843 },2844 {2845 'indexed': true,2846 'name': 'to',2847 'type': 'address'2848 },2849 {2850 'indexed': false,2851 'name': 'value',2852 'type': 'uint256'2853 }2854 ],2855 'name': 'Transfer',2856 'type': 'event'2857 },2858 {2859 'anonymous': false,2860 'inputs': [2861 {2862 'indexed': true,2863 'name': 'owner',2864 'type': 'address'2865 },2866 {2867 'indexed': true,2868 'name': 'spender',2869 'type': 'address'2870 },2871 {2872 'indexed': false,2873 'name': 'value',2874 'type': 'uint256'2875 }2876 ],2877 'name': 'Approval',2878 'type': 'event'2879 }2880 ]2881 },2882 'DSTokenController': {2883 'interface': [2884 {2885 'constant': true,2886 'inputs': [],2887 'name': 'getFrontend',2888 'outputs': [2889 {2890 'name': '',2891 'type': 'address'2892 }2893 ],2894 'type': 'function'2895 },2896 {2897 'constant': false,2898 'inputs': [2899 {2900 'name': '_caller',2901 'type': 'address'2902 },2903 {2904 'name': 'from',2905 'type': 'address'2906 },2907 {2908 'name': 'to',2909 'type': 'address'2910 },2911 {2912 'name': 'value',2913 'type': 'uint256'2914 }2915 ],2916 'name': 'transferFrom',2917 'outputs': [2918 {2919 'name': '',2920 'type': 'bool'2921 }2922 ],2923 'type': 'function'2924 },2925 {2926 'constant': true,2927 'inputs': [],2928 'name': 'totalSupply',2929 'outputs': [2930 {2931 'name': 'supply',2932 'type': 'uint256'2933 }2934 ],2935 'type': 'function'2936 },2937 {2938 'constant': false,2939 'inputs': [2940 {2941 'name': 'frontend',2942 'type': 'address'2943 }2944 ],2945 'name': 'setFrontend',2946 'outputs': [],2947 'type': 'function'2948 },2949 {2950 'constant': true,2951 'inputs': [2952 {2953 'name': 'who',2954 'type': 'address'2955 }2956 ],2957 'name': 'balanceOf',2958 'outputs': [2959 {2960 'name': 'amount',2961 'type': 'uint256'2962 }2963 ],2964 'type': 'function'2965 },2966 {2967 'constant': false,2968 'inputs': [2969 {2970 'name': 'new_authority',2971 'type': 'address'2972 },2973 {2974 'name': 'mode',2975 'type': 'uint8'2976 }2977 ],2978 'name': 'updateAuthority',2979 'outputs': [],2980 'type': 'function'2981 },2982 {2983 'constant': false,2984 'inputs': [2985 {2986 'name': 'new_db',2987 'type': 'address'2988 }2989 ],2990 'name': 'setBalanceDB',2991 'outputs': [],2992 'type': 'function'2993 },2994 {2995 'constant': true,2996 'inputs': [],2997 'name': 'getBalanceDB',2998 'outputs': [2999 {3000 'name': '',3001 'type': 'address'3002 }3003 ],3004 'type': 'function'3005 },3006 {3007 'constant': false,3008 'inputs': [3009 {3010 'name': '_caller',3011 'type': 'address'3012 },3013 {3014 'name': 'to',3015 'type': 'address'3016 },3017 {3018 'name': 'value',3019 'type': 'uint256'3020 }3021 ],3022 'name': 'transfer',3023 'outputs': [3024 {3025 'name': 'ok',3026 'type': 'bool'3027 }3028 ],3029 'type': 'function'3030 },3031 {3032 'constant': true,3033 'inputs': [],3034 'name': '_authority',3035 'outputs': [3036 {3037 'name': '',3038 'type': 'address'3039 }3040 ],3041 'type': 'function'3042 },3043 {3044 'constant': false,3045 'inputs': [3046 {3047 'name': 'new_db',3048 'type': 'address'3049 }3050 ],3051 'name': 'setApprovalDB',3052 'outputs': [],3053 'type': 'function'3054 },3055 {3056 'constant': true,3057 'inputs': [],3058 'name': '_auth_mode',3059 'outputs': [3060 {3061 'name': '',3062 'type': 'uint8'3063 }3064 ],3065 'type': 'function'3066 },3067 {3068 'constant': true,3069 'inputs': [3070 {3071 'name': 'owner',3072 'type': 'address'3073 },3074 {3075 'name': 'spender',3076 'type': 'address'3077 }3078 ],3079 'name': 'allowance',3080 'outputs': [3081 {3082 'name': '_allowance',3083 'type': 'uint256'3084 }3085 ],3086 'type': 'function'3087 },3088 {3089 'constant': false,3090 'inputs': [3091 {3092 'name': '_caller',3093 'type': 'address'3094 },3095 {3096 'name': 'spender',3097 'type': 'address'3098 },3099 {3100 'name': 'value',3101 'type': 'uint256'3102 }3103 ],3104 'name': 'approve',3105 'outputs': [3106 {3107 'name': '',3108 'type': 'bool'3109 }3110 ],3111 'type': 'function'3112 },3113 {3114 'constant': true,3115 'inputs': [],3116 'name': 'getApprovalDB',3117 'outputs': [3118 {3119 'name': '',3120 'type': 'address'3121 }3122 ],3123 'type': 'function'3124 },3125 {3126 'inputs': [3127 {3128 'name': 'frontend',3129 'type': 'address'3130 },3131 {3132 'name': 'baldb',3133 'type': 'address'3134 },3135 {3136 'name': 'apprdb',3137 'type': 'address'3138 }3139 ],3140 'type': 'constructor'3141 },3142 {3143 'anonymous': false,3144 'inputs': [3145 {3146 'indexed': true,3147 'name': 'auth',3148 'type': 'address'3149 },3150 {3151 'indexed': true,3152 'name': 'mode',3153 'type': 'DSAuthModesEnum.DSAuthModes'3154 }3155 ],3156 'name': 'DSAuthUpdate',3157 'type': 'event'3158 }3159 ]3160 },3161 'DSTokenControllerType': {3162 'interface': [3163 {3164 'constant': true,3165 'inputs': [],3166 'name': 'getFrontend',3167 'outputs': [3168 {3169 'name': '',3170 'type': 'address'3171 }3172 ],3173 'type': 'function'3174 },3175 {3176 'constant': false,3177 'inputs': [3178 {3179 'name': '_caller',3180 'type': 'address'3181 },3182 {3183 'name': 'from',3184 'type': 'address'3185 },3186 {3187 'name': 'to',3188 'type': 'address'3189 },3190 {3191 'name': 'value',3192 'type': 'uint256'3193 }3194 ],3195 'name': 'transferFrom',3196 'outputs': [3197 {3198 'name': 'ok',3199 'type': 'bool'3200 }3201 ],3202 'type': 'function'3203 },3204 {3205 'constant': true,3206 'inputs': [],3207 'name': 'totalSupply',3208 'outputs': [3209 {3210 'name': 'supply',3211 'type': 'uint256'3212 }3213 ],3214 'type': 'function'3215 },3216 {3217 'constant': false,3218 'inputs': [3219 {3220 'name': 'frontend',3221 'type': 'address'3222 }3223 ],3224 'name': 'setFrontend',3225 'outputs': [],3226 'type': 'function'3227 },3228 {3229 'constant': true,3230 'inputs': [3231 {3232 'name': 'who',3233 'type': 'address'3234 }3235 ],3236 'name': 'balanceOf',3237 'outputs': [3238 {3239 'name': 'value',3240 'type': 'uint256'3241 }3242 ],3243 'type': 'function'3244 },3245 {3246 'constant': false,3247 'inputs': [3248 {3249 'name': 'new_db',3250 'type': 'address'3251 }3252 ],3253 'name': 'setBalanceDB',3254 'outputs': [],3255 'type': 'function'3256 },3257 {3258 'constant': true,3259 'inputs': [],3260 'name': 'getBalanceDB',3261 'outputs': [3262 {3263 'name': '',3264 'type': 'address'3265 }3266 ],3267 'type': 'function'3268 },3269 {3270 'constant': false,3271 'inputs': [3272 {3273 'name': '_caller',3274 'type': 'address'3275 },3276 {3277 'name': 'to',3278 'type': 'address'3279 },3280 {3281 'name': 'value',3282 'type': 'uint256'3283 }3284 ],3285 'name': 'transfer',3286 'outputs': [3287 {3288 'name': 'ok',3289 'type': 'bool'3290 }3291 ],3292 'type': 'function'3293 },3294 {3295 'constant': false,3296 'inputs': [3297 {3298 'name': 'new_db',3299 'type': 'address'3300 }3301 ],3302 'name': 'setApprovalDB',3303 'outputs': [],3304 'type': 'function'3305 },3306 {3307 'constant': true,3308 'inputs': [3309 {3310 'name': 'owner',3311 'type': 'address'3312 },3313 {3314 'name': 'spender',3315 'type': 'address'3316 }3317 ],3318 'name': 'allowance',3319 'outputs': [3320 {3321 'name': '_allowance',3322 'type': 'uint256'3323 }3324 ],3325 'type': 'function'3326 },3327 {3328 'constant': false,3329 'inputs': [3330 {3331 'name': '_caller',3332 'type': 'address'3333 },3334 {3335 'name': 'spender',3336 'type': 'address'3337 },3338 {3339 'name': 'value',3340 'type': 'uint256'3341 }3342 ],3343 'name': 'approve',3344 'outputs': [3345 {3346 'name': 'ok',3347 'type': 'bool'3348 }3349 ],3350 'type': 'function'3351 },3352 {3353 'constant': true,3354 'inputs': [],3355 'name': 'getApprovalDB',3356 'outputs': [3357 {3358 'name': '',3359 'type': 'address'3360 }3361 ],3362 'type': 'function'3363 }3364 ]3365 },3366 'DSTokenEventCallback': {3367 'interface': [3368 {3369 'constant': false,3370 'inputs': [3371 {3372 'name': 'from',3373 'type': 'address'3374 },3375 {3376 'name': 'to',3377 'type': 'address'3378 },3379 {3380 'name': 'amount',3381 'type': 'uint256'3382 }3383 ],3384 'name': 'emitTransfer',3385 'outputs': [],3386 'type': 'function'3387 },3388 {3389 'constant': false,3390 'inputs': [3391 {3392 'name': 'holder',3393 'type': 'address'3394 },3395 {3396 'name': 'spender',3397 'type': 'address'3398 },3399 {3400 'name': 'amount',3401 'type': 'uint256'3402 }3403 ],3404 'name': 'emitApproval',3405 'outputs': [],3406 'type': 'function'3407 }3408 ]3409 },3410 'DSTokenFactory': {3411 'interface': [3412 {3413 'constant': false,3414 'inputs': [],3415 'name': 'buildDSTokenFrontend',3416 'outputs': [3417 {3418 'name': 'ret',3419 'type': 'address'3420 }3421 ],3422 'type': 'function'3423 },3424 {3425 'constant': false,3426 'inputs': [3427 {3428 'name': 'frontend',3429 'type': 'address'3430 },3431 {3432 'name': 'bal_db',3433 'type': 'address'3434 },3435 {3436 'name': 'appr_db',3437 'type': 'address'3438 }3439 ],3440 'name': 'buildDSTokenController',3441 'outputs': [3442 {3443 'name': 'ret',3444 'type': 'address'3445 }3446 ],3447 'type': 'function'3448 },3449 {3450 'constant': false,3451 'inputs': [],3452 'name': 'buildDSTokenRegistry',3453 'outputs': [3454 {3455 'name': 'ret',3456 'type': 'address'3457 }3458 ],3459 'type': 'function'3460 }3461 ]3462 },3463 'DSTokenFrontend': {3464 'interface': [3465 {3466 'constant': false,3467 'inputs': [3468 {3469 'name': 'spender',3470 'type': 'address'3471 },3472 {3473 'name': 'value',3474 'type': 'uint256'3475 }3476 ],3477 'name': 'approve',3478 'outputs': [3479 {3480 'name': 'ok',3481 'type': 'bool'3482 }3483 ],3484 'type': 'function'3485 },3486 {3487 'constant': true,3488 'inputs': [],3489 'name': 'totalSupply',3490 'outputs': [3491 {3492 'name': 'supply',3493 'type': 'uint256'3494 }3495 ],3496 'type': 'function'3497 },3498 {3499 'constant': false,3500 'inputs': [3501 {3502 'name': 'from',3503 'type': 'address'3504 },3505 {3506 'name': 'to',3507 'type': 'address'3508 },3509 {3510 'name': 'value',3511 'type': 'uint256'3512 }3513 ],3514 'name': 'transferFrom',3515 'outputs': [3516 {3517 'name': 'ok',3518 'type': 'bool'3519 }3520 ],3521 'type': 'function'3522 },3523 {3524 'constant': false,3525 'inputs': [3526 {3527 'name': 'from',3528 'type': 'address'3529 },3530 {3531 'name': 'to',3532 'type': 'address'3533 },3534 {3535 'name': 'amount',3536 'type': 'uint256'3537 }3538 ],3539 'name': 'emitTransfer',3540 'outputs': [],3541 'type': 'function'3542 },3543 {3544 'constant': true,3545 'inputs': [],3546 'name': 'getController',3547 'outputs': [3548 {3549 'name': 'controller',3550 'type': 'address'3551 }3552 ],3553 'type': 'function'3554 },3555 {3556 'constant': false,3557 'inputs': [3558 {3559 'name': 'holder',3560 'type': 'address'3561 },3562 {3563 'name': 'spender',3564 'type': 'address'3565 },3566 {3567 'name': 'amount',3568 'type': 'uint256'3569 }3570 ],3571 'name': 'emitApproval',3572 'outputs': [],3573 'type': 'function'3574 },3575 {3576 'constant': true,3577 'inputs': [3578 {3579 'name': 'who',3580 'type': 'address'3581 }3582 ],3583 'name': 'balanceOf',3584 'outputs': [3585 {3586 'name': 'value',3587 'type': 'uint256'3588 }3589 ],3590 'type': 'function'3591 },3592 {3593 'constant': false,3594 'inputs': [3595 {3596 'name': 'new_authority',3597 'type': 'address'3598 },3599 {3600 'name': 'mode',3601 'type': 'uint8'3602 }3603 ],3604 'name': 'updateAuthority',3605 'outputs': [],3606 'type': 'function'3607 },3608 {3609 'constant': false,3610 'inputs': [3611 {3612 'name': 'controller',3613 'type': 'address'3614 }3615 ],3616 'name': 'setController',3617 'outputs': [],3618 'type': 'function'3619 },3620 {3621 'constant': false,3622 'inputs': [3623 {3624 'name': 'to',3625 'type': 'address'3626 },3627 {3628 'name': 'value',3629 'type': 'uint256'3630 }3631 ],3632 'name': 'transfer',3633 'outputs': [3634 {3635 'name': 'ok',3636 'type': 'bool'3637 }3638 ],3639 'type': 'function'3640 },3641 {3642 'constant': true,3643 'inputs': [],3644 'name': '_authority',3645 'outputs': [3646 {3647 'name': '',3648 'type': 'address'3649 }3650 ],3651 'type': 'function'3652 },3653 {3654 'constant': true,3655 'inputs': [],3656 'name': '_auth_mode',3657 'outputs': [3658 {3659 'name': '',3660 'type': 'uint8'3661 }3662 ],3663 'type': 'function'3664 },3665 {3666 'constant': true,3667 'inputs': [3668 {3669 'name': 'owner',3670 'type': 'address'3671 },3672 {3673 'name': 'spender',3674 'type': 'address'3675 }3676 ],3677 'name': 'allowance',3678 'outputs': [3679 {3680 'name': '_allowance',3681 'type': 'uint256'3682 }3683 ],3684 'type': 'function'3685 },3686 {3687 'anonymous': false,3688 'inputs': [3689 {3690 'indexed': true,3691 'name': 'auth',3692 'type': 'address'3693 },3694 {3695 'indexed': true,3696 'name': 'mode',3697 'type': 'DSAuthModesEnum.DSAuthModes'3698 }3699 ],3700 'name': 'DSAuthUpdate',3701 'type': 'event'3702 },3703 {3704 'anonymous': false,3705 'inputs': [3706 {3707 'indexed': true,3708 'name': 'from',3709 'type': 'address'3710 },3711 {3712 'indexed': true,3713 'name': 'to',3714 'type': 'address'3715 },3716 {3717 'indexed': false,3718 'name': 'value',3719 'type': 'uint256'3720 }3721 ],3722 'name': 'Transfer',3723 'type': 'event'3724 },3725 {3726 'anonymous': false,3727 'inputs': [3728 {3729 'indexed': true,3730 'name': 'owner',3731 'type': 'address'3732 },3733 {3734 'indexed': true,3735 'name': 'spender',3736 'type': 'address'3737 },3738 {3739 'indexed': false,3740 'name': 'value',3741 'type': 'uint256'3742 }3743 ],3744 'name': 'Approval',3745 'type': 'event'3746 }3747 ]3748 },3749 'DSTokenInstaller': {3750 'interface': [3751 {3752 'constant': false,3753 'inputs': [3754 {3755 'name': 'authority',3756 'type': 'address'3757 }3758 ],3759 'name': 'installDSTokenBasicSystem',3760 'outputs': [3761 {3762 'name': 'frontend',3763 'type': 'address'3764 }3765 ],3766 'type': 'function'3767 },3768 {3769 'inputs': [3770 {3771 'name': 'auth',3772 'type': 'address'3773 },3774 {3775 'name': 'data',3776 'type': 'address'3777 },3778 {3779 'name': 'token',3780 'type': 'address'3781 }3782 ],3783 'type': 'constructor'3784 }3785 ]3786 },3787 'DSTokenInstallerMorden': {3788 'interface': [3789 {3790 'constant': false,3791 'inputs': [3792 {3793 'name': 'authority',3794 'type': 'address'3795 }3796 ],3797 'name': 'installDSTokenBasicSystem',3798 'outputs': [3799 {3800 'name': 'frontend',3801 'type': 'address'3802 }3803 ],3804 'type': 'function'3805 }3806 ]3807 },3808 'DSTokenProvider': {3809 'interface': [3810 {3811 'constant': false,3812 'inputs': [3813 {3814 'name': 'symbol',3815 'type': 'bytes32'3816 }3817 ],3818 'name': 'getToken',3819 'outputs': [3820 {3821 'name': '',3822 'type': 'address'3823 }3824 ],3825 'type': 'function'3826 }3827 ]3828 },3829 'DSTokenRegistry': {3830 'interface': [3831 {3832 'constant': false,3833 'inputs': [3834 {3835 'name': 'symbol',3836 'type': 'bytes32'3837 }3838 ],3839 'name': 'getToken',3840 'outputs': [3841 {3842 'name': '',3843 'type': 'address'3844 }3845 ],3846 'type': 'function'3847 },3848 {3849 'constant': false,3850 'inputs': [3851 {3852 'name': 'new_authority',3853 'type': 'address'3854 },3855 {3856 'name': 'mode',3857 'type': 'uint8'3858 }3859 ],3860 'name': 'updateAuthority',3861 'outputs': [],3862 'type': 'function'3863 },3864 {3865 'constant': true,3866 'inputs': [3867 {3868 'name': 'key',3869 'type': 'bytes32'3870 }3871 ],3872 'name': 'get',3873 'outputs': [3874 {3875 'name': 'value',3876 'type': 'bytes32'3877 }3878 ],3879 'type': 'function'3880 },3881 {3882 'constant': false,3883 'inputs': [3884 {3885 'name': 'key',3886 'type': 'bytes32'3887 }3888 ],3889 'name': 'unset',3890 'outputs': [],3891 'type': 'function'3892 },3893 {3894 'constant': true,3895 'inputs': [],3896 'name': '_authority',3897 'outputs': [3898 {3899 'name': '',3900 'type': 'address'3901 }3902 ],3903 'type': 'function'3904 },3905 {3906 'constant': true,3907 'inputs': [],3908 'name': '_auth_mode',3909 'outputs': [3910 {3911 'name': '',3912 'type': 'uint8'3913 }3914 ],3915 'type': 'function'3916 },3917 {3918 'constant': true,3919 'inputs': [3920 {3921 'name': 'key',3922 'type': 'bytes32'3923 }3924 ],3925 'name': 'tryGet',3926 'outputs': [3927 {3928 'name': 'value',3929 'type': 'bytes32'3930 },3931 {3932 'name': 'ok',3933 'type': 'bool'3934 }3935 ],3936 'type': 'function'3937 },3938 {3939 'constant': false,3940 'inputs': [3941 {3942 'name': 'key',3943 'type': 'bytes32'3944 },3945 {3946 'name': 'value',3947 'type': 'bytes32'3948 }3949 ],3950 'name': 'set',3951 'outputs': [],3952 'type': 'function'3953 },3954 {3955 'anonymous': false,3956 'inputs': [3957 {3958 'indexed': true,3959 'name': 'key',3960 'type': 'bytes32'3961 },3962 {3963 'indexed': true,3964 'name': 'value',3965 'type': 'bytes32'3966 },3967 {3968 'indexed': true,3969 'name': 'is_set',3970 'type': 'bool'3971 }3972 ],3973 'name': 'SetNullable',3974 'type': 'event'3975 },3976 {3977 'anonymous': false,3978 'inputs': [3979 {3980 'indexed': true,3981 'name': 'auth',3982 'type': 'address'3983 },3984 {3985 'indexed': true,3986 'name': 'mode',3987 'type': 'DSAuthModesEnum.DSAuthModes'3988 }3989 ],3990 'name': 'DSAuthUpdate',3991 'type': 'event'3992 }3993 ]3994 },3995 'ERC20': {3996 'interface': [3997 {3998 'constant': false,3999 'inputs': [4000 {4001 'name': 'spender',4002 'type': 'address'4003 },4004 {4005 'name': 'value',4006 'type': 'uint256'4007 }4008 ],4009 'name': 'approve',4010 'outputs': [4011 {4012 'name': 'ok',4013 'type': 'bool'4014 }4015 ],4016 'type': 'function'4017 },4018 {4019 'constant': true,4020 'inputs': [],4021 'name': 'totalSupply',4022 'outputs': [4023 {4024 'name': 'supply',4025 'type': 'uint256'4026 }4027 ],4028 'type': 'function'4029 },4030 {4031 'constant': false,4032 'inputs': [4033 {4034 'name': 'from',4035 'type': 'address'4036 },4037 {4038 'name': 'to',4039 'type': 'address'4040 },4041 {4042 'name': 'value',4043 'type': 'uint256'4044 }4045 ],4046 'name': 'transferFrom',4047 'outputs': [4048 {4049 'name': 'ok',4050 'type': 'bool'4051 }4052 ],4053 'type': 'function'4054 },4055 {4056 'constant': true,4057 'inputs': [4058 {4059 'name': 'who',4060 'type': 'address'4061 }4062 ],4063 'name': 'balanceOf',4064 'outputs': [4065 {4066 'name': 'value',4067 'type': 'uint256'4068 }4069 ],4070 'type': 'function'4071 },4072 {4073 'constant': false,4074 'inputs': [4075 {4076 'name': 'to',4077 'type': 'address'4078 },4079 {4080 'name': 'value',4081 'type': 'uint256'4082 }4083 ],4084 'name': 'transfer',4085 'outputs': [4086 {4087 'name': 'ok',4088 'type': 'bool'4089 }4090 ],4091 'type': 'function'4092 },4093 {4094 'constant': true,4095 'inputs': [4096 {4097 'name': 'owner',4098 'type': 'address'4099 },4100 {4101 'name': 'spender',4102 'type': 'address'4103 }4104 ],4105 'name': 'allowance',4106 'outputs': [4107 {4108 'name': '_allowance',4109 'type': 'uint256'4110 }4111 ],4112 'type': 'function'4113 },4114 {4115 'anonymous': false,4116 'inputs': [4117 {4118 'indexed': true,4119 'name': 'from',4120 'type': 'address'4121 },4122 {4123 'indexed': true,4124 'name': 'to',4125 'type': 'address'4126 },4127 {4128 'indexed': false,4129 'name': 'value',4130 'type': 'uint256'4131 }4132 ],4133 'name': 'Transfer',4134 'type': 'event'4135 },4136 {4137 'anonymous': false,4138 'inputs': [4139 {4140 'indexed': true,4141 'name': 'owner',4142 'type': 'address'4143 },4144 {4145 'indexed': true,4146 'name': 'spender',4147 'type': 'address'4148 },4149 {4150 'indexed': false,4151 'name': 'value',4152 'type': 'uint256'4153 }4154 ],4155 'name': 'Approval',4156 'type': 'event'4157 }4158 ]4159 },4160 'ERC20Events': {4161 'interface': [4162 {4163 'anonymous': false,4164 'inputs': [4165 {4166 'indexed': true,4167 'name': 'from',4168 'type': 'address'4169 },4170 {4171 'indexed': true,4172 'name': 'to',4173 'type': 'address'4174 },4175 {4176 'indexed': false,4177 'name': 'value',4178 'type': 'uint256'4179 }4180 ],4181 'name': 'Transfer',4182 'type': 'event'4183 },4184 {4185 'anonymous': false,4186 'inputs': [4187 {4188 'indexed': true,4189 'name': 'owner',4190 'type': 'address'4191 },4192 {4193 'indexed': true,4194 'name': 'spender',4195 'type': 'address'4196 },4197 {4198 'indexed': false,4199 'name': 'value',4200 'type': 'uint256'4201 }4202 ],4203 'name': 'Approval',4204 'type': 'event'4205 }4206 ]4207 },4208 'ERC20Stateful': {4209 'interface': [4210 {4211 'constant': false,4212 'inputs': [4213 {4214 'name': 'spender',4215 'type': 'address'4216 },4217 {4218 'name': 'value',4219 'type': 'uint256'4220 }4221 ],4222 'name': 'approve',4223 'outputs': [4224 {4225 'name': 'ok',4226 'type': 'bool'4227 }4228 ],4229 'type': 'function'4230 },4231 {4232 'constant': false,4233 'inputs': [4234 {4235 'name': 'from',4236 'type': 'address'4237 },4238 {4239 'name': 'to',4240 'type': 'address'4241 },4242 {4243 'name': 'value',4244 'type': 'uint256'4245 }4246 ],4247 'name': 'transferFrom',4248 'outputs': [4249 {4250 'name': 'ok',4251 'type': 'bool'4252 }4253 ],4254 'type': 'function'4255 },4256 {4257 'constant': false,4258 'inputs': [4259 {4260 'name': 'to',4261 'type': 'address'4262 },4263 {4264 'name': 'value',4265 'type': 'uint256'4266 }4267 ],4268 'name': 'transfer',4269 'outputs': [4270 {4271 'name': 'ok',4272 'type': 'bool'4273 }4274 ],4275 'type': 'function'4276 }4277 ]4278 },4279 'ERC20Stateless': {4280 'interface': [4281 {4282 'constant': true,4283 'inputs': [],4284 'name': 'totalSupply',4285 'outputs': [4286 {4287 'name': 'supply',4288 'type': 'uint256'4289 }4290 ],4291 'type': 'function'4292 },4293 {4294 'constant': true,4295 'inputs': [4296 {4297 'name': 'who',4298 'type': 'address'4299 }4300 ],4301 'name': 'balanceOf',4302 'outputs': [4303 {4304 'name': 'value',4305 'type': 'uint256'4306 }4307 ],4308 'type': 'function'4309 },4310 {4311 'constant': true,4312 'inputs': [4313 {4314 'name': 'owner',4315 'type': 'address'4316 },4317 {4318 'name': 'spender',4319 'type': 'address'4320 }4321 ],4322 'name': 'allowance',4323 'outputs': [4324 {4325 'name': '_allowance',4326 'type': 'uint256'4327 }4328 ],4329 'type': 'function'4330 }4331 ]4332 },4333 'FallbackUser': {4334 'interface': [4335 {4336 'constant': false,4337 'inputs': [],4338 'name': 'exec',4339 'outputs': [4340 {4341 'name': '',4342 'type': 'bool'4343 }4344 ],4345 'type': 'function'4346 }4347 ]4348 },4349 'Vault': {4350 'interface': [4351 {4352 'constant': false,4353 'inputs': [],4354 'name': 'breach',4355 'outputs': [],4356 'type': 'function'4357 },4358 {4359 'constant': true,4360 'inputs': [],4361 'name': 'coins',4362 'outputs': [4363 {4364 'name': '',4365 'type': 'uint256'4366 }4367 ],4368 'type': 'function'4369 },4370 {4371 'constant': false,4372 'inputs': [4373 {4374 'name': 'new_authority',4375 'type': 'address'4376 },4377 {4378 'name': 'mode',4379 'type': 'uint8'4380 }4381 ],4382 'name': 'updateAuthority',4383 'outputs': [],4384 'type': 'function'4385 },4386 {4387 'constant': true,4388 'inputs': [],4389 'name': 'breached',4390 'outputs': [4391 {4392 'name': '',4393 'type': 'bool'4394 }4395 ],4396 'type': 'function'4397 },4398 {4399 'constant': true,4400 'inputs': [],4401 'name': '_authority',4402 'outputs': [4403 {4404 'name': '',4405 'type': 'address'4406 }4407 ],4408 'type': 'function'4409 },4410 {4411 'constant': true,4412 'inputs': [],4413 'name': '_auth_mode',4414 'outputs': [4415 {4416 'name': '',4417 'type': 'uint8'4418 }4419 ],4420 'type': 'function'4421 },4422 {4423 'constant': false,4424 'inputs': [],4425 'name': 'reset',4426 'outputs': [],4427 'type': 'function'4428 },4429 {4430 'inputs': [],4431 'type': 'constructor'4432 },4433 {4434 'anonymous': false,4435 'inputs': [4436 {4437 'indexed': true,4438 'name': 'auth',4439 'type': 'address'4440 },4441 {4442 'indexed': true,4443 'name': 'mode',4444 'type': 'DSAuthModesEnum.DSAuthModes'4445 }4446 ],4447 'name': 'DSAuthUpdate',4448 'type': 'event'4449 },4450 ]4451 },4452 'DSEcho': {4453 'interface': [],4454 }4455 };4456 this.classes = {};4457 for (var key in this.headers) {4458 this.classes[key] = _web3.eth.contract(this.headers[key].interface);4459 }4460 this.objects = {};4461 for (var i in env.objects) {4462 var obj = env.objects[i];4463 this.objects[i] = this.classes[obj['class']].at(obj.address);4464 this.objects[i].abi = this.classes[obj['class']].abi;4465 }4466 this.environment = env;4467 }4468 return {4469 class: constructor,4470 environments: environments4471 };4472})();4473Dapple['Maker'] = (function builder () {4474 function sanitize (web3, opts, cb) {4475 var defaultOpts = {4476 from: web3.eth.defaultAccount || web3.eth.coinbase4477 };4478 if (typeof opts === 'function') {4479 cb = opts;4480 opts = defaultOpts;4481 }4482 if (typeof opts === 'undefined') {4483 opts = defaultOpts;4484 }4485 if (typeof cb === 'undefined') {4486 cb = function () {};4487 }4488 if (!opts.gas) {4489 opts.gas = web3.eth.estimateGas(opts);4490 }4491 return {opts: opts, cb: cb};4492 }4493 var MakerAdmin = function (maker) {4494 this._maker = maker;4495 this._dappsys = maker.dappsys;4496 this._web3 = maker.dappsys.web3;4497 this._multisig = maker.dappsys.objects.multisig;4498 this.ActionProposed = this._multisig.Proposed.bind(this._multisig);4499 this.ActionConfirmed = this._multisig.Confirmed.bind(this._multisig);4500 this.ActionTriggered = this._multisig.Triggered.bind(this._multisig);4501 };4502 MakerAdmin.prototype.proposeAction = function (4503 contract, func, args, value, opts, cb) {4504 var sanitized = sanitize(this._web3, opts, cb);4505 opts = sanitized.opts;4506 cb = sanitized.cb;4507 if (typeof contract === 'string') {4508 contract = this._stringToContract(contract);4509 }4510 var proposalData = this._constructProposalData(contract, func, args);4511 var filter = this._multisig.Proposed(4512 {calldata: proposalData},4513 function (err, evt) {4514 filter.stopWatching();4515 if (err) return cb(err);4516 cb(null, evt.args.action_id);4517 });4518 return this._multisig.propose(contract.address, proposalData, value, opts);4519 };4520 MakerAdmin.prototype.confirmAction = function (actionID, opts, cb) {4521 return this._doAction('confirm', actionID, opts, cb);4522 };4523 MakerAdmin.prototype.triggerAction = function (actionID, opts, cb) {4524 return this._doAction('trigger', actionID, opts, cb);4525 };4526 MakerAdmin.prototype.verifyAction = function (4527 actionID, contract, func, args, value, cb) {4528 var that = this;4529 if (typeof contract === 'string') {4530 contract = this._stringToContract(contract);4531 }4532 var proposalData = this._constructProposalData(contract, func, args);4533 // Check the last 10000 blocks for a proposal with the given action ID,4534 // which should cover one whole voting round with some room to spare.4535 var lookback = 10000;4536 function compareTxData (err, tx) {4537 if (err) {4538 return cb(err);4539 }4540 var expectedData = that._getData(4541 that._multisig, 'propose', [contract.address, proposalData, value]);4542 var res = {4543 actionID: actionID,4544 actualData: tx.input,4545 expectedData: expectedData4546 };4547 res.verified = (res.actualData === res.expectedData);4548 res.message = (res.verified ?4549 'Passes verification. Should be safe to confirm.' :4550 'Does NOT pass verification! Do NOT confirm!');4551 return cb(null, res);4552 }4553 that._web3.eth.getBlockNumber(function (err, latestBN) {4554 if (err) {4555 return cb(err);4556 }4557 that.ActionProposed(4558 {action_id: actionID},4559 {fromBlock: latestBN - lookback, toBlock: latestBN})4560 .get(function (err, logs) {4561 if (err) {4562 return cb(err);4563 }4564 if (logs.length === 0) {4565 return cb('Could not find action proposal with ID ' + actionID +4566 ' in the last ' + lookback + ' blocks!');4567 }4568 that._web3.eth.getTransaction(4569 logs[0].transactionHash, compareTxData);4570 });4571 })4572 };4573 MakerAdmin.prototype.actionStatus = function (actionID) {4574 var statusArray = this._multisig.getActionStatus(actionID);4575 return {4576 'confirmations': statusArray[0],4577 'expiration': new Date(statusArray[1] * 1000),4578 'triggered': statusArray[2]4579 };4580 };4581 MakerAdmin.prototype.getInfo = function () {4582 var info = this._multisig.getInfo();4583 return {4584 'quorum': info[0],4585 'members': info[1],4586 'votingPeriod': info[2],4587 'lastActionID': info[3]4588 };4589 };4590 MakerAdmin.prototype.isAdmin = function (address) {4591 if (typeof address === 'undefined') {4592 address = this._web3.eth.defaultAccount || this._web3.eth.coinbase;4593 }4594 return this._multisig.isMember.call(address);4595 };4596 MakerAdmin.prototype._stringToContract = function (contractName) {4597 if (!(contract in this._dappsys.objects)) {4598 throw new Error('Unrecognized contract name: ' + contract);4599 }4600 return this._dappsys.objects[contract];4601 };4602 MakerAdmin.prototype._constructProposalData = function (4603 contract, func, args) {4604 if (!(func in contract)) {4605 throw new Error('Unrecognized function name: ' + func);4606 }4607 return this._getData(contract, func, args);4608 }4609 MakerAdmin.prototype._getData = function (contract, func, args) {4610 if (!(func in contract)) {4611 throw new Error(func + ' function not found in contract!');4612 }4613 if (contract[func].getData) {4614 return contract[func].getData.apply(contract, args);4615 }4616 var targetABI = JSON.parse(JSON.stringify(contract.abi));4617 for (var i = 0; i < targetABI.length; i += 1) {4618 if (targetABI[i].type !== 'function') continue;4619 targetABI[i].outputs = [{'name': '', 'type': 'bytes'}];4620 }4621 var echoer = this._dappsys.web3.eth.contract(targetABI)4622 .at(this._dappsys.objects.echo.address);4623 return echoer[func].call.apply(echoer, args);4624 };4625 MakerAdmin.prototype._doAction = function (verb, actionID, opts, cb) {4626 var sanitized = sanitize(this._web3, opts, cb);4627 opts = sanitized.opts;4628 cb = sanitized.cb;4629 var that = this;4630 var filter = this._web3.eth.filter('latest', function (err, block) {4631 if (err) {4632 filter.stopWatching();4633 return cb(err);4634 }4635 that._web3.eth.getTransactionReceipt(txID, function (err, receipt) {4636 if (err) {4637 filter.stopWatching();4638 return cb(err);4639 }4640 if (receipt.blockNumber) {4641 filter.stopWatching();4642 if (receipt.logs.length === 0) {4643 return cb('Exception was thrown in multisig contract. ' +4644 'Did you send from your admin multisig address?' +4645 'Have you already ' + verb + 'ed this action?');4646 }4647 return cb(null, actionID);4648 }4649 });4650 });4651 var txID = this._multisig[verb](actionID, opts);4652 return txID;4653 };4654 var Maker = function (_web3, environment) {4655 if (typeof web3 === 'undefined') {4656 if (typeof _web3 !== 'undefined') {4657 var web3 = _web3;4658 } else if (typeof Web3 !== 'undefined') {4659 var web3 = new Web3(new HttpProvider('http://localhost/', '8545'));4660 }4661 }4662 this._web3 = web3;4663 this.dappsys = new Dapple.dappsys.class(web3, environment);4664 this.admin = new MakerAdmin(this);4665 };4666 Maker.prototype.getToken = function (symbol, callback) {4667 var tokenClass = 'DSTokenFrontend';4668 if (symbol === 'W-ETH') {4669 tokenClass = 'DSEthToken';4670 }4671 var _this = this4672 _this.dappsys.objects.token_registry.get(symbol, function (error, n) {4673 if (!error) {4674 try {4675 _this.dappsys.classes[tokenClass].at(_this._web3.toHex(_this._web3.toBigNumber(n)), function (error, token) {4676 if (!error) {4677 token.abi = _this.dappsys.classes[tokenClass].abi;4678 callback(error, token)4679 } else {4680 callback(error, token)4681 }4682 })4683 } catch (e) {4684 callback(e, null)4685 }4686 } else {4687 callback(error, n)4688 }4689 })4690 };4691 // Helper functions for logging callback arguments.4692 Maker.prototype.logCB = function () {4693 console.log(JSON.stringify(arguments));4694 };4695 Maker.prototype.logAction = function (err, actionID) {4696 if (err) {4697 console.log('ERROR: Action #' + actionID + ': ' + err);4698 } else {4699 console.log('Action ID: ' + actionID);4700 }4701 };4702 Maker.prototype.logVerification = function (err, response) {4703 if (err) {4704 console.log('ERROR: ' + err);4705 } else {4706 console.log('Action #' + response.actionID + ' verification result: ' +4707 response.message);4708 }4709 };4710 return Maker;4711})();4712/*4713if (typeof module !== 'undefined' && module.exports) {4714 module.exports = Dapple['dappsys'];4715}...

Full Screen

Full Screen

test.spec.ts

Source:test.spec.ts Github

copy

Full Screen

1import { InjectionToken, NgModule } from '@angular/core';2import { MockBuilder, ngMocks } from 'ng-mocks';3const TOKEN_FACTORY1 = new InjectionToken('FACTORY1');4const TOKEN_FACTORY2 = new InjectionToken('FACTORY2');5class DummyClass {}6@NgModule({7 providers: [8 {9 provide: TOKEN_FACTORY1,10 useFactory: () => new DummyClass(),11 },12 {13 provide: TOKEN_FACTORY2,14 useFactory: () => 'hello',15 },16 ],17})18class TargetModule {}19describe('tokens-factory', () => {20 beforeEach(() => MockBuilder().mock(TargetModule));21 // Yes, it is tricky, but we do not have much to do here.22 // If a factory returns something else - it should be replaced with a mock copy manually23 // with a proper value.24 it('mocks TOKEN_FACTORY as an empty object', () => {25 const actual1 = ngMocks.findInstance(TOKEN_FACTORY1);26 expect(actual1).toEqual({});27 const actual2 = ngMocks.findInstance(TOKEN_FACTORY2);28 expect(actual2).toEqual({});29 });...

Full Screen

Full Screen

Using AI Code Generation

copy

Full Screen

1import { TOKEN_FACTORY1 } from 'ng-mocks';2import { TOKEN_FACTORY1 } from 'ng-mocks';3import { TOKEN_FACTORY1 } from 'ng-mocks';4import { TOKEN_FACTORY1 } from 'ng-mocks';5import { TOKEN_FACTORY1 } from 'ng-mocks';6import { TOKEN_FACTORY1 } from 'ng-mocks';7import { TOKEN_FACTORY1 } from 'ng-mocks';8import { TOKEN_FACTORY1 } from 'ng-mocks';9import { TOKEN_FACTORY1 } from 'ng-mocks';10import { TOKEN_FACTORY1 } from 'ng-mocks';11import { TOKEN_FACTORY1 } from 'ng-mocks';12import { TOKEN_FACTORY1 } from 'ng-mocks';13import { TOKEN_FACTORY1 } from 'ng-mocks';14import { TOKEN_FACTORY1 } from 'ng-mocks';15import { TOKEN_FACTORY1 } from 'ng-mocks';16import { TOKEN_FACTORY1 } from 'ng-mocks';17import { TOKEN_FACTORY1 } from 'ng-mocks';18import { TOKEN_FACTORY1 } from 'ng-mocks';19import { TOKEN_FACTORY1 } from 'ng-mocks';20import { TOKEN_FACTORY1 } from 'ng-mocks';

Full Screen

Using AI Code Generation

copy

Full Screen

1const TOKEN_FACTORY1 = require('ng-mocks').TOKEN_FACTORY1;2const TOKEN_FACTORY2 = require('ng-mocks').TOKEN_FACTORY2;3const TOKEN_FACTORY3 = require('ng-mocks').TOKEN_FACTORY3;4const TOKEN_FACTORY4 = require('ng-mocks').TOKEN_FACTORY4;5const TOKEN_FACTORY5 = require('ng-mocks').TOKEN_FACTORY5;6const TOKEN_FACTORY6 = require('ng-mocks').TOKEN_FACTORY6;7const TOKEN_FACTORY7 = require('ng-mocks').TOKEN_FACTORY7;8const TOKEN_FACTORY8 = require('ng-mocks').TOKEN_FACTORY8;9const TOKEN_FACTORY9 = require('ng-mocks').TOKEN_FACTORY9;10const TOKEN_FACTORY10 = require('ng-mocks').TOKEN_FACTORY10;11const TOKEN_FACTORY11 = require('ng-mocks').TOKEN_FACTORY11;12const TOKEN_FACTORY1 = require('ng-mocks').TOKEN_FACTORY1;13const TOKEN_FACTORY2 = require('ng-mocks').TOKEN_FACTORY2;14const TOKEN_FACTORY3 = require('ng-mocks').TOKEN_FACTORY3;15const TOKEN_FACTORY4 = require('ng-mocks').TOKEN_FACTORY4;16const TOKEN_FACTORY5 = require('ng-mocks').TOKEN_FACTORY5;17const TOKEN_FACTORY6 = require('ng-mocks').TOKEN_FACTORY6;18const TOKEN_FACTORY7 = require('ng-mocks').TOKEN_FACTORY7;19const TOKEN_FACTORY8 = require('ng-mocks').TOKEN_FACTORY8;20const TOKEN_FACTORY9 = require('ng-mocks').TOKEN_FACTORY9;21const TOKEN_FACTORY10 = require('ng-mocks').TOKEN_FACTORY10;22const TOKEN_FACTORY11 = require('ng-mocks').TOKEN_FACTORY11;23const TOKEN_FACTORY1 = require('ng-mocks').TOKEN_FACTORY1;24const TOKEN_FACTORY2 = require('ng-mocks').TOKEN_FACTORY2;25const TOKEN_FACTORY3 = require('ng-mocks').TOKEN_FACTORY3;26const TOKEN_FACTORY4 = require('ng-mocks').TOKEN_FACTORY4;27const TOKEN_FACTORY5 = require('ng-mocks').TOKEN_FACTORY5;28const TOKEN_FACTORY6 = require('ng-mocks').TOKEN_FACTORY6;29const TOKEN_FACTORY7 = require('ng-mocks').TOKEN_FACTORY7;30const TOKEN_FACTORY8 = require('ng-mocks').TOKEN_FACTORY8;

Full Screen

Automation Testing Tutorials

Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.

LambdaTest Learning Hubs:

YouTube

You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.

Run ng-mocks automation tests on LambdaTest cloud grid

Perform automation testing on 3000+ real desktop and mobile devices online.

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful