Integrate hardhat console log

pull/1460/head
aniket-engg 3 years ago committed by Aniket
parent eac4fd8f28
commit 1e92428f45
  1. 379
      libs/remix-lib/src/helpers/hhconsoleSigs.ts
  2. 18
      libs/remix-lib/src/web3Provider/web3VmProvider.ts

@ -0,0 +1,379 @@
// Fetched from https://github.com/nomiclabs/hardhat/blob/ee4969a0a8f746f4775d4018326056d161066869/packages/hardhat-core/src/internal/hardhat-network/stack-traces/logger.ts#L47
export const ConsoleLogs = {
1368866505: '()',
1309416733: '("int")',
4122065833: '("uint")',
1093685164: '("string")',
843419373: '("bool")',
741264322: '("address")',
199720790: '("bytes")',
1847107880: '("bytes1")',
3921027734: '("bytes2")',
763578662: '("bytes3")',
3764340945: '("bytes4")',
2793701517: '("bytes5")',
2927928721: '("bytes6")',
1322614312: '("bytes7")',
1334060334: '("bytes8")',
2428341456: '("bytes9")',
20780939: '("bytes10")',
67127854: '("bytes11")',
2258660029: '("bytes12")',
2488442420: '("bytes13")',
2456219775: '("bytes14")',
3667227872: '("bytes15")',
1717330180: '("bytes16")',
866084666: '("bytes17")',
3302112666: '("bytes18")',
1584093747: '("bytes19")',
1367925737: '("bytes20")',
3923391840: '("bytes21")',
3589990556: '("bytes22")',
2879508237: '("bytes23")',
4055063348: '("bytes24")',
193248344: '("bytes25")',
4172368369: '("bytes26")',
976705501: '("bytes27")',
3358255854: '("bytes28")',
1265222613: '("bytes29")',
3994207469: '("bytes30")',
3263516050: '("bytes31")',
666357637: '("bytes32")',
1812949376: '("uint","uint")',
262402885: '("uint","string")',
510514412: '("uint","bool")',
1491830284: '("uint","address")',
2534451664: '("string","uint")',
1264337527: '("string","string")',
3283441205: '("string","bool")',
832238387: '("string","address")',
910912146: '("bool","uint")',
2414527781: '("bool","string")',
705760899: '("bool","bool")',
2235320393: '("bool","address")',
574869411: '("address","uint")',
1973388987: '("address","string")',
1974863315: '("address","bool")',
3673216170: '("address","address")',
3884059252: '("uint","uint","uint")',
2104037094: '("uint","uint","string")',
1733758967: '("uint","uint","bool")',
3191032091: '("uint","uint","address")',
1533929535: '("uint","string","uint")',
1062716053: '("uint","string","string")',
1185403086: '("uint","string","bool")',
529592906: '("uint","string","address")',
1515034914: '("uint","bool","uint")',
2332955902: '("uint","bool","string")',
3587091680: '("uint","bool","bool")',
1112473535: '("uint","bool","address")',
2286109610: '("uint","address","uint")',
3464692859: '("uint","address","string")',
2060456590: '("uint","address","bool")',
2104993307: '("uint","address","address")',
2526862595: '("string","uint","uint")',
2750793529: '("string","uint","string")',
4043501061: '("string","uint","bool")',
3817119609: '("string","uint","address")',
4083337817: '("string","string","uint")',
753761519: '("string","string","string")',
2967534005: '("string","string","bool")',
2515337621: '("string","string","address")',
689682896: '("string","bool","uint")',
3801674877: '("string","bool","string")',
2232122070: '("string","bool","bool")',
2469116728: '("string","bool","address")',
130552343: '("string","address","uint")',
3773410639: '("string","address","string")',
3374145236: '("string","address","bool")',
4243355104: '("string","address","address")',
995886048: '("bool","uint","uint")',
3359211184: '("bool","uint","string")',
464374251: '("bool","uint","bool")',
3302110471: '("bool","uint","address")',
3224906412: '("bool","string","uint")',
2960557183: '("bool","string","string")',
3686056519: '("bool","string","bool")',
2509355347: '("bool","string","address")',
2954061243: '("bool","bool","uint")',
626391622: '("bool","bool","string")',
1349555864: '("bool","bool","bool")',
276362893: '("bool","bool","address")',
3950005167: '("bool","address","uint")',
3734671984: '("bool","address","string")',
415876934: '("bool","address","bool")',
3530962535: '("bool","address","address")',
2273710942: '("address","uint","uint")',
3136907337: '("address","uint","string")',
3846889796: '("address","uint","bool")',
2548867988: '("address","uint","address")',
484110986: '("address","string","uint")',
4218888805: '("address","string","string")',
3473018801: '("address","string","bool")',
4035396840: '("address","string","address")',
742821141: '("address","bool","uint")',
555898316: '("address","bool","string")',
3951234194: '("address","bool","bool")',
4044790253: '("address","bool","address")',
1815506290: '("address","address","uint")',
7426238: '("address","address","string")',
4070990470: '("address","address","bool")',
25986242: '("address","address","address")',
1554033982: '("uint","uint","uint","uint")',
2024634892: '("uint","uint","uint","string")',
1683143115: '("uint","uint","uint","bool")',
3766828905: '("uint","uint","uint","address")',
949229117: '("uint","uint","string","uint")',
2080582194: '("uint","uint","string","string")',
2989403910: '("uint","uint","string","bool")',
1127384482: '("uint","uint","string","address")',
1818524812: '("uint","uint","bool","uint")',
4024028142: '("uint","uint","bool","string")',
2495495089: '("uint","uint","bool","bool")',
3776410703: '("uint","uint","bool","address")',
1628154048: '("uint","uint","address","uint")',
3600994782: '("uint","uint","address","string")',
2833785006: '("uint","uint","address","bool")',
3398671136: '("uint","uint","address","address")',
3221501959: '("uint","string","uint","uint")',
2730232985: '("uint","string","uint","string")',
2270850606: '("uint","string","uint","bool")',
2877020669: '("uint","string","uint","address")',
1995203422: '("uint","string","string","uint")',
1474103825: '("uint","string","string","string")',
310782872: '("uint","string","string","bool")',
3432549024: '("uint","string","string","address")',
2763295359: '("uint","string","bool","uint")',
2370346144: '("uint","string","bool","string")',
1371286465: '("uint","string","bool","bool")',
2037328032: '("uint","string","bool","address")',
2565338099: '("uint","string","address","uint")',
4170733439: '("uint","string","address","string")',
4181720887: '("uint","string","address","bool")',
2141537675: '("uint","string","address","address")',
1451396516: '("uint","bool","uint","uint")',
3906845782: '("uint","bool","uint","string")',
3534472445: '("uint","bool","uint","bool")',
1329595790: '("uint","bool","uint","address")',
2438978344: '("uint","bool","string","uint")',
2754870525: '("uint","bool","string","string")',
879671495: '("uint","bool","string","bool")',
1231956916: '("uint","bool","string","address")',
3173363033: '("uint","bool","bool","uint")',
831186331: '("uint","bool","bool","string")',
1315722005: '("uint","bool","bool","bool")',
1392910941: '("uint","bool","bool","address")',
1102442299: '("uint","bool","address","uint")',
2721084958: '("uint","bool","address","string")',
2449150530: '("uint","bool","address","bool")',
2263728396: '("uint","bool","address","address")',
3399106228: '("uint","address","uint","uint")',
1054063912: '("uint","address","uint","string")',
435581801: '("uint","address","uint","bool")',
4256361684: '("uint","address","uint","address")',
2697204968: '("uint","address","string","uint")',
2373420580: '("uint","address","string","string")',
581204390: '("uint","address","string","bool")',
3420819197: '("uint","address","string","address")',
2064181483: '("uint","address","bool","uint")',
1676730946: '("uint","address","bool","string")',
2116501773: '("uint","address","bool","bool")',
3056677012: '("uint","address","bool","address")',
2587672470: '("uint","address","address","uint")',
2034490470: '("uint","address","address","string")',
22350596: '("uint","address","address","bool")',
1430734329: '("uint","address","address","address")',
149837414: '("string","uint","uint","uint")',
2773406909: '("string","uint","uint","string")',
4147936829: '("string","uint","uint","bool")',
3201771711: '("string","uint","uint","address")',
2697245221: '("string","uint","string","uint")',
1821956834: '("string","uint","string","string")',
3919545039: '("string","uint","string","bool")',
3144824297: '("string","uint","string","address")',
1427009269: '("string","uint","bool","uint")',
1993105508: '("string","uint","bool","string")',
3816813520: '("string","uint","bool","bool")',
3847527825: '("string","uint","bool","address")',
1481210622: '("string","uint","address","uint")',
844415720: '("string","uint","address","string")',
285649143: '("string","uint","address","bool")',
3939013249: '("string","uint","address","address")',
3587119056: '("string","string","uint","uint")',
2366909661: '("string","string","uint","string")',
3864418506: '("string","string","uint","bool")',
1565476480: '("string","string","uint","address")',
2681211381: '("string","string","string","uint")',
3731419658: '("string","string","string","string")',
739726573: '("string","string","string","bool")',
1834430276: '("string","string","string","address")',
2256636538: '("string","string","bool","uint")',
1585754346: '("string","string","bool","string")',
1081628777: '("string","string","bool","bool")',
3279013851: '("string","string","bool","address")',
1250010474: '("string","string","address","uint")',
3944480640: '("string","string","address","string")',
1556958775: '("string","string","address","bool")',
1134328815: '("string","string","address","address")',
1572859960: '("string","bool","uint","uint")',
1119461927: '("string","bool","uint","string")',
1019590099: '("string","bool","uint","bool")',
1909687565: '("string","bool","uint","address")',
885731469: '("string","bool","string","uint")',
2821114603: '("string","bool","string","string")',
1066037277: '("string","bool","string","bool")',
3764542249: '("string","bool","string","address")',
2155164136: '("string","bool","bool","uint")',
2636305885: '("string","bool","bool","string")',
2304440517: '("string","bool","bool","bool")',
1905304873: '("string","bool","bool","address")',
685723286: '("string","bool","address","uint")',
764294052: '("string","bool","address","string")',
2508990662: '("string","bool","address","bool")',
870964509: '("string","bool","address","address")',
3668153533: '("string","address","uint","uint")',
1280700980: '("string","address","uint","string")',
1522647356: '("string","address","uint","bool")',
2741431424: '("string","address","uint","address")',
2405583849: '("string","address","string","uint")',
609847026: '("string","address","string","string")',
1595265676: '("string","address","string","bool")',
2864486961: '("string","address","string","address")',
3318856587: '("string","address","bool","uint")',
72663161: '("string","address","bool","string")',
2038975531: '("string","address","bool","bool")',
573965245: '("string","address","bool","address")',
1857524797: '("string","address","address","uint")',
2148146279: '("string","address","address","string")',
3047013728: '("string","address","address","bool")',
3985582326: '("string","address","address","address")',
853517604: '("bool","uint","uint","uint")',
3657852616: '("bool","uint","uint","string")',
2753397214: '("bool","uint","uint","bool")',
4049711649: '("bool","uint","uint","address")',
1098907931: '("bool","uint","string","uint")',
3542771016: '("bool","uint","string","string")',
2446522387: '("bool","uint","string","bool")',
2781285673: '("bool","uint","string","address")',
3554563475: '("bool","uint","bool","uint")',
3067439572: '("bool","uint","bool","string")',
2650928961: '("bool","uint","bool","bool")',
1114097656: '("bool","uint","bool","address")',
3399820138: '("bool","uint","address","uint")',
403247937: '("bool","uint","address","string")',
1705899016: '("bool","uint","address","bool")',
2318373034: '("bool","uint","address","address")',
2387273838: '("bool","string","uint","uint")',
2007084013: '("bool","string","uint","string")',
549177775: '("bool","string","uint","bool")',
1529002296: '("bool","string","uint","address")',
1574643090: '("bool","string","string","uint")',
392356650: '("bool","string","string","string")',
508266469: '("bool","string","string","bool")',
2547225816: '("bool","string","string","address")',
2372902053: '("bool","string","bool","uint")',
1211958294: '("bool","string","bool","string")',
3697185627: '("bool","string","bool","bool")',
1401816747: '("bool","string","bool","address")',
453743963: '("bool","string","address","uint")',
316065672: '("bool","string","address","string")',
1842623690: '("bool","string","address","bool")',
724244700: '("bool","string","address","address")',
1181212302: '("bool","bool","uint","uint")',
1348569399: '("bool","bool","uint","string")',
2874982852: '("bool","bool","uint","bool")',
201299213: '("bool","bool","uint","address")',
395003525: '("bool","bool","string","uint")',
1830717265: '("bool","bool","string","string")',
3092715066: '("bool","bool","string","bool")',
4188875657: '("bool","bool","string","address")',
3259532109: '("bool","bool","bool","uint")',
719587540: '("bool","bool","bool","string")',
992632032: '("bool","bool","bool","bool")',
2352126746: '("bool","bool","bool","address")',
1620281063: '("bool","bool","address","uint")',
2695133539: '("bool","bool","address","string")',
3231908568: '("bool","bool","address","bool")',
4102557348: '("bool","bool","address","address")',
2617143996: '("bool","address","uint","uint")',
2691192883: '("bool","address","uint","string")',
4002252402: '("bool","address","uint","bool")',
1760647349: '("bool","address","uint","address")',
194640930: '("bool","address","string","uint")',
2805734838: '("bool","address","string","string")',
3804222987: '("bool","address","string","bool")',
1870422078: '("bool","address","string","address")',
1287000017: '("bool","address","bool","uint")',
1248250676: '("bool","address","bool","string")',
1788626827: '("bool","address","bool","bool")',
474063670: '("bool","address","bool","address")',
1384430956: '("bool","address","address","uint")',
3625099623: '("bool","address","address","string")',
1180699616: '("bool","address","address","bool")',
487903233: '("bool","address","address","address")',
1024368100: '("address","uint","uint","uint")',
2301889963: '("address","uint","uint","string")',
3964381346: '("address","uint","uint","bool")',
519451700: '("address","uint","uint","address")',
4111650715: '("address","uint","string","uint")',
2119616147: '("address","uint","string","string")',
2751614737: '("address","uint","string","bool")',
3698927108: '("address","uint","string","address")',
1770996626: '("address","uint","bool","uint")',
2391690869: '("address","uint","bool","string")',
4272018778: '("address","uint","bool","bool")',
602229106: '("address","uint","bool","address")',
2782496616: '("address","uint","address","uint")',
1567749022: '("address","uint","address","string")',
4051804649: '("address","uint","address","bool")',
3961816175: '("address","uint","address","address")',
2764647008: '("address","string","uint","uint")',
1561552329: '("address","string","uint","string")',
2116357467: '("address","string","uint","bool")',
3755464715: '("address","string","uint","address")',
2706362425: '("address","string","string","uint")',
1560462603: '("address","string","string","string")',
900007711: '("address","string","string","bool")',
2689478535: '("address","string","string","address")',
3877655068: '("address","string","bool","uint")',
3154862590: '("address","string","bool","string")',
1595759775: '("address","string","bool","bool")',
542667202: '("address","string","bool","address")',
2350461865: '("address","string","address","uint")',
4158874181: '("address","string","address","string")',
233909110: '("address","string","address","bool")',
221706784: '("address","string","address","address")',
3255869470: '("address","bool","uint","uint")',
2606272204: '("address","bool","uint","string")',
2244855215: '("address","bool","uint","bool")',
227337758: '("address","bool","uint","address")',
2652011374: '("address","bool","string","uint")',
1197235251: '("address","bool","string","string")',
1353532957: '("address","bool","string","bool")',
436029782: '("address","bool","string","address")',
3484780374: '("address","bool","bool","uint")',
3754205928: '("address","bool","bool","string")',
3401856121: '("address","bool","bool","bool")',
3476636805: '("address","bool","bool","address")',
3698398930: '("address","bool","address","uint")',
769095910: '("address","bool","address","string")',
2801077007: '("address","bool","address","bool")',
1711502813: '("address","bool","address","address")',
1425929188: '("address","address","uint","uint")',
2647731885: '("address","address","uint","string")',
3270936812: '("address","address","uint","bool")',
3603321462: '("address","address","uint","address")',
69767936: '("address","address","string","uint")',
566079269: '("address","address","string","string")',
1863997774: '("address","address","string","bool")',
2406706454: '("address","address","string","address")',
2513854225: '("address","address","bool","uint")',
2858762440: '("address","address","bool","string")',
752096074: '("address","address","bool","bool")',
2669396846: '("address","address","bool","address")',
3982404743: '("address","address","address","uint")',
4161329696: '("address","address","address","string")',
238520724: '("address","address","address","bool")',
1717301556: '("address","address","address","address")',
}

