aboutsummaryrefslogtreecommitdiffstats
path: root/camel/string-utils.c
blob: 0331d6209d74f1d0cf2ac4b70f25ca1a6d8dc00d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
/* string-util : utilities for gchar* strings  */

/* 
 *
 * Authors: Bertrand Guiheneuf <bertrand@helixcode.com>
 *          Jeffrey Stedfast <fejj@ximian.com>
 *
 * Copyright 1999, 2000 Ximian, Inc. (www.ximian.com)
 *
 * This program is free software; you can redistribute it and/or 
 * modify it under the terms of version 2 of the GNU General Public 
 * published by the Free Software Foundation; either version 2 of the
 * License as published by the Free Software Foundation.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
 * USA
 */

#ifdef HAVE_CONFIG_H
#include <config.h>
#endif

#include "string-utils.h"
#include "string.h"

gboolean
string_equal_for_glist (gconstpointer v, gconstpointer v2)
{
    return (!strcmp ( ((const gchar *)v), ((const gchar*)v2))) == 0;
}

/* utility func : frees a gchar element in a GList */
static void 
__string_list_free_string (gpointer data, gpointer user_data)
{
    gchar *string = (gchar *)data;
    g_free (string);
}

void 
string_list_free (GList *string_list)
{
    if (string_list == NULL) return; 

    g_list_foreach (string_list, __string_list_free_string, NULL);
    g_list_free (string_list);
}

GList *
string_split (const gchar *string, char sep, const gchar *trim_chars, StringTrimOption trim_options)
{
    GList *result = NULL;
    gint first, last, pos;
    gchar *new_string;

    g_assert (string);
    
    first = 0;
    last = strlen(string) - 1;
    
    /* strip leading and trailing separators */
    while ( (first<=last) && (string[first]==sep) )
        first++;
    while ( (first<=last) && (string[last]==sep) )
        last--;

    
    while (first<=last)  {
        pos = first;
        /* find next separator */
        while ((pos<=last) && (string[pos]!=sep)) pos++;
        if (first != pos) {
            new_string = g_strndup (string+first, pos-first);
            /* could do trimming in line to speed up this code */
            if (trim_chars) string_trim (new_string, trim_chars, trim_options);
            result = g_list_append (result, new_string);
        }   
        first = pos + 1;
    }

    return result;
}

void 
string_trim (gchar *string, const gchar *trim_chars, StringTrimOption options)
{
    gint first_ok;
    gint last_ok;
    guint length;

    g_return_if_fail (string);
    length = strlen (string);
    if (length==0)
        return;
    
    first_ok = 0;
    last_ok = length - 1;

    if (options & STRING_TRIM_STRIP_LEADING)
        while  ( (first_ok <= last_ok) && (strchr (trim_chars, string[first_ok])!=NULL) )
            first_ok++;
    
    if (options & STRING_TRIM_STRIP_TRAILING)
        while  ( (first_ok <= last_ok) && (strchr (trim_chars, string[last_ok])!=NULL) )
            last_ok--;
    
    if (first_ok > 0)
        memmove (string, string+first_ok, last_ok - first_ok + 1);
    string[last_ok - first_ok +1] = '\0';
    
}


/**
 * remove_suffix: remove a suffix from a string
 * @s: the string to remove the suffix from. 
 * @suffix: the suffix to remove
 * @suffix_found : suffix found flag
 *
 * Remove a suffix from a string. If the 
 * string ends with the full suffix, a copy 
 * of the string without the suffix is returned and
 * @suffix_found is set to %TRUE. 
 * Otherwise, NULL is returned and
 * @suffix_found is set to %FALSE. 
 * 
 * Return value: an allocated copy of the string without the suffix or NULL if the suffix was not found.
 **/
