diff --git a/astrobwt/astrobwt.go b/astrobwt/astrobwt.go index cabbf38d..00767588 100644 --- a/astrobwt/astrobwt.go +++ b/astrobwt/astrobwt.go @@ -1,11 +1,14 @@ package astrobwt -import "fmt" -import "unsafe" -import "crypto/rand" -import "encoding/binary" -import "golang.org/x/crypto/sha3" -import "golang.org/x/crypto/salsa20/salsa" +import ( + "crypto/rand" + "encoding/binary" + "fmt" + "unsafe" + + "golang.org/x/crypto/salsa20/salsa" + "golang.org/x/crypto/sha3" +) // see here to improve the algorithms more https://github.com/y-256/libdivsufsort/blob/wiki/SACA_Benchmarks.md diff --git a/astrobwt/astrobwt_fast/astrobwt_optimized.go b/astrobwt/astrobwt_fast/astrobwt_optimized.go index b215121a..25d7f5d9 100644 --- a/astrobwt/astrobwt_fast/astrobwt_optimized.go +++ b/astrobwt/astrobwt_fast/astrobwt_optimized.go @@ -1,12 +1,15 @@ package astrobwt_fast -import "unsafe" -import "hash" -import "sync" -import "crypto/rand" -import "encoding/binary" -import "golang.org/x/crypto/sha3" -import "golang.org/x/crypto/salsa20/salsa" +import ( + "crypto/rand" + "encoding/binary" + "hash" + "sync" + "unsafe" + + "golang.org/x/crypto/salsa20/salsa" + "golang.org/x/crypto/sha3" +) const stage1_length uint32 = 9973 // it is a prime diff --git a/astrobwt/astrobwt_fast/astrobwt_optimized_test.go b/astrobwt/astrobwt_fast/astrobwt_optimized_test.go index 0e324dc9..df71dfa4 100644 --- a/astrobwt/astrobwt_fast/astrobwt_optimized_test.go +++ b/astrobwt/astrobwt_fast/astrobwt_optimized_test.go @@ -1,14 +1,14 @@ package astrobwt_fast -import "crypto/rand" +import ( + "crypto/rand" + "testing" -//import "strings" -import "testing" + "github.com/deroproject/derohe/astrobwt" +) //import "strings" //import "encoding/hex" -import "github.com/deroproject/derohe/astrobwt" - func TestPOW_optimized_v1(t *testing.T) { scratch := Pool.Get().(*ScratchData) diff --git a/astrobwt/astrobwt_test.go b/astrobwt/astrobwt_test.go index eebe6ee7..e47ac44e 100644 --- a/astrobwt/astrobwt_test.go +++ b/astrobwt/astrobwt_test.go @@ -1,8 +1,10 @@ package astrobwt -import "time" -import "math/rand" -import "testing" +import ( + "math/rand" + "testing" + "time" +) // see https://www.geeksforgeeks.org/burrows-wheeler-data-transform-algorithm/ // see https://www.geeksforgeeks.org/suffix-tree-application-4-build-linear-time-suffix-array/ diff --git a/astrobwt/astrobwtv3/endian_big.go b/astrobwt/astrobwtv3/endian_big.go index b70a06a3..f679895f 100644 --- a/astrobwt/astrobwtv3/endian_big.go +++ b/astrobwt/astrobwtv3/endian_big.go @@ -3,6 +3,8 @@ package astrobwtv3 +import "unsafe" + const LittleEndian = false const BigEndian = true diff --git a/astrobwt/astrobwtv3/endian_little.go b/astrobwt/astrobwtv3/endian_little.go index 477200c9..a021aa3e 100644 --- a/astrobwt/astrobwtv3/endian_little.go +++ b/astrobwt/astrobwtv3/endian_little.go @@ -3,8 +3,10 @@ package astrobwtv3 -import "unsafe" -import "math/bits" +import ( + "math/bits" + "unsafe" +) const LittleEndian = true const BigEndian = false diff --git a/astrobwt/astrobwtv3/optimized_sort.go b/astrobwt/astrobwtv3/optimized_sort.go index db07394d..c75d931c 100644 --- a/astrobwt/astrobwtv3/optimized_sort.go +++ b/astrobwt/astrobwtv3/optimized_sort.go @@ -3,8 +3,10 @@ package astrobwtv3 //import "os" //import "fmt" -import "sync" -import _ "encoding/binary" +import ( + _ "encoding/binary" + "sync" +) // see here to improve the algorithms more https://github.com/y-256/libdivsufsort/blob/wiki/SACA_Benchmarks.md diff --git a/astrobwt/astrobwtv3/pow.go b/astrobwt/astrobwtv3/pow.go index 50f44d7e..6604bfce 100644 --- a/astrobwt/astrobwtv3/pow.go +++ b/astrobwt/astrobwtv3/pow.go @@ -1,19 +1,19 @@ package astrobwtv3 -import "fmt" +import ( + "crypto/rand" + "encoding/binary" + "fmt" + "math/bits" -//import "os" -import "math/bits" -import "encoding/binary" -import "crypto/rand" - -import "github.com/dchest/siphash" -import "github.com/cespare/xxhash" + "github.com/cespare/xxhash" + "github.com/dchest/siphash" + "github.com/minio/sha256-simd" + "github.com/segmentio/fasthash/fnv1a" + "golang.org/x/crypto/salsa20/salsa" +) //import "os" //import "github.com/minio/highwayhash" -import "github.com/minio/sha256-simd" -import "github.com/segmentio/fasthash/fnv1a" -import "golang.org/x/crypto/salsa20/salsa" var _ = fmt.Sprintf var __ = rand.Read diff --git a/astrobwt/astrobwtv3/pow_test.go b/astrobwt/astrobwtv3/pow_test.go index 02947baf..b8f7bf88 100644 --- a/astrobwt/astrobwtv3/pow_test.go +++ b/astrobwt/astrobwtv3/pow_test.go @@ -1,10 +1,12 @@ package astrobwtv3 -import "os" -import "fmt" -import "math/rand" -import "testing" -import "encoding/hex" +import ( + "encoding/hex" + "fmt" + "math/rand" + "os" + "testing" +) var cases [][]byte diff --git a/astrobwt/astrobwtv3/random_code_gen.go b/astrobwt/astrobwtv3/random_code_gen.go index 8f45a7ef..e36ab833 100644 --- a/astrobwt/astrobwtv3/random_code_gen.go +++ b/astrobwt/astrobwtv3/random_code_gen.go @@ -6,10 +6,12 @@ package main -import "fmt" -import "math/rand" -import "os" -import "regexp" +import ( + "fmt" + "math/rand" + "os" + "regexp" +) var random_lines = []string{ "step_3[i] += step_3[i] // +", diff --git a/astrobwt/astrobwtv3/sa_fast.go b/astrobwt/astrobwtv3/sa_fast.go index 9e2feb2d..c96a642e 100644 --- a/astrobwt/astrobwtv3/sa_fast.go +++ b/astrobwt/astrobwtv3/sa_fast.go @@ -1,12 +1,15 @@ package astrobwtv3 -import "unsafe" -import "hash" -import "sync" +import ( + "encoding/binary" + "hash" + "sync" + "unsafe" + + "github.com/minio/sha256-simd" +) //import "fmt" -import "encoding/binary" -import "github.com/minio/sha256-simd" const MAX_LENGTH uint32 = (256 * 384) - 1 // this is the maximum diff --git a/block/block.go b/block/block.go index 7fd32ae5..3b284810 100644 --- a/block/block.go +++ b/block/block.go @@ -16,21 +16,21 @@ package block -import "fmt" - -import "time" -import "bytes" -import "strings" -import "runtime/debug" -import "encoding/hex" -import "encoding/binary" - -import "golang.org/x/crypto/sha3" - -import "github.com/deroproject/derohe/cryptography/crypto" +import ( + "bytes" + "encoding/binary" + "encoding/hex" + "fmt" + "runtime/debug" + "strings" + "time" + + "github.com/deroproject/derohe/cryptography/crypto" + "github.com/deroproject/derohe/transaction" + "golang.org/x/crypto/sha3" +) //import "github.com/deroproject/derosuite/config" -import "github.com/deroproject/derohe/transaction" type Block struct { Major_Version uint64 `json:"major_version"` diff --git a/block/block_test.go b/block/block_test.go index deb759b0..ce0396fd 100644 --- a/block/block_test.go +++ b/block/block_test.go @@ -17,10 +17,12 @@ package block //import "bytes" -import "testing" -import "encoding/hex" +import ( + "encoding/hex" + "testing" -import "github.com/deroproject/derohe/config" + "github.com/deroproject/derohe/config" +) //import "github.com/deroproject/derohe/crypto" diff --git a/block/miniblock.go b/block/miniblock.go index f89f0162..73d66d6d 100644 --- a/block/miniblock.go +++ b/block/miniblock.go @@ -16,19 +16,20 @@ package block -import "fmt" -import "hash" -import "sync" -import "bytes" -import "strings" -import "encoding/binary" - -import "golang.org/x/crypto/sha3" - -import "github.com/deroproject/derohe/cryptography/crypto" -import "github.com/deroproject/derohe/astrobwt" -import "github.com/deroproject/derohe/astrobwt/astrobwtv3" -import "github.com/deroproject/derohe/globals" +import ( + "bytes" + "encoding/binary" + "fmt" + "hash" + "strings" + "sync" + + "github.com/deroproject/derohe/astrobwt" + "github.com/deroproject/derohe/astrobwt/astrobwtv3" + "github.com/deroproject/derohe/cryptography/crypto" + "github.com/deroproject/derohe/globals" + "golang.org/x/crypto/sha3" +) const MINIBLOCK_SIZE = 48 diff --git a/block/miniblock_test.go b/block/miniblock_test.go index e50dbb93..f00cd622 100644 --- a/block/miniblock_test.go +++ b/block/miniblock_test.go @@ -16,9 +16,11 @@ package block -import "bytes" -import "testing" -import "crypto/rand" +import ( + "bytes" + "crypto/rand" + "testing" +) func Test_blockmini_serde(t *testing.T) { diff --git a/block/miniblockdag.go b/block/miniblockdag.go index df164530..01837163 100644 --- a/block/miniblockdag.go +++ b/block/miniblockdag.go @@ -16,9 +16,11 @@ package block -import "fmt" -import "sort" -import "sync" +import ( + "fmt" + "sort" + "sync" +) type MiniBlocksCollection struct { Collection map[MiniBlockKey][]MiniBlock @@ -38,7 +40,7 @@ func (c *MiniBlocksCollection) PurgeHeight(height int64) (purge_count int) { c.Lock() defer c.Unlock() - for k, _ := range c.Collection { + for k := range c.Collection { if k.Height <= uint64(height) { purge_count++ delete(c.Collection, k) diff --git a/blockchain/block_verify.go b/blockchain/block_verify.go index c9ca4a3c..fcba39f7 100644 --- a/blockchain/block_verify.go +++ b/blockchain/block_verify.go @@ -16,10 +16,12 @@ package blockchain -import "fmt" +import ( + "fmt" -import "github.com/deroproject/derohe/cryptography/crypto" -import "github.com/deroproject/derohe/transaction" + "github.com/deroproject/derohe/cryptography/crypto" + "github.com/deroproject/derohe/transaction" +) // used to verify complete block which contains expanded transaction type cbl_verify struct { diff --git a/blockchain/blockchain.go b/blockchain/blockchain.go index b4db2018..85ec32d5 100644 --- a/blockchain/blockchain.go +++ b/blockchain/blockchain.go @@ -21,38 +21,36 @@ package blockchain // We must not call any packages that can call panic // NO Panics or FATALs please -import "os" -import "fmt" -import "sync" -import "time" -import "bytes" -import "runtime/debug" -import "strings" - -import "runtime" -import "context" -import "golang.org/x/crypto/sha3" -import "golang.org/x/sync/semaphore" -import "github.com/go-logr/logr" - -import "sync/atomic" - -import "github.com/hashicorp/golang-lru" - -import "github.com/deroproject/derohe/rpc" -import "github.com/deroproject/derohe/config" -import "github.com/deroproject/derohe/cryptography/crypto" -import "github.com/deroproject/derohe/errormsg" -import "github.com/deroproject/derohe/metrics" - -import "github.com/deroproject/derohe/dvm" -import "github.com/deroproject/derohe/block" -import "github.com/deroproject/derohe/globals" -import "github.com/deroproject/derohe/transaction" -import "github.com/deroproject/derohe/blockchain/mempool" -import "github.com/deroproject/derohe/blockchain/regpool" - -import "github.com/deroproject/graviton" +import ( + "bytes" + "context" + "fmt" + "os" + "runtime" + "runtime/debug" + "strings" + "sync" + "sync/atomic" + "time" + + "github.com/go-logr/logr" + "golang.org/x/crypto/sha3" + "golang.org/x/sync/semaphore" + + "github.com/deroproject/derohe/block" + "github.com/deroproject/derohe/blockchain/mempool" + "github.com/deroproject/derohe/blockchain/regpool" + "github.com/deroproject/derohe/config" + "github.com/deroproject/derohe/cryptography/crypto" + "github.com/deroproject/derohe/dvm" + "github.com/deroproject/derohe/errormsg" + "github.com/deroproject/derohe/globals" + "github.com/deroproject/derohe/metrics" + "github.com/deroproject/derohe/rpc" + "github.com/deroproject/derohe/transaction" + "github.com/deroproject/graviton" + lru "github.com/hashicorp/golang-lru" +) // all components requiring access to blockchain must use , this struct to communicate // this structure must be update while mutex diff --git a/blockchain/difficulty.go b/blockchain/difficulty.go index 9be1c0aa..051a002f 100644 --- a/blockchain/difficulty.go +++ b/blockchain/difficulty.go @@ -16,14 +16,16 @@ package blockchain -import "fmt" -import "math" -import "math/big" - -import "github.com/deroproject/derohe/block" -import "github.com/deroproject/derohe/config" -import "github.com/deroproject/derohe/cryptography/crypto" -import "github.com/deroproject/derohe/globals" +import ( + "fmt" + "math" + "math/big" + + "github.com/deroproject/derohe/block" + "github.com/deroproject/derohe/config" + "github.com/deroproject/derohe/cryptography/crypto" + "github.com/deroproject/derohe/globals" +) var ( // bigZero is 0 represented as a big.Int. It is defined here to avoid diff --git a/blockchain/genesis.go b/blockchain/genesis.go index f984bb12..c9eed12b 100644 --- a/blockchain/genesis.go +++ b/blockchain/genesis.go @@ -16,12 +16,14 @@ package blockchain -import "fmt" -import "encoding/hex" +import ( + "encoding/hex" + "fmt" -import "github.com/deroproject/derohe/cryptography/crypto" -import "github.com/deroproject/derohe/block" -import "github.com/deroproject/derohe/globals" + "github.com/deroproject/derohe/block" + "github.com/deroproject/derohe/cryptography/crypto" + "github.com/deroproject/derohe/globals" +) // generates a genesis block func Generate_Genesis_Block() (bl block.Block) { diff --git a/blockchain/genesis_test.go b/blockchain/genesis_test.go index 00950a6e..218e247c 100644 --- a/blockchain/genesis_test.go +++ b/blockchain/genesis_test.go @@ -16,8 +16,10 @@ package blockchain -import "bytes" -import "testing" +import ( + "bytes" + "testing" +) //import "github.com/deroproject/derohe/block" diff --git a/blockchain/hardcoded_contracts.go b/blockchain/hardcoded_contracts.go index 07694c10..8a56dfd1 100644 --- a/blockchain/hardcoded_contracts.go +++ b/blockchain/hardcoded_contracts.go @@ -18,12 +18,14 @@ package blockchain // this file installs hard coded contracts -import _ "embed" - -import "github.com/deroproject/graviton" -import "github.com/deroproject/derohe/dvm" -import "github.com/deroproject/derohe/globals" -import "github.com/deroproject/derohe/cryptography/crypto" +import ( + _ "embed" + + "github.com/deroproject/derohe/cryptography/crypto" + "github.com/deroproject/derohe/dvm" + "github.com/deroproject/derohe/globals" + "github.com/deroproject/graviton" +) //go:embed hardcoded_sc/nameservice.bas var source_nameservice string diff --git a/blockchain/hardfork_core.go b/blockchain/hardfork_core.go index 8f2942dc..79569ca5 100644 --- a/blockchain/hardfork_core.go +++ b/blockchain/hardfork_core.go @@ -16,9 +16,11 @@ package blockchain -import "github.com/deroproject/derohe/block" -import "github.com/deroproject/derohe/config" -import "github.com/deroproject/derohe/globals" +import ( + "github.com/deroproject/derohe/block" + "github.com/deroproject/derohe/config" + "github.com/deroproject/derohe/globals" +) // the voting for hard fork works as follows // block major version remains contant, while block minor version contains the next hard fork number, diff --git a/blockchain/mempool/mempool.go b/blockchain/mempool/mempool.go index 15a21f75..bd20a0e8 100644 --- a/blockchain/mempool/mempool.go +++ b/blockchain/mempool/mempool.go @@ -16,18 +16,19 @@ package mempool -import "fmt" -import "sync" -import "sort" -import "time" -import "sync/atomic" - -import "github.com/go-logr/logr" - -import "github.com/deroproject/derohe/transaction" -import "github.com/deroproject/derohe/globals" -import "github.com/deroproject/derohe/metrics" -import "github.com/deroproject/derohe/cryptography/crypto" +import ( + "fmt" + "sort" + "sync" + "sync/atomic" + "time" + + "github.com/deroproject/derohe/cryptography/crypto" + "github.com/deroproject/derohe/globals" + "github.com/deroproject/derohe/metrics" + "github.com/deroproject/derohe/transaction" + "github.com/go-logr/logr" +) // this is only used for sorting and nothing else type TX_Sorting_struct struct { diff --git a/blockchain/mempool/mempool_test.go b/blockchain/mempool/mempool_test.go index df10b7b3..6db1a475 100644 --- a/blockchain/mempool/mempool_test.go +++ b/blockchain/mempool/mempool_test.go @@ -18,10 +18,12 @@ package mempool //import "fmt" //import "bytes" -import "testing" -import "encoding/hex" +import ( + "encoding/hex" + "testing" -import "github.com/deroproject/derohe/transaction" + "github.com/deroproject/derohe/transaction" +) // test the mempool interface with valid TX func Test_mempool(t *testing.T) { diff --git a/blockchain/miner_block.go b/blockchain/miner_block.go index fce2bdc0..0ce97967 100644 --- a/blockchain/miner_block.go +++ b/blockchain/miner_block.go @@ -16,30 +16,29 @@ package blockchain -import "fmt" -import "bytes" -import "sort" -import "sync" -import "runtime/debug" -import "encoding/binary" - -import "golang.org/x/xerrors" -import "golang.org/x/time/rate" -import "golang.org/x/crypto/sha3" +import ( + "bytes" + "encoding/binary" + "fmt" + "runtime/debug" + "sort" + "sync" + + "github.com/deroproject/derohe/block" + "github.com/deroproject/derohe/config" + "github.com/deroproject/derohe/cryptography/crypto" + "github.com/deroproject/derohe/errormsg" + "github.com/deroproject/derohe/globals" + "github.com/deroproject/derohe/rpc" + "github.com/deroproject/derohe/transaction" + "github.com/deroproject/graviton" + "golang.org/x/crypto/sha3" + "golang.org/x/time/rate" + "golang.org/x/xerrors" +) // this file creates the blobs which can be used to mine new blocks -import "github.com/deroproject/derohe/block" -import "github.com/deroproject/derohe/config" -import "github.com/deroproject/derohe/cryptography/crypto" -import "github.com/deroproject/derohe/globals" -import "github.com/deroproject/derohe/rpc" - -import "github.com/deroproject/derohe/errormsg" -import "github.com/deroproject/derohe/transaction" - -import "github.com/deroproject/graviton" - const TX_VALIDITY_HEIGHT = 11 // structure used to rank/sort blocks on a number of factors diff --git a/blockchain/miniblocks_consensus.go b/blockchain/miniblocks_consensus.go index 3f349cb4..7feaafdb 100644 --- a/blockchain/miniblocks_consensus.go +++ b/blockchain/miniblocks_consensus.go @@ -16,17 +16,15 @@ package blockchain -import "fmt" - -//import "time" - -import "encoding/binary" - -import "github.com/deroproject/derohe/block" -import "github.com/deroproject/derohe/config" -import "github.com/deroproject/derohe/cryptography/crypto" - -import "golang.org/x/crypto/sha3" +import ( + "encoding/binary" + "fmt" + + "github.com/deroproject/derohe/block" + "github.com/deroproject/derohe/config" + "github.com/deroproject/derohe/cryptography/crypto" + "golang.org/x/crypto/sha3" +) //import "time" // last miniblock must be extra checked for corruption/attacks func (chain *Blockchain) Verify_MiniBlocks_HashCheck(cbl *block.Complete_Block) (err error) { diff --git a/blockchain/prune_history.go b/blockchain/prune_history.go index 60d025a2..ba982376 100644 --- a/blockchain/prune_history.go +++ b/blockchain/prune_history.go @@ -22,15 +22,17 @@ package blockchain // the entire thing works cryptographically and thus everything is cryptographically verified // this function is the only one which does not work in append-only -import "os" -import "fmt" -import "math/big" -import "path/filepath" - -import "github.com/deroproject/derohe/config" -import "github.com/deroproject/graviton" -import "github.com/deroproject/derohe/block" -import "github.com/deroproject/derohe/globals" +import ( + "fmt" + "math/big" + "os" + "path/filepath" + + "github.com/deroproject/derohe/block" + "github.com/deroproject/derohe/config" + "github.com/deroproject/derohe/globals" + "github.com/deroproject/graviton" +) const CHUNK_SIZE = 100000 // write 100000 account chunks, actually we should be writing atleast 100,000 accounts diff --git a/blockchain/regpool/regpool.go b/blockchain/regpool/regpool.go index 1097546a..7808231d 100644 --- a/blockchain/regpool/regpool.go +++ b/blockchain/regpool/regpool.go @@ -16,20 +16,20 @@ package regpool -import "fmt" -import "sync" -import "time" -import "sync/atomic" - -import "encoding/hex" -import "encoding/json" - -import "github.com/go-logr/logr" - -import "github.com/deroproject/derohe/transaction" -import "github.com/deroproject/derohe/globals" -import "github.com/deroproject/derohe/metrics" -import "github.com/deroproject/derohe/cryptography/crypto" +import ( + "encoding/hex" + "encoding/json" + "fmt" + "sync" + "sync/atomic" + "time" + + "github.com/deroproject/derohe/cryptography/crypto" + "github.com/deroproject/derohe/globals" + "github.com/deroproject/derohe/metrics" + "github.com/deroproject/derohe/transaction" + "github.com/go-logr/logr" +) // this is only used for sorting and nothing else type TX_Sorting_struct struct { diff --git a/blockchain/regpool/regpool_test.go b/blockchain/regpool/regpool_test.go index 0fc7ecee..8323d77f 100644 --- a/blockchain/regpool/regpool_test.go +++ b/blockchain/regpool/regpool_test.go @@ -18,10 +18,12 @@ package regpool //import "fmt" //import "bytes" -import "testing" -import "encoding/hex" +import ( + "encoding/hex" + "testing" -import "github.com/deroproject/derohe/transaction" + "github.com/deroproject/derohe/transaction" +) // test the mempool interface with valid TX func Test_regpool(t *testing.T) { diff --git a/blockchain/store.go b/blockchain/store.go index 26969556..7af7383e 100644 --- a/blockchain/store.go +++ b/blockchain/store.go @@ -16,17 +16,18 @@ package blockchain -import "fmt" -import "math/big" -import "path/filepath" - -import "github.com/deroproject/derohe/globals" -import "github.com/deroproject/derohe/block" -import "github.com/deroproject/derohe/config" -import "github.com/deroproject/derohe/transaction" -import "github.com/deroproject/derohe/cryptography/crypto" - -import "github.com/deroproject/graviton" +import ( + "fmt" + "math/big" + "path/filepath" + + "github.com/deroproject/derohe/block" + "github.com/deroproject/derohe/config" + "github.com/deroproject/derohe/cryptography/crypto" + "github.com/deroproject/derohe/globals" + "github.com/deroproject/derohe/transaction" + "github.com/deroproject/graviton" +) // though these can be done within a single DB, these are separated for completely clarity purposes type storage struct { diff --git a/blockchain/storefs.go b/blockchain/storefs.go index f2a07ef7..7de38aba 100755 --- a/blockchain/storefs.go +++ b/blockchain/storefs.go @@ -18,15 +18,18 @@ package blockchain // this file implements a filesystem store which is used to store blocks/transactions directly in the file system -import "io" -import "os" -import "fmt" -import "strings" -import "io/ioutil" -import "math/big" -import "path/filepath" -import "encoding/hex" -import "github.com/deroproject/derohe/globals" +import ( + "encoding/hex" + "fmt" + "io" + "io/ioutil" + "math/big" + "os" + "path/filepath" + "strings" + + "github.com/deroproject/derohe/globals" +) type storefs struct { basedir string diff --git a/blockchain/storetopo.go b/blockchain/storetopo.go index f4ee3685..3d9bdba1 100644 --- a/blockchain/storetopo.go +++ b/blockchain/storetopo.go @@ -16,14 +16,16 @@ package blockchain -import "os" -import "fmt" -import "math" -import "path/filepath" -import "encoding/binary" - -import "github.com/deroproject/derohe/config" -import "github.com/deroproject/derohe/cryptography/crypto" +import ( + "encoding/binary" + "fmt" + "math" + "os" + "path/filepath" + + "github.com/deroproject/derohe/config" + "github.com/deroproject/derohe/cryptography/crypto" +) type TopoRecord struct { BLOCK_ID [32]byte diff --git a/blockchain/supply_test.go b/blockchain/supply_test.go index 1c677fa3..55ae77b3 100644 --- a/blockchain/supply_test.go +++ b/blockchain/supply_test.go @@ -16,8 +16,11 @@ package blockchain -import "testing" -import "github.com/deroproject/derohe/globals" +import ( + "testing" + + "github.com/deroproject/derohe/globals" +) func Test_Supply(t *testing.T) { diff --git a/blockchain/transaction_execute.go b/blockchain/transaction_execute.go index 2a3bb7b4..60cbe6b7 100644 --- a/blockchain/transaction_execute.go +++ b/blockchain/transaction_execute.go @@ -18,25 +18,27 @@ package blockchain // this file implements core execution of all changes to block chain homomorphically -import "fmt" -import "bufio" -import "strings" -import "strconv" -import "runtime/debug" -import "encoding/hex" -import "math/big" -import "golang.org/x/xerrors" - -import "github.com/deroproject/derohe/cryptography/crypto" -import "github.com/deroproject/derohe/cryptography/bn256" -import "github.com/deroproject/derohe/transaction" -import "github.com/deroproject/derohe/config" -import "github.com/deroproject/derohe/premine" -import "github.com/deroproject/derohe/globals" -import "github.com/deroproject/derohe/block" -import "github.com/deroproject/derohe/rpc" -import "github.com/deroproject/derohe/dvm" -import "github.com/deroproject/graviton" +import ( + "bufio" + "encoding/hex" + "fmt" + "math/big" + "runtime/debug" + "strconv" + "strings" + + "github.com/deroproject/derohe/block" + "github.com/deroproject/derohe/config" + "github.com/deroproject/derohe/cryptography/bn256" + "github.com/deroproject/derohe/cryptography/crypto" + "github.com/deroproject/derohe/dvm" + "github.com/deroproject/derohe/globals" + "github.com/deroproject/derohe/premine" + "github.com/deroproject/derohe/rpc" + "github.com/deroproject/derohe/transaction" + "github.com/deroproject/graviton" + "golang.org/x/xerrors" +) // convert bitcoin model to our, but skip initial 4 years of supply, so our total supply gets to 10.5 million const RewardReductionInterval = 210000 * 600 / config.BLOCK_TIME // 210000 comes from bitcoin diff --git a/blockchain/transaction_verify.go b/blockchain/transaction_verify.go index 05aca0c8..2606c189 100644 --- a/blockchain/transaction_verify.go +++ b/blockchain/transaction_verify.go @@ -16,8 +16,22 @@ package blockchain -import "fmt" -import "time" +import ( + "fmt" + "runtime/debug" + "sync" + "time" + + "github.com/deroproject/derohe/block" + "github.com/deroproject/derohe/config" + "github.com/deroproject/derohe/cryptography/bn256" + "github.com/deroproject/derohe/cryptography/crypto" + "github.com/deroproject/derohe/globals" + "github.com/deroproject/derohe/rpc" + "github.com/deroproject/derohe/transaction" + "github.com/deroproject/graviton" + "golang.org/x/xerrors" +) /*import "bytes" import "encoding/binary" @@ -26,19 +40,6 @@ import "github.com/romana/rlog" */ -import "sync" -import "runtime/debug" -import "golang.org/x/xerrors" -import "github.com/deroproject/graviton" - -import "github.com/deroproject/derohe/config" -import "github.com/deroproject/derohe/block" -import "github.com/deroproject/derohe/rpc" -import "github.com/deroproject/derohe/globals" -import "github.com/deroproject/derohe/cryptography/crypto" -import "github.com/deroproject/derohe/transaction" -import "github.com/deroproject/derohe/cryptography/bn256" - // caches x of transactions validity // it is always atomic // the cache is txhash -> validity mapping diff --git a/cmd/dero-miner/difficulty.go b/cmd/dero-miner/difficulty.go index 97f363de..691acccd 100644 --- a/cmd/dero-miner/difficulty.go +++ b/cmd/dero-miner/difficulty.go @@ -17,8 +17,11 @@ package main // ripoff from blockchain folder -import "math/big" -import "github.com/deroproject/derohe/cryptography/crypto" +import ( + "math/big" + + "github.com/deroproject/derohe/cryptography/crypto" +) var ( // bigZero is 0 represented as a big.Int. It is defined here to avoid diff --git a/cmd/dero-miner/fdlimits.go b/cmd/dero-miner/fdlimits.go index 68d1dc15..8877f057 100644 --- a/cmd/dero-miner/fdlimits.go +++ b/cmd/dero-miner/fdlimits.go @@ -3,8 +3,11 @@ package main -import "runtime" -import "golang.org/x/sys/unix" +import ( + "runtime" + + "golang.org/x/sys/unix" +) // we skip type as go will automatically identify type const ( diff --git a/cmd/dero-miner/miner.go b/cmd/dero-miner/miner.go index cc366b9a..91d75bf4 100644 --- a/cmd/dero-miner/miner.go +++ b/cmd/dero-miner/miner.go @@ -16,40 +16,38 @@ package main -import "io" -import "os" -import "fmt" -import "time" -import "net/url" -import "crypto/rand" -import "crypto/tls" -import "sync" -import "runtime" -import "math/big" -import "path/filepath" -import "encoding/hex" -import "encoding/binary" -import "os/signal" -import "sync/atomic" -import "strings" -import "strconv" - -import "github.com/go-logr/logr" - -import "github.com/deroproject/derohe/config" -import "github.com/deroproject/derohe/globals" +import ( + "crypto/rand" + "crypto/tls" + "encoding/binary" + "encoding/hex" + "fmt" + "io" + "math/big" + "net/url" + "os" + "os/signal" + "path/filepath" + "runtime" + "strconv" + "strings" + "sync" + "sync/atomic" + "time" + + "github.com/chzyer/readline" + "github.com/deroproject/derohe/astrobwt/astrobwt_fast" + "github.com/deroproject/derohe/astrobwt/astrobwtv3" + "github.com/deroproject/derohe/block" + "github.com/deroproject/derohe/config" + "github.com/deroproject/derohe/globals" + "github.com/deroproject/derohe/rpc" + "github.com/docopt/docopt-go" + "github.com/go-logr/logr" + "github.com/gorilla/websocket" +) //import "github.com/deroproject/derohe/cryptography/crypto" -import "github.com/deroproject/derohe/block" -import "github.com/deroproject/derohe/rpc" - -import "github.com/chzyer/readline" -import "github.com/docopt/docopt-go" - -import "github.com/deroproject/derohe/astrobwt/astrobwt_fast" -import "github.com/deroproject/derohe/astrobwt/astrobwtv3" - -import "github.com/gorilla/websocket" var mutex sync.RWMutex var job rpc.GetBlockTemplate_Result diff --git a/cmd/dero-miner/thread_linux.go b/cmd/dero-miner/thread_linux.go index 74c48ba9..50995d93 100644 --- a/cmd/dero-miner/thread_linux.go +++ b/cmd/dero-miner/thread_linux.go @@ -16,9 +16,12 @@ package main -import "runtime" -import "sync/atomic" -import "golang.org/x/sys/unix" +import ( + "runtime" + "sync/atomic" + + "golang.org/x/sys/unix" +) var processor int32 diff --git a/cmd/dero-miner/thread_windows.go b/cmd/dero-miner/thread_windows.go index 5f229fa3..5ffe7f50 100644 --- a/cmd/dero-miner/thread_windows.go +++ b/cmd/dero-miner/thread_windows.go @@ -16,11 +16,13 @@ package main -import "runtime" -import "sync/atomic" -import "syscall" -import "unsafe" -import "math/bits" +import ( + "math/bits" + "runtime" + "sync/atomic" + "syscall" + "unsafe" +) var libkernel32 uintptr var setThreadAffinityMask uintptr diff --git a/cmd/dero-wallet-cli/easymenu_post_open.go b/cmd/dero-wallet-cli/easymenu_post_open.go index 218e0560..ac6287c4 100644 --- a/cmd/dero-wallet-cli/easymenu_post_open.go +++ b/cmd/dero-wallet-cli/easymenu_post_open.go @@ -16,27 +16,26 @@ package main -import "io" -import "os" -import "time" -import "fmt" -import "errors" -import "runtime" -import "strings" - -import "path/filepath" -import "encoding/json" - -import "github.com/chzyer/readline" - -import "github.com/deroproject/derohe/rpc" -import "github.com/deroproject/derohe/globals" +import ( + "encoding/json" + "errors" + "fmt" + "io" + "os" + "path/filepath" + "runtime" + "strings" + "time" + + "github.com/chzyer/readline" + "github.com/deroproject/derohe/cryptography/crypto" + "github.com/deroproject/derohe/globals" + "github.com/deroproject/derohe/rpc" + "github.com/deroproject/derohe/transaction" +) //import "github.com/deroproject/derohe/address" -import "github.com/deroproject/derohe/cryptography/crypto" -import "github.com/deroproject/derohe/transaction" - // handle menu if a wallet is currently opened func display_easymenu_post_open_command(l *readline.Instance) { w := l.Stderr() @@ -204,7 +203,7 @@ func handle_easymenu_post_open_command(l *readline.Instance, line string) (proce } if ConfirmYesNoDefaultNo(l, "Confirm Transaction (y/N)") { - tx, err := wallet.TransferPayload0([]rpc.Transfer{rpc.Transfer{SCID: scid, Amount: amount_to_transfer, Destination: a.String()}}, 0, false, rpc.Arguments{}, 0, false) // empty SCDATA + tx, err := wallet.TransferPayload0([]rpc.Transfer{{SCID: scid, Amount: amount_to_transfer, Destination: a.String()}}, 0, false, rpc.Arguments{}, 0, false) // empty SCDATA if err != nil { logger.Error(err, "Error while building Transaction") @@ -369,7 +368,7 @@ func handle_easymenu_post_open_command(l *readline.Instance, line string) (proce //src_port := uint64(0xffffffffffffffff) - tx, err := wallet.TransferPayload0([]rpc.Transfer{rpc.Transfer{Amount: amount_to_transfer, Destination: a.String(), Payload_RPC: arguments}}, 0, false, rpc.Arguments{}, 0, false) // empty SCDATA + tx, err := wallet.TransferPayload0([]rpc.Transfer{{Amount: amount_to_transfer, Destination: a.String(), Payload_RPC: arguments}}, 0, false, rpc.Arguments{}, 0, false) // empty SCDATA if err != nil { logger.Error(err, "Error while building Transaction") diff --git a/cmd/dero-wallet-cli/easymenu_pre_open.go b/cmd/dero-wallet-cli/easymenu_pre_open.go index b56ef134..8392f587 100644 --- a/cmd/dero-wallet-cli/easymenu_pre_open.go +++ b/cmd/dero-wallet-cli/easymenu_pre_open.go @@ -16,20 +16,21 @@ package main -import "io" -import "fmt" -import "time" -import "strconv" -import "strings" -import "encoding/hex" - -import "github.com/chzyer/readline" - -import "github.com/deroproject/derohe/cryptography/crypto" -import "github.com/deroproject/derohe/config" -import "github.com/deroproject/derohe/globals" -import "github.com/deroproject/derohe/walletapi" -import "github.com/deroproject/derohe/walletapi/rpcserver" +import ( + "encoding/hex" + "fmt" + "io" + "strconv" + "strings" + "time" + + "github.com/chzyer/readline" + "github.com/deroproject/derohe/config" + "github.com/deroproject/derohe/cryptography/crypto" + "github.com/deroproject/derohe/globals" + "github.com/deroproject/derohe/walletapi" + "github.com/deroproject/derohe/walletapi/rpcserver" +) // display menu before a wallet is opened func display_easymenu_pre_open_command(l *readline.Instance) { diff --git a/cmd/dero-wallet-cli/main.go b/cmd/dero-wallet-cli/main.go index c50b13a8..4730139c 100644 --- a/cmd/dero-wallet-cli/main.go +++ b/cmd/dero-wallet-cli/main.go @@ -18,37 +18,36 @@ package main /// this file implements the wallet and rpc wallet -import "io" -import "os" -import "fmt" -import "time" -import "sync" -import "strings" -import "strconv" -import "runtime" - -import "sync/atomic" +import ( + "fmt" + "io" + "os" + "runtime" + "strconv" + "strings" + "sync" + "sync/atomic" + "time" + + "github.com/chzyer/readline" + "github.com/deroproject/derohe/config" + "github.com/deroproject/derohe/globals" + "github.com/deroproject/derohe/walletapi" + "github.com/deroproject/derohe/walletapi/mnemonics" + "github.com/docopt/docopt-go" + "github.com/go-logr/logr" +) //import "io/ioutil" //import "bufio" //import "bytes" //import "net/http" -import "github.com/go-logr/logr" - -import "github.com/chzyer/readline" -import "github.com/docopt/docopt-go" - //import "github.com/vmihailenco/msgpack" //import "github.com/deroproject/derosuite/address" -import "github.com/deroproject/derohe/config" - //import "github.com/deroproject/derohe/crypto" -import "github.com/deroproject/derohe/globals" -import "github.com/deroproject/derohe/walletapi" -import "github.com/deroproject/derohe/walletapi/mnemonics" //import "encoding/json" diff --git a/cmd/dero-wallet-cli/prompt.go b/cmd/dero-wallet-cli/prompt.go index b49b0c85..b3f640a4 100644 --- a/cmd/dero-wallet-cli/prompt.go +++ b/cmd/dero-wallet-cli/prompt.go @@ -328,7 +328,7 @@ func handle_prompt_command(l *readline.Instance, line string) { //uid, err := wallet.PoolTransferWithBurn(addr, send_amount, burn_amount, data, rpc.Arguments{}) - tx, err := wallet.TransferPayload0([]rpc.Transfer{rpc.Transfer{Amount: send_amount, Burn: burn_amount, Destination: addr}}, 0, false, rpc.Arguments{}, 0, false) // empty SCDATA + tx, err := wallet.TransferPayload0([]rpc.Transfer{{Amount: send_amount, Burn: burn_amount, Destination: addr}}, 0, false, rpc.Arguments{}, 0, false) // empty SCDATA if err != nil { logger.Error(err, "Error while building Transaction") diff --git a/cmd/derod/fdlimits.go b/cmd/derod/fdlimits.go index 9d64c6a3..63447277 100644 --- a/cmd/derod/fdlimits.go +++ b/cmd/derod/fdlimits.go @@ -3,8 +3,11 @@ package main -import "runtime" -import "golang.org/x/sys/unix" +import ( + "runtime" + + "golang.org/x/sys/unix" +) // we skip type as go will automatically identify type const ( diff --git a/cmd/derod/main.go b/cmd/derod/main.go index f8184948..00a19e6f 100644 --- a/cmd/derod/main.go +++ b/cmd/derod/main.go @@ -16,44 +16,43 @@ package main -import "io" -import "os" -import "time" -import "fmt" -import "bytes" - -import "bufio" -import "strings" -import "strconv" -import "runtime" -import "runtime/debug" -import "math/big" -import "os/signal" - -//import "crypto/sha1" -import "encoding/hex" -import "encoding/json" -import "path/filepath" -import "runtime/pprof" - -import "github.com/go-logr/logr" - -//import "golang.org/x/crypto/sha3" - -import "github.com/chzyer/readline" -import "github.com/docopt/docopt-go" -import "gopkg.in/natefinch/lumberjack.v2" - -import "github.com/deroproject/derohe/p2p" -import "github.com/deroproject/derohe/globals" -import "github.com/deroproject/derohe/block" -import "github.com/deroproject/derohe/transaction" -import "github.com/deroproject/derohe/config" -import "github.com/deroproject/derohe/rpc" -import "github.com/deroproject/derohe/blockchain" -import derodrpc "github.com/deroproject/derohe/cmd/derod/rpc" - -import "github.com/deroproject/derohe/cryptography/crypto" +import ( + "bufio" + "bytes" + "encoding/hex" + "encoding/json" + "fmt" + "io" + "math/big" + "os" + "os/signal" + "path/filepath" + "runtime" + "runtime/debug" + "runtime/pprof" + "strconv" + "strings" + "time" + + "github.com/chzyer/readline" + "github.com/deroproject/derohe/block" + "github.com/deroproject/derohe/blockchain" + "github.com/deroproject/derohe/config" + "github.com/deroproject/derohe/globals" + "github.com/deroproject/derohe/p2p" + "github.com/deroproject/derohe/rpc" + "github.com/deroproject/derohe/transaction" + "github.com/docopt/docopt-go" + "github.com/go-logr/logr" + "gopkg.in/natefinch/lumberjack.v2" + + //import "crypto/sha1" + + //import "golang.org/x/crypto/sha3" + + derodrpc "github.com/deroproject/derohe/cmd/derod/rpc" + "github.com/deroproject/derohe/cryptography/crypto" +) var command_line string = `derod DERO : A secure, private blockchain with smart-contracts @@ -145,7 +144,7 @@ func main() { if _, ok := globals.Arguments["--log-dir"]; ok && globals.Arguments["--log-dir"] != nil { logdir = globals.Arguments["--log-dir"].(string) filename = filepath.Base(exename) + ".log" - filename = filepath.Join(logdir,filename) + filename = filepath.Join(logdir, filename) } globals.InitializeLog(l.Stdout(), &lumberjack.Logger{ diff --git a/cmd/derod/rpc/blockheader.go b/cmd/derod/rpc/blockheader.go index 5a2b54dd..13b70e18 100644 --- a/cmd/derod/rpc/blockheader.go +++ b/cmd/derod/rpc/blockheader.go @@ -17,11 +17,13 @@ package rpc //import "fmt" -import "github.com/deroproject/derohe/cryptography/crypto" -import "github.com/deroproject/derohe/rpc" -import "github.com/deroproject/derohe/config" -import "github.com/deroproject/derohe/globals" -import "github.com/deroproject/derohe/blockchain" +import ( + "github.com/deroproject/derohe/blockchain" + "github.com/deroproject/derohe/config" + "github.com/deroproject/derohe/cryptography/crypto" + "github.com/deroproject/derohe/globals" + "github.com/deroproject/derohe/rpc" +) // this function is only used by the RPC and is not used by the core and should be moved to RPC interface diff --git a/cmd/derod/rpc/rpc_dero_estimategas.go b/cmd/derod/rpc/rpc_dero_estimategas.go index cf522ecb..395f1108 100644 --- a/cmd/derod/rpc/rpc_dero_estimategas.go +++ b/cmd/derod/rpc/rpc_dero_estimategas.go @@ -16,26 +16,26 @@ package rpc -import "fmt" -import "context" -import "strings" +import ( + "context" + "encoding/base64" + "fmt" + "runtime/debug" + "strings" + + "github.com/deroproject/derohe/cryptography/crypto" + "github.com/deroproject/derohe/dvm" + "github.com/deroproject/derohe/rpc" + "github.com/deroproject/graviton" +) //import "encoding/binary" -import "encoding/base64" -import "runtime/debug" - -import "github.com/deroproject/derohe/cryptography/crypto" //import "github.com/deroproject/derohe/config" -import "github.com/deroproject/derohe/rpc" - -import "github.com/deroproject/derohe/dvm" //import "github.com/deroproject/derohe/transaction" //import "github.com/deroproject/derohe/blockchain" -import "github.com/deroproject/graviton" - func GetGasEstimate(ctx context.Context, p rpc.GasEstimate_Params) (result rpc.GasEstimate_Result, err error) { defer func() { // safety so if anything wrong happens, we return error if r := recover(); r != nil { diff --git a/cmd/derod/rpc/rpc_dero_getblock.go b/cmd/derod/rpc/rpc_dero_getblock.go index 1b6fc048..a7706b28 100644 --- a/cmd/derod/rpc/rpc_dero_getblock.go +++ b/cmd/derod/rpc/rpc_dero_getblock.go @@ -16,13 +16,16 @@ package rpc -import "fmt" -import "context" -import "encoding/hex" -import "encoding/json" -import "runtime/debug" -import "github.com/deroproject/derohe/cryptography/crypto" -import "github.com/deroproject/derohe/rpc" +import ( + "context" + "encoding/hex" + "encoding/json" + "fmt" + "runtime/debug" + + "github.com/deroproject/derohe/cryptography/crypto" + "github.com/deroproject/derohe/rpc" +) //import "github.com/deroproject/derosuite/blockchain" diff --git a/cmd/derod/rpc/rpc_dero_getblockcount.go b/cmd/derod/rpc/rpc_dero_getblockcount.go index e79a4caf..59a3cab4 100644 --- a/cmd/derod/rpc/rpc_dero_getblockcount.go +++ b/cmd/derod/rpc/rpc_dero_getblockcount.go @@ -16,8 +16,11 @@ package rpc -import "context" -import "github.com/deroproject/derohe/rpc" +import ( + "context" + + "github.com/deroproject/derohe/rpc" +) func GetBlockCount(ctx context.Context) rpc.GetBlockCount_Result { return rpc.GetBlockCount_Result{ diff --git a/cmd/derod/rpc/rpc_dero_getblockheaderbyhash.go b/cmd/derod/rpc/rpc_dero_getblockheaderbyhash.go index b83c31ef..da6e9d40 100644 --- a/cmd/derod/rpc/rpc_dero_getblockheaderbyhash.go +++ b/cmd/derod/rpc/rpc_dero_getblockheaderbyhash.go @@ -16,11 +16,14 @@ package rpc -import "fmt" -import "context" -import "runtime/debug" -import "github.com/deroproject/derohe/cryptography/crypto" -import "github.com/deroproject/derohe/rpc" +import ( + "context" + "fmt" + "runtime/debug" + + "github.com/deroproject/derohe/cryptography/crypto" + "github.com/deroproject/derohe/rpc" +) func GetBlockHeaderByHash(ctx context.Context, p rpc.GetBlockHeaderByHash_Params) (result rpc.GetBlockHeaderByHash_Result, err error) { defer func() { // safety so if anything wrong happens, we return error diff --git a/cmd/derod/rpc/rpc_dero_getblockheaderbytopoheight.go b/cmd/derod/rpc/rpc_dero_getblockheaderbytopoheight.go index db7f9b01..4eb11107 100644 --- a/cmd/derod/rpc/rpc_dero_getblockheaderbytopoheight.go +++ b/cmd/derod/rpc/rpc_dero_getblockheaderbytopoheight.go @@ -16,10 +16,13 @@ package rpc -import "fmt" -import "context" -import "runtime/debug" -import "github.com/deroproject/derohe/rpc" +import ( + "context" + "fmt" + "runtime/debug" + + "github.com/deroproject/derohe/rpc" +) func GetBlockHeaderByTopoHeight(ctx context.Context, p rpc.GetBlockHeaderByTopoHeight_Params) (result rpc.GetBlockHeaderByHeight_Result, err error) { diff --git a/cmd/derod/rpc/rpc_dero_getblocktemplate.go b/cmd/derod/rpc/rpc_dero_getblocktemplate.go index dc9c266d..42961ede 100644 --- a/cmd/derod/rpc/rpc_dero_getblocktemplate.go +++ b/cmd/derod/rpc/rpc_dero_getblocktemplate.go @@ -16,11 +16,14 @@ package rpc -import "fmt" -import "context" -import "runtime/debug" -import "golang.org/x/time/rate" -import "github.com/deroproject/derohe/rpc" +import ( + "context" + "fmt" + "runtime/debug" + + "github.com/deroproject/derohe/rpc" + "golang.org/x/time/rate" +) // rate limiter is deployed, in case RPC is exposed over internet // someone should not be just giving fake inputs and delay chain syncing diff --git a/cmd/derod/rpc/rpc_dero_getencryptedbalance.go b/cmd/derod/rpc/rpc_dero_getencryptedbalance.go index bf125aec..2f3bec05 100644 --- a/cmd/derod/rpc/rpc_dero_getencryptedbalance.go +++ b/cmd/derod/rpc/rpc_dero_getencryptedbalance.go @@ -16,17 +16,19 @@ package rpc -import "fmt" -import "math" -import "context" -import "runtime/debug" - -import "golang.org/x/xerrors" -import "github.com/deroproject/graviton" -import "github.com/deroproject/derohe/globals" -import "github.com/deroproject/derohe/config" -import "github.com/deroproject/derohe/errormsg" -import "github.com/deroproject/derohe/rpc" +import ( + "context" + "fmt" + "math" + "runtime/debug" + + "github.com/deroproject/derohe/config" + "github.com/deroproject/derohe/errormsg" + "github.com/deroproject/derohe/globals" + "github.com/deroproject/derohe/rpc" + "github.com/deroproject/graviton" + "golang.org/x/xerrors" +) //import "github.com/deroproject/derohe/dvm" //import "github.com/deroproject/derohe/cryptography/crypto" diff --git a/cmd/derod/rpc/rpc_dero_getheight.go b/cmd/derod/rpc/rpc_dero_getheight.go index ff81931a..9f1d0685 100644 --- a/cmd/derod/rpc/rpc_dero_getheight.go +++ b/cmd/derod/rpc/rpc_dero_getheight.go @@ -16,8 +16,11 @@ package rpc -import "context" -import "github.com/deroproject/derohe/rpc" +import ( + "context" + + "github.com/deroproject/derohe/rpc" +) func GetHeight(ctx context.Context) rpc.Daemon_GetHeight_Result { return rpc.Daemon_GetHeight_Result{ diff --git a/cmd/derod/rpc/rpc_dero_getinfo.go b/cmd/derod/rpc/rpc_dero_getinfo.go index 4103e61f..c9fa333b 100644 --- a/cmd/derod/rpc/rpc_dero_getinfo.go +++ b/cmd/derod/rpc/rpc_dero_getinfo.go @@ -16,16 +16,18 @@ package rpc -import "fmt" -import "time" -import "context" -import "runtime/debug" -import "github.com/deroproject/derohe/config" -import "github.com/deroproject/derohe/globals" -import "github.com/deroproject/derohe/rpc" -import "github.com/deroproject/derohe/p2p" - -import "github.com/deroproject/derohe/blockchain" +import ( + "context" + "fmt" + "runtime/debug" + "time" + + "github.com/deroproject/derohe/blockchain" + "github.com/deroproject/derohe/config" + "github.com/deroproject/derohe/globals" + "github.com/deroproject/derohe/p2p" + "github.com/deroproject/derohe/rpc" +) func GetInfo(ctx context.Context) (result rpc.GetInfo_Result, err error) { diff --git a/cmd/derod/rpc/rpc_dero_getrandomaddress.go b/cmd/derod/rpc/rpc_dero_getrandomaddress.go index 2ff36437..72a3027d 100644 --- a/cmd/derod/rpc/rpc_dero_getrandomaddress.go +++ b/cmd/derod/rpc/rpc_dero_getrandomaddress.go @@ -16,14 +16,17 @@ package rpc -import "fmt" -import "bytes" -import "context" -import "runtime/debug" -import "github.com/deroproject/derohe/config" -import "github.com/deroproject/derohe/globals" -import "github.com/deroproject/derohe/cryptography/crypto" -import "github.com/deroproject/derohe/rpc" +import ( + "bytes" + "context" + "fmt" + "runtime/debug" + + "github.com/deroproject/derohe/config" + "github.com/deroproject/derohe/cryptography/crypto" + "github.com/deroproject/derohe/globals" + "github.com/deroproject/derohe/rpc" +) //import "github.com/deroproject/derohe/blockchain" diff --git a/cmd/derod/rpc/rpc_dero_getsc.go b/cmd/derod/rpc/rpc_dero_getsc.go index 877902fb..123e3e86 100644 --- a/cmd/derod/rpc/rpc_dero_getsc.go +++ b/cmd/derod/rpc/rpc_dero_getsc.go @@ -16,23 +16,24 @@ package rpc -import "fmt" -import "context" - -import "encoding/binary" -import "runtime/debug" +import ( + "context" + "encoding/binary" + "fmt" + "runtime/debug" + + "github.com/deroproject/derohe/cryptography/crypto" + "github.com/deroproject/derohe/dvm" + "github.com/deroproject/derohe/rpc" + "github.com/deroproject/graviton" +) //import "github.com/romana/rlog" -import "github.com/deroproject/derohe/cryptography/crypto" //import "github.com/deroproject/derohe/config" -import "github.com/deroproject/derohe/rpc" -import "github.com/deroproject/derohe/dvm" //import "github.com/deroproject/derohe/transaction" -import "github.com/deroproject/graviton" - func GetSC(ctx context.Context, p rpc.GetSC_Params) (result rpc.GetSC_Result, err error) { defer func() { // safety so if anything wrong happens, we return error diff --git a/cmd/derod/rpc/rpc_dero_gettransactions.go b/cmd/derod/rpc/rpc_dero_gettransactions.go index 19ab0ede..eb19f845 100644 --- a/cmd/derod/rpc/rpc_dero_gettransactions.go +++ b/cmd/derod/rpc/rpc_dero_gettransactions.go @@ -16,21 +16,24 @@ package rpc -import "fmt" -import "context" -import "encoding/hex" -import "encoding/binary" -import "runtime/debug" +import ( + "context" + "encoding/binary" + "encoding/hex" + "fmt" + "runtime/debug" + + "github.com/deroproject/derohe/blockchain" + "github.com/deroproject/derohe/config" + "github.com/deroproject/derohe/cryptography/bn256" + "github.com/deroproject/derohe/cryptography/crypto" + "github.com/deroproject/derohe/dvm" + "github.com/deroproject/derohe/globals" + "github.com/deroproject/derohe/rpc" + "github.com/deroproject/derohe/transaction" +) //import "github.com/romana/rlog" -import "github.com/deroproject/derohe/cryptography/crypto" -import "github.com/deroproject/derohe/cryptography/bn256" -import "github.com/deroproject/derohe/config" -import "github.com/deroproject/derohe/rpc" -import "github.com/deroproject/derohe/dvm" -import "github.com/deroproject/derohe/globals" -import "github.com/deroproject/derohe/transaction" -import "github.com/deroproject/derohe/blockchain" func GetTransaction(ctx context.Context, p rpc.GetTransaction_Params) (result rpc.GetTransaction_Result, err error) { diff --git a/cmd/derod/rpc/rpc_dero_gettxpool.go b/cmd/derod/rpc/rpc_dero_gettxpool.go index 112c248d..ad97e00e 100644 --- a/cmd/derod/rpc/rpc_dero_gettxpool.go +++ b/cmd/derod/rpc/rpc_dero_gettxpool.go @@ -16,9 +16,12 @@ package rpc -import "fmt" -import "context" -import "github.com/deroproject/derohe/rpc" +import ( + "context" + "fmt" + + "github.com/deroproject/derohe/rpc" +) func GetTxPool(ctx context.Context) (result rpc.GetTxPool_Result) { result.Status = "OK" diff --git a/cmd/derod/rpc/rpc_dero_nametoaddress.go b/cmd/derod/rpc/rpc_dero_nametoaddress.go index d7c0aa24..fcbe694e 100644 --- a/cmd/derod/rpc/rpc_dero_nametoaddress.go +++ b/cmd/derod/rpc/rpc_dero_nametoaddress.go @@ -16,13 +16,16 @@ package rpc -import "fmt" -import "context" -import "runtime/debug" -import "github.com/deroproject/derohe/cryptography/crypto" -import "github.com/deroproject/derohe/rpc" -import "github.com/deroproject/derohe/globals" -import "github.com/deroproject/derohe/dvm" +import ( + "context" + "fmt" + "runtime/debug" + + "github.com/deroproject/derohe/cryptography/crypto" + "github.com/deroproject/derohe/dvm" + "github.com/deroproject/derohe/globals" + "github.com/deroproject/derohe/rpc" +) //import "github.com/deroproject/derosuite/blockchain" diff --git a/cmd/derod/rpc/rpc_dero_sendrawtransaction.go b/cmd/derod/rpc/rpc_dero_sendrawtransaction.go index 694b3dba..00af4b07 100644 --- a/cmd/derod/rpc/rpc_dero_sendrawtransaction.go +++ b/cmd/derod/rpc/rpc_dero_sendrawtransaction.go @@ -16,13 +16,16 @@ package rpc -import "fmt" -import "context" -import "encoding/hex" -import "runtime/debug" -import "github.com/deroproject/derohe/rpc" -import "github.com/deroproject/derohe/p2p" -import "github.com/deroproject/derohe/transaction" +import ( + "context" + "encoding/hex" + "fmt" + "runtime/debug" + + "github.com/deroproject/derohe/p2p" + "github.com/deroproject/derohe/rpc" + "github.com/deroproject/derohe/transaction" +) // NOTE: finally we have shifted to json api func SendRawTransaction(ctx context.Context, p rpc.SendRawTransaction_Params) (result rpc.SendRawTransaction_Result, err error) { diff --git a/cmd/derod/rpc/rpc_dero_submitblock.go b/cmd/derod/rpc/rpc_dero_submitblock.go index 082ebc47..fc1c2157 100644 --- a/cmd/derod/rpc/rpc_dero_submitblock.go +++ b/cmd/derod/rpc/rpc_dero_submitblock.go @@ -16,11 +16,14 @@ package rpc -import "fmt" -import "context" -import "encoding/hex" -import "runtime/debug" -import "github.com/deroproject/derohe/rpc" +import ( + "context" + "encoding/hex" + "fmt" + "runtime/debug" + + "github.com/deroproject/derohe/rpc" +) func SubmitBlock(ctx context.Context, p rpc.SubmitBlock_Params) (result rpc.SubmitBlock_Result, err error) { diff --git a/cmd/derod/rpc/rpc_get_getlastblockheader.go b/cmd/derod/rpc/rpc_get_getlastblockheader.go index 99fd88df..f648dd4f 100644 --- a/cmd/derod/rpc/rpc_get_getlastblockheader.go +++ b/cmd/derod/rpc/rpc_get_getlastblockheader.go @@ -18,10 +18,13 @@ package rpc // get block template handler not implemented -import "fmt" -import "context" -import "runtime/debug" -import "github.com/deroproject/derohe/rpc" +import ( + "context" + "fmt" + "runtime/debug" + + "github.com/deroproject/derohe/rpc" +) func GetLastBlockHeader(ctx context.Context) (result rpc.GetLastBlockHeader_Result, err error) { defer func() { // safety so if anything wrong happens, we return error diff --git a/cmd/derod/rpc/websocket_getwork_server.go b/cmd/derod/rpc/websocket_getwork_server.go index 56c86f88..716df873 100644 --- a/cmd/derod/rpc/websocket_getwork_server.go +++ b/cmd/derod/rpc/websocket_getwork_server.go @@ -8,40 +8,36 @@ import ( "sort" "time" + "bytes" + "crypto/ecdsa" + "crypto/elliptic" + "crypto/rand" + "crypto/x509" + "encoding/hex" + "encoding/json" + "encoding/pem" + "math/big" + "net" + "runtime" + "strings" + "sync" + "sync/atomic" + + "github.com/deroproject/derohe/config" + "github.com/deroproject/derohe/globals" + "github.com/deroproject/derohe/rpc" + "github.com/deroproject/graviton" + "github.com/go-logr/logr" "github.com/lesismal/llib/std/crypto/tls" + "github.com/lesismal/nbio" + "github.com/lesismal/nbio/logging" "github.com/lesismal/nbio/nbhttp" "github.com/lesismal/nbio/nbhttp/websocket" ) -import "github.com/lesismal/nbio" -import "github.com/lesismal/nbio/logging" - -import "net" -import "bytes" -import "encoding/hex" -import "encoding/json" -import "runtime" -import "strings" -import "math/big" -import "crypto/ecdsa" -import "crypto/elliptic" - -import "sync/atomic" -import "crypto/rand" -import "crypto/x509" -import "encoding/pem" - -import "github.com/deroproject/derohe/globals" -import "github.com/deroproject/derohe/config" -import "github.com/deroproject/derohe/rpc" -import "github.com/deroproject/graviton" -import "github.com/go-logr/logr" - // this file implements the non-blocking job streamer // only job is to stream jobs to thousands of workers, if any is successful,accept and report back -import "sync" - var memPool = sync.Pool{ New: func() interface{} { return make([]byte, 16*1024) diff --git a/cmd/derod/rpc/websocket_server.go b/cmd/derod/rpc/websocket_server.go index 9b35dd86..a079a7fa 100644 --- a/cmd/derod/rpc/websocket_server.go +++ b/cmd/derod/rpc/websocket_server.go @@ -16,36 +16,36 @@ package rpc -import "io" -import "os" -import "net" -import "fmt" -import "net/http" -import "net/http/pprof" -import "time" -import "sort" -import "sync" -import "sync/atomic" -import "context" -import "strings" -import "runtime/debug" -import "encoding/json" - -import "github.com/deroproject/derohe/config" -import "github.com/deroproject/derohe/globals" -import "github.com/deroproject/derohe/blockchain" -import "github.com/deroproject/derohe/glue/rwc" -import "github.com/deroproject/derohe/metrics" - -import "github.com/go-logr/logr" -import "github.com/gorilla/websocket" - -import "github.com/creachadair/jrpc2" -import "github.com/creachadair/jrpc2/handler" -import "github.com/creachadair/jrpc2/channel" +import ( + "context" + "encoding/json" + "fmt" + "io" + "net" + "net/http" + "net/http/pprof" + "os" + "runtime/debug" + "sort" + "strings" + "sync" + "sync/atomic" + "time" + + "github.com/creachadair/jrpc2" + "github.com/creachadair/jrpc2/channel" + "github.com/creachadair/jrpc2/handler" + "github.com/creachadair/jrpc2/jhttp" + "github.com/deroproject/derohe/blockchain" + "github.com/deroproject/derohe/config" + "github.com/deroproject/derohe/globals" + "github.com/deroproject/derohe/glue/rwc" + "github.com/deroproject/derohe/metrics" + "github.com/go-logr/logr" + "github.com/gorilla/websocket" +) //import "github.com/creachadair/jrpc2/server" -import "github.com/creachadair/jrpc2/jhttp" /* this file implements the rpcserver api, so as wallet and block explorer tools can work without migration */ diff --git a/cmd/derod/update.go b/cmd/derod/update.go index 012f6ecc..9ed55250 100644 --- a/cmd/derod/update.go +++ b/cmd/derod/update.go @@ -16,29 +16,30 @@ package main -import "fmt" -import "net" -import "time" -import "io" +import ( + "context" + "encoding/base64" + "encoding/binary" + "encoding/json" + "fmt" + "io" + "math/rand" + "net" + "runtime/debug" + "strings" + "time" + + "github.com/blang/semver/v4" + "github.com/deroproject/derohe/config" + "github.com/deroproject/derohe/globals" + "github.com/miekg/dns" +) //import "io/ioutil" //import "net/http" -import "context" -import "strings" -import "math/rand" -import "encoding/base64" -import "encoding/json" -import "runtime/debug" -import "encoding/binary" //import "crypto/tls" -import "github.com/blang/semver/v4" -import "github.com/miekg/dns" - -import "github.com/deroproject/derohe/config" -import "github.com/deroproject/derohe/globals" - /* this needs to be set on update.dero.io. as TXT record, in encoded form as base64 * { "version" : "1.0.2", diff --git a/cmd/explorer/explorer.go b/cmd/explorer/explorer.go index 676b6b42..e747afdc 100644 --- a/cmd/explorer/explorer.go +++ b/cmd/explorer/explorer.go @@ -24,16 +24,17 @@ package main // TODO: error handling is non-existant ( as this was built up in hrs ). Add proper error handling // -import "time" -import "fmt" -import "os" -import "runtime" - -import "github.com/docopt/docopt-go" -import "github.com/go-logr/logr" - -import "github.com/deroproject/derohe/cmd/explorer/explorerlib" -import "github.com/deroproject/derohe/globals" +import ( + "fmt" + "os" + "runtime" + "time" + + "github.com/deroproject/derohe/cmd/explorer/explorerlib" + "github.com/deroproject/derohe/globals" + "github.com/docopt/docopt-go" + "github.com/go-logr/logr" +) var command_line string = `dero_explorer DERO HE Explorer: A secure, private blockchain with smart-contracts diff --git a/cmd/explorer/explorerlib/explorerlib.go b/cmd/explorer/explorerlib/explorerlib.go index 0a5f2f93..6a5b548f 100644 --- a/cmd/explorer/explorerlib/explorerlib.go +++ b/cmd/explorer/explorerlib/explorerlib.go @@ -24,37 +24,38 @@ package explorerlib // TODO: error handling is non-existant ( as this was built up in hrs ). Add proper error handling // -import "time" -import "fmt" - -import "embed" -import "bytes" -import "unicode" -import "unsafe" // need to avoid this, but only used by byteviewer -import "strings" -import "strconv" -import "context" -import "encoding/hex" -import "net/http" -import "html/template" +import ( + "bytes" + "context" + "embed" + "encoding/hex" + "fmt" + "html/template" + "net/http" + "strconv" + "strings" + "time" + "unicode" + "unsafe" + + "github.com/creachadair/jrpc2" + "github.com/creachadair/jrpc2/channel" + "github.com/deroproject/derohe/block" + "github.com/deroproject/derohe/cryptography/crypto" + "github.com/deroproject/derohe/globals" + "github.com/deroproject/derohe/glue/rwc" + "github.com/deroproject/derohe/proof" + "github.com/deroproject/derohe/rpc" + "github.com/deroproject/derohe/transaction" + "github.com/go-logr/logr" + "github.com/gorilla/websocket" +) + +// need to avoid this, but only used by byteviewer //import "encoding/json" //import "io/ioutil" -import "github.com/go-logr/logr" - -import "github.com/deroproject/derohe/block" -import "github.com/deroproject/derohe/cryptography/crypto" -import "github.com/deroproject/derohe/globals" -import "github.com/deroproject/derohe/transaction" -import "github.com/deroproject/derohe/rpc" -import "github.com/deroproject/derohe/proof" -import "github.com/deroproject/derohe/glue/rwc" - -import "github.com/creachadair/jrpc2" -import "github.com/creachadair/jrpc2/channel" -import "github.com/gorilla/websocket" - //go:embed templates/*.tmpl var tpls embed.FS diff --git a/cmd/rpc_examples/pong_server/pong_server.go b/cmd/rpc_examples/pong_server/pong_server.go index cd300204..0f94d0e8 100644 --- a/cmd/rpc_examples/pong_server/pong_server.go +++ b/cmd/rpc_examples/pong_server/pong_server.go @@ -10,20 +10,22 @@ package main -import "os" -import "fmt" -import "time" -import "crypto/sha1" - -import "go.etcd.io/bbolt" - -import "github.com/go-logr/logr" -import "gopkg.in/natefinch/lumberjack.v2" -import "github.com/deroproject/derohe/globals" // needed for logs - -import "github.com/deroproject/derohe/rpc" -import "github.com/deroproject/derohe/walletapi" -import "github.com/ybbus/jsonrpc" +import ( + "crypto/sha1" + "fmt" + "os" + "time" + + "github.com/deroproject/derohe/globals" + "github.com/deroproject/derohe/rpc" + "github.com/deroproject/derohe/walletapi" + "github.com/go-logr/logr" + "github.com/ybbus/jsonrpc" + "go.etcd.io/bbolt" + "gopkg.in/natefinch/lumberjack.v2" +) + +// needed for logs var logger logr.Logger = logr.Discard() // default discard all logs diff --git a/cmd/simulator/blockchain_sim_deviation_test.go b/cmd/simulator/blockchain_sim_deviation_test.go index bb41ca9d..82b2b8c6 100644 --- a/cmd/simulator/blockchain_sim_deviation_test.go +++ b/cmd/simulator/blockchain_sim_deviation_test.go @@ -16,18 +16,19 @@ package main -import "os" -import "fmt" -import "time" -import "testing" - -import "path/filepath" - -import "github.com/deroproject/derohe/globals" -import "github.com/deroproject/derohe/config" -import "github.com/deroproject/derohe/transaction" -import "github.com/deroproject/derohe/walletapi" -import "github.com/deroproject/derohe/blockchain" +import ( + "fmt" + "os" + "path/filepath" + "testing" + "time" + + "github.com/deroproject/derohe/blockchain" + "github.com/deroproject/derohe/config" + "github.com/deroproject/derohe/globals" + "github.com/deroproject/derohe/transaction" + "github.com/deroproject/derohe/walletapi" +) //import "github.com/deroproject/derohe/cryptography/crypto" diff --git a/cmd/simulator/blockchain_sim_test.go b/cmd/simulator/blockchain_sim_test.go index d39bb237..903c0aa4 100644 --- a/cmd/simulator/blockchain_sim_test.go +++ b/cmd/simulator/blockchain_sim_test.go @@ -16,31 +16,33 @@ package main -import "io" -import "os" -import "fmt" -import "time" -import "testing" -import "bytes" - -//import "crypto/rand" -import "path/filepath" - -//import "encoding/hex" -//import "encoding/binary" -//import "runtime/pprof" - -import "github.com/docopt/docopt-go" - -import "github.com/deroproject/derohe/globals" -import "github.com/deroproject/derohe/config" -import "github.com/deroproject/derohe/rpc" -import "github.com/deroproject/derohe/transaction" -import "github.com/deroproject/derohe/walletapi" -import "github.com/deroproject/derohe/blockchain" -import "github.com/deroproject/derohe/cryptography/crypto" -import "github.com/deroproject/derohe/cryptography/bn256" -import derodrpc "github.com/deroproject/derohe/cmd/derod/rpc" +import ( + "bytes" + "fmt" + "io" + "os" + "path/filepath" + "testing" + "time" + + "github.com/deroproject/derohe/blockchain" + "github.com/deroproject/derohe/config" + "github.com/deroproject/derohe/cryptography/bn256" + "github.com/deroproject/derohe/cryptography/crypto" + "github.com/deroproject/derohe/globals" + "github.com/deroproject/derohe/rpc" + "github.com/deroproject/derohe/transaction" + "github.com/deroproject/derohe/walletapi" + "github.com/docopt/docopt-go" + + //import "crypto/rand" + + //import "encoding/hex" + //import "encoding/binary" + //import "runtime/pprof" + + derodrpc "github.com/deroproject/derohe/cmd/derod/rpc" +) func init() { _ = os.Stdout @@ -211,7 +213,7 @@ func Test_Creation_TX(t *testing.T) { // here we are collecting proofs for later on bennhcmarking for j := 2; j <= 128; j = j * 2 { wsrc.SetRingSize(j) - tx, err := wsrc.TransferPayload0([]rpc.Transfer{rpc.Transfer{Destination: wdst.GetAddress().String(), Amount: 1}}, 0, false, rpc.Arguments{}, 0, false) + tx, err := wsrc.TransferPayload0([]rpc.Transfer{{Destination: wdst.GetAddress().String(), Amount: 1}}, 0, false, rpc.Arguments{}, 0, false) if err != nil { t.Fatalf("Cannot create transaction, err %s", err) } else { @@ -228,7 +230,7 @@ func Test_Creation_TX(t *testing.T) { wdst.SetRingSize(2) // accounts are reversed - reverse_tx, err := wdst.TransferPayload0([]rpc.Transfer{rpc.Transfer{Destination: wsrc.GetAddress().String(), Amount: 1}}, 0, false, rpc.Arguments{}, 0, false) + reverse_tx, err := wdst.TransferPayload0([]rpc.Transfer{{Destination: wsrc.GetAddress().String(), Amount: 1}}, 0, false, rpc.Arguments{}, 0, false) if err != nil { t.Fatalf("Cannot create transaction, err %s", err) } @@ -242,7 +244,7 @@ func Test_Creation_TX(t *testing.T) { pre_transfer_src_balance, _ := wsrc.Get_Balance() pre_transfer_dst_balance, _ := wdst.Get_Balance() - tx, err := wsrc.TransferPayload0([]rpc.Transfer{rpc.Transfer{Destination: wdst.GetAddress().String(), Amount: 1}}, 0, false, rpc.Arguments{}, 0, false) + tx, err := wsrc.TransferPayload0([]rpc.Transfer{{Destination: wdst.GetAddress().String(), Amount: 1}}, 0, false, rpc.Arguments{}, 0, false) if err != nil { t.Fatalf("Cannot create transaction, err %s", err) } else { @@ -284,7 +286,7 @@ func Test_Creation_TX(t *testing.T) { var tx_set []*transaction.Transaction for i := 0; i < 6; i++ { - tx, err := wsrc.TransferPayload0([]rpc.Transfer{rpc.Transfer{Destination: wdst.GetAddress().String(), Amount: 1}}, 0, false, rpc.Arguments{}, 0, false) + tx, err := wsrc.TransferPayload0([]rpc.Transfer{{Destination: wdst.GetAddress().String(), Amount: 1}}, 0, false, rpc.Arguments{}, 0, false) if err != nil { t.Fatalf("Cannot create transaction, err %s", err) } else { diff --git a/cmd/simulator/simulator.go b/cmd/simulator/simulator.go index b0618d96..3182f696 100644 --- a/cmd/simulator/simulator.go +++ b/cmd/simulator/simulator.go @@ -16,52 +16,49 @@ package main -import "io" -import "os" -import "time" -import "fmt" -import "bytes" -import "errors" - -import "strings" -import "strconv" -import "runtime" -import "os/signal" - -//import "crypto/sha1" -import "encoding/hex" -import "encoding/json" -import "path/filepath" -import "runtime/pprof" - -import "github.com/go-logr/logr" - -//import "golang.org/x/crypto/sha3" - -import "github.com/chzyer/readline" -import "github.com/docopt/docopt-go" -import "gopkg.in/natefinch/lumberjack.v2" - -import "github.com/deroproject/derohe/p2p" -import "github.com/deroproject/derohe/globals" - -import "github.com/deroproject/derohe/config" -import "github.com/deroproject/derohe/rpc" -import "github.com/deroproject/derohe/blockchain" - -//import "github.com/deroproject/derohe/transaction" -import derodrpc "github.com/deroproject/derohe/cmd/derod/rpc" +import ( + "bytes" + "encoding/hex" + "encoding/json" + "errors" + "fmt" + "io" + "os" + "os/signal" + "path/filepath" + "runtime" + "runtime/pprof" + "strconv" + "strings" + "time" + + "github.com/chzyer/readline" + "github.com/deroproject/derohe/blockchain" + "github.com/deroproject/derohe/config" + "github.com/deroproject/derohe/globals" + "github.com/deroproject/derohe/p2p" + "github.com/deroproject/derohe/rpc" + "github.com/docopt/docopt-go" + "github.com/go-logr/logr" + "gopkg.in/natefinch/lumberjack.v2" + + //import "crypto/sha1" + + //import "golang.org/x/crypto/sha3" + + //import "github.com/deroproject/derohe/transaction" + derodrpc "github.com/deroproject/derohe/cmd/derod/rpc" + "github.com/deroproject/derohe/cmd/explorer/explorerlib" + "github.com/deroproject/derohe/cryptography/crypto" + "github.com/deroproject/derohe/walletapi" +) //import "github.com/deroproject/derosuite/checkpoints" -import "github.com/deroproject/derohe/cryptography/crypto" //import "github.com/deroproject/derosuite/cryptonight" //import "github.com/deroproject/derosuite/crypto/ringct" //import "github.com/deroproject/derohe/blockchain/rpcserver" -import "github.com/deroproject/derohe/walletapi" - -import "github.com/deroproject/derohe/cmd/explorer/explorerlib" var command_line string = `simulator DERO : A secure, private blockchain with smart-contracts diff --git a/cmd/simulator/wallets.go b/cmd/simulator/wallets.go index e8a2d4ff..ea498264 100644 --- a/cmd/simulator/wallets.go +++ b/cmd/simulator/wallets.go @@ -16,23 +16,21 @@ package main -import "os" - -import "fmt" - -import "time" - -//import "math/big" -import "encoding/hex" -import "path/filepath" - -import "github.com/deroproject/derohe/config" -import "github.com/deroproject/derohe/globals" -import "github.com/deroproject/derohe/blockchain" -import "github.com/deroproject/derohe/transaction" -import "github.com/deroproject/derohe/cryptography/crypto" -import "github.com/deroproject/derohe/walletapi" -import "github.com/deroproject/derohe/walletapi/rpcserver" +import ( + "encoding/hex" + "fmt" + "os" + "path/filepath" + "time" + + "github.com/deroproject/derohe/blockchain" + "github.com/deroproject/derohe/config" + "github.com/deroproject/derohe/cryptography/crypto" + "github.com/deroproject/derohe/globals" + "github.com/deroproject/derohe/transaction" + "github.com/deroproject/derohe/walletapi" + "github.com/deroproject/derohe/walletapi/rpcserver" +) //import "math/big" const WALLET_PASSWORD = "" diff --git a/cmd/webwallet/webwallet.go b/cmd/webwallet/webwallet.go index 3200f0f8..ad12cb24 100644 --- a/cmd/webwallet/webwallet.go +++ b/cmd/webwallet/webwallet.go @@ -1,3 +1,4 @@ +//go:build js && wasm // +build js,wasm package main @@ -5,8 +6,9 @@ package main import ( "encoding/hex" "encoding/json" - "os" "io" + "os" + //"io/ioutil" //"log" //"net/http" @@ -15,19 +17,20 @@ import ( "strconv" "syscall/js" "time" + // "bytes" - "runtime" + "runtime" "runtime/debug" "strings" -) -import "github.com/go-logr/logr" -import "github.com/deroproject/derohe/walletapi" -import "github.com/deroproject/derohe/globals" -import "github.com/deroproject/derohe/config" -import "github.com/deroproject/derohe/rpc" -import "github.com/deroproject/derohe/transaction" -import "github.com/deroproject/derohe/cryptography/crypto" + "github.com/deroproject/derohe/config" + "github.com/deroproject/derohe/cryptography/crypto" + "github.com/deroproject/derohe/globals" + "github.com/deroproject/derohe/rpc" + "github.com/deroproject/derohe/transaction" + "github.com/deroproject/derohe/walletapi" + "github.com/go-logr/logr" +) var miner_tx bool = false @@ -37,19 +40,18 @@ var Local_wallet_instance *walletapi.Wallet_Memory func register_wallet_callbacks() { - // this function is used to ping to keep things working + // this function is used to ping to keep things working js.Global().Set("go_pinger", js.FuncOf(func(this js.Value, args []js.Value) interface{} { - fmt.Println("go_pinger called") - return nil - })) + fmt.Println("go_pinger called") + return nil + })) - js_Create_New_Wallet := func(this js.Value, args []js.Value) interface{} { error_message := "success" //filename := args[0].String() password := args[1].String() - if w, err := walletapi.Create_Encrypted_Wallet_Random_Memory( password); err == nil { + if w, err := walletapi.Create_Encrypted_Wallet_Random_Memory(password); err == nil { error_message = "success" Local_wallet_instance = w Local_wallet_instance.SetDaemonAddress(daemon_address) @@ -57,7 +59,7 @@ func register_wallet_callbacks() { } else { error_message = err.Error() } - return error_message + return error_message } js.Global().Set("DERO_JS_Create_New_Wallet", js.FuncOf(js_Create_New_Wallet)) @@ -70,13 +72,13 @@ func register_wallet_callbacks() { error_message = "success" Local_wallet_instance = w Local_wallet_instance.SetDaemonAddress(daemon_address) - Local_wallet_instance.SetNetwork(globals.IsMainnet()) // set mainnet/testnet + Local_wallet_instance.SetNetwork(globals.IsMainnet()) // set mainnet/testnet } else { error_message = err.Error() } js.Global().Set("error_message", error_message) - return nil + return nil } js.Global().Set("DERO_JS_Create_Encrypted_Wallet_From_Recovery_Words", js.FuncOf(js_Create_Encrypted_Wallet_From_Recovery_Words)) @@ -90,7 +92,6 @@ func register_wallet_callbacks() { // and here we are hex decoding as it is faster than converting each value of typed array // TODO: later when this gets fixed by go devs, we can incorporate it - src := []byte(args[2].String()) db_array := make([]byte, hex.DecodedLen(len(src))) n, err := hex.Decode(db_array, src) @@ -98,26 +99,26 @@ func register_wallet_callbacks() { if err != nil { - logger.Error(err,"error decoding hex string") + logger.Error(err, "error decoding hex string") } logger.Info("passed DB", "size", len(db_array)) - w, err := walletapi.Open_Encrypted_Wallet_Memory( args[1].String(), db_array) + w, err := walletapi.Open_Encrypted_Wallet_Memory(args[1].String(), db_array) if err == nil { error_message = "success" Local_wallet_instance = w Local_wallet_instance.SetDaemonAddress(daemon_address) - Local_wallet_instance.SetNetwork(globals.IsMainnet()) // set mainnet/testnet + Local_wallet_instance.SetNetwork(globals.IsMainnet()) // set mainnet/testnet logger.Info("Successfully opened wallet") } else { error_message = err.Error() - logger.Error(err,"Error opened wallet") + logger.Error(err, "Error opened wallet") } js.Global().Set("error_message", error_message) - return nil + return nil } js.Global().Set("DERO_JS_Open_Encrypted_Wallet", js.FuncOf(js_Open_Encrypted_Wallet)) @@ -132,12 +133,12 @@ func register_wallet_callbacks() { seed_raw, err := hex.DecodeString(strings.TrimSpace(seed_hex)) if len(seed_raw) != 32 || err != nil { err = fmt.Errorf("Recovery Only key must be 64 chars hexadecimal chars") - logger.Error(err,"recovery failed") + logger.Error(err, "recovery failed") error_message = err.Error() } else { copy(seed[:], seed_raw[:32]) - wallet, err := walletapi.Create_Encrypted_Wallet_Memory( password, new(crypto.BNRed).SetBytes(seed[:])) + wallet, err := walletapi.Create_Encrypted_Wallet_Memory(password, new(crypto.BNRed).SetBytes(seed[:])) if err != nil { error_message = err.Error() @@ -145,74 +146,71 @@ func register_wallet_callbacks() { error_message = "success" Local_wallet_instance = wallet Local_wallet_instance.SetDaemonAddress(daemon_address) - Local_wallet_instance.SetNetwork(globals.IsMainnet()) // set mainnet/testnet + Local_wallet_instance.SetNetwork(globals.IsMainnet()) // set mainnet/testnet } } js.Global().Set("error_message", error_message) - return nil + return nil } js.Global().Set("DERO_JS_Create_Wallet", js.FuncOf(js_Create_Wallet)) - - - // generate integrated address at user demand - js_GenerateIntegratedAddress := func(this js.Value, args []js.Value) interface{} { + // generate integrated address at user demand + js_GenerateIntegratedAddress := func(this js.Value, args []js.Value) interface{} { if Local_wallet_instance != nil { - i8 := Local_wallet_instance.GetRandomIAddress8() - js.Global().Set("random_i8_address", i8.String()) - //js.Global().Set("random_i8_address_paymentid", fmt.Sprintf("%x", i8.PaymentID)) + i8 := Local_wallet_instance.GetRandomIAddress8() + js.Global().Set("random_i8_address", i8.String()) + //js.Global().Set("random_i8_address_paymentid", fmt.Sprintf("%x", i8.PaymentID)) + } + return nil } - return nil - } - js.Global().Set("DERO_JS_GenerateIAddress", js.FuncOf(js_GenerateIntegratedAddress)) - js_GetSeedinLanguage := func(this js.Value, args []js.Value) interface{} { + js_GetSeedinLanguage := func(this js.Value, args []js.Value) interface{} { seed := "Some error occurred" if Local_wallet_instance != nil && len(args) == 1 { seed = Local_wallet_instance.GetSeedinLanguage(args[0].String()) } js.Global().Set("wallet_seed", seed) - return nil + return nil } js.Global().Set("DERO_JS_GetSeedinLanguage", js.FuncOf(js_GetSeedinLanguage)) - js_TX_history := func(this js.Value, args []js.Value) interface{} { - error_message := "Wallet is Closed" - var buffer []byte - var err error + js_TX_history := func(this js.Value, args []js.Value) interface{} { + error_message := "Wallet is Closed" + var buffer []byte + var err error - defer func() { - js.Global().Set("tx_history", string(buffer)) - js.Global().Set("error_message", error_message) - }() + defer func() { + js.Global().Set("tx_history", string(buffer)) + js.Global().Set("error_message", error_message) + }() - if Local_wallet_instance != nil { + if Local_wallet_instance != nil { - min_height, _ := strconv.ParseUint(args[6].String(), 0, 64) - max_height, _ := strconv.ParseUint(args[7].String(), 0, 64) + min_height, _ := strconv.ParseUint(args[6].String(), 0, 64) + max_height, _ := strconv.ParseUint(args[7].String(), 0, 64) - var zeroscid crypto.Hash + var zeroscid crypto.Hash - entries := Local_wallet_instance.Show_Transfers(zeroscid,args[0].Bool(), args[1].Bool(), args[2].Bool(),0,0, "args[3].Bool()", "args[4].Bool()", min_height, max_height) + entries := Local_wallet_instance.Show_Transfers(zeroscid, args[0].Bool(), args[1].Bool(), args[2].Bool(), 0, 0, "args[3].Bool()", "args[4].Bool()", min_height, max_height) + + if len(entries) == 0 { + return nil + } + buffer, err = json.Marshal(entries) + if err != nil { + error_message = err.Error() + return nil + } + } + return nil - if len(entries) == 0 { - return nil - } - buffer, err = json.Marshal(entries) - if err != nil { - error_message = err.Error() - return nil - }} - return nil - } js.Global().Set("DERO_JS_TX_History", js.FuncOf(js_TX_history)) - - js_Transfer2 := func( args []js.Value) interface{} { + js_Transfer2 := func(args []js.Value) interface{} { transfer_error := "error" var transfer_txid, transfer_txhex, transfer_fee, transfer_amount, transfer_inputs_sum, transfer_change string @@ -228,8 +226,6 @@ func register_wallet_callbacks() { //rlog.Warnf("setting values of tranfesr variables %s ", transfer_error) }() - - var transfers []rpc.Transfer if args[0].Length() != args[1].Length() { @@ -242,7 +238,7 @@ func register_wallet_callbacks() { if err != nil { if _, err1 := Local_wallet_instance.NameToAddress(string(strings.TrimSpace(string(args[0].Index(i).String())))); err1 != nil { transfer_error = err.Error() - logger.Error(err,"Parsing address failed", "addr", args[0].Index(i).String()) + logger.Error(err, "Parsing address failed", "addr", args[0].Index(i).String()) transfer_error = err.Error() return nil } else { @@ -252,32 +248,28 @@ func register_wallet_callbacks() { amount, err := globals.ParseAmount(args[1].Index(i).String()) if err != nil { - logger.Error(err,"Parsing amount failed", "amount", args[0].Index(i).String()) + logger.Error(err, "Parsing amount failed", "amount", args[0].Index(i).String()) transfer_error = err.Error() return nil //return nil, jsonrpc.ErrInvalidParams() } - transfers = append(transfers, rpc.Transfer{Destination:args[0].Index(i).String(), Amount:amount}) + transfers = append(transfers, rpc.Transfer{Destination: args[0].Index(i).String(), Amount: amount}) } - fmt.Printf("address parsed, building tx") ringsize := uint64(0) - tx, err := Local_wallet_instance.TransferPayload0(transfers, ringsize, false, rpc.Arguments{}, 0,false) - + tx, err := Local_wallet_instance.TransferPayload0(transfers, ringsize, false, rpc.Arguments{}, 0, false) + if err != nil { - logger.Error(err,"Error while building Transaction err") + logger.Error(err, "Error while building Transaction err") transfer_error = err.Error() return nil //return nil, &jsonrpc.Error{Code: -2, Message: fmt.Sprintf("Error while building Transaction err %s", err)} } - - - amount := uint64(0) for i := range transfers { amount += transfers[i].Amount @@ -293,101 +285,101 @@ func register_wallet_callbacks() { return nil } - js_Transfer := func(this js.Value,args []js.Value) interface{}{ + js_Transfer := func(this js.Value, args []js.Value) interface{} { go js_Transfer2(args) return nil } js.Global().Set("DERO_JS_Transfer", js.FuncOf(js_Transfer)) -/* - js_Transfer_Everything2 := func(this js.Value, args []js.Value) interface{} { - transfer_error := "error" - var transfer_txid, transfer_txhex, transfer_fee, transfer_amount, transfer_inputs_sum, transfer_change string - - defer func() { - rlog.Warnf("setting values of tranfer variables") - js.Global().Set("transfer_txid", transfer_txid) - js.Global().Set("transfer_txhex", transfer_txhex) - js.Global().Set("transfer_amount", transfer_amount) - js.Global().Set("transfer_fee", transfer_fee) - js.Global().Set("transfer_inputs_sum", transfer_inputs_sum) - js.Global().Set("transfer_change", transfer_change) - js.Global().Set("transfer_error", transfer_error) - rlog.Warnf("setting values of tranfesr variables %s ", transfer_error) - }() + /* + js_Transfer_Everything2 := func(this js.Value, args []js.Value) interface{} { + transfer_error := "error" + var transfer_txid, transfer_txhex, transfer_fee, transfer_amount, transfer_inputs_sum, transfer_change string - var address_list []address.Address - var amount_list []uint64 + defer func() { + rlog.Warnf("setting values of tranfer variables") + js.Global().Set("transfer_txid", transfer_txid) + js.Global().Set("transfer_txhex", transfer_txhex) + js.Global().Set("transfer_amount", transfer_amount) + js.Global().Set("transfer_fee", transfer_fee) + js.Global().Set("transfer_inputs_sum", transfer_inputs_sum) + js.Global().Set("transfer_change", transfer_change) + js.Global().Set("transfer_error", transfer_error) + rlog.Warnf("setting values of tranfesr variables %s ", transfer_error) + }() - if params[0].Length() != 1 { - return - } + var address_list []address.Address + var amount_list []uint64 - for i := 0; i < params[0].Length(); i++ { // convert string address to our native form - a, err := globals.ParseValidateAddress(params[0].Index(i).String()) - if err != nil { - rlog.Warnf("Parsing address failed %s err %s\n", params[0].Index(i).String(), err) - transfer_error = err.Error() + if params[0].Length() != 1 { return - //return nil, jsonrpc.ErrInvalidParams() } - address_list = append(address_list, *a) - } - payment_id := params[1].String() + for i := 0; i < params[0].Length(); i++ { // convert string address to our native form + a, err := globals.ParseValidateAddress(params[0].Index(i).String()) + if err != nil { + rlog.Warnf("Parsing address failed %s err %s\n", params[0].Index(i).String(), err) + transfer_error = err.Error() + return + //return nil, jsonrpc.ErrInvalidParams() + } + address_list = append(address_list, *a) + } - if len(payment_id) > 0 && !(len(payment_id) == 64 || len(payment_id) == 16) { - transfer_error = "Invalid payment ID" - return // we should give invalid payment ID - } - if _, err := hex.DecodeString(payment_id); err != nil { - transfer_error = "Invalid payment ID" - return // we should give invalid payment ID - } + payment_id := params[1].String() - //unlock_time := uint64(0) - fees_per_kb := uint64(0) - mixin := uint64(0) + if len(payment_id) > 0 && !(len(payment_id) == 64 || len(payment_id) == 16) { + transfer_error = "Invalid payment ID" + return // we should give invalid payment ID + } + if _, err := hex.DecodeString(payment_id); err != nil { + transfer_error = "Invalid payment ID" + return // we should give invalid payment ID + } - tx, inputs, input_sum, err := Local_wallet_instance.Transfer_Everything(address_list[0], payment_id, 0, fees_per_kb, mixin) - _ = inputs - if err != nil { - rlog.Warnf("Error while building Everything Transaction err %s\n", err) - transfer_error = err.Error() - return - //return nil, &jsonrpc.Error{Code: -2, Message: fmt.Sprintf("Error while building Transaction err %s", err)} + //unlock_time := uint64(0) + fees_per_kb := uint64(0) + mixin := uint64(0) - } + tx, inputs, input_sum, err := Local_wallet_instance.Transfer_Everything(address_list[0], payment_id, 0, fees_per_kb, mixin) + _ = inputs + if err != nil { + rlog.Warnf("Error while building Everything Transaction err %s\n", err) + transfer_error = err.Error() + return + //return nil, &jsonrpc.Error{Code: -2, Message: fmt.Sprintf("Error while building Transaction err %s", err)} - rlog.Infof("Inputs Selected for %s \n", globals.FormatMoney(input_sum)) - amount := uint64(0) - for i := range amount_list { - amount += amount_list[i] - } - amount = uint64(input_sum - tx.RctSignature.Get_TX_Fee()) - change := uint64(0) - rlog.Infof("Transfering everything total amount %s \n", globals.FormatMoney(amount)) - rlog.Infof("change amount ( will come back ) %s \n", globals.FormatMoney(change)) - rlog.Infof("fees %s \n", globals.FormatMoney(tx.RctSignature.Get_TX_Fee())) + } - rlog.Infof(" size of tx %d", len(hex.EncodeToString(tx.Serialize()))) + rlog.Infof("Inputs Selected for %s \n", globals.FormatMoney(input_sum)) + amount := uint64(0) + for i := range amount_list { + amount += amount_list[i] + } + amount = uint64(input_sum - tx.RctSignature.Get_TX_Fee()) + change := uint64(0) + rlog.Infof("Transfering everything total amount %s \n", globals.FormatMoney(amount)) + rlog.Infof("change amount ( will come back ) %s \n", globals.FormatMoney(change)) + rlog.Infof("fees %s \n", globals.FormatMoney(tx.RctSignature.Get_TX_Fee())) - transfer_fee = globals.FormatMoney12(tx.RctSignature.Get_TX_Fee()) - transfer_amount = globals.FormatMoney12(amount) - transfer_change = globals.FormatMoney12(change) - transfer_inputs_sum = globals.FormatMoney12(input_sum) - transfer_txid = tx.GetHash().String() - transfer_txhex = hex.EncodeToString(tx.Serialize()) - transfer_error = "success" - } + rlog.Infof(" size of tx %d", len(hex.EncodeToString(tx.Serialize()))) - js_Transfer_Everything := func(params []js.Value) { - go js_Transfer_Everything2(params) - } - js.Global().Set("DERO_JS_Transfer_Everything", js.NewCallback(js_Transfer_Everything)) -*/ - js_Relay_TX2 := func( args []js.Value) { + transfer_fee = globals.FormatMoney12(tx.RctSignature.Get_TX_Fee()) + transfer_amount = globals.FormatMoney12(amount) + transfer_change = globals.FormatMoney12(change) + transfer_inputs_sum = globals.FormatMoney12(input_sum) + transfer_txid = tx.GetHash().String() + transfer_txhex = hex.EncodeToString(tx.Serialize()) + transfer_error = "success" + } + + js_Transfer_Everything := func(params []js.Value) { + go js_Transfer_Everything2(params) + } + js.Global().Set("DERO_JS_Transfer_Everything", js.NewCallback(js_Transfer_Everything)) + */ + js_Relay_TX2 := func(args []js.Value) { hex_tx := strings.TrimSpace(args[0].String()) tx_bytes, err := hex.DecodeString(hex_tx) if err != nil { @@ -412,54 +404,54 @@ func register_wallet_callbacks() { js.Global().Set("relay_error", "success") } - js_Relay_TX := func(this js.Value,params []js.Value) interface{} { + js_Relay_TX := func(this js.Value, params []js.Value) interface{} { go js_Relay_TX2(params) return nil } js.Global().Set("DERO_JS_Relay_TX", js.FuncOf(js_Relay_TX)) - js_Register_2 := func( args []js.Value) { + js_Register_2 := func(args []js.Value) { if Local_wallet_instance == nil { - return + return } var reg_tx *transaction.Transaction - successful_regs := make(chan *transaction.Transaction) - counter := 0 - fmt.Printf("Beginning wallet registeration") - for i := 0; i < runtime.GOMAXPROCS(0); i++ { - go func() { - for counter == 0 { - lreg_tx := Local_wallet_instance.GetRegistrationTX() - hash := lreg_tx.GetHash() - if hash[0] == 0 && hash[1] == 0 && hash[2] == 0 { - successful_regs <- lreg_tx - counter++ - break - } + successful_regs := make(chan *transaction.Transaction) + counter := 0 + fmt.Printf("Beginning wallet registeration") + for i := 0; i < runtime.GOMAXPROCS(0); i++ { + go func() { + for counter == 0 { + lreg_tx := Local_wallet_instance.GetRegistrationTX() + hash := lreg_tx.GetHash() + if hash[0] == 0 && hash[1] == 0 && hash[2] == 0 { + successful_regs <- lreg_tx + counter++ + break } - }() - } + } + }() + } - reg_tx = <-successful_regs - fmt.Printf("Registration TXID %s\n", reg_tx.GetHash()) - err := Local_wallet_instance.SendTransaction(reg_tx) - _ = err + reg_tx = <-successful_regs + fmt.Printf("Registration TXID %s\n", reg_tx.GetHash()) + err := Local_wallet_instance.SendTransaction(reg_tx) + _ = err } - js_Register := func(this js.Value,params []js.Value) interface{} { + js_Register := func(this js.Value, params []js.Value) interface{} { go js_Register_2(params) return nil } js.Global().Set("DERO_JS_Register", js.FuncOf(js_Register)) - js_Close_Encrypted_Wallet :=func(this js.Value, args []js.Value) interface{} { + js_Close_Encrypted_Wallet := func(this js.Value, args []js.Value) interface{} { if Local_wallet_instance != nil { Local_wallet_instance.Close_Encrypted_Wallet() Local_wallet_instance = nil fmt.Printf("Wallet has been closed\n") } - return nil + return nil } js.Global().Set("DERO_JS_Close_Encrypted_Wallet", js.FuncOf(js_Close_Encrypted_Wallet)) @@ -467,9 +459,9 @@ func register_wallet_callbacks() { // these function does NOT report back anything js_Rescan_Blockchain := func(this js.Value, args []js.Value) interface{} { if Local_wallet_instance != nil { - Local_wallet_instance.Clean() // clean existing data from wallet + Local_wallet_instance.Clean() // clean existing data from wallet } - return nil + return nil } js.Global().Set("DERO_JS_Rescan_Blockchain", js.FuncOf(js_Rescan_Blockchain)) @@ -478,7 +470,7 @@ func register_wallet_callbacks() { if Local_wallet_instance != nil { Local_wallet_instance.SetOnlineMode() } - return nil + return nil } js.Global().Set("DERO_JS_SetOnline", js.FuncOf(js_SetOnline)) @@ -487,7 +479,7 @@ func register_wallet_callbacks() { if Local_wallet_instance != nil { Local_wallet_instance.SetOfflineMode() } - return nil + return nil } js.Global().Set("DERO_JS_SetOffline", js.FuncOf(js_SetOffline)) @@ -496,7 +488,7 @@ func register_wallet_callbacks() { if Local_wallet_instance != nil { Local_wallet_instance.Set_Encrypted_Wallet_Password(args[0].String()) } - return nil + return nil } js.Global().Set("DERO_JS_ChangePassword", js.FuncOf(js_ChangePassword)) @@ -511,7 +503,7 @@ func register_wallet_callbacks() { if Local_wallet_instance != nil { Local_wallet_instance.SetRingSize((args[0].Int())) } - return nil + return nil } js.Global().Set("DERO_JS_SetMixin", js.FuncOf(js_SetMixin)) @@ -520,17 +512,16 @@ func register_wallet_callbacks() { if Local_wallet_instance != nil { Local_wallet_instance.SetFeeMultiplier(float32(args[0].Float())) } - return nil + return nil } js.Global().Set("DERO_JS_SetFeeMultiplier", js.FuncOf(js_SetFeeMultiplier)) - - - // this function does NOT report back anything + + // this function does NOT report back anything js_SetSyncTime := func(this js.Value, args []js.Value) interface{} { if Local_wallet_instance != nil { //Local_wallet_instance.SetDelaySync(int64(args[0].Int())) } - return nil + return nil } js.Global().Set("DERO_JS_SetSyncTime", js.FuncOf(js_SetSyncTime)) @@ -539,11 +530,10 @@ func register_wallet_callbacks() { if Local_wallet_instance != nil { Local_wallet_instance.SetDaemonAddress(args[0].String()) } - return nil + return nil } js.Global().Set("DERO_JS_SetDaemonAddress", js.FuncOf(js_SetDaemonAddress)) - // some apis to detect parse validate address // this will setup some fields js_VerifyAddress := func(this js.Value, args []js.Value) interface{} { @@ -574,12 +564,12 @@ func register_wallet_callbacks() { js.Global().Set("address_valid", address_valid) js.Global().Set("address_integrated", address_integrated) - return nil + return nil } js.Global().Set("DERO_JS_VerifyAddress", js.FuncOf(js_VerifyAddress)) - js_VerifyAmount := func(this js.Value, args []js.Value) interface{}{ + js_VerifyAmount := func(this js.Value, args []js.Value) interface{} { var amount_valid bool lamountstr := strings.TrimSpace(args[0].String()) _, err := globals.ParseAmount(lamountstr) @@ -592,7 +582,7 @@ func register_wallet_callbacks() { amount_valid = true js.Global().Set("amount_valid", amount_valid) js.Global().Set("amount_error", "success") - return nil + return nil } js.Global().Set("DERO_JS_VerifyAmount", js.FuncOf(js_VerifyAmount)) @@ -605,11 +595,10 @@ func register_wallet_callbacks() { } } js.Global().Set("password_error", password_error) - return nil + return nil } js.Global().Set("DERO_JS_VerifyPassword", js.FuncOf(js_VerifyPassword)) - js_GetEncryptedCopy := func(this js.Value, args []js.Value) interface{} { wallet_encrypted_error := "success" var encrypted_bytes []byte @@ -617,17 +606,16 @@ func register_wallet_callbacks() { encrypted_bytes = Local_wallet_instance.Get_Encrypted_Wallet() } - a := js.Global().Get("Uint8Array").New(len(encrypted_bytes)) + a := js.Global().Get("Uint8Array").New(len(encrypted_bytes)) js.CopyBytesToJS(a, encrypted_bytes) - runtime.KeepAlive(a) + runtime.KeepAlive(a) js.Global().Set("wallet_encrypted_dump", js.Global().Get("Int8Array").New(a.Get("buffer"))) js.Global().Set("wallet_encrypted_error", wallet_encrypted_error) - return nil + return nil } js.Global().Set("DERO_JS_GetEncryptedCopy", js.FuncOf(js_GetEncryptedCopy)) - } // if this remain empty, default 127.0.0.1:20206 is used @@ -639,10 +627,9 @@ func main() { fmt.Printf("running go now\n") globals.Arguments = map[string]interface{}{} - globals.InitializeLog(os.Stdout,io.Discard) + globals.InitializeLog(os.Stdout, io.Discard) logger = globals.Logger - globals.Config = config.Mainnet //globals.Initialize() @@ -691,19 +678,19 @@ func main() { } } - }else{ - fmt.Printf("error parsing url",err) + } else { + fmt.Printf("error parsing url", err) } walletapi.SetDaemonAddress(daemon_address) // set daemon address - fmt.Printf("daemon_address %s\n",daemon_address) + fmt.Printf("daemon_address %s\n", daemon_address) fmt.Printf("registering callbacks") register_wallet_callbacks() fmt.Printf("registered callbacks") - go walletapi.Keep_Connectivity() // maintain connectivity - // init the lookup table one, anyone importing walletapi should init this first + go walletapi.Keep_Connectivity() // maintain connectivity + // init the lookup table one, anyone importing walletapi should init this first //go walletapi.Initialize_LookupTable(1, 1<<18) go update_balance() @@ -720,8 +707,8 @@ func update_balance() { wallet_height := uint64(0) daemon_height := uint64(0) - wallet_topo_height := uint64(0) - daemon_topo_height := uint64(0) + wallet_topo_height := uint64(0) + daemon_topo_height := uint64(0) wallet_initial_height := int64(0) @@ -733,20 +720,19 @@ func update_balance() { wallet_mixin := 16 wallet_fees_multiplier := float64(1.5) wallet_daemon_address := "" - wallet_sync_time := int64(0) - wallet_minimum_topo_height := int64(-1) - wallet_error := "" + wallet_sync_time := int64(0) + wallet_minimum_topo_height := int64(-1) + wallet_error := "" if Local_wallet_instance != nil { unlocked_balance, locked_balance = Local_wallet_instance.Get_Balance() - total_balance = unlocked_balance + locked_balance wallet_height = Local_wallet_instance.Get_Height() daemon_height = Local_wallet_instance.Get_Daemon_Height() - wallet_topo_height = uint64(Local_wallet_instance.Get_TopoHeight()) - daemon_topo_height = uint64(Local_wallet_instance.Get_Daemon_TopoHeight()) + wallet_topo_height = uint64(Local_wallet_instance.Get_TopoHeight()) + daemon_topo_height = uint64(Local_wallet_instance.Get_Daemon_TopoHeight()) wallet_address = Local_wallet_instance.GetAddress().String() wallet_available = true @@ -762,11 +748,9 @@ func update_balance() { if Local_wallet_instance.Error != nil { wallet_error = Local_wallet_instance.Error.Error() } - - - //wallet_sync_time = Local_wallet_instance.SetDelaySync(0) - // wallet_minimum_topo_height = Local_wallet_instance.GetMinimumTopoHeight() + //wallet_sync_time = Local_wallet_instance.SetDelaySync(0) + // wallet_minimum_topo_height = Local_wallet_instance.GetMinimumTopoHeight() } js.Global().Set("wallet_address", wallet_address) @@ -787,19 +771,15 @@ func update_balance() { js.Global().Set("wallet_fees_multiplier", wallet_fees_multiplier) js.Global().Set("wallet_daemon_address", wallet_daemon_address) js.Global().Set("wallet_version_string", wallet_version_string) - js.Global().Set("wallet_sync_time", wallet_sync_time) - js.Global().Set("wallet_minimum_topo_height", wallet_minimum_topo_height) - js.Global().Set("wallet_error", wallet_error) - - - + js.Global().Set("wallet_sync_time", wallet_sync_time) + js.Global().Set("wallet_minimum_topo_height", wallet_minimum_topo_height) + js.Global().Set("wallet_error", wallet_error) time.Sleep(100 * time.Millisecond) // update max 10 times per second } } - var i8_address, i8_address_paymentid string // generate integrated address at user demand diff --git a/config/config.go b/config/config.go index 6109ec52..8096fb55 100644 --- a/config/config.go +++ b/config/config.go @@ -16,10 +16,10 @@ package config -import "github.com/satori/go.uuid" - -//import "github.com/caarlos0/env/v6" -import "github.com/deroproject/derohe/cryptography/crypto" +import ( + "github.com/deroproject/derohe/cryptography/crypto" //import "github.com/caarlos0/env/v6" + uuid "github.com/satori/go.uuid" +) // all global configuration variables are picked from here diff --git a/cryptography/crypto/algebra_elgamal.go b/cryptography/crypto/algebra_elgamal.go index 2de3256d..6a9fae75 100644 --- a/cryptography/crypto/algebra_elgamal.go +++ b/cryptography/crypto/algebra_elgamal.go @@ -17,13 +17,13 @@ package crypto //import "fmt" -import "math/big" +import ( + "math/big" -//import "crypto/rand" + "github.com/deroproject/derohe/cryptography/bn256" +) //import "crypto/rand" //import "encoding/hex" -import "github.com/deroproject/derohe/cryptography/bn256" - //import "golang.org/x/crypto/sha3" // a ZERO diff --git a/cryptography/crypto/algebra_fieldvector.go b/cryptography/crypto/algebra_fieldvector.go index 5b98c5dc..724427f9 100644 --- a/cryptography/crypto/algebra_fieldvector.go +++ b/cryptography/crypto/algebra_fieldvector.go @@ -17,13 +17,13 @@ package crypto //import "fmt" -import "math/big" +import ( + "math/big" -//import "crypto/rand" + "github.com/deroproject/derohe/cryptography/bn256" +) //import "crypto/rand" //import "encoding/hex" -import "github.com/deroproject/derohe/cryptography/bn256" - //import "golang.org/x/crypto/sha3" type FieldVector struct { diff --git a/cryptography/crypto/algebra_pedersen.go b/cryptography/crypto/algebra_pedersen.go index ae17ea7e..c0ec5fc6 100644 --- a/cryptography/crypto/algebra_pedersen.go +++ b/cryptography/crypto/algebra_pedersen.go @@ -16,14 +16,16 @@ package crypto -import "fmt" -import "math/big" +import ( + "fmt" + "math/big" + + "github.com/deroproject/derohe/cryptography/bn256" +) //import "crypto/rand" //import "encoding/hex" -import "github.com/deroproject/derohe/cryptography/bn256" - //import "golang.org/x/crypto/sha3" var G *bn256.G1 diff --git a/cryptography/crypto/algebra_pointvector.go b/cryptography/crypto/algebra_pointvector.go index 7cfffa6d..35891020 100644 --- a/cryptography/crypto/algebra_pointvector.go +++ b/cryptography/crypto/algebra_pointvector.go @@ -17,13 +17,13 @@ package crypto //import "fmt" -import "math/big" +import ( + "math/big" -//import "crypto/rand" + "github.com/deroproject/derohe/cryptography/bn256" +) //import "crypto/rand" //import "encoding/hex" -import "github.com/deroproject/derohe/cryptography/bn256" - //import "golang.org/x/crypto/sha3" // ToDO evaluate others curves such as BLS12 used by zcash, also BLS24 or others , providing ~200 bits of security , may be required for long time use( say 50 years) diff --git a/cryptography/crypto/bnred.go b/cryptography/crypto/bnred.go index 1e22b167..68219d03 100644 --- a/cryptography/crypto/bnred.go +++ b/cryptography/crypto/bnred.go @@ -16,8 +16,10 @@ package crypto -import "fmt" -import "math/big" +import ( + "fmt" + "math/big" +) //import "encoding/binary" diff --git a/cryptography/crypto/fieldvector.go b/cryptography/crypto/fieldvector.go index 6ac101c9..b828519b 100644 --- a/cryptography/crypto/fieldvector.go +++ b/cryptography/crypto/fieldvector.go @@ -17,13 +17,13 @@ package crypto //import "fmt" -import "math/big" +import ( + "math/big" -//import "crypto/rand" + "github.com/deroproject/derohe/cryptography/bn256" +) //import "crypto/rand" //import "encoding/hex" -import "github.com/deroproject/derohe/cryptography/bn256" - type FieldVectorPolynomial struct { coefficients []*FieldVector } diff --git a/cryptography/crypto/generatorparams.go b/cryptography/crypto/generatorparams.go index a06801e2..869a3797 100644 --- a/cryptography/crypto/generatorparams.go +++ b/cryptography/crypto/generatorparams.go @@ -16,14 +16,16 @@ package crypto -import "fmt" -import "math/big" +import ( + "fmt" + "math/big" + + "github.com/deroproject/derohe/cryptography/bn256" +) //import "crypto/rand" //import "encoding/hex" -import "github.com/deroproject/derohe/cryptography/bn256" - func NewGeneratorParams(count int) *GeneratorParams { GP := &GeneratorParams{} var zeroes [64]byte diff --git a/cryptography/crypto/group.go b/cryptography/crypto/group.go index 31131fec..1a4c6a44 100644 --- a/cryptography/crypto/group.go +++ b/cryptography/crypto/group.go @@ -17,11 +17,12 @@ package crypto //import "fmt" -import "math/big" -import "encoding/hex" +import ( + "encoding/hex" + "math/big" -//import "crypto/rand" -import "github.com/deroproject/derohe/cryptography/bn256" + "github.com/deroproject/derohe/cryptography/bn256" +) //import "crypto/rand" // this file implements Big Number Reduced form with bn256's Order diff --git a/cryptography/crypto/hash.go b/cryptography/crypto/hash.go index 3223456d..8210cc5b 100644 --- a/cryptography/crypto/hash.go +++ b/cryptography/crypto/hash.go @@ -16,8 +16,10 @@ package crypto -import "fmt" -import "encoding/hex" +import ( + "encoding/hex" + "fmt" +) const HashLength = 32 diff --git a/cryptography/crypto/hashtopoint.go b/cryptography/crypto/hashtopoint.go index 39a15354..25b82c05 100644 --- a/cryptography/crypto/hashtopoint.go +++ b/cryptography/crypto/hashtopoint.go @@ -16,13 +16,13 @@ package crypto -import "fmt" -import "math/big" - -//import "crypto/rand" -import "encoding/hex" -import "golang.org/x/crypto/sha3" -import "github.com/deroproject/derohe/cryptography/bn256" +import ( + "encoding/hex" + "fmt" + "github.com/deroproject/derohe/cryptography/bn256" //import "crypto/rand" + "golang.org/x/crypto/sha3" + "math/big" +) // the original try and increment method A Note on Hashing to BN Curves https://www.normalesup.org/~tibouchi/papers/bnhash-scis.pdf // see this for a simplified version https://github.com/clearmatics/mobius/blob/7ad988b816b18e22424728329fc2b166d973a120/contracts/bn256g1.sol diff --git a/cryptography/crypto/keccak.go b/cryptography/crypto/keccak.go index d658a543..3156cb13 100644 --- a/cryptography/crypto/keccak.go +++ b/cryptography/crypto/keccak.go @@ -16,8 +16,11 @@ package crypto -import "golang.org/x/crypto/sha3" -import "encoding/binary" +import ( + "encoding/binary" + + "golang.org/x/crypto/sha3" +) // quick keccak wrapper func Keccak256(data ...[]byte) (result Hash) { diff --git a/cryptography/crypto/keccak_test.go b/cryptography/crypto/keccak_test.go index bc614e8d..311bb640 100644 --- a/cryptography/crypto/keccak_test.go +++ b/cryptography/crypto/keccak_test.go @@ -16,8 +16,10 @@ package crypto -import "testing" -import "encoding/hex" +import ( + "encoding/hex" + "testing" +) func TestKeccak256(t *testing.T) { tests := []struct { diff --git a/cryptography/crypto/key_old.go b/cryptography/crypto/key_old.go index d4ab96cf..7d259fdb 100644 --- a/cryptography/crypto/key_old.go +++ b/cryptography/crypto/key_old.go @@ -16,8 +16,10 @@ package crypto -import "fmt" -import "encoding/hex" +import ( + "encoding/hex" + "fmt" +) const KeyLength = 32 diff --git a/cryptography/crypto/polynomial.go b/cryptography/crypto/polynomial.go index ae99c286..32778a75 100644 --- a/cryptography/crypto/polynomial.go +++ b/cryptography/crypto/polynomial.go @@ -17,13 +17,13 @@ package crypto //import "fmt" -import "math/big" +import ( + "math/big" -//import "crypto/rand" + "github.com/deroproject/derohe/cryptography/bn256" +) //import "crypto/rand" //import "encoding/hex" -import "github.com/deroproject/derohe/cryptography/bn256" - //import "golang.org/x/crypto/sha3" type Polynomial struct { diff --git a/cryptography/crypto/proof_generate.go b/cryptography/crypto/proof_generate.go index f9503468..a92abe17 100644 --- a/cryptography/crypto/proof_generate.go +++ b/cryptography/crypto/proof_generate.go @@ -16,17 +16,19 @@ package crypto -import "fmt" -import "math" -import "math/big" -import "bytes" -import "strconv" +import ( + "bytes" + "fmt" + "math" + "math/big" + "strconv" + + "github.com/deroproject/derohe/cryptography/bn256" +) //import "crypto/rand" //import "encoding/hex" -import "github.com/deroproject/derohe/cryptography/bn256" - //import "golang.org/x/crypto/sha3" //import "github.com/kubernetes/klog" diff --git a/cryptography/crypto/proof_innerproduct.go b/cryptography/crypto/proof_innerproduct.go index b8a3f32f..9bc0379b 100644 --- a/cryptography/crypto/proof_innerproduct.go +++ b/cryptography/crypto/proof_innerproduct.go @@ -17,15 +17,17 @@ package crypto //import "fmt" -import "math" -import "math/big" -import "bytes" +import ( + "bytes" + "math" + "math/big" + + "github.com/deroproject/derohe/cryptography/bn256" +) //import "crypto/rand" //import "encoding/hex" -import "github.com/deroproject/derohe/cryptography/bn256" - //import "golang.org/x/crypto/sha3" // basically the Σ-protocol diff --git a/cryptography/crypto/proof_verify.go b/cryptography/crypto/proof_verify.go index 1de18549..8b526099 100644 --- a/cryptography/crypto/proof_verify.go +++ b/cryptography/crypto/proof_verify.go @@ -17,14 +17,14 @@ package crypto //import "fmt" -import "math" -import "math/big" -import "strconv" - -//import "crypto/rand" -import "encoding/hex" - -import "github.com/deroproject/derohe/cryptography/bn256" +import ( + "encoding/hex" + "math" + "math/big" + "strconv" + + "github.com/deroproject/derohe/cryptography/bn256" +) //import "crypto/rand" //import "golang.org/x/crypto/sha3" diff --git a/cryptography/crypto/protocol_structures.go b/cryptography/crypto/protocol_structures.go index 9116e948..53be6355 100644 --- a/cryptography/crypto/protocol_structures.go +++ b/cryptography/crypto/protocol_structures.go @@ -230,4 +230,3 @@ type Proof struct { //ip *InnerProduct } */ - diff --git a/cryptography/crypto/random.go b/cryptography/crypto/random.go index aea29577..fae0470c 100644 --- a/cryptography/crypto/random.go +++ b/cryptography/crypto/random.go @@ -16,9 +16,12 @@ package crypto -import "math/big" -import "crypto/rand" -import "github.com/deroproject/derohe/cryptography/bn256" +import ( + "crypto/rand" + "math/big" + + "github.com/deroproject/derohe/cryptography/bn256" +) func RandomScalar() *big.Int { diff --git a/cryptography/crypto/userdata.go b/cryptography/crypto/userdata.go index daa77448..8e16e185 100644 --- a/cryptography/crypto/userdata.go +++ b/cryptography/crypto/userdata.go @@ -16,11 +16,13 @@ package crypto -import "math/big" -import "golang.org/x/crypto/chacha20" -import "github.com/deroproject/derohe/cryptography/bn256" +import ( + "math/big" -import "github.com/go-logr/logr" + "github.com/deroproject/derohe/cryptography/bn256" + "github.com/go-logr/logr" + "golang.org/x/crypto/chacha20" +) var Logger logr.Logger = logr.Discard() // default discard all logs, someone needs to set this up diff --git a/dvm/deterministic_random_number.go b/dvm/deterministic_random_number.go index 7a76c441..94b76d52 100644 --- a/dvm/deterministic_random_number.go +++ b/dvm/deterministic_random_number.go @@ -16,10 +16,12 @@ package dvm -import "encoding/binary" -import "golang.org/x/crypto/salsa20/salsa" +import ( + "encoding/binary" -import "github.com/deroproject/derohe/cryptography/crypto" + "github.com/deroproject/derohe/cryptography/crypto" + "golang.org/x/crypto/salsa20/salsa" +) /* this file implements a deterministic random number generator the random number space is quite large but still unattackable, since the seeds are random diff --git a/dvm/deterministic_random_number_test.go b/dvm/deterministic_random_number_test.go index 89b4a038..c49abd6b 100644 --- a/dvm/deterministic_random_number_test.go +++ b/dvm/deterministic_random_number_test.go @@ -18,9 +18,11 @@ package dvm //import "fmt" //import "reflect" -import "testing" +import ( + "testing" -import "github.com/deroproject/derohe/cryptography/crypto" + "github.com/deroproject/derohe/cryptography/crypto" +) // run the test func Test_RND_execution(t *testing.T) { diff --git a/dvm/dvm.go b/dvm/dvm.go index 5f66f3c3..46f343f1 100644 --- a/dvm/dvm.go +++ b/dvm/dvm.go @@ -16,20 +16,22 @@ package dvm -import "fmt" -import "text/scanner" -import "strings" -import "strconv" -import "unicode" -import "unicode/utf8" -import "go/ast" -import "go/parser" -import "go/token" -import "math" - -import "runtime/debug" -import "github.com/blang/semver/v4" -import "github.com/deroproject/derohe/cryptography/crypto" +import ( + "fmt" + "go/ast" + "go/parser" + "go/token" + "math" + "runtime/debug" + "strconv" + "strings" + "text/scanner" + "unicode" + "unicode/utf8" + + "github.com/blang/semver/v4" + "github.com/deroproject/derohe/cryptography/crypto" +) //import "github.com/deroproject/derohe/rpc" diff --git a/dvm/dvm_execution_test.go b/dvm/dvm_execution_test.go index cbd2718f..7a27b149 100644 --- a/dvm/dvm_execution_test.go +++ b/dvm/dvm_execution_test.go @@ -16,9 +16,11 @@ package dvm -import "fmt" -import "reflect" -import "testing" +import ( + "fmt" + "reflect" + "testing" +) //import "github.com/deroproject/derosuite/crypto" diff --git a/dvm/dvm_functions.go b/dvm/dvm_functions.go index a7613830..44e97e85 100644 --- a/dvm/dvm_functions.go +++ b/dvm/dvm_functions.go @@ -16,17 +16,19 @@ package dvm -import "fmt" -import "go/ast" -import "strconv" -import "strings" -import "crypto/sha256" -import "encoding/hex" -import "golang.org/x/crypto/sha3" -import "github.com/blang/semver/v4" - -import "github.com/deroproject/derohe/rpc" -import "github.com/deroproject/derohe/cryptography/crypto" +import ( + "crypto/sha256" + "encoding/hex" + "fmt" + "go/ast" + "strconv" + "strings" + + "github.com/blang/semver/v4" + "github.com/deroproject/derohe/cryptography/crypto" + "github.com/deroproject/derohe/rpc" + "golang.org/x/crypto/sha3" +) // this files defines external functions which can be called in DVM // for example to load and store data from the blockchain and other basic functions @@ -55,43 +57,43 @@ type func_data struct { } func init() { - func_table["version"] = []func_data{func_data{Range: semver.MustParseRange(">=0.0.0"), ComputeCost: 1000, StorageCost: 0, PtrU: dvm_version}} - func_table["load"] = []func_data{func_data{Range: semver.MustParseRange(">=0.0.0"), ComputeCost: 5000, StorageCost: 0, Ptr: dvm_load}} - func_table["exists"] = []func_data{func_data{Range: semver.MustParseRange(">=0.0.0"), ComputeCost: 5000, StorageCost: 0, PtrU: dvm_exists}} - func_table["store"] = []func_data{func_data{Range: semver.MustParseRange(">=0.0.0"), ComputeCost: 10000, StorageCost: 0, PtrU: dvm_store}} - func_table["delete"] = []func_data{func_data{Range: semver.MustParseRange(">=0.0.0"), ComputeCost: 3000, StorageCost: 0, PtrU: dvm_delete}} - func_table["mapexists"] = []func_data{func_data{Range: semver.MustParseRange(">=0.0.0"), ComputeCost: 1000, StorageCost: 0, PtrU: dvm_mapexists}} - func_table["mapget"] = []func_data{func_data{Range: semver.MustParseRange(">=0.0.0"), ComputeCost: 1000, StorageCost: 0, Ptr: dvm_mapget}} - func_table["mapstore"] = []func_data{func_data{Range: semver.MustParseRange(">=0.0.0"), ComputeCost: 1000, StorageCost: 0, PtrU: dvm_mapstore}} - func_table["mapdelete"] = []func_data{func_data{Range: semver.MustParseRange(">=0.0.0"), ComputeCost: 1000, StorageCost: 0, PtrU: dvm_mapdelete}} - func_table["random"] = []func_data{func_data{Range: semver.MustParseRange(">=0.0.0"), ComputeCost: 2500, StorageCost: 0, PtrU: dvm_random}} - func_table["scid"] = []func_data{func_data{Range: semver.MustParseRange(">=0.0.0"), ComputeCost: 2000, StorageCost: 0, PtrS: dvm_scid}} - func_table["blid"] = []func_data{func_data{Range: semver.MustParseRange(">=0.0.0"), ComputeCost: 2000, StorageCost: 0, PtrS: dvm_blid}} - func_table["txid"] = []func_data{func_data{Range: semver.MustParseRange(">=0.0.0"), ComputeCost: 2000, StorageCost: 0, PtrS: dvm_txid}} - func_table["dero"] = []func_data{func_data{Range: semver.MustParseRange(">=0.0.0"), ComputeCost: 10000, StorageCost: 0, PtrS: dvm_dero}} - func_table["block_height"] = []func_data{func_data{Range: semver.MustParseRange(">=0.0.0"), ComputeCost: 2000, StorageCost: 0, PtrU: dvm_block_height}} - func_table["block_timestamp"] = []func_data{func_data{Range: semver.MustParseRange(">=0.0.0"), ComputeCost: 2500, StorageCost: 0, PtrU: dvm_block_timestamp}} - func_table["signer"] = []func_data{func_data{Range: semver.MustParseRange(">=0.0.0"), ComputeCost: 5000, StorageCost: 0, PtrS: dvm_signer}} - func_table["update_sc_code"] = []func_data{func_data{Range: semver.MustParseRange(">=0.0.0"), ComputeCost: 5000, StorageCost: 0, PtrU: dvm_update_sc_code}} - func_table["is_address_valid"] = []func_data{func_data{Range: semver.MustParseRange(">=0.0.0"), ComputeCost: 50000, StorageCost: 0, PtrU: dvm_is_address_valid}} - func_table["address_raw"] = []func_data{func_data{Range: semver.MustParseRange(">=0.0.0"), ComputeCost: 60000, StorageCost: 0, PtrS: dvm_address_raw}} - func_table["address_string"] = []func_data{func_data{Range: semver.MustParseRange(">=0.0.0"), ComputeCost: 50000, StorageCost: 0, PtrS: dvm_address_string}} - func_table["send_dero_to_address"] = []func_data{func_data{Range: semver.MustParseRange(">=0.0.0"), ComputeCost: 70000, StorageCost: 0, PtrU: dvm_send_dero_to_address}} - func_table["send_asset_to_address"] = []func_data{func_data{Range: semver.MustParseRange(">=0.0.0"), ComputeCost: 90000, StorageCost: 0, PtrU: dvm_send_asset_to_address}} - func_table["derovalue"] = []func_data{func_data{Range: semver.MustParseRange(">=0.0.0"), ComputeCost: 10000, StorageCost: 0, PtrU: dvm_derovalue}} - func_table["assetvalue"] = []func_data{func_data{Range: semver.MustParseRange(">=0.0.0"), ComputeCost: 10000, StorageCost: 0, PtrU: dvm_assetvalue}} - func_table["atoi"] = []func_data{func_data{Range: semver.MustParseRange(">=0.0.0"), ComputeCost: 5000, StorageCost: 0, PtrU: dvm_atoi}} - func_table["itoa"] = []func_data{func_data{Range: semver.MustParseRange(">=0.0.0"), ComputeCost: 5000, StorageCost: 0, PtrS: dvm_itoa}} - func_table["sha256"] = []func_data{func_data{Range: semver.MustParseRange(">=0.0.0"), ComputeCost: 25000, StorageCost: 0, PtrS: dvm_sha256}} - func_table["sha3256"] = []func_data{func_data{Range: semver.MustParseRange(">=0.0.0"), ComputeCost: 25000, StorageCost: 0, PtrS: dvm_sha3256}} - func_table["keccak256"] = []func_data{func_data{Range: semver.MustParseRange(">=0.0.0"), ComputeCost: 25000, StorageCost: 0, PtrS: dvm_keccak256}} - func_table["hex"] = []func_data{func_data{Range: semver.MustParseRange(">=0.0.0"), ComputeCost: 10000, StorageCost: 0, PtrS: dvm_hex}} - func_table["hexdecode"] = []func_data{func_data{Range: semver.MustParseRange(">=0.0.0"), ComputeCost: 10000, StorageCost: 0, PtrS: dvm_hexdecode}} - func_table["min"] = []func_data{func_data{Range: semver.MustParseRange(">=0.0.0"), ComputeCost: 5000, StorageCost: 0, PtrU: dvm_min}} - func_table["max"] = []func_data{func_data{Range: semver.MustParseRange(">=0.0.0"), ComputeCost: 5000, StorageCost: 0, PtrU: dvm_max}} - func_table["strlen"] = []func_data{func_data{Range: semver.MustParseRange(">=0.0.0"), ComputeCost: 20000, StorageCost: 0, PtrU: dvm_strlen}} - func_table["substr"] = []func_data{func_data{Range: semver.MustParseRange(">=0.0.0"), ComputeCost: 20000, StorageCost: 0, PtrS: dvm_substr}} - func_table["panic"] = []func_data{func_data{Range: semver.MustParseRange(">=0.0.0"), ComputeCost: 10000, StorageCost: 0, PtrU: dvm_panic}} + func_table["version"] = []func_data{{Range: semver.MustParseRange(">=0.0.0"), ComputeCost: 1000, StorageCost: 0, PtrU: dvm_version}} + func_table["load"] = []func_data{{Range: semver.MustParseRange(">=0.0.0"), ComputeCost: 5000, StorageCost: 0, Ptr: dvm_load}} + func_table["exists"] = []func_data{{Range: semver.MustParseRange(">=0.0.0"), ComputeCost: 5000, StorageCost: 0, PtrU: dvm_exists}} + func_table["store"] = []func_data{{Range: semver.MustParseRange(">=0.0.0"), ComputeCost: 10000, StorageCost: 0, PtrU: dvm_store}} + func_table["delete"] = []func_data{{Range: semver.MustParseRange(">=0.0.0"), ComputeCost: 3000, StorageCost: 0, PtrU: dvm_delete}} + func_table["mapexists"] = []func_data{{Range: semver.MustParseRange(">=0.0.0"), ComputeCost: 1000, StorageCost: 0, PtrU: dvm_mapexists}} + func_table["mapget"] = []func_data{{Range: semver.MustParseRange(">=0.0.0"), ComputeCost: 1000, StorageCost: 0, Ptr: dvm_mapget}} + func_table["mapstore"] = []func_data{{Range: semver.MustParseRange(">=0.0.0"), ComputeCost: 1000, StorageCost: 0, PtrU: dvm_mapstore}} + func_table["mapdelete"] = []func_data{{Range: semver.MustParseRange(">=0.0.0"), ComputeCost: 1000, StorageCost: 0, PtrU: dvm_mapdelete}} + func_table["random"] = []func_data{{Range: semver.MustParseRange(">=0.0.0"), ComputeCost: 2500, StorageCost: 0, PtrU: dvm_random}} + func_table["scid"] = []func_data{{Range: semver.MustParseRange(">=0.0.0"), ComputeCost: 2000, StorageCost: 0, PtrS: dvm_scid}} + func_table["blid"] = []func_data{{Range: semver.MustParseRange(">=0.0.0"), ComputeCost: 2000, StorageCost: 0, PtrS: dvm_blid}} + func_table["txid"] = []func_data{{Range: semver.MustParseRange(">=0.0.0"), ComputeCost: 2000, StorageCost: 0, PtrS: dvm_txid}} + func_table["dero"] = []func_data{{Range: semver.MustParseRange(">=0.0.0"), ComputeCost: 10000, StorageCost: 0, PtrS: dvm_dero}} + func_table["block_height"] = []func_data{{Range: semver.MustParseRange(">=0.0.0"), ComputeCost: 2000, StorageCost: 0, PtrU: dvm_block_height}} + func_table["block_timestamp"] = []func_data{{Range: semver.MustParseRange(">=0.0.0"), ComputeCost: 2500, StorageCost: 0, PtrU: dvm_block_timestamp}} + func_table["signer"] = []func_data{{Range: semver.MustParseRange(">=0.0.0"), ComputeCost: 5000, StorageCost: 0, PtrS: dvm_signer}} + func_table["update_sc_code"] = []func_data{{Range: semver.MustParseRange(">=0.0.0"), ComputeCost: 5000, StorageCost: 0, PtrU: dvm_update_sc_code}} + func_table["is_address_valid"] = []func_data{{Range: semver.MustParseRange(">=0.0.0"), ComputeCost: 50000, StorageCost: 0, PtrU: dvm_is_address_valid}} + func_table["address_raw"] = []func_data{{Range: semver.MustParseRange(">=0.0.0"), ComputeCost: 60000, StorageCost: 0, PtrS: dvm_address_raw}} + func_table["address_string"] = []func_data{{Range: semver.MustParseRange(">=0.0.0"), ComputeCost: 50000, StorageCost: 0, PtrS: dvm_address_string}} + func_table["send_dero_to_address"] = []func_data{{Range: semver.MustParseRange(">=0.0.0"), ComputeCost: 70000, StorageCost: 0, PtrU: dvm_send_dero_to_address}} + func_table["send_asset_to_address"] = []func_data{{Range: semver.MustParseRange(">=0.0.0"), ComputeCost: 90000, StorageCost: 0, PtrU: dvm_send_asset_to_address}} + func_table["derovalue"] = []func_data{{Range: semver.MustParseRange(">=0.0.0"), ComputeCost: 10000, StorageCost: 0, PtrU: dvm_derovalue}} + func_table["assetvalue"] = []func_data{{Range: semver.MustParseRange(">=0.0.0"), ComputeCost: 10000, StorageCost: 0, PtrU: dvm_assetvalue}} + func_table["atoi"] = []func_data{{Range: semver.MustParseRange(">=0.0.0"), ComputeCost: 5000, StorageCost: 0, PtrU: dvm_atoi}} + func_table["itoa"] = []func_data{{Range: semver.MustParseRange(">=0.0.0"), ComputeCost: 5000, StorageCost: 0, PtrS: dvm_itoa}} + func_table["sha256"] = []func_data{{Range: semver.MustParseRange(">=0.0.0"), ComputeCost: 25000, StorageCost: 0, PtrS: dvm_sha256}} + func_table["sha3256"] = []func_data{{Range: semver.MustParseRange(">=0.0.0"), ComputeCost: 25000, StorageCost: 0, PtrS: dvm_sha3256}} + func_table["keccak256"] = []func_data{{Range: semver.MustParseRange(">=0.0.0"), ComputeCost: 25000, StorageCost: 0, PtrS: dvm_keccak256}} + func_table["hex"] = []func_data{{Range: semver.MustParseRange(">=0.0.0"), ComputeCost: 10000, StorageCost: 0, PtrS: dvm_hex}} + func_table["hexdecode"] = []func_data{{Range: semver.MustParseRange(">=0.0.0"), ComputeCost: 10000, StorageCost: 0, PtrS: dvm_hexdecode}} + func_table["min"] = []func_data{{Range: semver.MustParseRange(">=0.0.0"), ComputeCost: 5000, StorageCost: 0, PtrU: dvm_min}} + func_table["max"] = []func_data{{Range: semver.MustParseRange(">=0.0.0"), ComputeCost: 5000, StorageCost: 0, PtrU: dvm_max}} + func_table["strlen"] = []func_data{{Range: semver.MustParseRange(">=0.0.0"), ComputeCost: 20000, StorageCost: 0, PtrU: dvm_strlen}} + func_table["substr"] = []func_data{{Range: semver.MustParseRange(">=0.0.0"), ComputeCost: 20000, StorageCost: 0, PtrS: dvm_substr}} + func_table["panic"] = []func_data{{Range: semver.MustParseRange(">=0.0.0"), ComputeCost: 10000, StorageCost: 0, PtrU: dvm_panic}} } // this will handle all internal functions which may be required/necessary to expand DVM functionality diff --git a/dvm/dvm_functions_test.go b/dvm/dvm_functions_test.go index 41d20bce..0c34544e 100644 --- a/dvm/dvm_functions_test.go +++ b/dvm/dvm_functions_test.go @@ -17,11 +17,13 @@ package dvm //import "fmt" -import "reflect" -import "testing" -import "encoding/hex" +import ( + "encoding/hex" + "reflect" + "testing" -import "github.com/deroproject/derohe/cryptography/crypto" + "github.com/deroproject/derohe/cryptography/crypto" +) // ensure 100% coverage of functions execution var execution_tests_functions = []struct { diff --git a/dvm/dvm_parse_test.go b/dvm/dvm_parse_test.go index b101f238..c9f3d1c2 100644 --- a/dvm/dvm_parse_test.go +++ b/dvm/dvm_parse_test.go @@ -16,8 +16,10 @@ package dvm -import "testing" -import "fmt" +import ( + "fmt" + "testing" +) var evalList = []struct { Name string diff --git a/dvm/dvm_store.go b/dvm/dvm_store.go index 0466172f..6f40ed47 100644 --- a/dvm/dvm_store.go +++ b/dvm/dvm_store.go @@ -16,9 +16,12 @@ package dvm -import "fmt" -import "encoding/binary" -import "github.com/deroproject/derohe/cryptography/crypto" +import ( + "encoding/binary" + "fmt" + + "github.com/deroproject/derohe/cryptography/crypto" +) // this package exports an interface which is used by blockchain to persist/query data diff --git a/dvm/sc.go b/dvm/sc.go index 977dee4b..4eca6406 100644 --- a/dvm/sc.go +++ b/dvm/sc.go @@ -18,16 +18,18 @@ package dvm // this file implements necessary structure to SC handling -import "fmt" -import "bytes" -import "runtime/debug" -import "encoding/binary" -import "github.com/deroproject/derohe/cryptography/crypto" - -import "github.com/deroproject/derohe/config" -import "github.com/deroproject/derohe/rpc" -import "github.com/deroproject/derohe/globals" -import "github.com/deroproject/graviton" +import ( + "bytes" + "encoding/binary" + "fmt" + "runtime/debug" + + "github.com/deroproject/derohe/config" + "github.com/deroproject/derohe/cryptography/crypto" + "github.com/deroproject/derohe/globals" + "github.com/deroproject/derohe/rpc" + "github.com/deroproject/graviton" +) //import "github.com/deroproject/derohe/transaction" diff --git a/dvm/sc_test.go b/dvm/sc_test.go index 054ed4d1..a80fd605 100644 --- a/dvm/sc_test.go +++ b/dvm/sc_test.go @@ -1,8 +1,10 @@ package dvm -import "time" -import "testing" -import "math/rand" +import ( + "math/rand" + "testing" + "time" +) func TestSC_META_DATA(t *testing.T) { rand.Seed(time.Now().UnixNano()) diff --git a/dvm/simulator.go b/dvm/simulator.go index 702e2e26..fba9baa5 100644 --- a/dvm/simulator.go +++ b/dvm/simulator.go @@ -18,21 +18,20 @@ package dvm // this file implements necessary structure to SC handling -import "fmt" - -//import "bytes" -//import "runtime/debug" -import "encoding/binary" -import "time" -import "math/big" -import "math/rand" -import "github.com/deroproject/derohe/cryptography/crypto" -import "github.com/deroproject/derohe/cryptography/bn256" - -import "golang.org/x/xerrors" -import "github.com/deroproject/graviton" -import "github.com/deroproject/derohe/rpc" -import "github.com/deroproject/derohe/config" +import ( + "encoding/binary" + "fmt" + "github.com/deroproject/derohe/config" //import "bytes" + "math/big" + "math/rand" + "time" + //import "runtime/debug" + "github.com/deroproject/derohe/cryptography/bn256" + "github.com/deroproject/derohe/cryptography/crypto" + "github.com/deroproject/derohe/rpc" + "github.com/deroproject/graviton" + "golang.org/x/xerrors" +) //import "github.com/deroproject/derohe/transaction" diff --git a/dvm/simulator_test.go b/dvm/simulator_test.go index 869217d0..a1aa26fc 100644 --- a/dvm/simulator_test.go +++ b/dvm/simulator_test.go @@ -18,11 +18,13 @@ package dvm //import "fmt" //import "reflect" -import "strings" -import "testing" +import ( + "strings" + "testing" -import "github.com/deroproject/derohe/rpc" -import "github.com/deroproject/derohe/cryptography/crypto" + "github.com/deroproject/derohe/cryptography/crypto" + "github.com/deroproject/derohe/rpc" +) var sc = `/* Lottery Smart Contract Example in DVM-BASIC. This lottery smart contract will give lottery wins on every second try in following default contract. diff --git a/globals/globals.go b/globals/globals.go index be27158c..bfa9e16b 100644 --- a/globals/globals.go +++ b/globals/globals.go @@ -16,27 +16,28 @@ package globals -import "io" -import "os" -import "fmt" -import "time" -import "math" -import "net/url" -import "strings" -import "strconv" -import "math/big" -import "path/filepath" -import "runtime/debug" -import "golang.org/x/net/proxy" - -import "go.uber.org/zap" -import "go.uber.org/zap/zapcore" -import "github.com/go-logr/logr" -import "github.com/go-logr/zapr" -import "github.com/robfig/cron/v3" - -import "github.com/deroproject/derohe/config" -import "github.com/deroproject/derohe/rpc" +import ( + "fmt" + "io" + "math" + "math/big" + "net/url" + "os" + "path/filepath" + "runtime/debug" + "strconv" + "strings" + "time" + + "github.com/deroproject/derohe/config" + "github.com/deroproject/derohe/rpc" + "github.com/go-logr/logr" + "github.com/go-logr/zapr" + "github.com/robfig/cron/v3" + "go.uber.org/zap" + "go.uber.org/zap/zapcore" + "golang.org/x/net/proxy" +) // all the the global variables used by the program are stored here // since the entire logic is designed around a state machine driven by external events diff --git a/globals/random.go b/globals/random.go index da7c07bd..21b0aac4 100644 --- a/globals/random.go +++ b/globals/random.go @@ -16,9 +16,11 @@ package globals -import mathrand "math/rand" -import "crypto/rand" -import "encoding/binary" +import ( + "crypto/rand" + "encoding/binary" + mathrand "math/rand" +) // random source which is cryptographically secure // this is to be used in random sorting and selections where necessary diff --git a/glue/rwc/rwc.go b/glue/rwc/rwc.go index 31371ffc..fe6880f3 100644 --- a/glue/rwc/rwc.go +++ b/glue/rwc/rwc.go @@ -4,8 +4,9 @@ package rwc import ( - "github.com/gorilla/websocket" "io" + + "github.com/gorilla/websocket" ) type ReadWriteCloser struct { diff --git a/glue/rwc/rwc_nhyoor.go b/glue/rwc/rwc_nhyoor.go index 1bc6955e..fccdb153 100644 --- a/glue/rwc/rwc_nhyoor.go +++ b/glue/rwc/rwc_nhyoor.go @@ -3,6 +3,7 @@ package rwc import ( "context" "io" + "nhooyr.io/websocket" ) diff --git a/metrics/metrics.go b/metrics/metrics.go index f650eee9..c92e5ebd 100644 --- a/metrics/metrics.go +++ b/metrics/metrics.go @@ -18,18 +18,21 @@ package metrics -import "fmt" -import "io" -import "os" -import "time" -import "bytes" -import "net" -import "net/url" -import "net/http" -import "path/filepath" -import "github.com/go-logr/logr" -import "github.com/VictoriaMetrics/metrics" -import "github.com/xtaci/kcp-go/v5" +import ( + "bytes" + "fmt" + "io" + "net" + "net/http" + "net/url" + "os" + "path/filepath" + "time" + + "github.com/VictoriaMetrics/metrics" + "github.com/go-logr/logr" + "github.com/xtaci/kcp-go/v5" +) // these are exported by the daemon for various analysis var Version string //this is later converted to metrics format diff --git a/p2p/bans.go b/p2p/bans.go index 8727614e..61f8d3c8 100644 --- a/p2p/bans.go +++ b/p2p/bans.go @@ -19,24 +19,26 @@ package p2p /* this file implements the peer manager, keeping a list of peers which can be tried for connection etc * */ -import "os" -import "fmt" -import "net" -import "sync" -import "time" -import "errors" +import ( + "encoding/json" + "errors" + "fmt" + "net" + "os" + "path/filepath" + "sync" + "time" + + "github.com/deroproject/derohe/globals" +) //import "sort" -import "path/filepath" -import "encoding/json" //import "encoding/binary" //import "container/list" //import log "github.com/sirupsen/logrus" -import "github.com/deroproject/derohe/globals" - //import "github.com/deroproject/derosuite/crypto" // This structure is used to do book keeping for the peer list and keeps other DATA related to peer @@ -189,7 +191,7 @@ func IsAddressInBanList(address string) bool { if ip != nil { // parse and check the subnets - for k, _ := range ban_map { + for k := range ban_map { ipnet, _, err := ParseAddress(k) // fmt.Printf("parsing address %s err %s checking ip %s",k,err,address) diff --git a/p2p/chain_bootstrap.go b/p2p/chain_bootstrap.go index cc023958..cea6dd4e 100644 --- a/p2p/chain_bootstrap.go +++ b/p2p/chain_bootstrap.go @@ -16,24 +16,22 @@ package p2p -import "fmt" - -//import "net" -import "time" -import "math/big" -import "math/bits" -import "sync/atomic" -import "encoding/binary" - -import "github.com/deroproject/derohe/config" -import "github.com/deroproject/derohe/block" +import ( + "encoding/binary" + "fmt" + "math/big" + "math/bits" + "sync/atomic" + "time" + + "github.com/deroproject/derohe/block" + "github.com/deroproject/derohe/config" + "github.com/deroproject/derohe/cryptography/crypto" //import "net" + "github.com/deroproject/derohe/transaction" + "github.com/deroproject/graviton" +) //import "github.com/deroproject/derohe/errormsg" -import "github.com/deroproject/derohe/transaction" - -import "github.com/deroproject/graviton" - -import "github.com/deroproject/derohe/cryptography/crypto" //import "github.com/deroproject/derosuite/blockchain" diff --git a/p2p/chain_sync.go b/p2p/chain_sync.go index 4323024a..1aa149a6 100644 --- a/p2p/chain_sync.go +++ b/p2p/chain_sync.go @@ -16,18 +16,20 @@ package p2p -import "fmt" -import "time" -import "math/big" -import "sync/atomic" - -import "github.com/deroproject/derohe/config" -import "github.com/deroproject/derohe/globals" -import "github.com/deroproject/derohe/block" -import "github.com/deroproject/derohe/errormsg" -import "github.com/deroproject/derohe/blockchain" -import "github.com/deroproject/derohe/transaction" -import "github.com/deroproject/derohe/cryptography/crypto" +import ( + "fmt" + "math/big" + "sync/atomic" + "time" + + "github.com/deroproject/derohe/block" + "github.com/deroproject/derohe/blockchain" + "github.com/deroproject/derohe/config" + "github.com/deroproject/derohe/cryptography/crypto" + "github.com/deroproject/derohe/errormsg" + "github.com/deroproject/derohe/globals" + "github.com/deroproject/derohe/transaction" +) // used to satisfy difficulty interface type MemorySource struct { @@ -388,7 +390,7 @@ func (connection *Connection) process_object_response(response Objects, sent int return nil } - + // too old TXs will be ignored for mining, but we should check incoming TX here to avoid high system load if uint64(chain.Get_Height()) > tx.Height+blockchain.TX_VALIDITY_HEIGHT { connection.logger.V(2).Error(err, "Incoming TX is too far in the past", "txid", tx.GetHash().String()) diff --git a/p2p/chunk_server.go b/p2p/chunk_server.go index ffc89705..dc9fbc42 100644 --- a/p2p/chunk_server.go +++ b/p2p/chunk_server.go @@ -1,22 +1,22 @@ package p2p // this file implements incoming chunk processor -import "fmt" - -import "time" -import "sync" -import "bytes" - -import "github.com/fxamacker/cbor/v2" - -import "github.com/klauspost/reedsolomon" -import "github.com/deroproject/derohe/block" -import "github.com/deroproject/derohe/transaction" -import "github.com/deroproject/derohe/globals" -import "github.com/deroproject/derohe/errormsg" -import "github.com/deroproject/derohe/config" -import "github.com/deroproject/derohe/metrics" -import "github.com/deroproject/derohe/cryptography/crypto" +import ( + "bytes" + "fmt" + "sync" + "time" + + "github.com/deroproject/derohe/block" + "github.com/deroproject/derohe/config" + "github.com/deroproject/derohe/cryptography/crypto" + "github.com/deroproject/derohe/errormsg" + "github.com/deroproject/derohe/globals" + "github.com/deroproject/derohe/metrics" + "github.com/deroproject/derohe/transaction" + "github.com/fxamacker/cbor/v2" + "github.com/klauspost/reedsolomon" +) var chunk_map sync.Map // key is blid, value is pointer to Chunks_Per_Block_Data diff --git a/p2p/common.go b/p2p/common.go index 760a18aa..14677500 100644 --- a/p2p/common.go +++ b/p2p/common.go @@ -1,10 +1,12 @@ package p2p -import "time" -import "sync/atomic" +import ( + "sync/atomic" + "time" -import "github.com/deroproject/derohe/globals" -import "github.com/deroproject/derohe/cryptography/crypto" + "github.com/deroproject/derohe/cryptography/crypto" + "github.com/deroproject/derohe/globals" +) // fill the common part from our chain func fill_common(common *Common_Struct) { diff --git a/p2p/controller.go b/p2p/controller.go index 165d128b..4ba66580 100644 --- a/p2p/controller.go +++ b/p2p/controller.go @@ -16,40 +16,36 @@ package p2p -import "fmt" -import "net" - -import "os" -import "time" -import "sort" -import "sync" -import "strings" -import "math/big" -import "strconv" - -import "crypto/sha1" -import "crypto/ecdsa" -import "crypto/elliptic" - -import "crypto/tls" -import "crypto/rand" -import "crypto/x509" -import "encoding/pem" -import "sync/atomic" -import "runtime/debug" - -import "github.com/go-logr/logr" - -import "github.com/deroproject/derohe/config" -import "github.com/deroproject/derohe/globals" -import "github.com/deroproject/derohe/metrics" -import "github.com/deroproject/derohe/blockchain" - -import "github.com/xtaci/kcp-go/v5" -import "golang.org/x/crypto/pbkdf2" -import "golang.org/x/time/rate" - -import "github.com/cenkalti/rpc2" +import ( + "crypto/ecdsa" + "crypto/elliptic" + "crypto/rand" + "crypto/sha1" + "crypto/tls" + "crypto/x509" + "encoding/pem" + "fmt" + "math/big" + "net" + "os" + "runtime/debug" + "sort" + "strconv" + "strings" + "sync" + "sync/atomic" + "time" + + "github.com/cenkalti/rpc2" + "github.com/deroproject/derohe/blockchain" + "github.com/deroproject/derohe/config" + "github.com/deroproject/derohe/globals" + "github.com/deroproject/derohe/metrics" + "github.com/go-logr/logr" + "github.com/xtaci/kcp-go/v5" + "golang.org/x/crypto/pbkdf2" + "golang.org/x/time/rate" +) //import "github.com/txthinking/socks5" diff --git a/p2p/peer.go b/p2p/peer.go index c3272400..19ff3392 100644 --- a/p2p/peer.go +++ b/p2p/peer.go @@ -19,8 +19,10 @@ package p2p //import "net" //import "sync" //import "time" -import "crypto/rand" -import "encoding/binary" +import ( + "crypto/rand" + "encoding/binary" +) //import "path/filepath" //import "container/list" diff --git a/p2p/peer_pool.go b/p2p/peer_pool.go index 1e2813bf..22ed12b9 100644 --- a/p2p/peer_pool.go +++ b/p2p/peer_pool.go @@ -19,23 +19,24 @@ package p2p /* this file implements the peer manager, keeping a list of peers which can be tried for connection etc * */ -import "os" -import "fmt" - -import "errors" -import "sync" -import "time" -import "sort" -import "path/filepath" -import "encoding/json" +import ( + "encoding/json" + "errors" + "fmt" + "os" + "path/filepath" + "sort" + "sync" + "time" + + "github.com/deroproject/derohe/globals" +) //import "encoding/binary" //import "container/list" //import log "github.com/sirupsen/logrus" -import "github.com/deroproject/derohe/globals" - //import "github.com/deroproject/derosuite/crypto" // This structure is used to do book keeping for the peer list and keeps other DATA related to peer diff --git a/p2p/rpc_cbor_codec.go b/p2p/rpc_cbor_codec.go index 7137189e..2a2635c8 100644 --- a/p2p/rpc_cbor_codec.go +++ b/p2p/rpc_cbor_codec.go @@ -1,17 +1,21 @@ package p2p // this file implements CBOR codec to prevent from certain attacks -import "fmt" -import "bytes" -import "io" -import "net" -import "sync" -import "time" -import "github.com/cenkalti/rpc2" -import "encoding/binary" -import "github.com/fxamacker/cbor/v2" - -import "github.com/deroproject/derohe/config" // only used get constants such as max data per frame +import ( + "bytes" + "encoding/binary" + "fmt" + "io" + "net" + "sync" + "time" + + "github.com/cenkalti/rpc2" + "github.com/deroproject/derohe/config" + "github.com/fxamacker/cbor/v2" +) + +// only used get constants such as max data per frame // it processes both type RequestResponse struct { diff --git a/p2p/rpc_chain_request.go b/p2p/rpc_chain_request.go index 011d739e..53c80991 100644 --- a/p2p/rpc_chain_request.go +++ b/p2p/rpc_chain_request.go @@ -21,8 +21,10 @@ package p2p //import "container/list" -import "github.com/deroproject/derohe/cryptography/crypto" -import "github.com/deroproject/derohe/globals" +import ( + "github.com/deroproject/derohe/cryptography/crypto" + "github.com/deroproject/derohe/globals" +) //import "github.com/deroproject/derosuite/blockchain" diff --git a/p2p/rpc_changeset.go b/p2p/rpc_changeset.go index c3588e15..83abc64b 100644 --- a/p2p/rpc_changeset.go +++ b/p2p/rpc_changeset.go @@ -16,8 +16,10 @@ package p2p -import "github.com/deroproject/derohe/config" -import "github.com/deroproject/graviton" +import ( + "github.com/deroproject/derohe/config" + "github.com/deroproject/graviton" +) const max_request_topoheights = 50 diff --git a/p2p/rpc_handshake.go b/p2p/rpc_handshake.go index 72fb6e5b..91231561 100644 --- a/p2p/rpc_handshake.go +++ b/p2p/rpc_handshake.go @@ -16,17 +16,18 @@ package p2p -import "fmt" -import "net" -import "bytes" -import "context" - -import "sync/atomic" -import "time" - -import "github.com/deroproject/derohe/config" -import "github.com/deroproject/derohe/globals" -import "github.com/blang/semver/v4" +import ( + "bytes" + "context" + "fmt" + "net" + "sync/atomic" + "time" + + "github.com/blang/semver/v4" + "github.com/deroproject/derohe/config" + "github.com/deroproject/derohe/globals" +) // verify incoming handshake for number of checks such as mainnet/testnet etc etc func Verify_Handshake(handshake *Handshake_Struct) bool { diff --git a/p2p/rpc_notifications.go b/p2p/rpc_notifications.go index 6798ffa2..212f0f46 100644 --- a/p2p/rpc_notifications.go +++ b/p2p/rpc_notifications.go @@ -16,17 +16,19 @@ package p2p -import "fmt" -import "sync/atomic" -import "encoding/binary" -import "time" - -import "github.com/deroproject/derohe/block" -import "github.com/deroproject/derohe/cryptography/crypto" -import "github.com/deroproject/derohe/errormsg" -import "github.com/deroproject/derohe/transaction" -import "github.com/deroproject/derohe/metrics" -import "github.com/deroproject/derohe/globals" +import ( + "encoding/binary" + "fmt" + "sync/atomic" + "time" + + "github.com/deroproject/derohe/block" + "github.com/deroproject/derohe/cryptography/crypto" + "github.com/deroproject/derohe/errormsg" + "github.com/deroproject/derohe/globals" + "github.com/deroproject/derohe/metrics" + "github.com/deroproject/derohe/transaction" +) // handles notifications of inventory func (c *Connection) NotifyINV(request ObjectList, response *Dummy) (err error) { @@ -130,10 +132,11 @@ func (c *Connection) NotifyMiniBlock(request Objects, response *Dummy) (err erro return err } if height > 4 { // activate check a bit after genesis, thanks Slixe - if height-2 <= int64(mbl.Height) && int64(mbl.Height) <= (height+1){ - } else{ - return fmt.Errorf("Stale Miniblock") - }} + if height-2 <= int64(mbl.Height) && int64(mbl.Height) <= (height+1) { + } else { + return fmt.Errorf("Stale Miniblock") + } + } mbls = append(mbls, mbl) } diff --git a/p2p/timecheck.go b/p2p/timecheck.go index e0b1c819..d77ed59c 100644 --- a/p2p/timecheck.go +++ b/p2p/timecheck.go @@ -17,12 +17,13 @@ package p2p //import "fmt" -import "time" -import "math/rand" +import ( + "math/rand" + "time" -import "github.com/beevik/ntp" - -import "github.com/deroproject/derohe/globals" + "github.com/beevik/ntp" + "github.com/deroproject/derohe/globals" +) // these servers automatically rotate every hour as per documentation // we also rotate them randomly diff --git a/p2p/wire_structs.go b/p2p/wire_structs.go index eb46898f..818cc63b 100644 --- a/p2p/wire_structs.go +++ b/p2p/wire_structs.go @@ -16,9 +16,12 @@ package p2p -import "fmt" -import "strings" -import "github.com/deroproject/derohe/cryptography/crypto" +import ( + "fmt" + "strings" + + "github.com/deroproject/derohe/cryptography/crypto" +) // This file defines the structure for the protocol which is CBOR ( which is standard) stream multiplexed using yamux // stream multiplexing allows us have bidirection RPC using net/rpc diff --git a/pow/pow.go b/pow/pow.go index 184c646a..e7fd7446 100644 --- a/pow/pow.go +++ b/pow/pow.go @@ -1,8 +1,10 @@ package pow //import "crypto/sha256" -import "github.com/deroproject/derohe/cryptography/crypto" -import "github.com/deroproject/derohe/astrobwt" +import ( + "github.com/deroproject/derohe/astrobwt" + "github.com/deroproject/derohe/cryptography/crypto" +) // patch algorithm in here to conduct various tests func Pow(input []byte) (output crypto.Hash) { diff --git a/proof/proof.go b/proof/proof.go index efa5c83b..3eb2ad8f 100644 --- a/proof/proof.go +++ b/proof/proof.go @@ -16,15 +16,17 @@ package proof -import "fmt" -import "math/big" -import "strings" -import "encoding/hex" - -import "github.com/deroproject/derohe/cryptography/crypto" -import "github.com/deroproject/derohe/rpc" -import "github.com/deroproject/derohe/cryptography/bn256" -import "github.com/deroproject/derohe/transaction" +import ( + "encoding/hex" + "fmt" + "math/big" + "strings" + + "github.com/deroproject/derohe/cryptography/bn256" + "github.com/deroproject/derohe/cryptography/crypto" + "github.com/deroproject/derohe/rpc" + "github.com/deroproject/derohe/transaction" +) //import "github.com/deroproject/derosuite/walletapi" // to decode encrypted payment ID diff --git a/rpc/addr_test.go b/rpc/addr_test.go index f34eec5b..3ab8f8f2 100644 --- a/rpc/addr_test.go +++ b/rpc/addr_test.go @@ -16,8 +16,11 @@ package rpc -import "testing" -import "github.com/deroproject/derohe/config" +import ( + "testing" + + "github.com/deroproject/derohe/config" +) func Test_Address(t *testing.T) { diff --git a/rpc/address.go b/rpc/address.go index 567abfe7..53a7477c 100644 --- a/rpc/address.go +++ b/rpc/address.go @@ -16,10 +16,11 @@ package rpc -import "fmt" +import ( + "fmt" -//import "github.com/deroproject/derohe/config" -import "github.com/deroproject/derohe/cryptography/crypto" + "github.com/deroproject/derohe/cryptography/crypto" +) //import "github.com/deroproject/derohe/config" // older dero address https://cryptonote.org/cns/cns007.txt to understand address more // current dero versions use https://github.com/bitcoin/bips/blob/master/bip-0173.mediawiki diff --git a/rpc/bech32_test.go b/rpc/bech32_test.go index 37c51544..189152ea 100644 --- a/rpc/bech32_test.go +++ b/rpc/bech32_test.go @@ -57,13 +57,13 @@ type item struct { } var validAddress = []item{ - item{"BC1QW508D6QEJXTDG4Y5R3ZARVARY0C5XW7KV8F3T4", + {"BC1QW508D6QEJXTDG4Y5R3ZARVARY0C5XW7KV8F3T4", []int{ 0x00, 0x14, 0x75, 0x1e, 0x76, 0xe8, 0x19, 0x91, 0x96, 0xd4, 0x54, 0x94, 0x1c, 0x45, 0xd1, 0xb3, 0xa3, 0x23, 0xf1, 0x43, 0x3b, 0xd6, }, }, - item{"tb1qrp33g0q5c5txsp9arysrx4k6zdkfs4nce4xj0gdcccefvpysxf3q0sl5k7", + {"tb1qrp33g0q5c5txsp9arysrx4k6zdkfs4nce4xj0gdcccefvpysxf3q0sl5k7", []int{ 0x00, 0x20, 0x18, 0x63, 0x14, 0x3c, 0x14, 0xc5, 0x16, 0x68, 0x04, 0xbd, 0x19, 0x20, 0x33, 0x56, 0xda, 0x13, 0x6c, 0x98, 0x56, 0x78, @@ -71,7 +71,7 @@ var validAddress = []item{ 0x62, }, }, - item{"bc1pw508d6qejxtdg4y5r3zarvary0c5xw7kw508d6qejxtdg4y5r3zarvary0c5xw7k7grplx", + {"bc1pw508d6qejxtdg4y5r3zarvary0c5xw7kw508d6qejxtdg4y5r3zarvary0c5xw7k7grplx", []int{ 0x51, 0x28, 0x75, 0x1e, 0x76, 0xe8, 0x19, 0x91, 0x96, 0xd4, 0x54, 0x94, 0x1c, 0x45, 0xd1, 0xb3, 0xa3, 0x23, 0xf1, 0x43, 0x3b, 0xd6, @@ -79,18 +79,18 @@ var validAddress = []item{ 0x45, 0xd1, 0xb3, 0xa3, 0x23, 0xf1, 0x43, 0x3b, 0xd6, }, }, - item{"BC1SW50QA3JX3S", + {"BC1SW50QA3JX3S", []int{ 0x60, 0x02, 0x75, 0x1e, }, }, - item{"bc1zw508d6qejxtdg4y5r3zarvaryvg6kdaj", + {"bc1zw508d6qejxtdg4y5r3zarvaryvg6kdaj", []int{ 0x52, 0x10, 0x75, 0x1e, 0x76, 0xe8, 0x19, 0x91, 0x96, 0xd4, 0x54, 0x94, 0x1c, 0x45, 0xd1, 0xb3, 0xa3, 0x23, }, }, - item{"tb1qqqqqp399et2xygdj5xreqhjjvcmzhxw4aywxecjdzew6hylgvsesrxh6hy", + {"tb1qqqqqp399et2xygdj5xreqhjjvcmzhxw4aywxecjdzew6hylgvsesrxh6hy", []int{ 0x00, 0x20, 0x00, 0x00, 0x00, 0xc4, 0xa5, 0xca, 0xd4, 0x62, 0x21, 0xb2, 0xa1, 0x87, 0x90, 0x5e, 0x52, 0x66, 0x36, 0x2b, 0x99, 0xd5, diff --git a/rpc/rpc.go b/rpc/rpc.go index d00bca4e..d633ec93 100644 --- a/rpc/rpc.go +++ b/rpc/rpc.go @@ -1,12 +1,14 @@ package rpc -import "fmt" -import "time" -import "sort" -import "encoding/json" - -import "github.com/fxamacker/cbor/v2" -import "github.com/deroproject/derohe/cryptography/crypto" +import ( + "encoding/json" + "fmt" + "sort" + "time" + + "github.com/deroproject/derohe/cryptography/crypto" + "github.com/fxamacker/cbor/v2" +) // this package defines interfaces and necessary glue code Digital Network, it exposes and provides encrypted RPC calls over DERO chain diff --git a/rpc/wallet_rpc.go b/rpc/wallet_rpc.go index 9a38e60a..6a29327d 100644 --- a/rpc/wallet_rpc.go +++ b/rpc/wallet_rpc.go @@ -22,12 +22,14 @@ package rpc -import "fmt" -import "time" -import "strings" -import "math/big" +import ( + "fmt" + "math/big" + "strings" + "time" -import "github.com/deroproject/derohe/cryptography/crypto" + "github.com/deroproject/derohe/cryptography/crypto" +) // these structures are completely decoupled from blockchain and live only within the wallet // all inputs and outputs which modify balance are presented by this structure diff --git a/transaction/transaction.go b/transaction/transaction.go index f56d653a..8ceabc4a 100644 --- a/transaction/transaction.go +++ b/transaction/transaction.go @@ -16,14 +16,16 @@ package transaction -import "fmt" -import "bytes" -import "math/big" -import "encoding/binary" - -import "github.com/deroproject/derohe/cryptography/crypto" -import "github.com/deroproject/derohe/cryptography/bn256" -import "github.com/deroproject/derohe/rpc" +import ( + "bytes" + "encoding/binary" + "fmt" + "math/big" + + "github.com/deroproject/derohe/cryptography/bn256" + "github.com/deroproject/derohe/cryptography/crypto" + "github.com/deroproject/derohe/rpc" +) type TransactionType uint64 diff --git a/transaction/transaction_test.go b/transaction/transaction_test.go index 3011fc68..734811af 100644 --- a/transaction/transaction_test.go +++ b/transaction/transaction_test.go @@ -17,8 +17,10 @@ package transaction //import "fmt" -import "testing" -import "encoding/hex" +import ( + "encoding/hex" + "testing" +) //import "github.com/deroproject/derohe/crypto" diff --git a/walletapi/balance_decoder.go b/walletapi/balance_decoder.go index 7839106a..ea84dfbe 100644 --- a/walletapi/balance_decoder.go +++ b/walletapi/balance_decoder.go @@ -16,18 +16,20 @@ package walletapi -import "runtime" -import "fmt" -import "sort" -import "math/big" -import "encoding/binary" +import ( + "encoding/binary" + "fmt" + "math/big" + "runtime" + "sort" + + "github.com/deroproject/derohe/cryptography/bn256" + "github.com/deroproject/derohe/cryptography/crypto" +) //import "github.com/mattn/go-isatty" //import "github.com/cheggaaa/pb/v3" -import "github.com/deroproject/derohe/cryptography/crypto" -import "github.com/deroproject/derohe/cryptography/bn256" - // this file implements balance decoder whih has to be bruteforced // balance is a 64 bit field and total effort is 2^64 // but in reality, the balances are well distributed with the expectation that no one will ever be able to collect over 2 ^ 40 diff --git a/walletapi/cipher.go b/walletapi/cipher.go index 7c47408d..7cf15ca4 100644 --- a/walletapi/cipher.go +++ b/walletapi/cipher.go @@ -16,10 +16,12 @@ package walletapi -import "fmt" -import "crypto/rand" +import ( + "crypto/rand" + "fmt" -import "golang.org/x/crypto/chacha20poly1305" + "golang.org/x/crypto/chacha20poly1305" +) // all data in encrypted within the storage using this, PERIOD // all data has a new nonce, appended to the the data , last 12 bytes diff --git a/walletapi/cipher_test.go b/walletapi/cipher_test.go index 16421734..453fc4b8 100644 --- a/walletapi/cipher_test.go +++ b/walletapi/cipher_test.go @@ -16,8 +16,10 @@ package walletapi -import "testing" -import "crypto/sha256" +import ( + "crypto/sha256" + "testing" +) // functional test whether the wrappers are okay func Test_AEAD_Cipher(t *testing.T) { diff --git a/walletapi/daemon_communication.go b/walletapi/daemon_communication.go index d0222151..44258e87 100644 --- a/walletapi/daemon_communication.go +++ b/walletapi/daemon_communication.go @@ -24,38 +24,38 @@ package walletapi */ //import "io" //import "os" -import "fmt" -import "time" -import "sync" -import "bytes" -import "math/big" +import ( + "bytes" + "context" + "encoding/hex" + "fmt" + "math/big" + "runtime/debug" + "strings" + "sync" + "time" + + "github.com/creachadair/jrpc2" + "github.com/deroproject/derohe/block" + "github.com/deroproject/derohe/config" + "github.com/deroproject/derohe/cryptography/bn256" + "github.com/deroproject/derohe/cryptography/crypto" + "github.com/deroproject/derohe/errormsg" + "github.com/deroproject/derohe/globals" + "github.com/deroproject/derohe/rpc" + "github.com/deroproject/derohe/transaction" +) //import "bufio" -import "strings" -import "context" //import "runtime" //import "compress/gzip" -import "encoding/hex" - -import "runtime/debug" //import "github.com/vmihailenco/msgpack" //import "github.com/gorilla/websocket" //import "github.com/mafredri/cdp/rpcc" -import "github.com/deroproject/derohe/rpc" -import "github.com/deroproject/derohe/block" -import "github.com/deroproject/derohe/config" -import "github.com/deroproject/derohe/globals" -import "github.com/deroproject/derohe/cryptography/crypto" -import "github.com/deroproject/derohe/errormsg" -import "github.com/deroproject/derohe/transaction" -import "github.com/deroproject/derohe/cryptography/bn256" - -import "github.com/creachadair/jrpc2" - // this global variable should be within wallet structure var Connected bool = false diff --git a/walletapi/daemon_connectivity.go b/walletapi/daemon_connectivity.go index 36417f2e..8168fbcf 100644 --- a/walletapi/daemon_connectivity.go +++ b/walletapi/daemon_connectivity.go @@ -30,13 +30,14 @@ package walletapi //import "fmt" //import "net/url" -import "net/http" - -import "github.com/deroproject/derohe/glue/rwc" - -import "github.com/creachadair/jrpc2" -import "github.com/creachadair/jrpc2/channel" -import "github.com/gorilla/websocket" +import ( + "net/http" + + "github.com/creachadair/jrpc2" + "github.com/creachadair/jrpc2/channel" + "github.com/deroproject/derohe/glue/rwc" + "github.com/gorilla/websocket" +) // there should be no global variables, so multiple wallets can run at the same time with different assset diff --git a/walletapi/daemon_connectivity_wasm.go b/walletapi/daemon_connectivity_wasm.go index abddd6dc..43be1dfb 100644 --- a/walletapi/daemon_connectivity_wasm.go +++ b/walletapi/daemon_connectivity_wasm.go @@ -24,19 +24,19 @@ package walletapi */ //import "io" //import "os" -import "fmt" -import "net" -import "time" - -import "context" -import "net/http" - -import "github.com/deroproject/derohe/glue/rwc" - -import "github.com/creachadair/jrpc2" -import "github.com/creachadair/jrpc2/channel" -import "nhooyr.io/websocket" -import "strings" +import ( + "context" + "fmt" + "net" + "net/http" + "strings" + "time" + + "github.com/creachadair/jrpc2" + "github.com/creachadair/jrpc2/channel" + "github.com/deroproject/derohe/glue/rwc" + "nhooyr.io/websocket" +) // there should be no global variables, so multiple wallets can run at the same time with different assset diff --git a/walletapi/db_test.go b/walletapi/db_test.go index 38499389..9fa3bf08 100644 --- a/walletapi/db_test.go +++ b/walletapi/db_test.go @@ -16,13 +16,15 @@ package walletapi -import "os" -import "path/filepath" -import "testing" +import ( + "os" + "path/filepath" + "testing" -//import "fmt" + "github.com/deroproject/derohe/cryptography/crypto" +) -import "github.com/deroproject/derohe/cryptography/crypto" +//import "fmt" // quick testing of wallet creation func Test_Wallet_DB(t *testing.T) { diff --git a/walletapi/mnemonics/mnemonics.go b/walletapi/mnemonics/mnemonics.go index 41017007..682d6c90 100644 --- a/walletapi/mnemonics/mnemonics.go +++ b/walletapi/mnemonics/mnemonics.go @@ -16,17 +16,17 @@ package mnemonics -import "fmt" -import "strings" -import "encoding/binary" -import "unicode/utf8" +import ( + "encoding/binary" + "fmt" + "hash/crc32" + "math/big" + "strings" + "unicode/utf8" +) //import "github.com/romana/rlog" -import "hash/crc32" - -import "math/big" - type Language struct { Name string // Name of the language Name_English string // Name of the language in english diff --git a/walletapi/rpcserver/rpc_get_transfer_by_txid.go b/walletapi/rpcserver/rpc_get_transfer_by_txid.go index ce21842d..bdc81103 100644 --- a/walletapi/rpcserver/rpc_get_transfer_by_txid.go +++ b/walletapi/rpcserver/rpc_get_transfer_by_txid.go @@ -16,10 +16,13 @@ package rpcserver -import "fmt" -import "context" -import "runtime/debug" -import "github.com/deroproject/derohe/rpc" +import ( + "context" + "fmt" + "runtime/debug" + + "github.com/deroproject/derohe/rpc" +) func GetTransferbyTXID(ctx context.Context, p rpc.Get_Transfer_By_TXID_Params) (result rpc.Get_Transfer_By_TXID_Result, err error) { defer func() { // safety so if anything wrong happens, we return error diff --git a/walletapi/rpcserver/rpc_getaddress.go b/walletapi/rpcserver/rpc_getaddress.go index 616378b7..fd7eea72 100644 --- a/walletapi/rpcserver/rpc_getaddress.go +++ b/walletapi/rpcserver/rpc_getaddress.go @@ -16,15 +16,17 @@ package rpcserver -import "fmt" -import "context" -import "runtime/debug" +import ( + "context" + "fmt" + "runtime/debug" + + "github.com/deroproject/derohe/rpc" +) //import "log" //import "net/http" -import "github.com/deroproject/derohe/rpc" - func GetAddress(ctx context.Context) (result rpc.GetAddress_Result, err error) { defer func() { // safety so if anything wrong happens, we return error if r := recover(); r != nil { diff --git a/walletapi/rpcserver/rpc_getbalance.go b/walletapi/rpcserver/rpc_getbalance.go index cc53a93f..e691f8dc 100644 --- a/walletapi/rpcserver/rpc_getbalance.go +++ b/walletapi/rpcserver/rpc_getbalance.go @@ -16,10 +16,13 @@ package rpcserver -import "fmt" -import "context" -import "runtime/debug" -import "github.com/deroproject/derohe/rpc" +import ( + "context" + "fmt" + "runtime/debug" + + "github.com/deroproject/derohe/rpc" +) func GetBalance(ctx context.Context, p rpc.GetBalance_Params) (result rpc.GetBalance_Result, err error) { defer func() { // safety so if anything wrong happens, we return error diff --git a/walletapi/rpcserver/rpc_getheight.go b/walletapi/rpcserver/rpc_getheight.go index 78c0cb3c..80704c8b 100644 --- a/walletapi/rpcserver/rpc_getheight.go +++ b/walletapi/rpcserver/rpc_getheight.go @@ -16,10 +16,13 @@ package rpcserver -import "fmt" -import "context" -import "runtime/debug" -import "github.com/deroproject/derohe/rpc" +import ( + "context" + "fmt" + "runtime/debug" + + "github.com/deroproject/derohe/rpc" +) func GetHeight(ctx context.Context) (result rpc.GetHeight_Result, err error) { defer func() { // safety so if anything wrong happens, we return error diff --git a/walletapi/rpcserver/rpc_gettransfers.go b/walletapi/rpcserver/rpc_gettransfers.go index a6f626c8..0ffa7fc0 100644 --- a/walletapi/rpcserver/rpc_gettransfers.go +++ b/walletapi/rpcserver/rpc_gettransfers.go @@ -16,10 +16,13 @@ package rpcserver -import "fmt" -import "context" -import "runtime/debug" -import "github.com/deroproject/derohe/rpc" +import ( + "context" + "fmt" + "runtime/debug" + + "github.com/deroproject/derohe/rpc" +) func GetTransfers(ctx context.Context, p rpc.Get_Transfers_Params) (result rpc.Get_Transfers_Result, err error) { defer func() { // safety so if anything wrong happens, we return error diff --git a/walletapi/rpcserver/rpc_make_integrated_address.go b/walletapi/rpcserver/rpc_make_integrated_address.go index 3365106d..7985df8b 100644 --- a/walletapi/rpcserver/rpc_make_integrated_address.go +++ b/walletapi/rpcserver/rpc_make_integrated_address.go @@ -16,15 +16,17 @@ package rpcserver -import "fmt" -import "context" -import "runtime/debug" +import ( + "context" + "fmt" + "runtime/debug" + + "github.com/deroproject/derohe/rpc" +) //import "log" //import "net/http" -import "github.com/deroproject/derohe/rpc" - func MakeIntegratedAddress(ctx context.Context, p rpc.Make_Integrated_Address_Params) (result rpc.Make_Integrated_Address_Result, err error) { defer func() { // safety so if anything wrong happens, we return error diff --git a/walletapi/rpcserver/rpc_query_key.go b/walletapi/rpcserver/rpc_query_key.go index 37e3f557..c7a83557 100644 --- a/walletapi/rpcserver/rpc_query_key.go +++ b/walletapi/rpcserver/rpc_query_key.go @@ -16,16 +16,18 @@ package rpcserver -import "fmt" -import "context" -import "strings" -import "runtime/debug" +import ( + "context" + "fmt" + "runtime/debug" + "strings" + + "github.com/deroproject/derohe/rpc" +) //import "log" //import "net/http" -import "github.com/deroproject/derohe/rpc" - func QueryKey(ctx context.Context, p rpc.Query_Key_Params) (result rpc.Query_Key_Result, err error) { defer func() { // safety so if anything wrong happens, we return error if r := recover(); r != nil { diff --git a/walletapi/rpcserver/rpc_scinvoke.go b/walletapi/rpcserver/rpc_scinvoke.go index 9dbc45fa..2310dfe8 100644 --- a/walletapi/rpcserver/rpc_scinvoke.go +++ b/walletapi/rpcserver/rpc_scinvoke.go @@ -16,12 +16,14 @@ package rpcserver -import "fmt" - -import "context" -import "runtime/debug" -import "github.com/deroproject/derohe/rpc" -import "github.com/deroproject/derohe/cryptography/crypto" +import ( + "context" + "fmt" + "runtime/debug" + + "github.com/deroproject/derohe/cryptography/crypto" + "github.com/deroproject/derohe/rpc" +) func ScInvoke(ctx context.Context, p rpc.SC_Invoke_Params) (result rpc.Transfer_Result, err error) { defer func() { // safety so if anything wrong happens, we return error diff --git a/walletapi/rpcserver/rpc_split_integrated_address.go b/walletapi/rpcserver/rpc_split_integrated_address.go index e8e86097..8a516429 100644 --- a/walletapi/rpcserver/rpc_split_integrated_address.go +++ b/walletapi/rpcserver/rpc_split_integrated_address.go @@ -16,15 +16,17 @@ package rpcserver -import "fmt" -import "context" -import "runtime/debug" +import ( + "context" + "fmt" + "runtime/debug" + + "github.com/deroproject/derohe/rpc" +) //import "log" //import "net/http" -import "github.com/deroproject/derohe/rpc" - //import "github.com/deroproject/derohe/rpc" func SplitIntegratedAddress(ctx context.Context, p rpc.Split_Integrated_Address_Params) (result rpc.Split_Integrated_Address_Result, err error) { diff --git a/walletapi/rpcserver/rpc_transfer.go b/walletapi/rpcserver/rpc_transfer.go index b66aeb95..3565038a 100644 --- a/walletapi/rpcserver/rpc_transfer.go +++ b/walletapi/rpcserver/rpc_transfer.go @@ -16,14 +16,17 @@ package rpcserver -import "fmt" -import "sync" -import "context" -import "runtime/debug" -import "encoding/base64" -import "github.com/deroproject/derohe/rpc" -import "github.com/deroproject/derohe/transaction" -import "github.com/deroproject/derohe/cryptography/crypto" +import ( + "context" + "encoding/base64" + "fmt" + "runtime/debug" + "sync" + + "github.com/deroproject/derohe/cryptography/crypto" + "github.com/deroproject/derohe/rpc" + "github.com/deroproject/derohe/transaction" +) var lock sync.Mutex diff --git a/walletapi/rpcserver/rpc_websocket_server.go b/walletapi/rpcserver/rpc_websocket_server.go index c2e3d6aa..ace51850 100644 --- a/walletapi/rpcserver/rpc_websocket_server.go +++ b/walletapi/rpcserver/rpc_websocket_server.go @@ -16,37 +16,34 @@ package rpcserver -import "io" - -import "io/ioutil" -import "net" -import "fmt" -import "net/http" -import "time" -import "sync" -import "sync/atomic" -import "context" -import "strings" -import "runtime/debug" -import "encoding/json" - -import "github.com/deroproject/derohe/config" -import "github.com/deroproject/derohe/globals" -import "github.com/deroproject/derohe/walletapi" - -import "github.com/deroproject/derohe/rpc" -import "github.com/deroproject/derohe/glue/rwc" - -import "github.com/gorilla/websocket" - -import "github.com/go-logr/logr" - -import "github.com/creachadair/jrpc2" -import "github.com/creachadair/jrpc2/handler" -import "github.com/creachadair/jrpc2/channel" +import ( + "context" + "encoding/json" + "fmt" + "io" + "io/ioutil" + "net" + "net/http" + "runtime/debug" + "strings" + "sync" + "sync/atomic" + "time" + + "github.com/creachadair/jrpc2" + "github.com/creachadair/jrpc2/channel" + "github.com/creachadair/jrpc2/handler" + "github.com/creachadair/jrpc2/jhttp" + "github.com/deroproject/derohe/config" + "github.com/deroproject/derohe/globals" + "github.com/deroproject/derohe/glue/rwc" + "github.com/deroproject/derohe/rpc" + "github.com/deroproject/derohe/walletapi" + "github.com/go-logr/logr" + "github.com/gorilla/websocket" +) //import "github.com/creachadair/jrpc2/server" -import "github.com/creachadair/jrpc2/jhttp" /* this file implements the rpcserver api, so as wallet and block explorer tools can work without migration */ diff --git a/walletapi/transaction_build.go b/walletapi/transaction_build.go index 57387dd6..e10f3960 100644 --- a/walletapi/transaction_build.go +++ b/walletapi/transaction_build.go @@ -1,17 +1,20 @@ package walletapi -import "fmt" -import "strconv" -import "math/big" - -//import "encoding/binary" -import mathrand "math/rand" -import "github.com/deroproject/derohe/globals" -import "github.com/deroproject/derohe/rpc" -import "github.com/deroproject/derohe/config" -import "github.com/deroproject/derohe/transaction" -import "github.com/deroproject/derohe/cryptography/crypto" -import "github.com/deroproject/derohe/cryptography/bn256" +import ( + "fmt" + "math/big" + "strconv" + + //import "encoding/binary" + mathrand "math/rand" + + "github.com/deroproject/derohe/config" + "github.com/deroproject/derohe/cryptography/bn256" + "github.com/deroproject/derohe/cryptography/crypto" + "github.com/deroproject/derohe/globals" + "github.com/deroproject/derohe/rpc" + "github.com/deroproject/derohe/transaction" +) // this is run some tests and benchmarks type GenerateProofFunc func(scid crypto.Hash, scid_index int, s *crypto.Statement, witness *crypto.Witness, u *bn256.G1, txid crypto.Hash, burn_value uint64) *crypto.Proof @@ -56,7 +59,7 @@ rebuild_tx: panic("currently we cannot use more than 240 bits") } - for t, _ := range transfers { + for t := range transfers { var publickeylist, C, CLn, CRn []*bn256.G1 var D bn256.G1 diff --git a/walletapi/tx_creation_test.go b/walletapi/tx_creation_test.go index d3665697..b0b757b2 100644 --- a/walletapi/tx_creation_test.go +++ b/walletapi/tx_creation_test.go @@ -16,31 +16,32 @@ package walletapi -import "io" -import "os" -import "fmt" -import "time" -import "testing" -import "bytes" - -//import "crypto/rand" -import "path/filepath" - -//import "encoding/hex" -//import "encoding/binary" -//import "runtime/pprof" - -import "github.com/docopt/docopt-go" - -import derodrpc "github.com/deroproject/derohe/cmd/derod/rpc" - -import "github.com/deroproject/derohe/globals" -import "github.com/deroproject/derohe/config" -import "github.com/deroproject/derohe/rpc" -import "github.com/deroproject/derohe/blockchain" -import "github.com/deroproject/derohe/transaction" -import "github.com/deroproject/derohe/cryptography/crypto" -import "github.com/deroproject/derohe/cryptography/bn256" +import ( + "bytes" + "fmt" + "io" + "os" + "path/filepath" + "testing" + "time" + + "github.com/docopt/docopt-go" + + //import "crypto/rand" + + //import "encoding/hex" + //import "encoding/binary" + //import "runtime/pprof" + + "github.com/deroproject/derohe/blockchain" + derodrpc "github.com/deroproject/derohe/cmd/derod/rpc" + "github.com/deroproject/derohe/config" + "github.com/deroproject/derohe/cryptography/bn256" + "github.com/deroproject/derohe/cryptography/crypto" + "github.com/deroproject/derohe/globals" + "github.com/deroproject/derohe/rpc" + "github.com/deroproject/derohe/transaction" +) func init() { globals.InitializeLog(io.Discard, io.Discard) @@ -218,7 +219,7 @@ func Test_Creation_TX(t *testing.T) { // here we are collecting proofs for later on bennhcmarking for j := 2; j <= 128; j = j * 2 { wsrc.account.Ringsize = j - tx, err := wsrc.TransferPayload0([]rpc.Transfer{rpc.Transfer{Destination: wdst.GetAddress().String(), Amount: 1}}, 0, false, rpc.Arguments{}, 0, false) + tx, err := wsrc.TransferPayload0([]rpc.Transfer{{Destination: wdst.GetAddress().String(), Amount: 1}}, 0, false, rpc.Arguments{}, 0, false) if err != nil { t.Fatalf("Cannot create transaction, err %s", err) } else { @@ -236,7 +237,7 @@ func Test_Creation_TX(t *testing.T) { // accounts are reversed wdst.Sync_Wallet_Memory_With_Daemon() - reverse_tx, err := wdst.TransferPayload0([]rpc.Transfer{rpc.Transfer{Destination: wsrc.GetAddress().String(), Amount: 1}}, 0, false, rpc.Arguments{}, 0, false) + reverse_tx, err := wdst.TransferPayload0([]rpc.Transfer{{Destination: wsrc.GetAddress().String(), Amount: 1}}, 0, false, rpc.Arguments{}, 0, false) if err != nil { t.Fatalf("Cannot create transaction, err %s", err) } @@ -250,7 +251,7 @@ func Test_Creation_TX(t *testing.T) { pre_transfer_src_balance := wsrc.account.Balance_Mature pre_transfer_dst_balance := wdst.account.Balance_Mature - tx, err := wsrc.TransferPayload0([]rpc.Transfer{rpc.Transfer{Destination: wdst.GetAddress().String(), Amount: 1}}, 0, false, rpc.Arguments{}, 0, false) + tx, err := wsrc.TransferPayload0([]rpc.Transfer{{Destination: wdst.GetAddress().String(), Amount: 1}}, 0, false, rpc.Arguments{}, 0, false) if err != nil { t.Fatalf("Cannot create transaction, err %s", err) } else { @@ -292,7 +293,7 @@ func Test_Creation_TX(t *testing.T) { var tx_set []*transaction.Transaction for i := 0; i < 6; i++ { - tx, err := wsrc.TransferPayload0([]rpc.Transfer{rpc.Transfer{Destination: wdst.GetAddress().String(), Amount: 1}}, 0, false, rpc.Arguments{}, 0, false) + tx, err := wsrc.TransferPayload0([]rpc.Transfer{{Destination: wdst.GetAddress().String(), Amount: 1}}, 0, false, rpc.Arguments{}, 0, false) if err != nil { t.Fatalf("Cannot create transaction, err %s", err) } else { diff --git a/walletapi/tx_self_creation_test.go b/walletapi/tx_self_creation_test.go index 1abfff75..c64a56cd 100644 --- a/walletapi/tx_self_creation_test.go +++ b/walletapi/tx_self_creation_test.go @@ -16,18 +16,19 @@ package walletapi -import "os" -import "fmt" -import "time" -import "testing" - -import "path/filepath" - -import "github.com/deroproject/derohe/globals" -import "github.com/deroproject/derohe/config" -import "github.com/deroproject/derohe/rpc" -import "github.com/deroproject/derohe/blockchain" -import "github.com/deroproject/derohe/transaction" +import ( + "fmt" + "os" + "path/filepath" + "testing" + "time" + + "github.com/deroproject/derohe/blockchain" + "github.com/deroproject/derohe/config" + "github.com/deroproject/derohe/globals" + "github.com/deroproject/derohe/rpc" + "github.com/deroproject/derohe/transaction" +) // this will test that the keys are placed properly and thus can be decoded by recievers func Test_Creation_TX_morecheck(t *testing.T) { @@ -121,7 +122,7 @@ func Test_Creation_TX_morecheck(t *testing.T) { t.Logf("Chain height %d\n", chain.Get_Height()) - tx, err := wsrc.TransferPayload0([]rpc.Transfer{rpc.Transfer{Destination: wdst.GetAddress().String(), Amount: 700000}}, 0, false, rpc.Arguments{}, 100000, false) + tx, err := wsrc.TransferPayload0([]rpc.Transfer{{Destination: wdst.GetAddress().String(), Amount: 700000}}, 0, false, rpc.Arguments{}, 100000, false) if err != nil { t.Fatalf("Cannot create transaction, err %s", err) } else { diff --git a/walletapi/wallet_disk.go b/walletapi/wallet_disk.go index e8b059ea..1383cdf1 100644 --- a/walletapi/wallet_disk.go +++ b/walletapi/wallet_disk.go @@ -16,14 +16,16 @@ package walletapi -import "os" -import "fmt" -import "time" -import "sync" -import "io/ioutil" - -import "github.com/deroproject/derohe/cryptography/crypto" -import "github.com/deroproject/derohe/walletapi/mnemonics" +import ( + "fmt" + "io/ioutil" + "os" + "sync" + "time" + + "github.com/deroproject/derohe/cryptography/crypto" + "github.com/deroproject/derohe/walletapi/mnemonics" +) // this is stored in disk in encrypted form type Wallet_Disk struct { diff --git a/walletapi/wallet_memory.go b/walletapi/wallet_memory.go index 37e5a147..b53b6e99 100644 --- a/walletapi/wallet_memory.go +++ b/walletapi/wallet_memory.go @@ -16,26 +16,29 @@ package walletapi -import "fmt" -import "time" -import "crypto/rand" -import "crypto/sha1" -import "sync" -import "runtime" +import ( + "crypto/rand" + "crypto/sha1" + "encoding/json" + "fmt" + "runtime" + "sync" + "time" + + "github.com/blang/semver/v4" + "github.com/deroproject/derohe/config" + "github.com/deroproject/derohe/cryptography/crypto" + "github.com/deroproject/derohe/globals" + "github.com/deroproject/derohe/rpc" + "github.com/deroproject/derohe/walletapi/mnemonics" + "golang.org/x/crypto/pbkdf2" +) //import "strings" //import "math/big" //import "encoding/hex" -import "encoding/json" -import "github.com/blang/semver/v4" -import "golang.org/x/crypto/pbkdf2" // // used to encrypt master password ( so user can change his password anytime) - -import "github.com/deroproject/derohe/rpc" -import "github.com/deroproject/derohe/config" -import "github.com/deroproject/derohe/globals" -import "github.com/deroproject/derohe/cryptography/crypto" -import "github.com/deroproject/derohe/walletapi/mnemonics" +// // used to encrypt master password ( so user can change his password anytime) // address book will have random number based entries diff --git a/walletapi/wallet_test.go b/walletapi/wallet_test.go index 1037325d..b5aefef5 100644 --- a/walletapi/wallet_test.go +++ b/walletapi/wallet_test.go @@ -16,9 +16,11 @@ package walletapi -import "fmt" -import "testing" -import "strings" +import ( + "fmt" + "strings" + "testing" +) // we are covering atleast one test case each for all supported languages diff --git a/walletapi/wallet_transfer.go b/walletapi/wallet_transfer.go index 5170aeb7..cf3c0247 100644 --- a/walletapi/wallet_transfer.go +++ b/walletapi/wallet_transfer.go @@ -16,33 +16,35 @@ package walletapi -import "fmt" +import ( + "encoding/hex" + "fmt" + + "github.com/deroproject/derohe/config" + "github.com/deroproject/derohe/cryptography/bn256" + "github.com/deroproject/derohe/cryptography/crypto" + "github.com/deroproject/derohe/rpc" + "github.com/deroproject/derohe/transaction" +) //import "sort" //import "math/rand" //import cryptorand "crypto/rand" //import "encoding/binary" -import "encoding/hex" //import "encoding/json" //import "github.com/vmihailenco/msgpack" -import "github.com/deroproject/derohe/config" -import "github.com/deroproject/derohe/cryptography/crypto" - //import "github.com/deroproject/derohe/crypto/ringct" -import "github.com/deroproject/derohe/transaction" //import "github.com/deroproject/derohe/globals" -import "github.com/deroproject/derohe/rpc" //import "github.com/deroproject/derohe/ddn" //import "github.com/deroproject/derohe/structures" //import "github.com/deroproject/derohe/blockchain/inputmaturity" -import "github.com/deroproject/derohe/cryptography/bn256" /* func (w *Wallet_Memory) Transfer_Simplified(addr string, value uint64, data []byte, scdata rpc.Arguments) (tx *transaction.Transaction, err error) {