@ -1,7 +1,9 @@
import { hexListFromBNs, formatMemory } from '../util' import { hexListFromBNs, formatMemory } from '../util'
import { normalizeHexAddress } from '../helpers/uiHelper' import { normalizeHexAddress } from '../helpers/uiHelper'
import { ConsoleLogs } from '../helpers/hhconsoleSigs'
import { toChecksumAddress, BN, bufferToHex, Address } from 'ethereumjs-util' import { toChecksumAddress, BN, bufferToHex, Address } from 'ethereumjs-util'
import Web3 from 'web3' import Web3 from 'web3'
import { ethers } from 'ethers'
export class Web3VmProvider { export class Web3VmProvider {
web3 web3
@ -206,6 +208,22 @@ export class Web3VmProvider {
error: data.error === false ? undefined : data.error error: data.error === false ? undefined : data.error
} }
this.vmTraces[this.processingHash].structLogs.push(step) this.vmTraces[this.processingHash].structLogs.push(step)
if (step.op === 'STATICCALL' && step.stack[step.stack.length - 2] === "0x000000000000000000000000000000000000000000636f6e736f6c652e6c6f67") {
const stackLength = step.stack.length
const address = step.stack[stackLength-2]
const payloadStart = parseInt(step.stack[stackLength-3], 16)
const memory = step.memory.join('')
const payloadLength = parseInt(step.stack[stackLength-4], 16)
console.log('payloadLength in pushTrace--->', payloadLength)
const payload = memory.substring(payloadStart*2, payloadStart*2 + payloadLength)
console.log('memory payload in pushTrace--->', payload)
const fnselector = parseInt('0x' + payload.substring(0, 8))
const iface = new ethers.utils.Interface([`function log${ConsoleLogs[fnselector]} view`])
console.log('iface--->', iface)
console.log('---->', iface.decodeFunctionData("log", '0x' + payload))
}
// console.log('processingAddress in ==', normalizeHexAddress(step.stack[step.stack.length - 2]))
if (step.op === 'CREATE' || step.op === 'CALL') { if (step.op === 'CREATE' || step.op === 'CALL') {
if (step.op === 'CREATE') { if (step.op === 'CREATE') {
this.processingAddress = '(Contract Creation - Step ' + this.processingIndex + ')' this.processingAddress = '(Contract Creation - Step ' + this.processingIndex + ')'

Loading…
Cancel
Save