gchar *
string_prefix (const gchar *s, const gchar *suffix, gboolean *suffix_found)
{
    guint s_len, suf_len;
    guint suffix_pos;
    char *result_string;

    g_assert (s);
    g_assert (suffix);
    g_assert (suffix_found);

    s_len = strlen (s);
    suf_len = strlen (suffix);

    /* if the string is shorter than the suffix, do nothing */
    if (s_len < suf_len) {
        *suffix_found = FALSE;
        return NULL;
    }
    
    /* theoretical position of the prefix */
    suffix_pos = s_len - suf_len;

    /* compare the right hand side of the string with the suffix */
    if (!strncmp (s+suffix_pos, suffix, suf_len)) {

        /* if the suffix matches, check that there are 
           characters before */
        if (suffix_pos == 0) {
            result_string = NULL;
            *suffix_found = TRUE;
        } else { 
            result_string = g_strndup (s, suffix_pos);
            *suffix_found = TRUE;
        }

    } else { 
        result_string = NULL;
        *suffix_found = FALSE;
    }

    return result_string;
}

void
string_unquote (gchar *string)
{
    /* if the string is quoted, unquote it */

    g_return_if_fail (string != NULL);
    
    if (*string == '"' && *(string + strlen (string) - 1) == '"') {
        *(string + strlen (string) - 1) = '\0';
        if (*string)
            memmove (string, string+1, strlen (string));
    }
}

gchar *
strip (gchar *string, gchar c)
{
    /* strip all occurances of c from the string */
    gchar *src, *dst;
    
    g_return_val_if_fail (string != NULL, NULL);
    
    for (src = dst = string; *src; src++)
        if (*src != c)
            *dst++ = *src;
    *dst = '\0';
    
    return string;
}

