aboutsummaryrefslogtreecommitdiffstats
path: root/core
Commit message (Expand)AuthorAgeFilesLines
* core: vm: sqlvm: runtime: implement opRepeatPKJhih-Ming Huang2019-05-064-85/+330
* Remove underflow error (#385)Meng-Ying Yang2019-05-064-43/+40
* core: vm: sqlvm: change function id from bytes to uint16Meng-Ying Yang2019-05-062-21/+26
* core: vm: sqlvm: add built-in function RAND()Meng-Ying Yang2019-05-062-0/+91
* core: vm: sqlvm: add built-in function TX_ORIGIN()Meng-Ying Yang2019-05-062-0/+65
* core: vm: sqlvm: add built-in function MSG_DATA()Meng-Ying Yang2019-05-062-0/+61
* core: vm: sqlvm: add built-in function MSG_SENDER()Meng-Ying Yang2019-05-062-0/+66
* core: vm: sqlvm: add built-in function BLOCK_GASLIMIT()Meng-Ying Yang2019-05-062-0/+68
* core: vm: sqlvm: add built-in function BLOCK_COINBASE()Meng-Ying Yang2019-05-062-0/+64
* core: vm: sqlvm: add built-in function BLOCK_TIMESTAMP() and NOW()Meng-Ying Yang2019-05-062-4/+74
* core: vm: sqlvm: add built-in function BLOCK_NUMBER()Meng-Ying Yang2019-05-062-2/+70
* core: vm: sqlvm: add built-in function BLOCK_HASH()Meng-Ying Yang2019-05-064-1/+173
* core: vm: sqlvm: add opFuncMeng-Ying Yang2019-05-066-2/+59
* core: vm: sqlvm: add opNegMeng-Ying Yang2019-05-065-0/+248
* core: vm: sqlvm: add opConcatMeng-Ying Yang2019-05-065-5/+200
* core: vm: sqlvm: add opRangeMeng-Ying Yang2019-05-065-0/+318
* core: vm: sqlvm: add opCutMeng-Ying Yang2019-05-065-0/+462
* core: vm: sqlvm: process string before renderingMeng-Ying Yang2019-05-063-1971/+1375
* sqlvm: common: replace table/index name with TableRef/IndexRefyenlin.lai2019-05-064-44/+69
* sqlvm: common: refine StateDB/Storageyenlin.lai2019-05-066-54/+44
* sqlvm: common: add Reader/Writer for Storageyenlin.lai2019-05-062-0/+176
* sqlvm: common: add some shared methods on Storage structyenlin.lai2019-05-064-15/+538
* core: vm: sqlvm: ast: decimal decode for boolJhih-Ming Huang2019-05-062-1/+17
* core: sqlvm: common: fix decimal limit valuesMeng-Ying Yang2019-05-062-5/+11
* core: vm: sqlvm: ast: copy data before decimal decodewmin02019-05-061-0/+2
* core: vm: sqlvm: schema: column rlp does not contain offset fieldswmin02019-05-061-2/+2
* core: vm: sqlvm: ast: fix unsigned get type error codewmin02019-05-061-1/+1
* core: vm: sqlvm: add jump tableMeng-Ying Yang2019-05-062-3/+27
* core: vm: sqlvm: add op testcases with templateMeng-Ying Yang2019-05-066-9/+6207
* core: vm: sqlvm: opcodes and basic structsMeng-Ying Yang2019-05-066-17/+1570
* core: vm: sqlvm: update op codeJhih-Ming Huang2019-05-061-87/+2
* core: vm: sqlvm: runtime: opLoad load fixed bytes and address in bytesJhih-Ming Huang2019-05-065-23/+15
* vm: sqlvm: refine after updating dexon-foundation/decimalyenlin.lai2019-05-064-19/+7
* misc: replace shopspring/decimal with our forkyenlin.lai2019-05-0610-10/+12
* core: vm: sqlvm: schema: make foreign key constraints a sliceTing-Wei Lan2019-05-063-17/+52
* core: vm: sqlvm: add a descriptor field to IdentifierNodeTing-Wei Lan2019-05-062-0/+51
* core: vm: sqlvm: support SQL three-valued logic on ASTTing-Wei Lan2019-05-065-390/+567
* core: vm: sqlvm: ast: rename DataTypeUnknown to DataTypePendingTing-Wei Lan2019-05-063-14/+19
* core: vm: sqlvm: ast: rename TestSizeTing-Wei Lan2019-05-061-1/+1
* core: vm: sqlvm: ast: don't calculate min and max values on demandTing-Wei Lan2019-05-063-57/+76
* core: vm: sqlvm: ast: make DataTypeDecode a method of DataTypeTing-Wei Lan2019-05-063-30/+19
* core: vm: sqlvm: ast: rename tests for DataType encoding or decodingTing-Wei Lan2019-05-061-31/+31
* core: vm: sqlvm: ast: return error messages from GetTypeTing-Wei Lan2019-05-064-45/+85
* core: vm: sqlvm: schema: move methods of DataTypeMajorTing-Wei Lan2019-05-061-10/+10
* core: vm: sqlvm: schema: move Rest to the bottomTing-Wei Lan2019-05-061-1/+3
* core: vm: sqlvm: schema: unsigned integers can never be negativeTing-Wei Lan2019-05-061-2/+2
* core: vm: sqlvm: use common.HashLength instead of 32Ting-Wei Lan2019-05-063-9/+10
* core: vm: remain first byte, if it is not VM enum.Jhih-Ming Huang2019-05-061-3/+1
* core: vm: sqlvm: ast: implement decimal to uint64Jhih-Ming Huang2019-05-064-26/+82
* core: vm: sqlvm: runtime: implement opLoadJhih-Ming Huang2019-05-062-8/+510
* core: vm: sqlvm: common: storage: implement storage util functionsJhih-Ming Huang2019-05-063-1/+201
* core: vm: sqlvm: schema: implment get column field type and set offsetJhih-Ming Huang2019-05-062-2/+243
* core: vm: sqlvm: runtime: add loadRegister funcJhih-Ming Huang2019-05-062-1/+10
* core: vm: sqlvm: ast: add size func and move error code to errors.goJhih-Ming Huang2019-05-063-19/+69
* core: vm: sqlvm: types: fix encode bug when exponent is negative (#270)yenlinlai2019-05-062-4/+10
* core: vm: sqlvm: schema: add structs to identify an object in a schemaTing-Wei Lan2019-05-061-0/+26
* core: vm: sqlvm: schema: mark if an index are referenced by foreign keysTing-Wei Lan2019-05-061-0/+36
* core: vm: sqlvm: schema: reorder fields and enumsTing-Wei Lan2019-05-061-6/+19
* core: vm: sqlvm: schema: drop pointers from slicesTing-Wei Lan2019-05-062-9/+9
* core: vm: sqlvm: parser: check if a number literal is an integerTing-Wei Lan2019-05-062-976/+1045
* core: vm: sqlvm: make a common interface for statementsTing-Wei Lan2019-05-065-1622/+2281
* core: vm: sqlvm: errors: remove token fieldTing-Wei Lan2019-05-065-474/+440
* core: vm: fix typoTing-Wei Lan2019-05-061-1/+1
* remove dexon/crypto/sha3 pkg.Jhih-Ming Huang2019-05-063-7/+8
* core: vm: sqlvm: add shared variables (#228)Meng-Ying Yang2019-05-063-11/+19
* core: vm: sqlvm: add ESCAPE grammarwmin02019-05-064-653/+768
* core: vm: sqlvm: errors: add length fieldTing-Wei Lan2019-05-065-442/+484
* core: vm: sqlvm: limit the depth of AST to 1024Ting-Wei Lan2019-05-063-7/+50
* core: vm: sqlvm: parser: move generated code to internal packageTing-Wei Lan2019-05-065-1565/+1585
* core: vm: sqlvm: ast: use non-empty interfaces in DataType{En,De}codeTing-Wei Lan2019-05-062-80/+34
* core: vm: sqlvm: errors: fix typoTing-Wei Lan2019-05-061-1/+1
* core: vm: sqlvm: parser: don't use @, #, $ in unquoted identifiersTing-Wei Lan2019-05-062-35/+34
* core: sqlvm: schema: define type for table/column/index/sequence sizeyenlin.lai2019-05-062-5/+17
* core: vm: sqlvm: ast: handle error in AST printerTing-Wei Lan2019-05-062-33/+63
* core: vm: sqlvm: fill source code position in AST nodesTing-Wei Lan2019-05-067-1141/+1510
* core: vm: sqlvm: ast: use pointer receiversTing-Wei Lan2019-05-061-89/+89
* core: vm: sqlvm: ast: remove pointer indicator in printer outputTing-Wei Lan2019-05-061-5/+4
* core: vm: sqlvm: check if a number is a valid addressTing-Wei Lan2019-05-065-334/+312
* core: vm: sqlvm: introduce interfaces for AST nodesTing-Wei Lan2019-05-069-1704/+2956
* core: vm: sqlvm: runtime entrypoing error handlingMeng-Ying Yang2019-05-063-5/+14
* core: vm: sqlvm: parser: toDecimal handle .0wmin02019-05-062-0/+4
* core: rebase dev and fix lintJhih-Ming Huang2019-05-069-4414/+25
* core: vm: sqlvm: types support data rangeMeng-Ying Yang2019-05-062-0/+82
* core: vm: sqlvm: export instruction's member (#197)JM2019-05-062-6/+6
* core: vm: sqlvm: revert Tuple structure (#193)JM2019-05-061-4/+5
* core: vm: sqlvm: modify Tuple.Data.Value typeJhih-Ming Huang2019-05-061-7/+3
* core: vm: sqlvm: shared interfaces and paramsJhih-Ming Huang2019-05-066-0/+245
* core: vm: sqlvm: add schema define and implement rlp serializationwmin02019-05-064-42/+310
* core: vm: sqlvm: ast: add encoder/decoder for decimal to byteswmin02019-05-062-11/+196
* core: vm: sqlvm: ast: data type encoder and decoderwmin02019-05-062-0/+244
* core: vm: sqlvm: ast: don't hardcode output and indent in PrintASTTing-Wei Lan2019-05-062-26/+35
* core: vm: sqlvm: process non-UTF-8 input and escape sequencesTing-Wei Lan2019-05-068-337/+579
* core: vm: sqlvm: parser: properly handle errorsTing-Wei Lan2019-05-066-1242/+1637
* core: vm: sqlvm: remove optional interface and add print tag for detailwmin02019-05-063-99/+49
* core: vm: sqlvm: move AST and parser to their own packagesTing-Wei Lan2019-05-068-1837/+2010
* core: vm: sqlvm: add a tool to run gofmt on pigeon sourcesTing-Wei Lan2019-05-061-0/+253
* core: vm: sqlvm: add sql language parser prototypingwmin02019-05-066-0/+8899
* core: vm: vm interface (#164)JM2019-05-0613-68/+712
* core: vm: extract stateDB and contract outjm2019-05-0624-394/+459
* core: vm: refactor file structurejm2019-05-0658-839/+5250
* core: vm: implement transferNodeOwnershipByFoundation (#399)v1.0.1Wei-Ning Huang2019-04-263-0/+93
* core, rawdb, dex: improve gov state for syncing (#393)Sonic2019-04-244-3/+105
* core: update mainnet genesis allocWei-Ning Huang2019-04-231-1/+1
* core: update mainnet genesis alloc (#389)Wei-Ning Huang2019-04-231-1/+1
* core: update mainnet genesis alloc (#384)Wei-Ning Huang2019-04-221-1/+1
* core: vm: add sanity check for updateConfiguration (#383)Wei-Ning Huang2019-04-221-0/+12
* core: optimize verify header (#381)Jimmy Hu2019-04-221-11/+76
* core: only verify the last tsig of header chain (#380)Jimmy Hu2019-04-201-6/+13
* core: vm: fix node offset during transfer (#377)Wei-Ning Huang2019-04-192-13/+9
* core: mainnet genesis allocation (#375)Wei-Ning Huang2019-04-181-1/+1
* core: vm: add withdrawable (#373)Jimmy Hu2019-04-183-15/+66
* core: vm: refine panic flow (#372)Wei-Ning Huang2019-04-171-15/+7
* core: update mainnet genesis allocation data and config (#369)Wei-Ning Huang2019-04-162-2/+2
* core: vm: clearDKG in resetDKG (#368)Jimmy Hu2019-04-161-0/+8
* core: vm: fix emitReported (#367)Wei-Ning Huang2019-04-161-6/+15
* core: vm: prevent setting owner to blackhole (#366)Jimmy Hu2019-04-162-1/+19
* core: implement DKG success (#362)Jimmy Hu2019-04-154-32/+215
* core: add reset to dkg private key db (#355)Jimmy Hu2019-04-111-8/+18
* fixup! Change import go github.com/dexon-foundation/dexonJhih-Ming Huang2019-04-102-2/+2
* core: vm: improve MPK reverse lookup performanceWei-Ning Huang2019-04-103-82/+92
* travis, appveyor, Dockerfile: upgrade to Go 1.12Samuel Marks2019-04-091-1/+1
* core: fix genesis timestamp (#338)Jimmy Hu2019-04-091-4/+4
* core: update mainnet and testnet config and genesis alloc (#337)Wei-Ning Huang2019-04-091-2/+4
* core: vm: cache GPK to prevent DoS (#335)Wei-Ning Huang2019-04-091-1/+18
* core: add cache for DKG MPK and complaint (#334)Wei-Ning Huang2019-04-092-36/+90
* core: vm: fineFailStopDKG if MPK not registered (#329)Jimmy Hu2019-04-092-12/+29
* core: vm: fix fineFailStopDKG (#328)Jimmy Hu2019-04-091-1/+1
* dexcon: correctly fine DKGSet for not producing blocks (#325)Wei-Ning Huang2019-04-091-19/+27
* core: vm: implement node public key replacement (#324)Wei-Ning Huang2019-04-093-1/+102
* vendor: sync to latest core (#320)Jimmy Hu2019-04-091-4/+4
* core: vm: clear DKG the right way (#319)Jimmy Hu2019-04-091-1/+1
* core/vm: resetDKG if ttoo less qualified (#318)Jimmy Hu2019-04-091-1/+9
* core: vm: make fail stop fine value configurable (#312)Wei-Ning Huang2019-04-093-55/+92
* dex: rebuild connection if dkg reset, core/vm: fix gov (#308)Jimmy Hu2019-04-092-0/+16
* core: vm: update set size on node info change (#307)Wei-Ning Huang2019-04-091-8/+4
* core: merge notarySet and DKGSet (#265)Jimmy Hu2019-04-094-97/+27
* core: fix finalize logic (#302)Jimmy Hu2019-04-091-4/+0
* core: set extended round block reward to zero (#298)Wei-Ning Huang2019-04-092-1/+66
* core: vm: fix DKG reset (#296)Wei-Ning Huang2019-04-092-23/+26
* core/vm: remove round from addDKG functions (#279)Jimmy Hu2019-04-095-129/+93
* core: vm: deny duplicate public key from registering (#289)Wei-Ning Huang2019-04-092-1/+20
* core: vm: pay fine to governance owner and trigger set size recalculation (#288)Wei-Ning Huang2019-04-091-1/+5
* consensus: dexcon: disqualify dead node (#280)Wei-Ning Huang2019-04-094-39/+230
* core: check coinbase for empty block (#282)Jimmy Hu2019-04-091-6/+13
* core: vm: emit event when transfering owner (#277)Wei-Ning Huang2019-04-093-0/+48
* core: fix headerchain coinbase validationWei-Ning Huang2019-04-091-2/+7
* core: vm: automatically calculate notary set size (#276)Wei-Ning Huang2019-04-093-10/+95
* core: vm: add extra checks to prevent DKG spamming (#272)Wei-Ning Huang2019-04-094-62/+177
* core: vm: fix naming consistencyWei-Ning Huang2019-04-092-11/+11
* core: check reset of dkg types when adding (#268)Jimmy Hu2019-04-091-0/+16
* core: vm: reorder minGasPriceLocWei-Ning Huang2019-04-091-1/+1
* core: fill in genesis timstamp and remove dMoment from protocol handshake (#263)Wei-Ning Huang2019-04-092-1/+14
* dex: implement recovery mechanism (#258)Wei-Ning Huang2019-04-092-5/+5
* core: vm: group min gas price with related state variables (#257)Wei-Ning Huang2019-04-093-16/+16
* core: vm: implement transfer node ownership (#255)Wei-Ning Huang2019-04-093-9/+83
* core: vm: create new oracle contract instance in each call (#251)Wei-Ning Huang2019-04-093-6/+16
* vendor: sync to latest core (#253)Jimmy Hu2019-04-092-3/+56
* core/vm: use core util to get threshold of tsig (#250)Jimmy Hu2019-04-091-3/+4
* params: update testnet config to 40 nodesJimmy Hu2019-04-091-1/+1
* vendor: sync to latest core and fix conflictJimmy Hu2019-04-091-2/+2
* core: touch verifierCache at 90% of round (#247)Jimmy Hu2019-04-091-2/+35
* app: new app test flow (#244)bojie2019-04-096-65/+8
* core: vm: remove delegation mechanism (#245)Wei-Ning Huang2019-04-096-997/+263
* core: vm: expose CRSRound and DKGRound and fix consistency (#236)Wei-Ning Huang2019-04-093-60/+118
* app: refactor app run as single chain (#226)bojie2019-04-091-146/+14
* core: fix dkgJimmy Hu2019-04-091-12/+47
* params: Change taipei to 40 nodes (#227)Jimmy Hu2019-04-091-1/+1
* dex: fill in correct coinbase address (#223)Wei-Ning Huang2019-04-091-0/+9
* params: Update config (#224)Jimmy Hu2019-04-091-1/+1
* core: vm: validate addDKGMasterPublicKey caller properly (#220)Wei-Ning Huang2019-04-093-60/+59
* core: vm: flatten governanceWei-Ning Huang2019-04-0910-524/+523
* core: sync to latest core (#214)Jimmy Hu2019-04-093-7/+20
* params: add Yilan network (#207)Mission Liao2019-04-093-0/+25
* core: Fixed gas price (#205)Jimmy Hu2019-04-096-2/+96
* core: set oracle contract's code (#209)Sonic2019-04-092-1/+6
* fee: fix wrong gas used (#208)bojie2019-04-091-0/+2
* core: Remove K, Phi and NumChains from Governance (#198)Jimmy Hu2019-04-095-174/+37
* copy testnet config to taipeiJimmy Hu2019-04-091-1/+1
* core/vm: fix getConfigState (#203)Jimmy Hu2019-04-091-4/+3
* vm: reset DKG (#190)Jimmy Hu2019-04-094-70/+562
* transaction: use all transaction gas to reduce attack intention (#180)bojie2019-04-091-1/+25
* core/vm: modify Withdrawn event and add NodeRemoved event (#179)Jimmy Hu2019-04-092-4/+31
* core: vm: refactor governance and add node info oracle (#174)Wei-Ning Huang2019-04-095-682/+953
* core: vm: Add amount to undelegate event (#176)Jimmy Hu2019-04-092-4/+9
* core: vm: more change to the randomness calculation (#175)Wei-Ning Huang2019-04-091-5/+5
* core: vm: modify randomness calculation algorithm (#173)Wei-Ning Huang2019-04-092-3/+7
* consensus: dexcon: snapshot round height when finalizing block (#170)Wei-Ning Huang2019-04-093-106/+0
* core, dex/downloader: polish headers verification and blocks insertion logic ...Sonic2019-04-098-509/+614
* travis: re-encrypt GCP credential file (#165)bojie2019-04-091-1/+1
* params: update testnet genesis and dMomentWei-Ning Huang2019-04-091-2/+1
* core, dex: use block hash as witness data (#160)Sonic2019-04-095-50/+17
* blockchain: add mutex lock to prevent fork (#159)bojie2019-04-091-1/+6
* core: sync to latest core (#158)Jimmy Hu2019-04-091-1/+1
* app: fix reward bug with empty block (#155)bojie2019-04-091-3/+2
* app: remove pending block logic (#149)bojie2019-04-096-296/+197
* core: update taipei allocJimmy Hu2019-04-091-1/+1
* params: update genesis configWei-Ning Huang2019-04-093-16/+21
* consensus: implement DEXON cryptoeconomics v4.0 (#145)Wei-Ning Huang2019-04-095-57/+153
* core: vm: add totalSupply and totalStaked in the governance contract (#144)Wei-Ning Huang2019-04-094-35/+144
* core: vm: move governance abi to a separate file (#143)Wei-Ning Huang2019-04-092-1053/+1074
* core: vm: emit events for more governance actions (#142)Wei-Ning Huang2019-04-091-0/+145
* core: update testnet genesis_allocJimmy Hu2019-04-091-1/+1
* core: update taipei network genesis allocWei-Ning Huang2019-04-091-1/+1
* core: fix corner case when initializing round height (#134)Sonic2019-04-091-1/+1
* app: implement logic for prepare/verify correctly when chain number change (#...bojie2019-04-095-19/+122
* core: vm: implement byzantine reporting mechanism (#128)Wei-Ning Huang2019-04-092-48/+578
* params: update taipei genesis config (#130)Wei-Ning Huang2019-04-091-1/+1
* core, indexer, dex: fix DexconApp block deliver after synced (#122)Sonic2019-04-091-5/+6
* core: fix vm wrong round height context (#124)Sonic2019-04-091-0/+45
* core: update taipei testnet genesis config and alloc (#119)Wei-Ning Huang2019-04-091-1/+1
* core: vm: add missing unittests for nodes/delegators (#116)Wei-Ning Huang2019-04-092-3/+13
* params: update taipei testnet genesis and config (#113)Wei-Ning Huang2019-04-092-3/+5
* core/vm: Add fine to governance. (#107)Jimmy Hu2019-04-092-132/+292
* core: add database/sql support for more types (#102)Meng-Ying Yang2019-04-092-8/+112
* vendor: sync DEXON core and fix conflicts/missings (#101)Mission Liao2019-04-091-4/+6
* core/types: SigCache with a limited size (#98)Jimmy Hu2019-04-092-21/+33
* core, dex, internal: block proposer syncing (first iteration) (#96)Sonic2019-04-092-57/+2
* core: vm: Add `MPKReady` to governance (#97)Jimmy Hu2019-04-092-0/+174
* core/vm: fix nodes method in governanceJimmy Hu2019-04-091-1/+1
* dex: remove duplicate declaration of WitnessData (#92)Wei-Ning Huang2019-04-092-7/+0
* core: vm: add undelegate fund lockup mechanism (#94)Wei-Ning Huang2019-04-093-41/+236
* core: update genesis allocJimmy Hu2019-04-091-1/+1
* vendor: sync to latest core (#91)Mission Liao2019-04-093-1/+108
* cache: prune cache correctly (#88)bojie2019-04-091-2/+1
* core: governance interface should return correct DKG master public keys (#85)Wei-Ning Huang2019-04-092-24/+21
* core, dex: polish sync (#75)Sonic2019-04-091-0/+3
* core, dex: Timeout for prepare payload (#72)Jimmy Hu2019-04-092-8/+13
* app: add app test case and benchmark (#66)bojie2019-04-093-13/+268
* dex: verify header that imported from fetcher (#68)Sonic2019-04-091-0/+4
* Fix lintWei-Ning Huang2019-04-092-3/+3
* core: Update genesis alloc. (#63)Jimmy Hu2019-04-091-1/+1
* core: panic if fork found when inserting header chain (#61)Wei-Ning Huang2019-04-091-1/+6
* tests: fix testsWei-Ning Huang2019-04-091-1/+10
* dex: fix testsWei-Ning Huang2019-04-091-0/+2
* core: fix testsWei-Ning Huang2019-04-092-4/+5
* core: vm: fix power2 table calculation (#50)Wei-Ning Huang2019-04-091-3/+3
* core: commit states at snapshot height (#49)Sonic2019-04-091-2/+7
* core: add Taipei testnet (#47)Wei-Ning Huang2019-04-091-1/+13
* core: various changes on tps tuning (#46)Wei-Ning Huang2019-04-095-11/+14
* core: increase tx pool sizeWei-Ning Huang2019-04-091-4/+4
* core, dex, downloader: refactor governanceSonic2019-04-092-25/+61
* core, dex, dex/downloader: restore insertChain to upstream versionSonic2019-04-092-20/+18
* dex: implement downloader for dexSonic2019-04-091-0/+5
* core: implement insert chain, headerchain logicSonic2019-04-093-0/+521
* core: support extracting governance state from state trieSonic2019-04-093-0/+73
* core: add global signature cache and improve concurrency (#42)Wei-Ning Huang2019-04-094-53/+86
* core, dex: Batch process touchSender. Lower priority for tx. (#41)Jimmy Hu2019-04-091-13/+19
* dex: add BlockDB, which implements consensus core's blockdb.BlockDatabase (#36)Sonic2019-04-092-0/+58
* core: vm: change offset type to int256Wei-Ning Huang2019-04-091-2/+7
* governance: implement delegate/undelegate function and add tests (#33)Wei-Ning Huang2019-04-094-111/+1152