github.com/klaytn/klaytn@v1.12.1/tests/evm_op_benchmark_test.go (about) 1 // Copyright 2019 The klaytn Authors 2 // This file is part of the klaytn library. 3 // 4 // The klaytn library is free software: you can redistribute it and/or modify 5 // it under the terms of the GNU Lesser General Public License as published by 6 // the Free Software Foundation, either version 3 of the License, or 7 // (at your option) any later version. 8 // 9 // The klaytn library is distributed in the hope that it will be useful, 10 // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 // GNU Lesser General Public License for more details. 13 // 14 // You should have received a copy of the GNU Lesser General Public License 15 // along with the klaytn library. If not, see <http://www.gnu.org/licenses/>. 16 17 package tests 18 19 import ( 20 "crypto/ecdsa" 21 "encoding/json" 22 "fmt" 23 "math/big" 24 "strings" 25 "testing" 26 "time" 27 28 "github.com/klaytn/klaytn/accounts/abi" 29 "github.com/klaytn/klaytn/blockchain/types" 30 "github.com/klaytn/klaytn/common" 31 "github.com/klaytn/klaytn/common/compiler" 32 "github.com/klaytn/klaytn/common/profile" 33 "github.com/klaytn/klaytn/crypto" 34 "github.com/klaytn/klaytn/log" 35 "github.com/klaytn/klaytn/params" 36 "github.com/stretchr/testify/assert" 37 "github.com/stretchr/testify/require" 38 ) 39 40 type BenchmarkEvmOpTestCase struct { 41 testName string 42 funcName string 43 input []interface{} 44 } 45 46 func BenchmarkEvmOp(t *testing.B) { 47 log.EnableLogForTest(log.LvlCrit, log.LvlTrace) 48 prof := profile.NewProfiler() 49 50 // Initialize blockchain 51 start := time.Now() 52 bcdata, err := NewBCData(6, 4) 53 if err != nil { 54 t.Fatal(err) 55 } 56 prof.Profile("main_init_blockchain", time.Now().Sub(start)) 57 defer bcdata.Shutdown() 58 59 // Initialize address-balance map for verification 60 start = time.Now() 61 accountMap := NewAccountMap() 62 if err := accountMap.Initialize(bcdata); err != nil { 63 t.Fatal(err) 64 } 65 prof.Profile("main_init_accountMap", time.Now().Sub(start)) 66 67 // reservoir account 68 reservoir := &TestAccountType{ 69 Addr: *bcdata.addrs[0], 70 Keys: []*ecdsa.PrivateKey{bcdata.privKeys[0]}, 71 Nonce: uint64(0), 72 } 73 74 // multisig10Initial has a initial key pair of multisig10 before the account key update 75 multisig10Initial, err := createAnonymousAccount("bb113e82881499a7a361e8354a5b68f6c6885c7bcba09ea2b0891480396c3200") 76 require.Equal(t, nil, err) 77 78 multisig10, err := createMultisigAccount(uint(1), 79 []uint{1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, 80 []string{ 81 "bb113e82881499a7a361e8354a5b68f6c6885c7bcba09ea2b0891480396c322e", 82 "a5c9a50938a089618167c9d67dbebc0deaffc3c76ddc6b40c2777ae59438e989", 83 "a5c9a50938a089618167c9d67dbebc0deaffc3c76ddc6b40c2777ae59438e98A", 84 "a5c9a50938a089618167c9d67dbebc0deaffc3c76ddc6b40c2777ae59438e98B", 85 "a5c9a50938a089618167c9d67dbebc0deaffc3c76ddc6b40c2777ae59438e98C", 86 "a5c9a50938a089618167c9d67dbebc0deaffc3c76ddc6b40c2777ae59438e98D", 87 "a5c9a50938a089618167c9d67dbebc0deaffc3c76ddc6b40c2777ae59438e98E", 88 "a5c9a50938a089618167c9d67dbebc0deaffc3c76ddc6b40c2777ae59438e98F", 89 "a5c9a50938a089618167c9d67dbebc0deaffc3c76ddc6b40c2777ae59438e999", 90 "c32c471b732e2f56103e2f8e8cfd52792ef548f05f326e546a7d1fbf9d0419ec", 91 }, 92 multisig10Initial.Addr) 93 94 if testing.Verbose() { 95 fmt.Println("reservoirAddr = ", reservoir.Addr.String()) 96 } 97 98 gasPrice := new(big.Int).SetUint64(0) 99 gasLimit := uint64(100000000000) 100 101 signer := types.LatestSignerForChainID(bcdata.bc.Config().ChainID) 102 103 filename := string("../contracts/computationcost/opcodeBench.sol") 104 contracts, err := compiler.CompileSolidityOrLoad("", filename) 105 require.NoError(t, err) 106 107 var c compiler.Contract 108 for k, v := range contracts { 109 if strings.Contains(k, "StopContract") { 110 c = *v 111 break 112 } 113 } 114 115 contractCode := c.Code 116 stopContractAbiJson, err := json.Marshal(c.Info.AbiDefinition) 117 require.NoError(t, err) 118 119 stopContractAbi, err := abi.JSON(strings.NewReader(string(stopContractAbiJson))) 120 require.NoError(t, err) 121 122 StopContractStopInput, err := stopContractAbi.Pack("Sstop") 123 require.NoError(t, err) 124 125 for k, v := range contracts { 126 if strings.Contains(k, "OpCodeBenchmarkContract") { 127 c = *v 128 break 129 } 130 } 131 132 abiJson, err := json.Marshal(c.Info.AbiDefinition) 133 require.NoError(t, err) 134 abiStr := string(abiJson) 135 136 contractAddrs := make(map[string]common.Address) 137 contractNames := make([]string, 0, len(contracts)) 138 139 // Deploy smart contract (reservoir -> contract), create multisig account. 140 { 141 var txs types.Transactions 142 143 amount := new(big.Int).SetUint64(0) 144 145 for name, contract := range contracts { 146 fmt.Println("deploying contract ", name) 147 values := map[types.TxValueKeyType]interface{}{ 148 types.TxValueKeyNonce: reservoir.Nonce, 149 types.TxValueKeyFrom: reservoir.Addr, 150 types.TxValueKeyTo: (*common.Address)(nil), 151 types.TxValueKeyAmount: amount, 152 types.TxValueKeyGasLimit: gasLimit, 153 types.TxValueKeyGasPrice: gasPrice, 154 types.TxValueKeyHumanReadable: false, 155 types.TxValueKeyData: common.FromHex(contract.Code), 156 types.TxValueKeyCodeFormat: params.CodeFormatEVM, 157 } 158 tx, err := types.NewTransactionWithMap(types.TxTypeSmartContractDeploy, values) 159 require.Equal(t, nil, err) 160 161 err = tx.SignWithKeys(signer, reservoir.Keys) 162 require.Equal(t, nil, err) 163 164 txs = append(txs, tx) 165 reservoir.Nonce += 1 166 167 contractNames = append(contractNames, name) 168 } 169 170 { 171 values := map[types.TxValueKeyType]interface{}{ 172 types.TxValueKeyNonce: multisig10Initial.Nonce, 173 types.TxValueKeyFrom: multisig10Initial.Addr, 174 types.TxValueKeyGasLimit: gasLimit, 175 types.TxValueKeyGasPrice: gasPrice, 176 types.TxValueKeyAccountKey: multisig10.AccKey, 177 types.TxValueKeyFeePayer: reservoir.Addr, 178 } 179 tx, err := types.NewTransactionWithMap(types.TxTypeFeeDelegatedAccountUpdate, values) 180 assert.Equal(t, nil, err) 181 182 err = tx.SignWithKeys(signer, multisig10Initial.Keys) 183 assert.Equal(t, nil, err) 184 185 err = tx.SignFeePayerWithKeys(signer, reservoir.Keys) 186 assert.Equal(t, nil, err) 187 188 txs = append(txs, tx) 189 multisig10Initial.Nonce++ 190 } 191 192 require.NoError(t, bcdata.GenABlockWithTransactions(accountMap, txs, prof)) 193 } 194 195 blockHash := bcdata.bc.CurrentBlock().Hash() 196 receipts := bcdata.bc.GetReceiptsByBlockHash(blockHash) 197 for i := 0; i < len(contracts); i++ { 198 addr := receipts[i].ContractAddress 199 n := strings.Split(contractNames[i], ":")[1] 200 contractAddrs[n] = addr 201 fmt.Println("createdaddr", addr.String()) 202 } 203 204 // prepare data for validate sender (reservoir) 205 validateSenderData1 := make([]byte, 0, 20+32+65) 206 { 207 hash := crypto.Keccak256Hash(reservoir.Addr.Bytes()) 208 sigs, err := crypto.Sign(hash.Bytes(), reservoir.Keys[0]) 209 require.NoError(t, err) 210 211 validateSenderData1 = append([]byte{}, reservoir.Addr.Bytes()...) 212 validateSenderData1 = append(validateSenderData1, hash.Bytes()...) 213 validateSenderData1 = append(validateSenderData1, sigs...) 214 } 215 216 // prepare data for validate sender (multisig10) 217 validateSenderMultisig10_2 := make([]byte, 0, 20+32+65*2) 218 validateSenderMultisig10_3 := make([]byte, 0, 20+32+65*3) 219 validateSenderMultisig10_4 := make([]byte, 0, 20+32+65*4) 220 validateSenderMultisig10_5 := make([]byte, 0, 20+32+65*5) 221 validateSenderMultisig10_6 := make([]byte, 0, 20+32+65*6) 222 validateSenderMultisig10_7 := make([]byte, 0, 20+32+65*7) 223 validateSenderMultisig10_8 := make([]byte, 0, 20+32+65*8) 224 validateSenderMultisig10_9 := make([]byte, 0, 20+32+65*9) 225 validateSenderMultisig10_10 := make([]byte, 0, 20+32+65*10) 226 { 227 hash := crypto.Keccak256Hash(multisig10.Addr.Bytes()) 228 sigs := make([][]byte, 10) 229 for i := 0; i < 10; i++ { 230 s, err := crypto.Sign(hash.Bytes(), multisig10.Keys[i]) 231 require.NoError(t, err) 232 sigs[i] = s 233 } 234 validateSenderMultisig := make([]byte, 0, 20+32) 235 validateSenderMultisig = append(validateSenderMultisig, multisig10.Addr.Bytes()...) 236 validateSenderMultisig = append(validateSenderMultisig, hash.Bytes()...) 237 238 validateSenderMultisig10_2 = append(validateSenderMultisig10_2, validateSenderMultisig...) 239 validateSenderMultisig10_2 = append(validateSenderMultisig10_2, sigs[0]...) 240 validateSenderMultisig10_2 = append(validateSenderMultisig10_2, sigs[1]...) 241 242 validateSenderMultisig10_3 = append(validateSenderMultisig10_3, validateSenderMultisig10_2...) 243 validateSenderMultisig10_3 = append(validateSenderMultisig10_3, sigs[2]...) 244 245 validateSenderMultisig10_4 = append(validateSenderMultisig10_4, validateSenderMultisig10_3...) 246 validateSenderMultisig10_4 = append(validateSenderMultisig10_4, sigs[3]...) 247 248 validateSenderMultisig10_5 = append(validateSenderMultisig10_5, validateSenderMultisig10_4...) 249 validateSenderMultisig10_5 = append(validateSenderMultisig10_5, sigs[4]...) 250 251 validateSenderMultisig10_6 = append(validateSenderMultisig10_6, validateSenderMultisig10_5...) 252 validateSenderMultisig10_6 = append(validateSenderMultisig10_6, sigs[5]...) 253 254 validateSenderMultisig10_7 = append(validateSenderMultisig10_7, validateSenderMultisig10_6...) 255 validateSenderMultisig10_7 = append(validateSenderMultisig10_7, sigs[6]...) 256 257 validateSenderMultisig10_8 = append(validateSenderMultisig10_8, validateSenderMultisig10_7...) 258 validateSenderMultisig10_8 = append(validateSenderMultisig10_8, sigs[7]...) 259 260 validateSenderMultisig10_9 = append(validateSenderMultisig10_9, validateSenderMultisig10_8...) 261 validateSenderMultisig10_9 = append(validateSenderMultisig10_9, sigs[8]...) 262 263 validateSenderMultisig10_10 = append(validateSenderMultisig10_10, validateSenderMultisig10_9...) 264 validateSenderMultisig10_10 = append(validateSenderMultisig10_10, sigs[9]...) 265 } 266 267 loopCnt := big.NewInt(1000000) 268 // loopCnt := big.NewInt(10000) 269 // loopCnt := big.NewInt(1) 270 271 testcases := []struct { 272 testName string 273 funcName string 274 input []interface{} 275 }{ 276 { 277 "Add/low", 278 "Add", 279 []interface{}{ 280 loopCnt, big.NewInt(1), big.NewInt(1), 281 }, 282 }, 283 { 284 "Add/high", 285 "Add", 286 []interface{}{ 287 loopCnt, 288 new(big.Int).SetBytes(common.FromHex("7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe")), 289 new(big.Int).SetBytes(common.FromHex("7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe")), 290 }, 291 }, 292 { 293 "Sub/low", 294 "Sub", 295 []interface{}{ 296 loopCnt, big.NewInt(1), big.NewInt(1), 297 }, 298 }, 299 { 300 "Sub/high", 301 "Sub", 302 []interface{}{ 303 loopCnt, 304 new(big.Int).SetBytes(common.FromHex("7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe")), 305 new(big.Int).SetBytes(common.FromHex("7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe")), 306 }, 307 }, 308 { 309 "Mul/low", 310 "Mul", 311 []interface{}{ 312 loopCnt, big.NewInt(1), big.NewInt(1), 313 }, 314 }, 315 { 316 "Mul/high", 317 "Mul", 318 []interface{}{ 319 loopCnt, 320 new(big.Int).SetBytes(common.FromHex("7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe")), 321 new(big.Int).SetBytes(common.FromHex("7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe")), 322 }, 323 }, 324 { 325 "Div/low", 326 "Div", 327 []interface{}{ 328 loopCnt, big.NewInt(1), big.NewInt(1), 329 }, 330 }, 331 { 332 "Div/high", 333 "Div", 334 []interface{}{ 335 loopCnt, 336 new(big.Int).SetBytes(common.FromHex("7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe")), 337 new(big.Int).SetBytes(common.FromHex("7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe")), 338 }, 339 }, 340 { 341 "Sdiv/low", 342 "Sdiv", 343 []interface{}{ 344 loopCnt, big.NewInt(1), big.NewInt(1), 345 }, 346 }, 347 { 348 "Sdiv/high", 349 "Sdiv", 350 []interface{}{ 351 loopCnt, 352 new(big.Int).SetBytes(common.FromHex("7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe")), 353 new(big.Int).SetBytes(common.FromHex("7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe")), 354 }, 355 }, 356 { 357 "Mod/low", 358 "Mod", 359 []interface{}{ 360 loopCnt, big.NewInt(1), big.NewInt(1), 361 }, 362 }, 363 { 364 "Mod/high", 365 "Mod", 366 []interface{}{ 367 loopCnt, 368 new(big.Int).SetBytes(common.FromHex("7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe")), 369 new(big.Int).SetBytes(common.FromHex("7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe")), 370 }, 371 }, 372 { 373 "Smod/low", 374 "Smod", 375 []interface{}{ 376 loopCnt, big.NewInt(1), big.NewInt(1), 377 }, 378 }, 379 { 380 "Smod/high", 381 "Smod", 382 []interface{}{ 383 loopCnt, 384 new(big.Int).SetBytes(common.FromHex("7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe")), 385 new(big.Int).SetBytes(common.FromHex("7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe")), 386 }, 387 }, 388 { 389 "Exp/low", 390 "Exp", 391 []interface{}{ 392 loopCnt, big.NewInt(10), big.NewInt(10), 393 }, 394 }, 395 { 396 "Exp/high", 397 "Exp", 398 []interface{}{ 399 loopCnt, 400 new(big.Int).SetBytes(common.FromHex("7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe")), 401 new(big.Int).SetBytes(common.FromHex("7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe")), 402 }, 403 }, 404 { 405 "Addmod/low", 406 "Addmod", 407 []interface{}{ 408 loopCnt, big.NewInt(10), big.NewInt(10), big.NewInt(10), 409 }, 410 }, 411 { 412 "Addmod/high", 413 "Addmod", 414 []interface{}{ 415 loopCnt, 416 new(big.Int).SetBytes(common.FromHex("7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe")), 417 new(big.Int).SetBytes(common.FromHex("7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe")), 418 new(big.Int).SetBytes(common.FromHex("7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe")), 419 }, 420 }, 421 { 422 "Mulmod/low", 423 "Mulmod", 424 []interface{}{ 425 loopCnt, big.NewInt(10), big.NewInt(10), big.NewInt(10), 426 }, 427 }, 428 { 429 "Mulmod/high", 430 "Mulmod", 431 []interface{}{ 432 loopCnt, 433 new(big.Int).SetBytes(common.FromHex("7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe")), 434 new(big.Int).SetBytes(common.FromHex("7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe")), 435 new(big.Int).SetBytes(common.FromHex("7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe")), 436 }, 437 }, 438 { 439 "Not", 440 "Not", 441 []interface{}{ 442 loopCnt, 443 }, 444 }, 445 { 446 "Lt", 447 "Lt", 448 []interface{}{ 449 loopCnt, 450 }, 451 }, 452 { 453 "Gt", 454 "Gt", 455 []interface{}{ 456 loopCnt, 457 }, 458 }, 459 { 460 "Slt", 461 "Slt", 462 []interface{}{ 463 loopCnt, 464 }, 465 }, 466 { 467 "Sgt", 468 "Sgt", 469 []interface{}{ 470 loopCnt, 471 }, 472 }, 473 { 474 "Eq", 475 "Eq", 476 []interface{}{ 477 loopCnt, 478 }, 479 }, 480 { 481 "Iszero", 482 "Iszero", 483 []interface{}{ 484 loopCnt, 485 }, 486 }, 487 { 488 "And", 489 "And", 490 []interface{}{ 491 loopCnt, 492 }, 493 }, 494 { 495 "Or", 496 "Or", 497 []interface{}{ 498 loopCnt, 499 }, 500 }, 501 { 502 "Xor", 503 "Xor", 504 []interface{}{ 505 loopCnt, 506 }, 507 }, 508 { 509 "Byte", 510 "Byte", 511 []interface{}{ 512 loopCnt, 513 }, 514 }, 515 { 516 "Shl/low", 517 "Shl", 518 []interface{}{ 519 loopCnt, big.NewInt(1), big.NewInt(1), 520 }, 521 }, 522 { 523 "Shl/high", 524 "Shl", 525 []interface{}{ 526 loopCnt, 527 new(big.Int).SetBytes(common.FromHex("7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe")), 528 new(big.Int).SetBytes(common.FromHex("7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe")), 529 }, 530 }, 531 { 532 "Shr/low", 533 "Shr", 534 []interface{}{ 535 loopCnt, big.NewInt(1), big.NewInt(1), 536 }, 537 }, 538 { 539 "Shr/high", 540 "Shr", 541 []interface{}{ 542 loopCnt, 543 new(big.Int).SetBytes(common.FromHex("7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe")), 544 new(big.Int).SetBytes(common.FromHex("7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe")), 545 }, 546 }, 547 { 548 "Sar/low", 549 "Sar", 550 []interface{}{ 551 loopCnt, big.NewInt(1), big.NewInt(1), 552 }, 553 }, 554 { 555 "Sar/high", 556 "Sar", 557 []interface{}{ 558 loopCnt, 559 new(big.Int).SetBytes(common.FromHex("7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe")), 560 new(big.Int).SetBytes(common.FromHex("7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe")), 561 }, 562 }, 563 { 564 "SignExtend/low", 565 "SignExtend", 566 []interface{}{ 567 loopCnt, big.NewInt(1), big.NewInt(1), 568 }, 569 }, 570 { 571 "SignExtend/high", 572 "SignExtend", 573 []interface{}{ 574 loopCnt, 575 new(big.Int).SetBytes(common.FromHex("32")), 576 new(big.Int).SetBytes(common.FromHex("7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe")), 577 }, 578 }, 579 { 580 "Sha3", 581 "Sha3", 582 []interface{}{ 583 loopCnt, 584 }, 585 }, 586 { 587 "Pc", 588 "Pc", 589 []interface{}{ 590 loopCnt, 591 }, 592 }, 593 { 594 "Dup1", 595 "Dup1", 596 []interface{}{ 597 loopCnt, 598 }, 599 }, 600 { 601 "Dup2", 602 "Dup2", 603 []interface{}{ 604 loopCnt, 605 }, 606 }, 607 { 608 "Dup3", 609 "Dup3", 610 []interface{}{ 611 loopCnt, 612 }, 613 }, 614 { 615 "Dup4", 616 "Dup4", 617 []interface{}{ 618 loopCnt, 619 }, 620 }, 621 { 622 "Dup5", 623 "Dup5", 624 []interface{}{ 625 loopCnt, 626 }, 627 }, 628 { 629 "Dup6", 630 "Dup6", 631 []interface{}{ 632 loopCnt, 633 }, 634 }, 635 { 636 "Dup7", 637 "Dup7", 638 []interface{}{ 639 loopCnt, 640 }, 641 }, 642 { 643 "Dup8", 644 "Dup8", 645 []interface{}{ 646 loopCnt, 647 }, 648 }, 649 { 650 "Dup9", 651 "Dup9", 652 []interface{}{ 653 loopCnt, 654 }, 655 }, 656 { 657 "Dup10", 658 "Dup10", 659 []interface{}{ 660 loopCnt, 661 }, 662 }, 663 { 664 "Dup11", 665 "Dup11", 666 []interface{}{ 667 loopCnt, 668 }, 669 }, 670 { 671 "Dup12", 672 "Dup12", 673 []interface{}{ 674 loopCnt, 675 }, 676 }, 677 { 678 "Dup13", 679 "Dup13", 680 []interface{}{ 681 loopCnt, 682 }, 683 }, 684 { 685 "Dup14", 686 "Dup14", 687 []interface{}{ 688 loopCnt, 689 }, 690 }, 691 { 692 "Dup15", 693 "Dup15", 694 []interface{}{ 695 loopCnt, 696 }, 697 }, 698 { 699 "Dup16", 700 "Dup16", 701 []interface{}{ 702 loopCnt, 703 }, 704 }, 705 { 706 "Swap1", 707 "Swap1", 708 []interface{}{ 709 loopCnt, 710 }, 711 }, 712 { 713 "Swap2", 714 "Swap2", 715 []interface{}{ 716 loopCnt, 717 }, 718 }, 719 { 720 "Swap3", 721 "Swap3", 722 []interface{}{ 723 loopCnt, 724 }, 725 }, 726 { 727 "Swap4", 728 "Swap4", 729 []interface{}{ 730 loopCnt, 731 }, 732 }, 733 { 734 "Swap5", 735 "Swap5", 736 []interface{}{ 737 loopCnt, 738 }, 739 }, 740 { 741 "Swap6", 742 "Swap6", 743 []interface{}{ 744 loopCnt, 745 }, 746 }, 747 { 748 "Swap7", 749 "Swap7", 750 []interface{}{ 751 loopCnt, 752 }, 753 }, 754 { 755 "Swap8", 756 "Swap8", 757 []interface{}{ 758 loopCnt, 759 }, 760 }, 761 { 762 "Swap9", 763 "Swap9", 764 []interface{}{ 765 loopCnt, 766 }, 767 }, 768 { 769 "Swap10", 770 "Swap10", 771 []interface{}{ 772 loopCnt, 773 }, 774 }, 775 { 776 "Swap11", 777 "Swap11", 778 []interface{}{ 779 loopCnt, 780 }, 781 }, 782 { 783 "Swap12", 784 "Swap12", 785 []interface{}{ 786 loopCnt, 787 }, 788 }, 789 { 790 "Swap13", 791 "Swap13", 792 []interface{}{ 793 loopCnt, 794 }, 795 }, 796 { 797 "Swap14", 798 "Swap14", 799 []interface{}{ 800 loopCnt, 801 }, 802 }, 803 { 804 "Swap15", 805 "Swap15", 806 []interface{}{ 807 loopCnt, 808 }, 809 }, 810 { 811 "Swap16", 812 "Swap16", 813 []interface{}{ 814 loopCnt, 815 }, 816 }, 817 { 818 "Call", 819 "Call", 820 []interface{}{ 821 loopCnt, 822 contractAddrs["StopContract"], 823 }, 824 }, 825 { 826 "CallCode", 827 "CallCode", 828 []interface{}{ 829 loopCnt, 830 contractAddrs["StopContract"], 831 }, 832 }, 833 { 834 "StaticCall", 835 "StaticCall", 836 []interface{}{ 837 loopCnt, 838 contractAddrs["StopContract"], StopContractStopInput, 839 }, 840 }, 841 { 842 "DelegateCall", 843 "DelegateCall", 844 []interface{}{ 845 loopCnt, 846 contractAddrs["StopContract"], 847 }, 848 }, 849 { 850 "Create", 851 "Create", 852 []interface{}{ 853 loopCnt, 854 }, 855 }, 856 { 857 "Create2", 858 "Create2", 859 []interface{}{ 860 loopCnt, common.FromHex(contractCode), big.NewInt(1234), 861 }, 862 }, 863 { 864 "Sstore", 865 "Sstore", 866 []interface{}{ 867 loopCnt, 868 big.NewInt(0), 869 }, 870 }, 871 { 872 "Sload", 873 "Sload", 874 []interface{}{ 875 loopCnt, 876 }, 877 }, 878 { 879 "Mstore/10", 880 "Mstore", 881 []interface{}{ 882 loopCnt, big.NewInt(10), 883 }, 884 }, 885 { 886 "Mstore/100", 887 "Mstore", 888 []interface{}{ 889 loopCnt, big.NewInt(100), 890 }, 891 }, 892 { 893 "Mstore/100000", 894 "Mstore", 895 []interface{}{ 896 loopCnt, big.NewInt(100000), 897 }, 898 }, 899 { 900 "Mstore/1000000", 901 "Mstore", 902 []interface{}{ 903 loopCnt, big.NewInt(1000000), 904 }, 905 }, 906 { 907 "Mload/10", 908 "Mload", 909 []interface{}{ 910 loopCnt, big.NewInt(10), 911 }, 912 }, 913 { 914 "Mload/100", 915 "Mload", 916 []interface{}{ 917 loopCnt, big.NewInt(100), 918 }, 919 }, 920 { 921 "Mload/100000", 922 "Mload", 923 []interface{}{ 924 loopCnt, big.NewInt(100000), 925 }, 926 }, 927 { 928 "Mload/1000000", 929 "Mload", 930 []interface{}{ 931 loopCnt, big.NewInt(1000000), 932 }, 933 }, 934 { 935 "Msize", 936 "Msize", 937 []interface{}{ 938 loopCnt, big.NewInt(1000), 939 }, 940 }, 941 { 942 "Gas", 943 "Gas", 944 []interface{}{ 945 loopCnt, 946 }, 947 }, 948 { 949 "Address", 950 "Address", 951 []interface{}{ 952 loopCnt, 953 }, 954 }, 955 { 956 "Balance", 957 "Balance", 958 []interface{}{ 959 loopCnt, reservoir.Addr, 960 }, 961 }, 962 { 963 "Caller", 964 "Caller", 965 []interface{}{ 966 loopCnt, 967 }, 968 }, 969 { 970 "CallValue", 971 "CallValue", 972 []interface{}{ 973 loopCnt, 974 }, 975 }, 976 { 977 "CallDataLoad", 978 "CallDataLoad", 979 []interface{}{ 980 loopCnt, 981 }, 982 }, 983 { 984 "CallDataSize", 985 "CallDataSize", 986 []interface{}{ 987 loopCnt, 988 }, 989 }, 990 { 991 "CallDataCopy/1", 992 "CallDataCopy", 993 []interface{}{ 994 loopCnt, 995 common.FromHex("01"), 996 big.NewInt(1), 997 }, 998 }, 999 { 1000 "CallDataCopy/16", 1001 "CallDataCopy", 1002 []interface{}{ 1003 loopCnt, 1004 common.FromHex("01020304050607080910111213141516"), 1005 big.NewInt(16), 1006 }, 1007 }, 1008 { 1009 "CallDataCopy/32", 1010 "CallDataCopy", 1011 []interface{}{ 1012 loopCnt, 1013 common.FromHex("0102030405060708091011121314151617181920212223242526272829303132"), 1014 big.NewInt(32), 1015 }, 1016 }, 1017 { 1018 "CallDataCopy/64", 1019 "CallDataCopy", 1020 []interface{}{ 1021 loopCnt, 1022 common.FromHex("01020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132"), 1023 big.NewInt(64), 1024 }, 1025 }, 1026 { 1027 "CallDataCopy/128", 1028 "CallDataCopy", 1029 []interface{}{ 1030 loopCnt, 1031 common.FromHex("0102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132"), 1032 big.NewInt(128), 1033 }, 1034 }, 1035 { 1036 "CallDataCopy/256", 1037 "CallDataCopy", 1038 []interface{}{ 1039 loopCnt, 1040 common.FromHex("01020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132"), 1041 big.NewInt(256), 1042 }, 1043 }, 1044 { 1045 "CallDataCopy/512", 1046 "CallDataCopy", 1047 []interface{}{ 1048 loopCnt, 1049 common.FromHex("0102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132"), 1050 big.NewInt(512), 1051 }, 1052 }, 1053 { 1054 "CallDataCopy/1024", 1055 "CallDataCopy", 1056 []interface{}{ 1057 loopCnt, 1058 common.FromHex("01020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132"), 1059 big.NewInt(1024), 1060 }, 1061 }, 1062 { 1063 "CodeSize", 1064 "CodeSize", 1065 []interface{}{ 1066 loopCnt, 1067 }, 1068 }, 1069 { 1070 "CodeCopy/32", 1071 "CodeCopy", 1072 []interface{}{ 1073 loopCnt, big.NewInt(32), 1074 }, 1075 }, 1076 { 1077 "CodeCopy/64", 1078 "CodeCopy", 1079 []interface{}{ 1080 loopCnt, big.NewInt(64), 1081 }, 1082 }, 1083 { 1084 "CodeCopy/128", 1085 "CodeCopy", 1086 []interface{}{ 1087 loopCnt, big.NewInt(128), 1088 }, 1089 }, 1090 { 1091 "CodeCopy/256", 1092 "CodeCopy", 1093 []interface{}{ 1094 loopCnt, big.NewInt(256), 1095 }, 1096 }, 1097 { 1098 "CodeCopy/512", 1099 "CodeCopy", 1100 []interface{}{ 1101 loopCnt, big.NewInt(512), 1102 }, 1103 }, 1104 { 1105 "CodeCopy/1024", 1106 "CodeCopy", 1107 []interface{}{ 1108 loopCnt, big.NewInt(1024), 1109 }, 1110 }, 1111 { 1112 "ExtCodeSize", 1113 "ExtCodeSize", 1114 []interface{}{ 1115 loopCnt, contractAddrs["OpCodeBenchmarkContract"], 1116 }, 1117 }, 1118 { 1119 "ExtCodeCopy/32", 1120 "ExtCodeCopy", 1121 []interface{}{ 1122 loopCnt, contractAddrs["OpCodeBenchmarkContract"], big.NewInt(32), 1123 }, 1124 }, 1125 { 1126 "ExtCodeCopy/64", 1127 "ExtCodeCopy", 1128 []interface{}{ 1129 loopCnt, contractAddrs["OpCodeBenchmarkContract"], big.NewInt(64), 1130 }, 1131 }, 1132 { 1133 "ExtCodeCopy/128", 1134 "ExtCodeCopy", 1135 []interface{}{ 1136 loopCnt, contractAddrs["OpCodeBenchmarkContract"], big.NewInt(128), 1137 }, 1138 }, 1139 { 1140 "ExtCodeCopy/256", 1141 "ExtCodeCopy", 1142 []interface{}{ 1143 loopCnt, contractAddrs["OpCodeBenchmarkContract"], big.NewInt(256), 1144 }, 1145 }, 1146 { 1147 "ExtCodeCopy/512", 1148 "ExtCodeCopy", 1149 []interface{}{ 1150 loopCnt, contractAddrs["OpCodeBenchmarkContract"], big.NewInt(512), 1151 }, 1152 }, 1153 { 1154 "ExtCodeCopy/1024", 1155 "ExtCodeCopy", 1156 []interface{}{ 1157 loopCnt, contractAddrs["OpCodeBenchmarkContract"], big.NewInt(1024), 1158 }, 1159 }, 1160 { 1161 "ReturnDataSize", 1162 "ReturnDataSize", 1163 []interface{}{ 1164 loopCnt, 1165 }, 1166 }, 1167 { 1168 "ReturnDataCopy/1", 1169 "ReturnDataCopy", 1170 []interface{}{ 1171 loopCnt, big.NewInt(1), contractAddrs["StopContract"], 1172 }, 1173 }, 1174 { 1175 "ReturnDataCopy/32", 1176 "ReturnDataCopy", 1177 []interface{}{ 1178 loopCnt, big.NewInt(32), contractAddrs["StopContract"], 1179 }, 1180 }, 1181 { 1182 "ReturnDataCopy/64", 1183 "ReturnDataCopy", 1184 []interface{}{ 1185 loopCnt, big.NewInt(32), contractAddrs["StopContract"], 1186 }, 1187 }, 1188 { 1189 "ReturnDataCopy/128", 1190 "ReturnDataCopy", 1191 []interface{}{ 1192 loopCnt, big.NewInt(128), contractAddrs["StopContract"], 1193 }, 1194 }, 1195 { 1196 "ReturnDataCopy/256", 1197 "ReturnDataCopy", 1198 []interface{}{ 1199 loopCnt, big.NewInt(256), contractAddrs["StopContract"], 1200 }, 1201 }, 1202 { 1203 "ReturnDataCopy/512", 1204 "ReturnDataCopy", 1205 []interface{}{ 1206 loopCnt, big.NewInt(512), contractAddrs["StopContract"], 1207 }, 1208 }, 1209 { 1210 "ReturnDataCopy/1024", 1211 "ReturnDataCopy", 1212 []interface{}{ 1213 loopCnt, big.NewInt(1024), contractAddrs["StopContract"], 1214 }, 1215 }, 1216 // Not supported in solc-0.4.24 1217 //{ 1218 // "ExtCodeHash", 1219 // "ExtCodeHash", 1220 // []interface{}{ 1221 // loopCnt, contractAddrs["OpCodeBenchmarkContract"], 1222 // }, 1223 //}, 1224 1225 { 1226 "Log0/32", 1227 "Log0", 1228 []interface{}{ 1229 loopCnt, 1230 common.FromHex("0102030405060708091011121314151617181920212223242526272829303132"), 1231 }, 1232 }, 1233 { 1234 "Log0/64", 1235 "Log0", 1236 []interface{}{ 1237 loopCnt, 1238 common.FromHex("01020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132"), 1239 }, 1240 }, 1241 { 1242 "Log0/128", 1243 "Log0", 1244 []interface{}{ 1245 loopCnt, 1246 common.FromHex("0102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132"), 1247 }, 1248 }, 1249 { 1250 "Log0/256", 1251 "Log0", 1252 []interface{}{ 1253 loopCnt, 1254 common.FromHex("01020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132"), 1255 }, 1256 }, 1257 { 1258 "Log0/512", 1259 "Log0", 1260 []interface{}{ 1261 loopCnt, 1262 common.FromHex("0102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132"), 1263 }, 1264 }, 1265 { 1266 "Log0/1024", 1267 "Log0", 1268 []interface{}{ 1269 loopCnt, 1270 common.FromHex("01020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132"), 1271 }, 1272 }, 1273 1274 { 1275 "Log1/32", 1276 "Log1", 1277 []interface{}{ 1278 loopCnt, 1279 common.FromHex("0102030405060708091011121314151617181920212223242526272829303132"), 1280 big.NewInt(1), 1281 }, 1282 }, 1283 { 1284 "Log1/64", 1285 "Log1", 1286 []interface{}{ 1287 loopCnt, 1288 common.FromHex("01020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132"), 1289 big.NewInt(1), 1290 }, 1291 }, 1292 { 1293 "Log1/128", 1294 "Log1", 1295 []interface{}{ 1296 loopCnt, 1297 common.FromHex("0102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132"), 1298 big.NewInt(1), 1299 }, 1300 }, 1301 { 1302 "Log1/256", 1303 "Log1", 1304 []interface{}{ 1305 loopCnt, 1306 common.FromHex("01020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132"), 1307 big.NewInt(1), 1308 }, 1309 }, 1310 { 1311 "Log1/512", 1312 "Log1", 1313 []interface{}{ 1314 loopCnt, 1315 common.FromHex("0102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132"), 1316 big.NewInt(1), 1317 }, 1318 }, 1319 { 1320 "Log1/1024", 1321 "Log1", 1322 []interface{}{ 1323 loopCnt, 1324 common.FromHex("01020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132"), 1325 big.NewInt(1), 1326 }, 1327 }, 1328 1329 { 1330 "Log2/32", 1331 "Log2", 1332 []interface{}{ 1333 loopCnt, 1334 common.FromHex("0102030405060708091011121314151617181920212223242526272829303132"), 1335 big.NewInt(1), 1336 big.NewInt(2), 1337 }, 1338 }, 1339 { 1340 "Log2/64", 1341 "Log2", 1342 []interface{}{ 1343 loopCnt, 1344 common.FromHex("01020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132"), 1345 big.NewInt(1), 1346 big.NewInt(2), 1347 }, 1348 }, 1349 { 1350 "Log2/128", 1351 "Log2", 1352 []interface{}{ 1353 loopCnt, 1354 common.FromHex("0102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132"), 1355 big.NewInt(1), 1356 big.NewInt(2), 1357 }, 1358 }, 1359 { 1360 "Log2/256", 1361 "Log2", 1362 []interface{}{ 1363 loopCnt, 1364 common.FromHex("01020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132"), 1365 big.NewInt(1), 1366 big.NewInt(2), 1367 }, 1368 }, 1369 { 1370 "Log2/512", 1371 "Log2", 1372 []interface{}{ 1373 loopCnt, 1374 common.FromHex("0102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132"), 1375 big.NewInt(1), 1376 big.NewInt(2), 1377 }, 1378 }, 1379 { 1380 "Log2/1024", 1381 "Log2", 1382 []interface{}{ 1383 loopCnt, 1384 common.FromHex("01020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132"), 1385 big.NewInt(1), 1386 big.NewInt(2), 1387 }, 1388 }, 1389 1390 { 1391 "Log3/32", 1392 "Log3", 1393 []interface{}{ 1394 loopCnt, 1395 common.FromHex("0102030405060708091011121314151617181920212223242526272829303132"), 1396 big.NewInt(1), 1397 big.NewInt(2), 1398 big.NewInt(3), 1399 }, 1400 }, 1401 { 1402 "Log3/64", 1403 "Log3", 1404 []interface{}{ 1405 loopCnt, 1406 common.FromHex("01020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132"), 1407 big.NewInt(1), 1408 big.NewInt(2), 1409 big.NewInt(3), 1410 }, 1411 }, 1412 { 1413 "Log3/128", 1414 "Log3", 1415 []interface{}{ 1416 loopCnt, 1417 common.FromHex("0102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132"), 1418 big.NewInt(1), 1419 big.NewInt(2), 1420 big.NewInt(3), 1421 }, 1422 }, 1423 { 1424 "Log3/256", 1425 "Log3", 1426 []interface{}{ 1427 loopCnt, 1428 common.FromHex("01020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132"), 1429 big.NewInt(1), 1430 big.NewInt(2), 1431 big.NewInt(3), 1432 }, 1433 }, 1434 { 1435 "Log3/512", 1436 "Log3", 1437 []interface{}{ 1438 loopCnt, 1439 common.FromHex("0102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132"), 1440 big.NewInt(1), 1441 big.NewInt(2), 1442 big.NewInt(3), 1443 }, 1444 }, 1445 { 1446 "Log3/1024", 1447 "Log3", 1448 []interface{}{ 1449 loopCnt, 1450 common.FromHex("01020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132"), 1451 big.NewInt(1), 1452 big.NewInt(2), 1453 big.NewInt(3), 1454 }, 1455 }, 1456 1457 { 1458 "Log4/32", 1459 "Log4", 1460 []interface{}{ 1461 loopCnt, 1462 common.FromHex("0102030405060708091011121314151617181920212223242526272829303132"), 1463 big.NewInt(1), 1464 big.NewInt(2), 1465 big.NewInt(3), 1466 big.NewInt(4), 1467 }, 1468 }, 1469 { 1470 "Log4/64", 1471 "Log4", 1472 []interface{}{ 1473 loopCnt, 1474 common.FromHex("01020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132"), 1475 big.NewInt(1), 1476 big.NewInt(2), 1477 big.NewInt(3), 1478 big.NewInt(4), 1479 }, 1480 }, 1481 { 1482 "Log4/128", 1483 "Log4", 1484 []interface{}{ 1485 loopCnt, 1486 common.FromHex("0102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132"), 1487 big.NewInt(1), 1488 big.NewInt(2), 1489 big.NewInt(3), 1490 big.NewInt(4), 1491 }, 1492 }, 1493 { 1494 "Log4/256", 1495 "Log4", 1496 []interface{}{ 1497 loopCnt, 1498 common.FromHex("01020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132"), 1499 big.NewInt(1), 1500 big.NewInt(2), 1501 big.NewInt(3), 1502 big.NewInt(4), 1503 }, 1504 }, 1505 { 1506 "Log4/512", 1507 "Log4", 1508 []interface{}{ 1509 loopCnt, 1510 common.FromHex("0102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132"), 1511 big.NewInt(1), 1512 big.NewInt(2), 1513 big.NewInt(3), 1514 big.NewInt(4), 1515 }, 1516 }, 1517 { 1518 "Log4/1024", 1519 "Log4", 1520 []interface{}{ 1521 loopCnt, 1522 common.FromHex("01020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132"), 1523 big.NewInt(1), 1524 big.NewInt(2), 1525 big.NewInt(3), 1526 big.NewInt(4), 1527 }, 1528 }, 1529 1530 { 1531 "Origin", 1532 "Origin", 1533 []interface{}{ 1534 loopCnt, 1535 }, 1536 }, 1537 1538 { 1539 "GasPrice", 1540 "GasPrice", 1541 []interface{}{ 1542 loopCnt, 1543 }, 1544 }, 1545 1546 { 1547 "BlockHash", 1548 "BlockHash", 1549 []interface{}{ 1550 loopCnt, 1551 }, 1552 }, 1553 1554 { 1555 "Coinbase", 1556 "Coinbase", 1557 []interface{}{ 1558 loopCnt, 1559 }, 1560 }, 1561 1562 { 1563 "Timestamp", 1564 "Timestamp", 1565 []interface{}{ 1566 loopCnt, 1567 }, 1568 }, 1569 1570 { 1571 "Number", 1572 "Number", 1573 []interface{}{ 1574 loopCnt, 1575 }, 1576 }, 1577 1578 { 1579 "Difficulty", 1580 "Difficulty", 1581 []interface{}{ 1582 loopCnt, 1583 }, 1584 }, 1585 1586 { 1587 "GasLimit", 1588 "GasLimit", 1589 []interface{}{ 1590 loopCnt, 1591 }, 1592 }, 1593 1594 { 1595 "Combination", 1596 "Combination", 1597 []interface{}{ 1598 loopCnt, big.NewInt(100), 1599 }, 1600 }, 1601 1602 { 1603 "ecrecover", 1604 "precompiledContractTest", 1605 []interface{}{ 1606 loopCnt, 1607 common.HexToAddress("0x01"), 1608 common.FromHex("38d18acb67d25c8bb9942764b62f18e17054f66a817bd4295423adf9ed98873e000000000000000000000000000000000000000000000000000000000000001b38d18acb67d25c8bb9942764b62f18e17054f66a817bd4295423adf9ed98873e789d1dd423d25f0772d2748d60f7e4b81bb14d086eba8e8e8efb6dcff8a4ae02"), 1609 }, 1610 }, 1611 1612 { 1613 "sha256/32", 1614 "precompiledContractTest", 1615 []interface{}{ 1616 loopCnt, 1617 common.HexToAddress("0x02"), 1618 common.FromHex("0102030405060708091011121314151617181920212223242526272829303132"), 1619 }, 1620 }, 1621 { 1622 "sha256/64", 1623 "precompiledContractTest", 1624 []interface{}{ 1625 loopCnt, 1626 common.HexToAddress("0x02"), 1627 common.FromHex("01020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132"), 1628 }, 1629 }, 1630 { 1631 "sha256/128", 1632 "precompiledContractTest", 1633 []interface{}{ 1634 loopCnt, 1635 common.HexToAddress("0x02"), 1636 common.FromHex("0102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132"), 1637 }, 1638 }, 1639 { 1640 "sha256/256", 1641 "precompiledContractTest", 1642 []interface{}{ 1643 loopCnt, 1644 common.HexToAddress("0x02"), 1645 common.FromHex("01020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132"), 1646 }, 1647 }, 1648 1649 // ripemd160hash 1650 { 1651 "ripemd160/32", 1652 "precompiledContractTest", 1653 []interface{}{ 1654 loopCnt, 1655 common.HexToAddress("0x03"), 1656 common.FromHex("0102030405060708091011121314151617181920212223242526272829303132"), 1657 }, 1658 }, 1659 { 1660 "ripemd160/64", 1661 "precompiledContractTest", 1662 []interface{}{ 1663 loopCnt, 1664 common.HexToAddress("0x03"), 1665 common.FromHex("01020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132"), 1666 }, 1667 }, 1668 { 1669 "ripemd160/128", 1670 "precompiledContractTest", 1671 []interface{}{ 1672 loopCnt, 1673 common.HexToAddress("0x03"), 1674 common.FromHex("0102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132"), 1675 }, 1676 }, 1677 { 1678 "ripemd160/256", 1679 "precompiledContractTest", 1680 []interface{}{ 1681 loopCnt, 1682 common.HexToAddress("0x03"), 1683 common.FromHex("01020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132"), 1684 }, 1685 }, 1686 1687 // datacopy 1688 { 1689 "dataCopy/32", 1690 "precompiledContractTest", 1691 []interface{}{ 1692 loopCnt, 1693 common.HexToAddress("0x04"), 1694 common.FromHex("0102030405060708091011121314151617181920212223242526272829303132"), 1695 }, 1696 }, 1697 { 1698 "dataCopy/64", 1699 "precompiledContractTest", 1700 []interface{}{ 1701 loopCnt, 1702 common.HexToAddress("0x04"), 1703 common.FromHex("01020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132"), 1704 }, 1705 }, 1706 { 1707 "dataCopy/128", 1708 "precompiledContractTest", 1709 []interface{}{ 1710 loopCnt, 1711 common.HexToAddress("0x04"), 1712 common.FromHex("0102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132"), 1713 }, 1714 }, 1715 { 1716 "dataCopy/256", 1717 "precompiledContractTest", 1718 []interface{}{ 1719 loopCnt, 1720 common.HexToAddress("0x04"), 1721 common.FromHex("01020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132"), 1722 }, 1723 }, 1724 1725 // bigExpMod 1726 { 1727 "bigExpMod/eip_example1", 1728 "precompiledContractTest", 1729 []interface{}{ 1730 loopCnt, 1731 common.HexToAddress("0x05"), 1732 common.FromHex("0000000000000000000000000000000000000000000000000000000000000001" + 1733 "0000000000000000000000000000000000000000000000000000000000000020" + 1734 "0000000000000000000000000000000000000000000000000000000000000020" + 1735 "03" + 1736 "fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2e" + 1737 "fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"), 1738 }, 1739 }, 1740 { 1741 "bigExpMod/eip_example2", 1742 "precompiledContractTest", 1743 []interface{}{ 1744 loopCnt, 1745 common.HexToAddress("0x05"), 1746 common.FromHex("0000000000000000000000000000000000000000000000000000000000000000" + 1747 "0000000000000000000000000000000000000000000000000000000000000020" + 1748 "0000000000000000000000000000000000000000000000000000000000000020" + 1749 "fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2e" + 1750 "fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"), 1751 }, 1752 }, 1753 { 1754 "bigExpMod/eip_example2/mod", 1755 "precompiledContractTest", 1756 []interface{}{ 1757 loopCnt, 1758 common.HexToAddress("0x05"), 1759 common.FromHex("0000000000000000000000000000000000000000000000000000000000000001" + 1760 "0000000000000000000000000000000000000000000000000000000000000020" + 1761 "0000000000000000000000000000000000000000000000000000000000000020" + 1762 "fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2e" + 1763 "fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"), 1764 }, 1765 }, 1766 { 1767 "bigExpMod/modexp_modsize0_returndatasize.json/Byzantium/4", 1768 "precompiledContractTest", 1769 []interface{}{ 1770 loopCnt, 1771 common.HexToAddress("0x05"), 1772 common.FromHex("0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000f3f14010101"), 1773 }, 1774 }, 1775 { 1776 "bigExpMod/nagydani-1-square", 1777 "precompiledContractTest", 1778 []interface{}{ 1779 loopCnt, 1780 common.HexToAddress("0x05"), 1781 common.FromHex("000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040e09ad9675465c53a109fac66a445c91b292d2bb2c5268addb30cd82f80fcb0033ff97c80a5fc6f39193ae969c6ede6710a6b7ac27078a06d90ef1c72e5c85fb502fc9e1f6beb81516545975218075ec2af118cd8798df6e08a147c60fd6095ac2bb02c2908cf4dd7c81f11c289e4bce98f3553768f392a80ce22bf5c4f4a248c6b"), 1782 }, 1783 }, 1784 { 1785 "bigExpMod/nagydani-1-qube", 1786 "precompiledContractTest", 1787 []interface{}{ 1788 loopCnt, 1789 common.HexToAddress("0x05"), 1790 common.FromHex("000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040e09ad9675465c53a109fac66a445c91b292d2bb2c5268addb30cd82f80fcb0033ff97c80a5fc6f39193ae969c6ede6710a6b7ac27078a06d90ef1c72e5c85fb503fc9e1f6beb81516545975218075ec2af118cd8798df6e08a147c60fd6095ac2bb02c2908cf4dd7c81f11c289e4bce98f3553768f392a80ce22bf5c4f4a248c6b"), 1791 }, 1792 }, 1793 { 1794 "bigExpMod/nagydani-1-pow0x10001", 1795 "precompiledContractTest", 1796 []interface{}{ 1797 loopCnt, 1798 common.HexToAddress("0x05"), 1799 common.FromHex("000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000040e09ad9675465c53a109fac66a445c91b292d2bb2c5268addb30cd82f80fcb0033ff97c80a5fc6f39193ae969c6ede6710a6b7ac27078a06d90ef1c72e5c85fb5010001fc9e1f6beb81516545975218075ec2af118cd8798df6e08a147c60fd6095ac2bb02c2908cf4dd7c81f11c289e4bce98f3553768f392a80ce22bf5c4f4a248c6b"), 1800 }, 1801 }, 1802 { 1803 "bigExpMod/nagydani-2-square", 1804 "precompiledContractTest", 1805 []interface{}{ 1806 loopCnt, 1807 common.HexToAddress("0x05"), 1808 common.FromHex("000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000080cad7d991a00047dd54d3399b6b0b937c718abddef7917c75b6681f40cc15e2be0003657d8d4c34167b2f0bbbca0ccaa407c2a6a07d50f1517a8f22979ce12a81dcaf707cc0cebfc0ce2ee84ee7f77c38b9281b9822a8d3de62784c089c9b18dcb9a2a5eecbede90ea788a862a9ddd9d609c2c52972d63e289e28f6a590ffbf5102e6d893b80aeed5e6e9ce9afa8a5d5675c93a32ac05554cb20e9951b2c140e3ef4e433068cf0fb73bc9f33af1853f64aa27a0028cbf570d7ac9048eae5dc7b28c87c31e5810f1e7fa2cda6adf9f1076dbc1ec1238560071e7efc4e9565c49be9e7656951985860a558a754594115830bcdb421f741408346dd5997bb01c287087"), 1809 }, 1810 }, 1811 { 1812 "bigExpMod/nagydani-2-qube", 1813 "precompiledContractTest", 1814 []interface{}{ 1815 loopCnt, 1816 common.HexToAddress("0x05"), 1817 common.FromHex("000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000080cad7d991a00047dd54d3399b6b0b937c718abddef7917c75b6681f40cc15e2be0003657d8d4c34167b2f0bbbca0ccaa407c2a6a07d50f1517a8f22979ce12a81dcaf707cc0cebfc0ce2ee84ee7f77c38b9281b9822a8d3de62784c089c9b18dcb9a2a5eecbede90ea788a862a9ddd9d609c2c52972d63e289e28f6a590ffbf5103e6d893b80aeed5e6e9ce9afa8a5d5675c93a32ac05554cb20e9951b2c140e3ef4e433068cf0fb73bc9f33af1853f64aa27a0028cbf570d7ac9048eae5dc7b28c87c31e5810f1e7fa2cda6adf9f1076dbc1ec1238560071e7efc4e9565c49be9e7656951985860a558a754594115830bcdb421f741408346dd5997bb01c287087"), 1818 }, 1819 }, 1820 { 1821 "bigExpMod/nagydani-2-pow0x10001", 1822 "precompiledContractTest", 1823 []interface{}{ 1824 loopCnt, 1825 common.HexToAddress("0x05"), 1826 common.FromHex("000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000080cad7d991a00047dd54d3399b6b0b937c718abddef7917c75b6681f40cc15e2be0003657d8d4c34167b2f0bbbca0ccaa407c2a6a07d50f1517a8f22979ce12a81dcaf707cc0cebfc0ce2ee84ee7f77c38b9281b9822a8d3de62784c089c9b18dcb9a2a5eecbede90ea788a862a9ddd9d609c2c52972d63e289e28f6a590ffbf51010001e6d893b80aeed5e6e9ce9afa8a5d5675c93a32ac05554cb20e9951b2c140e3ef4e433068cf0fb73bc9f33af1853f64aa27a0028cbf570d7ac9048eae5dc7b28c87c31e5810f1e7fa2cda6adf9f1076dbc1ec1238560071e7efc4e9565c49be9e7656951985860a558a754594115830bcdb421f741408346dd5997bb01c287087"), 1827 }, 1828 }, 1829 { 1830 "bigExpMod/nagydani-3-square", 1831 "precompiledContractTest", 1832 []interface{}{ 1833 loopCnt, 1834 common.HexToAddress("0x05"), 1835 common.FromHex("000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000100c9130579f243e12451760976261416413742bd7c91d39ae087f46794062b8c239f2a74abf3918605a0e046a7890e049475ba7fbb78f5de6490bd22a710cc04d30088179a919d86c2da62cf37f59d8f258d2310d94c24891be2d7eeafaa32a8cb4b0cfe5f475ed778f45907dc8916a73f03635f233f7a77a00a3ec9ca6761a5bbd558a2318ecd0caa1c5016691523e7e1fa267dd35e70c66e84380bdcf7c0582f540174e572c41f81e93da0b757dff0b0fe23eb03aa19af0bdec3afb474216febaacb8d0381e631802683182b0fe72c28392539850650b70509f54980241dc175191a35d967288b532a7a8223ce2440d010615f70df269501944d4ec16fe4a3cb02d7a85909174757835187cb52e71934e6c07ef43b4c46fc30bbcd0bc72913068267c54a4aabebb493922492820babdeb7dc9b1558fcf7bd82c37c82d3147e455b623ab0efa752fe0b3a67ca6e4d126639e645a0bf417568adbb2a6a4eef62fa1fa29b2a5a43bebea1f82193a7dd98eb483d09bb595af1fa9c97c7f41f5649d976aee3e5e59e2329b43b13bea228d4a93f16ba139ccb511de521ffe747aa2eca664f7c9e33da59075cc335afcd2bf3ae09765f01ab5a7c3e3938ec168b74724b5074247d200d9970382f683d6059b94dbc336603d1dfee714e4b447ac2fa1d99ecb4961da2854e03795ed758220312d101e1e3d87d5313a6d052aebde75110363d"), 1836 }, 1837 }, 1838 { 1839 "bigExpMod/nagydani-3-qube", 1840 "precompiledContractTest", 1841 []interface{}{ 1842 loopCnt, 1843 common.HexToAddress("0x05"), 1844 common.FromHex("000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000100c9130579f243e12451760976261416413742bd7c91d39ae087f46794062b8c239f2a74abf3918605a0e046a7890e049475ba7fbb78f5de6490bd22a710cc04d30088179a919d86c2da62cf37f59d8f258d2310d94c24891be2d7eeafaa32a8cb4b0cfe5f475ed778f45907dc8916a73f03635f233f7a77a00a3ec9ca6761a5bbd558a2318ecd0caa1c5016691523e7e1fa267dd35e70c66e84380bdcf7c0582f540174e572c41f81e93da0b757dff0b0fe23eb03aa19af0bdec3afb474216febaacb8d0381e631802683182b0fe72c28392539850650b70509f54980241dc175191a35d967288b532a7a8223ce2440d010615f70df269501944d4ec16fe4a3cb03d7a85909174757835187cb52e71934e6c07ef43b4c46fc30bbcd0bc72913068267c54a4aabebb493922492820babdeb7dc9b1558fcf7bd82c37c82d3147e455b623ab0efa752fe0b3a67ca6e4d126639e645a0bf417568adbb2a6a4eef62fa1fa29b2a5a43bebea1f82193a7dd98eb483d09bb595af1fa9c97c7f41f5649d976aee3e5e59e2329b43b13bea228d4a93f16ba139ccb511de521ffe747aa2eca664f7c9e33da59075cc335afcd2bf3ae09765f01ab5a7c3e3938ec168b74724b5074247d200d9970382f683d6059b94dbc336603d1dfee714e4b447ac2fa1d99ecb4961da2854e03795ed758220312d101e1e3d87d5313a6d052aebde75110363d"), 1845 }, 1846 }, 1847 { 1848 "bigExpMod/nagydani-3-pow0x10001", 1849 "precompiledContractTest", 1850 []interface{}{ 1851 loopCnt, 1852 common.HexToAddress("0x05"), 1853 common.FromHex("000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000100c9130579f243e12451760976261416413742bd7c91d39ae087f46794062b8c239f2a74abf3918605a0e046a7890e049475ba7fbb78f5de6490bd22a710cc04d30088179a919d86c2da62cf37f59d8f258d2310d94c24891be2d7eeafaa32a8cb4b0cfe5f475ed778f45907dc8916a73f03635f233f7a77a00a3ec9ca6761a5bbd558a2318ecd0caa1c5016691523e7e1fa267dd35e70c66e84380bdcf7c0582f540174e572c41f81e93da0b757dff0b0fe23eb03aa19af0bdec3afb474216febaacb8d0381e631802683182b0fe72c28392539850650b70509f54980241dc175191a35d967288b532a7a8223ce2440d010615f70df269501944d4ec16fe4a3cb010001d7a85909174757835187cb52e71934e6c07ef43b4c46fc30bbcd0bc72913068267c54a4aabebb493922492820babdeb7dc9b1558fcf7bd82c37c82d3147e455b623ab0efa752fe0b3a67ca6e4d126639e645a0bf417568adbb2a6a4eef62fa1fa29b2a5a43bebea1f82193a7dd98eb483d09bb595af1fa9c97c7f41f5649d976aee3e5e59e2329b43b13bea228d4a93f16ba139ccb511de521ffe747aa2eca664f7c9e33da59075cc335afcd2bf3ae09765f01ab5a7c3e3938ec168b74724b5074247d200d9970382f683d6059b94dbc336603d1dfee714e4b447ac2fa1d99ecb4961da2854e03795ed758220312d101e1e3d87d5313a6d052aebde75110363d"), 1854 }, 1855 }, 1856 { 1857 "bigExpMod/nagydani-4-square", 1858 "precompiledContractTest", 1859 []interface{}{ 1860 loopCnt, 1861 common.HexToAddress("0x05"), 1862 common.FromHex("000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000200db34d0e438249c0ed685c949cc28776a05094e1c48691dc3f2dca5fc3356d2a0663bd376e4712839917eb9a19c670407e2c377a2de385a3ff3b52104f7f1f4e0c7bf7717fb913896693dc5edbb65b760ef1b00e42e9d8f9af17352385e1cd742c9b006c0f669995cb0bb21d28c0aced2892267637b6470d8cee0ab27fc5d42658f6e88240c31d6774aa60a7ebd25cd48b56d0da11209f1928e61005c6eb709f3e8e0aaf8d9b10f7d7e296d772264dc76897ccdddadc91efa91c1903b7232a9e4c3b941917b99a3bc0c26497dedc897c25750af60237aa67934a26a2bc491db3dcc677491944bc1f51d3e5d76b8d846a62db03dedd61ff508f91a56d71028125035c3a44cbb041497c83bf3e4ae2a9613a401cc721c547a2afa3b16a2969933d3626ed6d8a7428648f74122fd3f2a02a20758f7f693892c8fd798b39abac01d18506c45e71432639e9f9505719ee822f62ccbf47f6850f096ff77b5afaf4be7d772025791717dbe5abf9b3f40cff7d7aab6f67e38f62faf510747276e20a42127e7500c444f9ed92baf65ade9e836845e39c4316d9dce5f8e2c8083e2c0acbb95296e05e51aab13b6b8f53f06c9c4276e12b0671133218cc3ea907da3bd9a367096d9202128d14846cc2e20d56fc8473ecb07cecbfb8086919f3971926e7045b853d85a69d026195c70f9f7a823536e2a8f4b3e12e94d9b53a934353451094b8102df3143a0057457d75e8c708b6337a6f5a4fd1a06727acf9fb93e2993c62f3378b37d56c85e7b1e00f0145ebf8e4095bd723166293c60b6ac1252291ef65823c9e040ddad14969b3b340a4ef714db093a587c37766d68b8d6b5016e741587e7e6bf7e763b44f0247e64bae30f994d248bfd20541a333e5b225ef6a61199e301738b1e688f70ec1d7fb892c183c95dc543c3e12adf8a5e8b9ca9d04f9445cced3ab256f29e998e69efaa633a7b60e1db5a867924ccab0a171d9d6e1098dfa15acde9553de599eaa56490c8f411e4985111f3d40bddfc5e301edb01547b01a886550a61158f7e2033c59707789bf7c854181d0c2e2a42a93cf09209747d7082e147eb8544de25c3eb14f2e35559ea0c0f5877f2f3fc92132c0ae9da4e45b2f6c866a224ea6d1f28c05320e287750fbc647368d41116e528014cc1852e5531d53e4af938374daba6cee4baa821ed07117253bb3601ddd00d59a3d7fb2ef1f5a2fbba7c429f0cf9a5b3462410fd833a69118f8be9c559b1000cc608fd877fb43f8e65c2d1302622b944462579056874b387208d90623fcdaf93920ca7a9e4ba64ea208758222ad868501cc2c345e2d3a5ea2a17e5069248138c8a79c0251185d29ee73e5afab5354769142d2bf0cb6712727aa6bf84a6245fcdae66e4938d84d1b9dd09a884818622080ff5f98942fb20acd7e0c916c2d5ea7ce6f7e173315384518f"), 1863 }, 1864 }, 1865 { 1866 "bigExpMod/nagydani-4-qube", 1867 "precompiledContractTest", 1868 []interface{}{ 1869 loopCnt, 1870 common.HexToAddress("0x05"), 1871 common.FromHex("000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000200db34d0e438249c0ed685c949cc28776a05094e1c48691dc3f2dca5fc3356d2a0663bd376e4712839917eb9a19c670407e2c377a2de385a3ff3b52104f7f1f4e0c7bf7717fb913896693dc5edbb65b760ef1b00e42e9d8f9af17352385e1cd742c9b006c0f669995cb0bb21d28c0aced2892267637b6470d8cee0ab27fc5d42658f6e88240c31d6774aa60a7ebd25cd48b56d0da11209f1928e61005c6eb709f3e8e0aaf8d9b10f7d7e296d772264dc76897ccdddadc91efa91c1903b7232a9e4c3b941917b99a3bc0c26497dedc897c25750af60237aa67934a26a2bc491db3dcc677491944bc1f51d3e5d76b8d846a62db03dedd61ff508f91a56d71028125035c3a44cbb041497c83bf3e4ae2a9613a401cc721c547a2afa3b16a2969933d3626ed6d8a7428648f74122fd3f2a02a20758f7f693892c8fd798b39abac01d18506c45e71432639e9f9505719ee822f62ccbf47f6850f096ff77b5afaf4be7d772025791717dbe5abf9b3f40cff7d7aab6f67e38f62faf510747276e20a42127e7500c444f9ed92baf65ade9e836845e39c4316d9dce5f8e2c8083e2c0acbb95296e05e51aab13b6b8f53f06c9c4276e12b0671133218cc3ea907da3bd9a367096d9202128d14846cc2e20d56fc8473ecb07cecbfb8086919f3971926e7045b853d85a69d026195c70f9f7a823536e2a8f4b3e12e94d9b53a934353451094b8103df3143a0057457d75e8c708b6337a6f5a4fd1a06727acf9fb93e2993c62f3378b37d56c85e7b1e00f0145ebf8e4095bd723166293c60b6ac1252291ef65823c9e040ddad14969b3b340a4ef714db093a587c37766d68b8d6b5016e741587e7e6bf7e763b44f0247e64bae30f994d248bfd20541a333e5b225ef6a61199e301738b1e688f70ec1d7fb892c183c95dc543c3e12adf8a5e8b9ca9d04f9445cced3ab256f29e998e69efaa633a7b60e1db5a867924ccab0a171d9d6e1098dfa15acde9553de599eaa56490c8f411e4985111f3d40bddfc5e301edb01547b01a886550a61158f7e2033c59707789bf7c854181d0c2e2a42a93cf09209747d7082e147eb8544de25c3eb14f2e35559ea0c0f5877f2f3fc92132c0ae9da4e45b2f6c866a224ea6d1f28c05320e287750fbc647368d41116e528014cc1852e5531d53e4af938374daba6cee4baa821ed07117253bb3601ddd00d59a3d7fb2ef1f5a2fbba7c429f0cf9a5b3462410fd833a69118f8be9c559b1000cc608fd877fb43f8e65c2d1302622b944462579056874b387208d90623fcdaf93920ca7a9e4ba64ea208758222ad868501cc2c345e2d3a5ea2a17e5069248138c8a79c0251185d29ee73e5afab5354769142d2bf0cb6712727aa6bf84a6245fcdae66e4938d84d1b9dd09a884818622080ff5f98942fb20acd7e0c916c2d5ea7ce6f7e173315384518f"), 1872 }, 1873 }, 1874 { 1875 "bigExpMod/nagydani-4-pow0x10001", 1876 "precompiledContractTest", 1877 []interface{}{ 1878 loopCnt, 1879 common.HexToAddress("0x05"), 1880 common.FromHex("000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000200db34d0e438249c0ed685c949cc28776a05094e1c48691dc3f2dca5fc3356d2a0663bd376e4712839917eb9a19c670407e2c377a2de385a3ff3b52104f7f1f4e0c7bf7717fb913896693dc5edbb65b760ef1b00e42e9d8f9af17352385e1cd742c9b006c0f669995cb0bb21d28c0aced2892267637b6470d8cee0ab27fc5d42658f6e88240c31d6774aa60a7ebd25cd48b56d0da11209f1928e61005c6eb709f3e8e0aaf8d9b10f7d7e296d772264dc76897ccdddadc91efa91c1903b7232a9e4c3b941917b99a3bc0c26497dedc897c25750af60237aa67934a26a2bc491db3dcc677491944bc1f51d3e5d76b8d846a62db03dedd61ff508f91a56d71028125035c3a44cbb041497c83bf3e4ae2a9613a401cc721c547a2afa3b16a2969933d3626ed6d8a7428648f74122fd3f2a02a20758f7f693892c8fd798b39abac01d18506c45e71432639e9f9505719ee822f62ccbf47f6850f096ff77b5afaf4be7d772025791717dbe5abf9b3f40cff7d7aab6f67e38f62faf510747276e20a42127e7500c444f9ed92baf65ade9e836845e39c4316d9dce5f8e2c8083e2c0acbb95296e05e51aab13b6b8f53f06c9c4276e12b0671133218cc3ea907da3bd9a367096d9202128d14846cc2e20d56fc8473ecb07cecbfb8086919f3971926e7045b853d85a69d026195c70f9f7a823536e2a8f4b3e12e94d9b53a934353451094b81010001df3143a0057457d75e8c708b6337a6f5a4fd1a06727acf9fb93e2993c62f3378b37d56c85e7b1e00f0145ebf8e4095bd723166293c60b6ac1252291ef65823c9e040ddad14969b3b340a4ef714db093a587c37766d68b8d6b5016e741587e7e6bf7e763b44f0247e64bae30f994d248bfd20541a333e5b225ef6a61199e301738b1e688f70ec1d7fb892c183c95dc543c3e12adf8a5e8b9ca9d04f9445cced3ab256f29e998e69efaa633a7b60e1db5a867924ccab0a171d9d6e1098dfa15acde9553de599eaa56490c8f411e4985111f3d40bddfc5e301edb01547b01a886550a61158f7e2033c59707789bf7c854181d0c2e2a42a93cf09209747d7082e147eb8544de25c3eb14f2e35559ea0c0f5877f2f3fc92132c0ae9da4e45b2f6c866a224ea6d1f28c05320e287750fbc647368d41116e528014cc1852e5531d53e4af938374daba6cee4baa821ed07117253bb3601ddd00d59a3d7fb2ef1f5a2fbba7c429f0cf9a5b3462410fd833a69118f8be9c559b1000cc608fd877fb43f8e65c2d1302622b944462579056874b387208d90623fcdaf93920ca7a9e4ba64ea208758222ad868501cc2c345e2d3a5ea2a17e5069248138c8a79c0251185d29ee73e5afab5354769142d2bf0cb6712727aa6bf84a6245fcdae66e4938d84d1b9dd09a884818622080ff5f98942fb20acd7e0c916c2d5ea7ce6f7e173315384518f"), 1881 }, 1882 }, 1883 { 1884 "bigExpMod/nagydani-5-square", 1885 "precompiledContractTest", 1886 []interface{}{ 1887 loopCnt, 1888 common.HexToAddress("0x05"), 1889 common.FromHex("000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000400c5a1611f8be90071a43db23cc2fe01871cc4c0e8ab5743f6378e4fef77f7f6db0095c0727e20225beb665645403453e325ad5f9aeb9ba99bf3c148f63f9c07cf4fe8847ad5242d6b7d4499f93bd47056ddab8f7dee878fc2314f344dbee2a7c41a5d3db91eff372c730c2fdd3a141a4b61999e36d549b9870cf2f4e632c4d5df5f024f81c028000073a0ed8847cfb0593d36a47142f578f05ccbe28c0c06aeb1b1da027794c48db880278f79ba78ae64eedfea3c07d10e0562668d839749dc95f40467d15cf65b9cfc52c7c4bcef1cda3596dd52631aac942f146c7cebd46065131699ce8385b0db1874336747ee020a5698a3d1a1082665721e769567f579830f9d259cec1a836845109c21cf6b25da572512bf3c42fd4b96e43895589042ab60dd41f497db96aec102087fe784165bb45f942859268fd2ff6c012d9d00c02ba83eace047cc5f7b2c392c2955c58a49f0338d6fc58749c9db2155522ac17914ec216ad87f12e0ee95574613942fa615898c4d9e8a3be68cd6afa4e7a003dedbdf8edfee31162b174f965b20ae752ad89c967b3068b6f722c16b354456ba8e280f987c08e0a52d40a2e8f3a59b94d590aeef01879eb7a90b3ee7d772c839c85519cbeaddc0c193ec4874a463b53fcaea3271d80ebfb39b33489365fc039ae549a17a9ff898eea2f4cb27b8dbee4c17b998438575b2b8d107e4a0d66ba7fca85b41a58a8d51f191a35c856dfbe8aef2b00048a694bbccff832d23c8ca7a7ff0b6c0b3011d00b97c86c0628444d267c951d9e4fb8f83e154b8f74fb51aa16535e498235c5597dac9606ed0be3173a3836baa4e7d756ffe1e2879b415d3846bccd538c05b847785699aefde3e305decb600cd8fb0e7d8de5efc26971a6ad4e6d7a2d91474f1023a0ac4b78dc937da0ce607a45974d2cac1c33a2631ff7fe6144a3b2e5cf98b531a9627dea92c1dc82204d09db0439b6a11dd64b484e1263aa45fd9539b6020b55e3baece3986a8bffc1003406348f5c61265099ed43a766ee4f93f5f9c5abbc32a0fd3ac2b35b87f9ec26037d88275bd7dd0a54474995ee34ed3727f3f97c48db544b1980193a4b76a8a3ddab3591ce527f16d91882e67f0103b5cda53f7da54d489fc4ac08b6ab358a5a04aa9daa16219d50bd672a7cb804ed769d218807544e5993f1c27427104b349906a0b654df0bf69328afd3013fbe430155339c39f236df5557bf92f1ded7ff609a8502f49064ec3d1dbfb6c15d3a4c11a4f8acd12278cbf68acd5709463d12e3338a6eddb8c112f199645e23154a8e60879d2a654e3ed9296aa28f134168619691cd2c6b9e2eba4438381676173fc63c2588a3c5910dc149cf3760f0aa9fa9c3f5faa9162b0bf1aac9dd32b706a60ef53cbdb394b6b40222b5bc80eea82ba8958386672564cae3794f977871ab62337cf02e30049201ec12937e7ce79d0f55d9c810e20acf52212aca1d3888949e0e4830aad88d804161230eb89d4d329cc83570fe257217d2119134048dd2ed167646975fc7d77136919a049ea74cf08ddd2b896890bb24a0ba18094a22baa351bf29ad96c66bbb1a598f2ca391749620e62d61c3561a7d3653ccc8892c7b99baaf76bf836e2991cb06d6bc0514568ff0d1ec8bb4b3d6984f5eaefb17d3ea2893722375d3ddb8e389a8eef7d7d198f8e687d6a513983df906099f9a2d23f4f9dec6f8ef2f11fc0a21fac45353b94e00486f5e17d386af42502d09db33cf0cf28310e049c07e88682aeeb00cb833c5174266e62407a57583f1f88b304b7c6e0c84bbe1c0fd423072d37a5bd0aacf764229e5c7cd02473460ba3645cd8e8ae144065bf02d0dd238593d8e230354f67e0b2f23012c23274f80e3ee31e35e2606a4a3f31d94ab755e6d163cff52cbb36b6d0cc67ffc512aeed1dce4d7a0d70ce82f2baba12e8d514dc92a056f994adfb17b5b9712bd5186f27a2fda1f7039c5df2c8587fdc62f5627580c13234b55be4df3056050e2d1ef3218f0dd66cb05265fe1acfb0989d8213f2c19d1735a7cf3fa65d88dad5af52dc2bba22b7abf46c3bc77b5091baab9e8f0ddc4d5e581037de91a9f8dcbc69309be29cc815cf19a20a7585b8b3073edf51fc9baeb3e509b97fa4ecfd621e0fd57bd61cac1b895c03248ff12bdbc57509250df3517e8a3fe1d776836b34ab352b973d932ef708b14f7418f9eceb1d87667e61e3e758649cb083f01b133d37ab2f5afa96d6c84bcacf4efc3851ad308c1e7d9113624fce29fab460ab9d2a48d92cdb281103a5250ad44cb2ff6e67ac670c02fdafb3e0f1353953d6d7d5646ca1568dea55275a050ec501b7c6250444f7219f1ba7521ba3b93d089727ca5f3bbe0d6c1300b423377004954c5628fdb65770b18ced5c9b23a4a5a6d6ef25fe01b4ce278de0bcc4ed86e28a0a68818ffa40970128cf2c38740e80037984428c1bd5113f40ff47512ee6f4e4d8f9b8e8e1b3040d2928d003bd1c1329dc885302fbce9fa81c23b4dc49c7c82d29b52957847898676c89aa5d32b5b0e1c0d5a2b79a19d67562f407f19425687971a957375879d90c5f57c857136c17106c9ab1b99d80e69c8c954ed386493368884b55c939b8d64d26f643e800c56f90c01079d7c534e3b2b7ae352cefd3016da55f6a85eb803b85e2304915fd2001f77c74e28746293c46e4f5f0fd49cf988aafd0026b8e7a3bab2da5cdce1ea26c2e29ec03f4807fac432662b2d6c060be1c7be0e5489de69d0a6e03a4b9117f9244b34a0f1ecba89884f781c6320412413a00c4980287409a2a78c2cd7e65cecebbe4ec1c28cac4dd95f6998e78fc6f1392384331c9436aa10e10e2bf8ad2c4eafbcf276aa7bae64b74428911b3269c749338b0fc5075ad"), 1890 }, 1891 }, 1892 { 1893 "bigExpMod/nagydani-5-pow0x10001", 1894 "precompiledContractTest", 1895 []interface{}{ 1896 loopCnt, 1897 common.HexToAddress("0x05"), 1898 common.FromHex("000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000400c5a1611f8be90071a43db23cc2fe01871cc4c0e8ab5743f6378e4fef77f7f6db0095c0727e20225beb665645403453e325ad5f9aeb9ba99bf3c148f63f9c07cf4fe8847ad5242d6b7d4499f93bd47056ddab8f7dee878fc2314f344dbee2a7c41a5d3db91eff372c730c2fdd3a141a4b61999e36d549b9870cf2f4e632c4d5df5f024f81c028000073a0ed8847cfb0593d36a47142f578f05ccbe28c0c06aeb1b1da027794c48db880278f79ba78ae64eedfea3c07d10e0562668d839749dc95f40467d15cf65b9cfc52c7c4bcef1cda3596dd52631aac942f146c7cebd46065131699ce8385b0db1874336747ee020a5698a3d1a1082665721e769567f579830f9d259cec1a836845109c21cf6b25da572512bf3c42fd4b96e43895589042ab60dd41f497db96aec102087fe784165bb45f942859268fd2ff6c012d9d00c02ba83eace047cc5f7b2c392c2955c58a49f0338d6fc58749c9db2155522ac17914ec216ad87f12e0ee95574613942fa615898c4d9e8a3be68cd6afa4e7a003dedbdf8edfee31162b174f965b20ae752ad89c967b3068b6f722c16b354456ba8e280f987c08e0a52d40a2e8f3a59b94d590aeef01879eb7a90b3ee7d772c839c85519cbeaddc0c193ec4874a463b53fcaea3271d80ebfb39b33489365fc039ae549a17a9ff898eea2f4cb27b8dbee4c17b998438575b2b8d107e4a0d66ba7fca85b41a58a8d51f191a35c856dfbe8aef2b00048a694bbccff832d23c8ca7a7ff0b6c0b3011d00b97c86c0628444d267c951d9e4fb8f83e154b8f74fb51aa16535e498235c5597dac9606ed0be3173a3836baa4e7d756ffe1e2879b415d3846bccd538c05b847785699aefde3e305decb600cd8fb0e7d8de5efc26971a6ad4e6d7a2d91474f1023a0ac4b78dc937da0ce607a45974d2cac1c33a2631ff7fe6144a3b2e5cf98b531a9627dea92c1dc82204d09db0439b6a11dd64b484e1263aa45fd9539b6020b55e3baece3986a8bffc1003406348f5c61265099ed43a766ee4f93f5f9c5abbc32a0fd3ac2b35b87f9ec26037d88275bd7dd0a54474995ee34ed3727f3f97c48db544b1980193a4b76a8a3ddab3591ce527f16d91882e67f0103b5cda53f7da54d489fc4ac08b6ab358a5a04aa9daa16219d50bd672a7cb804ed769d218807544e5993f1c27427104b349906a0b654df0bf69328afd3013fbe430155339c39f236df5557bf92f1ded7ff609a8502f49064ec3d1dbfb6c15d3a4c11a4f8acd12278cbf68acd5709463d12e3338a6eddb8c112f199645e23154a8e60879d2a654e3ed9296aa28f134168619691cd2c6b9e2eba4438381676173fc63c2588a3c5910dc149cf3760f0aa9fa9c3f5faa9162b0bf1aac9dd32b706a60ef53cbdb394b6b40222b5bc80eea82ba8958386672564cae3794f977871ab62337cf010001e30049201ec12937e7ce79d0f55d9c810e20acf52212aca1d3888949e0e4830aad88d804161230eb89d4d329cc83570fe257217d2119134048dd2ed167646975fc7d77136919a049ea74cf08ddd2b896890bb24a0ba18094a22baa351bf29ad96c66bbb1a598f2ca391749620e62d61c3561a7d3653ccc8892c7b99baaf76bf836e2991cb06d6bc0514568ff0d1ec8bb4b3d6984f5eaefb17d3ea2893722375d3ddb8e389a8eef7d7d198f8e687d6a513983df906099f9a2d23f4f9dec6f8ef2f11fc0a21fac45353b94e00486f5e17d386af42502d09db33cf0cf28310e049c07e88682aeeb00cb833c5174266e62407a57583f1f88b304b7c6e0c84bbe1c0fd423072d37a5bd0aacf764229e5c7cd02473460ba3645cd8e8ae144065bf02d0dd238593d8e230354f67e0b2f23012c23274f80e3ee31e35e2606a4a3f31d94ab755e6d163cff52cbb36b6d0cc67ffc512aeed1dce4d7a0d70ce82f2baba12e8d514dc92a056f994adfb17b5b9712bd5186f27a2fda1f7039c5df2c8587fdc62f5627580c13234b55be4df3056050e2d1ef3218f0dd66cb05265fe1acfb0989d8213f2c19d1735a7cf3fa65d88dad5af52dc2bba22b7abf46c3bc77b5091baab9e8f0ddc4d5e581037de91a9f8dcbc69309be29cc815cf19a20a7585b8b3073edf51fc9baeb3e509b97fa4ecfd621e0fd57bd61cac1b895c03248ff12bdbc57509250df3517e8a3fe1d776836b34ab352b973d932ef708b14f7418f9eceb1d87667e61e3e758649cb083f01b133d37ab2f5afa96d6c84bcacf4efc3851ad308c1e7d9113624fce29fab460ab9d2a48d92cdb281103a5250ad44cb2ff6e67ac670c02fdafb3e0f1353953d6d7d5646ca1568dea55275a050ec501b7c6250444f7219f1ba7521ba3b93d089727ca5f3bbe0d6c1300b423377004954c5628fdb65770b18ced5c9b23a4a5a6d6ef25fe01b4ce278de0bcc4ed86e28a0a68818ffa40970128cf2c38740e80037984428c1bd5113f40ff47512ee6f4e4d8f9b8e8e1b3040d2928d003bd1c1329dc885302fbce9fa81c23b4dc49c7c82d29b52957847898676c89aa5d32b5b0e1c0d5a2b79a19d67562f407f19425687971a957375879d90c5f57c857136c17106c9ab1b99d80e69c8c954ed386493368884b55c939b8d64d26f643e800c56f90c01079d7c534e3b2b7ae352cefd3016da55f6a85eb803b85e2304915fd2001f77c74e28746293c46e4f5f0fd49cf988aafd0026b8e7a3bab2da5cdce1ea26c2e29ec03f4807fac432662b2d6c060be1c7be0e5489de69d0a6e03a4b9117f9244b34a0f1ecba89884f781c6320412413a00c4980287409a2a78c2cd7e65cecebbe4ec1c28cac4dd95f6998e78fc6f1392384331c9436aa10e10e2bf8ad2c4eafbcf276aa7bae64b74428911b3269c749338b0fc5075ad"), 1899 }, 1900 }, 1901 1902 // bn256Add 1903 { 1904 "bn256Add/chfast1", 1905 "precompiledContractTest", 1906 []interface{}{ 1907 loopCnt, 1908 common.HexToAddress("0x06"), 1909 common.FromHex("18b18acfb4c2c30276db5411368e7185b311dd124691610c5d3b74034e093dc9063c909c4720840cb5134cb9f59fa749755796819658d32efc0d288198f3726607c2b7f58a84bd6145f00c9c2bc0bb1a187f20ff2c92963a88019e7c6a014eed06614e20c147e940f2d70da3f74c9a17df361706a4485c742bd6788478fa17d7"), 1910 }, 1911 }, 1912 { 1913 "bn256Add/cdetrio3", 1914 "precompiledContractTest", 1915 []interface{}{ 1916 loopCnt, 1917 common.HexToAddress("0x06"), 1918 common.FromHex("0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"), 1919 }, 1920 }, 1921 1922 // bn256ScalarMul 1923 { 1924 "bn256ScalarMul/chfast1", 1925 "precompiledContractTest", 1926 []interface{}{ 1927 loopCnt, 1928 common.HexToAddress("0x07"), 1929 common.FromHex("2bd3e6d0f3b142924f5ca7b49ce5b9d54c4703d7ae5648e61d02268b1a0a9fb721611ce0a6af85915e2f1d70300909ce2e49dfad4a4619c8390cae66cefdb20400000000000000000000000000000000000000000000000011138ce750fa15c2"), 1930 }, 1931 }, 1932 { 1933 "bn256ScalarMul/cdetrio2", 1934 "precompiledContractTest", 1935 []interface{}{ 1936 loopCnt, 1937 common.HexToAddress("0x07"), 1938 common.FromHex("1a87b0584ce92f4593d161480614f2989035225609f08058ccfa3d0f940febe31a2f3c951f6dadcc7ee9007dff81504b0fcd6d7cf59996efdc33d92bf7f9f8f630644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000"), 1939 }, 1940 }, 1941 1942 // bn256Paring 1943 { 1944 "bn256Paring/one_point", 1945 "precompiledContractTest", 1946 []interface{}{ 1947 loopCnt, 1948 common.HexToAddress("0x08"), 1949 common.FromHex("00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa"), 1950 }, 1951 }, 1952 { 1953 "bn256Paring/two_point_match_2", 1954 "precompiledContractTest", 1955 []interface{}{ 1956 loopCnt, 1957 common.HexToAddress("0x08"), 1958 common.FromHex("00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d"), 1959 }, 1960 }, 1961 { 1962 "bn256Paring/two_point_match_3", 1963 "precompiledContractTest", 1964 []interface{}{ 1965 loopCnt, 1966 common.HexToAddress("0x08"), 1967 common.FromHex("00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002203e205db4f19b37b60121b83a7333706db86431c6d835849957ed8c3928ad7927dc7234fd11d3e8c36c59277c3e6f149d5cd3cfa9a62aee49f8130962b4b3b9195e8aa5b7827463722b8c153931579d3505566b4edf48d498e185f0509de15204bb53b8977e5f92a0bc372742c4830944a59b4fe6b1c0466e2a6dad122b5d2e030644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd31a76dae6d3272396d0cbe61fced2bc532edac647851e3ac53ce1cc9c7e645a83198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa"), 1968 }, 1969 }, 1970 { 1971 "bn256Paring/ten_point_match_1", 1972 "precompiledContractTest", 1973 []interface{}{ 1974 loopCnt, 1975 common.HexToAddress("0x08"), 1976 common.FromHex("00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d"), 1977 }, 1978 }, 1979 { 1980 "bn256Paring/ten_point_match_2", 1981 "precompiledContractTest", 1982 []interface{}{ 1983 loopCnt, 1984 common.HexToAddress("0x08"), 1985 common.FromHex("00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002203e205db4f19b37b60121b83a7333706db86431c6d835849957ed8c3928ad7927dc7234fd11d3e8c36c59277c3e6f149d5cd3cfa9a62aee49f8130962b4b3b9195e8aa5b7827463722b8c153931579d3505566b4edf48d498e185f0509de15204bb53b8977e5f92a0bc372742c4830944a59b4fe6b1c0466e2a6dad122b5d2e030644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd31a76dae6d3272396d0cbe61fced2bc532edac647851e3ac53ce1cc9c7e645a83198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002203e205db4f19b37b60121b83a7333706db86431c6d835849957ed8c3928ad7927dc7234fd11d3e8c36c59277c3e6f149d5cd3cfa9a62aee49f8130962b4b3b9195e8aa5b7827463722b8c153931579d3505566b4edf48d498e185f0509de15204bb53b8977e5f92a0bc372742c4830944a59b4fe6b1c0466e2a6dad122b5d2e030644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd31a76dae6d3272396d0cbe61fced2bc532edac647851e3ac53ce1cc9c7e645a83198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002203e205db4f19b37b60121b83a7333706db86431c6d835849957ed8c3928ad7927dc7234fd11d3e8c36c59277c3e6f149d5cd3cfa9a62aee49f8130962b4b3b9195e8aa5b7827463722b8c153931579d3505566b4edf48d498e185f0509de15204bb53b8977e5f92a0bc372742c4830944a59b4fe6b1c0466e2a6dad122b5d2e030644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd31a76dae6d3272396d0cbe61fced2bc532edac647851e3ac53ce1cc9c7e645a83198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002203e205db4f19b37b60121b83a7333706db86431c6d835849957ed8c3928ad7927dc7234fd11d3e8c36c59277c3e6f149d5cd3cfa9a62aee49f8130962b4b3b9195e8aa5b7827463722b8c153931579d3505566b4edf48d498e185f0509de15204bb53b8977e5f92a0bc372742c4830944a59b4fe6b1c0466e2a6dad122b5d2e030644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd31a76dae6d3272396d0cbe61fced2bc532edac647851e3ac53ce1cc9c7e645a83198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002203e205db4f19b37b60121b83a7333706db86431c6d835849957ed8c3928ad7927dc7234fd11d3e8c36c59277c3e6f149d5cd3cfa9a62aee49f8130962b4b3b9195e8aa5b7827463722b8c153931579d3505566b4edf48d498e185f0509de15204bb53b8977e5f92a0bc372742c4830944a59b4fe6b1c0466e2a6dad122b5d2e030644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd31a76dae6d3272396d0cbe61fced2bc532edac647851e3ac53ce1cc9c7e645a83198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa"), 1986 }, 1987 }, 1988 { 1989 "bn256Paring/ten_point_match_3", 1990 "precompiledContractTest", 1991 []interface{}{ 1992 loopCnt, 1993 common.HexToAddress("0x08"), 1994 common.FromHex("105456a333e6d636854f987ea7bb713dfd0ae8371a72aea313ae0c32c0bf10160cf031d41b41557f3e7e3ba0c51bebe5da8e6ecd855ec50fc87efcdeac168bcc0476be093a6d2b4bbf907172049874af11e1b6267606e00804d3ff0037ec57fd3010c68cb50161b7d1d96bb71edfec9880171954e56871abf3d93cc94d745fa114c059d74e5b6c4ec14ae5864ebe23a71781d86c29fb8fb6cce94f70d3de7a2101b33461f39d9e887dbb100f170a2345dde3c07e256d1dfa2b657ba5cd030427000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000021a2c3013d2ea92e13c800cde68ef56a294b883f6ac35d25f587c09b1b3c635f7290158a80cd3d66530f74dc94c94adb88f5cdb481acca997b6e60071f08a115f2f997f3dbd66a7afe07fe7862ce239edba9e05c5afff7f8a1259c9733b2dfbb929d1691530ca701b4a106054688728c9972c8512e9789e9567aae23e302ccd75"), 1995 }, 1996 }, 1997 1998 // VmLog 1999 { 2000 "vmLog/1", 2001 "precompiledContractTest", 2002 []interface{}{ 2003 loopCnt, 2004 common.HexToAddress("0x09"), 2005 common.FromHex("48"), 2006 }, 2007 }, 2008 { 2009 "vmLog/13", 2010 "precompiledContractTest", 2011 []interface{}{ 2012 loopCnt, 2013 common.HexToAddress("0x09"), 2014 common.FromHex("48656c6c6f204b6c6179746e21"), 2015 }, 2016 }, 2017 { 2018 "vmLog/40", 2019 "precompiledContractTest", 2020 []interface{}{ 2021 loopCnt, 2022 common.HexToAddress("0x09"), 2023 common.FromHex("48484848484848484848484848484848484848484848484848484848484848484848484848484848"), 2024 }, 2025 }, 2026 { 2027 "vmLog/64", 2028 "precompiledContractTest", 2029 []interface{}{ 2030 loopCnt, 2031 common.HexToAddress("0x09"), 2032 common.FromHex("01020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132"), 2033 }, 2034 }, 2035 { 2036 "vmLog/128", 2037 "precompiledContractTest", 2038 []interface{}{ 2039 loopCnt, 2040 common.HexToAddress("0x09"), 2041 common.FromHex("0102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132"), 2042 }, 2043 }, 2044 { 2045 "vmLog/256", 2046 "precompiledContractTest", 2047 []interface{}{ 2048 loopCnt, 2049 common.HexToAddress("0x09"), 2050 common.FromHex("01020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132"), 2051 }, 2052 }, 2053 { 2054 "vmLog/1024", 2055 "precompiledContractTest", 2056 []interface{}{ 2057 loopCnt, 2058 common.HexToAddress("0x09"), 2059 common.FromHex("0102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132"), 2060 }, 2061 }, 2062 { 2063 "vmLog/2048", 2064 "precompiledContractTest", 2065 []interface{}{ 2066 loopCnt, 2067 common.HexToAddress("0x09"), 2068 common.FromHex("01020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132010203040506070809101112131415161718192021222324252627282930313201020304050607080910111213141516171819202122232425262728293031320102030405060708091011121314151617181920212223242526272829303132"), 2069 }, 2070 }, 2071 2072 // feePayer 2073 { 2074 "feePayer", 2075 "precompiledContractTest", 2076 []interface{}{ 2077 loopCnt, 2078 common.HexToAddress("0x0A"), 2079 common.FromHex(""), 2080 }, 2081 }, 2082 2083 // validateSender 2084 { 2085 "validateSender/1", 2086 "precompiledContractTest", 2087 []interface{}{ 2088 loopCnt, 2089 common.HexToAddress("0x0B"), 2090 validateSenderData1, 2091 }, 2092 }, 2093 { 2094 "validateSender/2", 2095 "precompiledContractTest", 2096 []interface{}{ 2097 loopCnt, 2098 common.HexToAddress("0x0B"), 2099 validateSenderMultisig10_2, 2100 }, 2101 }, 2102 { 2103 "validateSender/3", 2104 "precompiledContractTest", 2105 []interface{}{ 2106 loopCnt, 2107 common.HexToAddress("0x0B"), 2108 validateSenderMultisig10_3, 2109 }, 2110 }, 2111 { 2112 "validateSender/4", 2113 "precompiledContractTest", 2114 []interface{}{ 2115 loopCnt, 2116 common.HexToAddress("0x0B"), 2117 validateSenderMultisig10_4, 2118 }, 2119 }, 2120 { 2121 "validateSender/5", 2122 "precompiledContractTest", 2123 []interface{}{ 2124 loopCnt, 2125 common.HexToAddress("0x0B"), 2126 validateSenderMultisig10_5, 2127 }, 2128 }, 2129 { 2130 "validateSender/6", 2131 "precompiledContractTest", 2132 []interface{}{ 2133 loopCnt, 2134 common.HexToAddress("0x0B"), 2135 validateSenderMultisig10_6, 2136 }, 2137 }, 2138 { 2139 "validateSender/7", 2140 "precompiledContractTest", 2141 []interface{}{ 2142 loopCnt, 2143 common.HexToAddress("0x0B"), 2144 validateSenderMultisig10_7, 2145 }, 2146 }, 2147 { 2148 "validateSender/8", 2149 "precompiledContractTest", 2150 []interface{}{ 2151 loopCnt, 2152 common.HexToAddress("0x0B"), 2153 validateSenderMultisig10_8, 2154 }, 2155 }, 2156 { 2157 "validateSender/9", 2158 "precompiledContractTest", 2159 []interface{}{ 2160 loopCnt, 2161 common.HexToAddress("0x0B"), 2162 validateSenderMultisig10_9, 2163 }, 2164 }, 2165 { 2166 "validateSender/10", 2167 "precompiledContractTest", 2168 []interface{}{ 2169 loopCnt, 2170 common.HexToAddress("0x0B"), 2171 validateSenderMultisig10_10, 2172 }, 2173 }, 2174 } 2175 2176 abii, err := abi.JSON(strings.NewReader(string(abiStr))) 2177 assert.Equal(t, nil, err) 2178 amount := new(big.Int).SetUint64(0) 2179 2180 for _, tc := range testcases { 2181 t.Run(tc.testName, func(t *testing.B) { 2182 if testing.Verbose() { 2183 fmt.Printf("----------------------testing %s...\n", tc.testName) 2184 } 2185 input := tc.input 2186 if tc.funcName == "BlockHash" { 2187 input = append(input, new(big.Int).SetUint64(bcdata.bc.CurrentBlock().NumberU64()-2)) 2188 } 2189 2190 // for i := 0; i < 1000; i++ { 2191 var txs types.Transactions 2192 2193 // tc.input[1] = big.NewInt(int64(i) * 10000) 2194 2195 data, err := abii.Pack(tc.funcName, input...) 2196 assert.Equal(t, nil, err) 2197 2198 values := map[types.TxValueKeyType]interface{}{ 2199 types.TxValueKeyNonce: reservoir.Nonce, 2200 types.TxValueKeyFrom: reservoir.Addr, 2201 types.TxValueKeyTo: contractAddrs["OpCodeBenchmarkContract"], 2202 types.TxValueKeyAmount: amount, 2203 types.TxValueKeyGasLimit: gasLimit, 2204 types.TxValueKeyGasPrice: gasPrice, 2205 types.TxValueKeyData: data, 2206 } 2207 tx, err := types.NewTransactionWithMap(types.TxTypeSmartContractExecution, values) 2208 assert.Equal(t, nil, err) 2209 2210 err = tx.SignWithKeys(signer, reservoir.Keys) 2211 assert.Equal(t, nil, err) 2212 2213 txs = append(txs, tx) 2214 2215 require.NoError(t, bcdata.GenABlockWithTransactions(accountMap, txs, prof)) 2216 reservoir.Nonce += 1 2217 //} 2218 }) 2219 } 2220 2221 if testing.Verbose() { 2222 prof.PrintProfileInfo() 2223 } 2224 }