char *
strstrcase (const char *haystack, const char *needle)
{
    /* find the needle in the haystack neglecting case */
    const char *ptr;
    guint len;
    
    g_return_val_if_fail (haystack != NULL, NULL);
    g_return_val_if_fail (needle != NULL, NULL);
    
    len = strlen (needle);
    if (len > strlen (haystack))
        return NULL;
    
    if (len == 0)
        return (char *) haystack;
    
    for (ptr = haystack; *(ptr + len - 1) != '\0'; ptr++)
        if (!g_strncasecmp (ptr, needle, len))
            return (char *) ptr;
    
    return NULL;
}
", "out" fields in state test fillersFelix Lange2017-07-1314-72/+0 * | | Merge pull request #220 from ethereum/exp255winsvega2017-07-142-5/+48 |\ \ \ | |/ / |/| | | * | Merge branch 'develop' into exp255winsvega2017-07-132223-17491/+25723 | |\ \ | |/ / |/| | * | | Merge pull request #222 from ethereum/revert-address-calculationwinsvega2017-07-132224-17492/+25724 |\ \ \ | * | | remove unneeded Metropolis testDimitry2017-07-112-1877/+0 | * | | refill blockchaintests on metropolisDimitry2017-07-1116-15309/+15318 | * | | refill general state testsDimitry2017-07-102206-306/+10406 |/ / / | * / Add a test case baseLength = modLength = 0, but expLength = 2^255Yoichi Hirai2017-07-102-5/+48 |/ / * | Merge pull request #219 from ethereum/max-code-size-from-spurious-dragonwinsvega2017-07-102-3/+8 |\ \ | * | Max code size is enforced at EIP158, not at EIP150Yoichi Hirai2017-07-102-3/+8 * | | Merge pull request #217 from ethereum/bcTransitionTestswinsvega2017-07-1036-7158/+18377 |\| | | * | Blockchain transition testsDimitry2017-07-0736-7158/+18377 | |/ * | Merge pull request #218 from ethereum/revert-address-calculationwinsvega2017-07-102-1378/+1370 |\ \ | * | Fix RPC_API_Test for https://github.com/ethereum/cpp-ethereum/pull/4231Yoichi Hirai2017-07-072-1378/+1370 | |/ * | Merge pull request #215 from ethereum/modexp_base_2to64winsvega2017-07-102-5/+107 |\ \ | * | Add a case where exp length is 2^64Yoichi Hirai2017-07-062-3/+62 | * | Add a modexp test where base length is 2^64Yoichi Hirai2017-07-062-5/+48 | |/ * | Merge pull request #208 from ethereum/returndatacopy_with_2_256_sumwinsvega2017-07-102-0/+250 |\ \ | |/ |/| | * Use CALLDATALOAD instead of CALLDATACOPY and MLOADYoichi Hirai2017-07-062-17/+17 | * Add one-less and one-more numbersYoichi Hirai2017-07-062-10/+99 | * Add a test RETURNDATACOPY at the beginning of a program should throw an excep...Yoichi Hirai2017-07-032-0/+161 * | Merge pull request #207 from ethereum/remove_compiled_codewinsvega2017-07-067-20/+22 |\ \ | * | Apparently some bytecode was not faithful compilation of the LLL codeYoichi Hirai2017-07-032-12/+22 | * | Remove hex codes after the LLL codeYoichi Hirai2017-07-035-8/+0 | |/ * | Merge pull request #196 from ethereum/returndatacopy_0_0_after_successful_createwinsvega2017-07-064-0/+345 |\ \ | * | Use (SSTORE 0 1) in the init code to see if the CREATE succeeds or notYoichi Hirai2017-07-062-8/+17 | * | Add a test about RETURNDATACOPY after a successful CREATE should throw except...Yoichi Hirai2017-06-282-0/+161 | * | Address @winsvega's commentsYoichi Hirai2017-06-282-22/+7 | * | Add test cases for RETURNDATACOPY after a successful CREATE should not throw ...Yoichi Hirai2017-06-262-0/+190 * | | Merge pull request #211 from ethereum/nonce-after-collisionwinsvega2017-07-064-275/+9 |\ \ \ | * | | Fix and refill GeneralStateTest after fixing the nonce change for address col...Yoichi Hirai2017-07-064-275/+9 * | | | Merge pull request #200 from ethereum/returndatacopy-after-failing-call-with-...winsvega2017-07-062-0/+176 |\ \ \ \ | * | | | Add a test about "RETURNDATACOPY after a failing CALL should throw exception ...Yoichi Hirai2017-06-292-0/+176 * | | | | Merge pull request #202 from ethereum/returndatacopy_big_sumwinsvega2017-07-062-0/+161 |\ \ \ \ \ | |_|/ / / |/| | | | | * | | | Add a test 'RETURNDATACOPY at the beginning of a program should throw an exce...Yoichi Hirai2017-06-302-0/+161 | |/ / / * | | | Merge pull request #210 from ethereum/many_zeros_expwinsvega2017-07-052-4/+52 |\ \ \ \ | * | | | Price calculation when exp length > 256, and the first word of exponent is zeroYoichi Hirai2017-07-042-4/+52 | | |_|/ | |/| | * | | | Merge pull request #209 from ethereum/shallowStackOK-removewinsvega2017-07-051-9768/+0 |\ \ \ \ | * | | | Remove shallowStackOK.json because shallowStackOKFiller.json does not existYoichi Hirai2017-07-041-9768/+0 | |/ / / * | | | Merge pull request #199 from ethereum/generalbctestwinsvega2017-07-05657-586542/+922235 |\ \ \ \ | |/ / / |/| | | | * | | move gasPricer testDimitry2017-07-032-1085/+1085 | * | | bcUncleHeaderValidityDimitry2017-07-0328-1993/+3291 | * | | convert to new testsDimitry2017-07-03230-0/+856610 | * | | remove old testsDimitry2017-07-03261-715542/+0 | * | | convert more bctestsDimitry2017-07-0378-33206/+173336 | * | | update bctests to gbctestsDimitry2017-07-03181-21889/+69233 | * | | translate bcStateTests into general blockchain testsDimitry2017-07-0312-0/+5853 |/ / / * | | Merge pull request #201 from ethereum/fix-nameswinsvega2017-07-03162-227/+627 |\ \ \ | |/ / |/| | | * | Fix names of test cases in GeneralStateTests to match the file namesYoichi Hirai2017-06-30162-227/+627 |/ / * | Merge pull request #198 from ethereum/morestaticwinsvega2017-06-2812-0/+4425 |\ \ | * | more staticcall tests updateDimitry2017-06-285-12/+1208 | * | more staticcall testsDimitry2017-06-2810-0/+3229 |/ / * | Merge pull request #194 from ethereum/returndata-read-zero-byteswinsvega2017-06-272-0/+216 |\ \ | * | Also try RETURNDATACOPY when the calldata is not emptyYoichi Hirai2017-06-272-39/+93 | * | Add a test for trying returndatacopy 0 0 on an empty return data bufferYoichi Hirai2017-06-232-0/+162 * | | Merge pull request #192 from ethereum/revert-createwinsvega2017-06-272-0/+175 |\ \ \ | * | | Add a case where REVERT in an init code passes data to the creating contextYoichi Hirai2017-06-222-0/+175 | |/ / * | | Merge pull request #195 from ethereum/correctStaticwinsvega2017-06-2713-20/+460 |\ \ \ | |_|/ |/| | | * | Fix a test case that expected staticcall to return successfully even when an ...Yoichi Hirai2017-06-272-7/+12 | * | Fix a test that expected staticcall to return successfully even when SSTORE i...Yoichi Hirai2017-06-272-8/+13 | * | Add a test about staticcall not inheriting the callvalue from the parent call...Yoichi Hirai2017-06-262-0/+191 | * | Add a test about STATICCALL not inheriting the callvalueYoichi Hirai2017-06-262-0/+178 | * | correct staticcall testsDimitry2017-06-245-5/+66 * | | Merge pull request #193 from ethereum/split-fileswinsvega2017-06-2488-10652/+10956 |\ \ \ | |/ / |/| | | * | Remove a left-over odd-length hex stringYoichi Hirai2017-06-236-3/+18 | * | Split GeneralStateTestFiller files that contain multiple testsYoichi Hirai2017-06-2382-10649/+10938 | |/ * | Merge pull request #162 from ethereum/eip86testwinsvega2017-06-2484-289/+4759 |\ \ | * | update revert test with new eip86 rulesDimitry2017-06-231-2/+7 | * | fix create transactions with eip86 ruleDimitry2017-06-234-12/+265 | * | more zeroSigTransaction testsDimitry2017-06-2310-4/+3299 | * | refill tests with new transaction create rules on MetropolisDimitry2017-06-2346-110/+478 | * | update eip86yann3002017-06-2325-161/+710 |/ / * | Merge pull request #191 from ethereum/remStBoundswinsvega2017-06-23280-64016/+98821 |\ \ | |/ |/| | * fill Blockhash boundsDimitry2017-06-221-0/+1538 | * update stQuadraticComplexity with 250M gasLimitDimitry2017-06-2261-34823/+53215 | * update stMemoryStress with 250M gas limitDimitry2017-06-22118-4258/+47408 | * remove stBoundsTestDimitry2017-06-22140-28275/+0 |/ * Merge pull request #190 from ethereum/odd-lengthwinsvega2017-06-2217-225/+225 |\ | * Add missing '0's in calldata. The hex strings were of odd lengthYoichi Hirai2017-06-2117-225/+225 |/ * Merge pull request #184 from ethereum/fix-revert-bugwinsvega2017-06-21195-1525/+2507 |\ | * Fill tests according to previous commitYoichi Hirai2017-06-162-1138/+2120 | * Change the filler according toYoichi Hirai2017-06-161-3/+3 | * Filled GeneralStateTest according to the previous commitYoichi Hirai2017-06-1696-192/+192 | * Fix the timestamp in GeneralStateTestsFiller as suggested inYoichi Hirai2017-06-1696-96/+96 | * Fix the difficulty in the GeneralStateTest fillers as suggested inYoichi Hirai2017-06-1696-96/+96 * | Merge pull request #187 from ethereum/link_testeth_guidewinsvega2017-06-191-0/+4 |\ \ | * | README: add a link to the "Generating Consensus Tests" in cpp-ethereumYoichi Hirai2017-06-191-0/+4 * | | Merge pull request #180 from ethereum/new_expmod_costwinsvega2017-06-19194-8/+46066 |\ \ \ | | |/ | |/| | * | Merge branch 'snark_test_filled' into new_expmod_costYoichi Hirai2017-06-14743-5/+617720 | |\ \ | * | | Add modexp tess from PyethereumYoichi Hirai2017-06-14192-0/+32276 | * | | Update tests after changing the gas cost of modexp precompiled contractYoichi Hirai2017-06-132-8/+13790 | | |/ | |/| * | | Merge pull request #172 from ethereum/snark_test_filledwinsvega2017-06-19743-5/+617720 |\ \ \ | |/ / |/| / | |/ | * Fill the tests following the previous commitYoichi Hirai2017-06-131-3/+3 | * A precompiled contract exists at address 8, so the staticcall does not cause ...Yoichi Hirai2017-06-131-1/+1 | * fill zeroKnowledge as BlockchainDimitry2017-06-13263-2607/+447395 | * Removing GenStateTestAsBcTemp as it is a temporary directoryYoichi Hirai2017-06-131-0/+1 | * Split a filler file into two and rename a test case into a shorter nameYoichi Hirai2017-06-134-502/+506 | * Split a filler file into two and rename a case into a shorter nameYoichi Hirai2017-06-134-502/+506 | * Split a filler file into two and rename a test case into a shorter nameYoichi Hirai2017-06-134-502/+506 | * Split a filler file into two and rename a test case into a shorter nameYoichi Hirai2017-06-134-507/+511 | * Split a filler so that each file contains one caseYoichi Hirai2017-06-134-507/+511 | * Split a filler file and rename a case into a shorter nameYoichi Hirai2017-06-134-507/+511 | * Update GeneralStateTests according to the fillersYoichi Hirai2017-06-13229-2148/+2160 | * Split filler files that contain two test casesYoichi Hirai2017-06-1312-1708/+1720 | * Shorten test namnes according to short file namesYoichi Hirai2017-06-1328-28/+28 | * Shorten the name of another fillerYoichi Hirai2017-06-132-1/+443 | * Rename test cases in the fillers, according to the file namesYoichi Hirai2017-06-1349-49/+49 | * add 0x prefix for coinbase verificationDimitry2017-06-13224-257/+257 | * correct Vitalik's test fillers env infoDimitry2017-06-13224-1030/+1030 | * Add back one final test removed by mistakeYoichi Hirai2017-06-131-0/+317 | * Shorten file namesYoichi Hirai2017-06-13103-64453/+0 | * Split pyethereum_ecpairing_testsFiller.json into files for each test caseYoichi Hirai2017-06-1355-7718/+13789 | * Split pyethereum_ecmul_testsFiller.json into files for each test caseYoichi Hirai2017-06-13323-55096/+98514 | * Split pyethereum_ecadd_testsFiller.json into as many files as test casesYoichi Hirai2017-06-1374-18163/+18303 | * Update elliptic curve related GeneralStateTests using the tests from pyethereumYoichi Hirai2017-06-1310-68/+72143 | * Trying to fill, using a modified snark PRYoichi Hirai2017-06-133-0/+73038 | * Add BlockchainTests about the elliptic curveYoichi Hirai2017-06-135-0/+38550 | * Adding filled tests about elliptic curvesYoichi Hirai2017-06-135-0/+3280 | * Rename paring into pairingYoichi Hirai2017-06-131-1/+1 |/ * Merge pull request #178 from maaktweluit/issue#169winsvega2017-06-131-2/+2 |\ | * Made check not throw errors with | catmaaktweluit2017-06-061-1/+1 | * Update travis.yml with Filler excludemaaktweluit2017-06-061-2/+2 * | Merge pull request #179 from maaktweluit/issue#177winsvega2017-06-131-1/+1 |\ \ | * | Create README.mdwinsvega2017-06-131-1/+1 | * | #177 Updated README to the moved Fillersmaaktweluit2017-06-061-1/+1 | |/ * | Merge pull request #181 from ethereum/returndatacopy_throwwinsvega2017-06-1311-196/+187 |\ \ | * | Fill tests after making returndatacopy throwYoichi Hirai2017-06-088-153/+184 | * | Update expectations for the new throwing behavior of RETURNDATACOPYYoichi Hirai2017-06-083-43/+3 | |/ * | Merge pull request #182 from ayrat555/developwinsvega2017-06-132-156/+156 |\ \ | * | remove tabsAyrat Badykov2017-06-101-155/+155 | * | use lowercase digit in bytestring7F testAyrat Badykov2017-06-101-1/+1 | * | fix READMEAyrat Badykov2017-06-101-1/+1 |/ / * | remove empty static call testsDimitry2017-06-0945-964/+0 * | remove old bcWallet tests with incorrect namesDimitry2017-06-0941-18369/+0 * | Create stackOverflowM1Filler.jsonwinsvega2017-06-081-17/+17 |/ * Merge pull request #174 from ethereum/returndatacopy_initialwinsvega2017-06-0515-0/+3671 |\ | * Fill in blockchain testsYoichi Hirai2017-05-245-0/+2773 | * Add tests for RETURNDATACOPY after CREATEYoichi Hirai2017-05-242-0/+185 | * Add a test case for a RETURNDATACOPY from an overrunning rangeYoichi Hirai2017-05-242-0/+185 | * Updated the opcodes of RETURNDATA instructionsYoichi Hirai2017-05-246-18/+121 | * Add a test for RETURNDATACOPY following a successful CALLYoichi Hirai2017-05-241-4/+8 | * WIP: hand-assembling this code seems like too much workYoichi Hirai2017-05-241-0/+79 | * Add a test case about RETURNDATASIZE returning zero after initializationYoichi Hirai2017-05-242-0/+171 | * Add the filled testYoichi Hirai2017-05-241-0/+96 | * Fallback on the hex code while lllc implements RETURNDATACOPYYoichi Hirai2017-05-241-0/+1 | * The LLL code should be in bracesYoichi Hirai2017-05-241-1/+1 | * Rename Filter.json into Filler.jsonYoichi Hirai2017-05-241-0/+0 | * Fix LLLYoichi Hirai2017-05-241-1/+1 | * Change the code into LLLYoichi Hirai2017-05-241-1/+1 | * Renaming a filter file with a suffix Filter.jsonYoichi Hirai2017-05-241-0/+0 | * Add a test filter for RETURNDATACOPY initially copying zerosYoichi Hirai2017-05-241-0/+74 * | Merge pull request #176 from ethereum/metro-blockhashwinsvega2017-06-03955-109450/+198787 |\ \ | * | update statetests without blockhashDimitry2017-06-021-80/+0 | * | update blockchain tests (stRandom stSpecial)Dimitry2017-06-02657-67385/+13975 | * | refill tests with blockhash as blockchainDimitry2017-06-02195-510/+53008 | * | move tests with blockhash from state to blockchainDimitry2017-06-02194-8521/+37695 | * | remove temp filesDimitry2017-06-02658-261173/+0 | * | make blockhash state test only as blockchain testsDimitry2017-06-021601-94906/+417201 | * | Update Blockchain Transition tests after EIP96 changes (BLOCKHASH refactoring)Andrei Maiboroda2017-06-024-1044/+1077 |/ / * | Merge pull request #175 from ethereum/staticcallwinsvega2017-06-01660-25169/+31058 |\ \ | * | more staticcall testsDimitry2017-06-01660-25169/+31058 * | | Merge pull request #173 from ethereum/staticcallwinsvega2017-05-27918-0/+92599 |\| | | |/ |/| | * update static testsDimitry2017-05-23101-121/+10191 | * generate finished tests for staticcallDimitry2017-05-2371-96/+9823 | * move unprepared staticcall tests to subfolderDimitry2017-05-23321-236/+188 | * update static call testsDimitry2017-05-2312-59/+117 | * update staticcall fillersDimitry2017-05-2326-165/+1198 | * update static call testsDimitry2017-05-237-33/+388 | * update static call fillersDimitry2017-05-2369-1619/+708 | * templates for staticcall testsDimitry2017-05-23764-0/+72315 |/ * Merge pull request #170 from pirapira/close-stringwinsvega2017-05-191-1/+1 |\ | * Close a string literalYoichi Hirai2017-05-191-1/+1 |/ * Merge pull request #163 from ethereum/newStateRootMetropoliswinsvega2017-05-084-1044/+1044 |\ | * reclculate stateRoot for Metropolis rulesDimitry2017-04-274-1044/+1044 * | Changed one testVitalik Buterin2017-05-081-1/+1 * | Merge pull request #157 from ethereum/removeStateTestswinsvega2017-04-28