diff options
author | Wei-Ning Huang <w@dexon.org> | 2019-03-13 18:20:22 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-03-13 18:20:22 +0800 |
commit | 662cccb5ec127969d6e939fad3e95db021822683 (patch) | |
tree | fce48cd9f061cb8752519a5d937a15b7f4b3c0a7 /core/vm/oracle.go | |
parent | c1971db86a3a9ea4d56f24ca375d87338c1ca113 (diff) | |
download | dexon-662cccb5ec127969d6e939fad3e95db021822683.tar dexon-662cccb5ec127969d6e939fad3e95db021822683.tar.gz dexon-662cccb5ec127969d6e939fad3e95db021822683.tar.bz2 dexon-662cccb5ec127969d6e939fad3e95db021822683.tar.lz dexon-662cccb5ec127969d6e939fad3e95db021822683.tar.xz dexon-662cccb5ec127969d6e939fad3e95db021822683.tar.zst dexon-662cccb5ec127969d6e939fad3e95db021822683.zip |
core: vm: create new oracle contract instance in each call (#251)
Since the VM might be called from different source (downloader, RPC,
etc.). We need to make the call state separate. Modify the calling
sequence so a new oracle contract instance is used on each run.
Diffstat (limited to 'core/vm/oracle.go')
-rw-r--r-- | core/vm/oracle.go | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/core/vm/oracle.go b/core/vm/oracle.go index 81755cd9b..0d4c10d9e 100644 --- a/core/vm/oracle.go +++ b/core/vm/oracle.go @@ -38,9 +38,11 @@ type OracleContract interface { } // A map representing available system oracle contracts. -var OracleContracts = map[common.Address]OracleContract{ - GovernanceContractAddress: &GovernanceContract{ - coreDKGUtils: &defaultCoreDKGUtils{}, +var OracleContracts = map[common.Address]func() OracleContract{ + GovernanceContractAddress: func() OracleContract { + return &GovernanceContract{ + coreDKGUtils: &defaultCoreDKGUtils{}, + } }, } |