(VDB-298) Consume Pit contract storage diffs
- Continuously parse storage diffs CSV data to read Pit contract state - Convert ilks in database to raw bytes32 value for use in generating storage keys dynamically - Persist storage diffs with block number and hash for validation
This commit is contained in:
@@ -41,7 +41,7 @@ var (
|
||||
biteRawJson, _ = json.Marshal(EthBiteLog)
|
||||
biteIlk = [32]byte{69, 84, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
|
||||
biteLad = [32]byte{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 216, 180, 20, 126, 218, 128, 254, 199, 18, 42, 225, 109, 162, 71, 156, 189, 127, 251}
|
||||
biteIlkString = "ETH"
|
||||
biteIlkString = "4554480000000000000000000000000000000000000000000000000000000000"
|
||||
biteLadString = "0x0000d8b4147eDa80Fec7122AE16DA2479Cbd7ffB"
|
||||
)
|
||||
|
||||
|
||||
@@ -45,7 +45,7 @@ var EthCatFileChopLog = types.Log{
|
||||
}
|
||||
var rawCatFileChopLog, _ = json.Marshal(EthCatFileChopLog)
|
||||
var CatFileChopModel = chop_lump.CatFileChopLumpModel{
|
||||
Ilk: "fake ilk",
|
||||
Ilk: "66616b6520696c6b000000000000000000000000000000000000000000000000",
|
||||
What: "chop",
|
||||
Data: "123.456789012345680589533003513",
|
||||
TransactionIndex: EthCatFileChopLog.TxIndex,
|
||||
@@ -71,7 +71,7 @@ var EthCatFileLumpLog = types.Log{
|
||||
}
|
||||
var rawCatFileLumpLog, _ = json.Marshal(EthCatFileLumpLog)
|
||||
var CatFileLumpModel = chop_lump.CatFileChopLumpModel{
|
||||
Ilk: "fake ilk",
|
||||
Ilk: "66616b6520696c6b000000000000000000000000000000000000000000000000",
|
||||
What: "lump",
|
||||
Data: "12345.678901234567092615",
|
||||
TransactionIndex: EthCatFileLumpLog.TxIndex,
|
||||
@@ -98,7 +98,7 @@ var EthCatFileFlipLog = types.Log{
|
||||
|
||||
var rawCatFileFlipLog, _ = json.Marshal(EthCatFileFlipLog)
|
||||
var CatFileFlipModel = flip.CatFileFlipModel{
|
||||
Ilk: "fake ilk",
|
||||
Ilk: "66616b6520696c6b000000000000000000000000000000000000000000000000",
|
||||
What: "flip",
|
||||
Flip: "0x07Fa9eF6609cA7921112231F8f195138ebbA2977",
|
||||
TransactionIndex: EthCatFileFlipLog.TxIndex,
|
||||
|
||||
@@ -44,7 +44,7 @@ var EthDripDripLog = types.Log{
|
||||
|
||||
var rawDripDripLog, _ = json.Marshal(EthDripDripLog)
|
||||
var DripDripModel = drip_drip.DripDripModel{
|
||||
Ilk: "fake ilk",
|
||||
Ilk: "66616b6520696c6b000000000000000000000000000000000000000000000000",
|
||||
LogIndex: EthDripDripLog.Index,
|
||||
TransactionIndex: EthDripDripLog.TxIndex,
|
||||
Raw: rawDripDripLog,
|
||||
|
||||
@@ -47,7 +47,7 @@ var EthDripFileIlkLog = types.Log{
|
||||
|
||||
var rawDripFileIlkLog, _ = json.Marshal(EthDripFileIlkLog)
|
||||
var DripFileIlkModel = ilk2.DripFileIlkModel{
|
||||
Ilk: "fake ilk",
|
||||
Ilk: "66616b6520696c6b000000000000000000000000000000000000000000000000",
|
||||
Vow: "fake vow",
|
||||
Tax: "12300.000000000000000000000000000",
|
||||
LogIndex: EthDripFileIlkLog.Index,
|
||||
|
||||
@@ -41,7 +41,7 @@ var (
|
||||
frobLad = [32]byte{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 100, 217, 34, 137, 65, 83, 190, 158, 239, 123, 114, 24, 220, 86, 93, 29, 12, 226, 160, 146}
|
||||
ink = big.NewInt(15)
|
||||
ilk = [32]byte{102, 97, 107, 101, 32, 105, 108, 107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
|
||||
frobIlkString = "fake ilk"
|
||||
frobIlkString = "66616b6520696c6b000000000000000000000000000000000000000000000000"
|
||||
frobUrnString = "0x64d922894153BE9EEf7b7218dc565d1D0Ce2a092"
|
||||
)
|
||||
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
package mocks
|
||||
|
||||
import (
|
||||
"github.com/ethereum/go-ethereum/common"
|
||||
"github.com/vulcanize/vulcanizedb/pkg/datastore/postgres"
|
||||
"github.com/vulcanize/vulcanizedb/pkg/transformers/storage_diffs/shared"
|
||||
)
|
||||
|
||||
type MockMappings struct {
|
||||
Metadata shared.StorageValueMetadata
|
||||
LookupCalled bool
|
||||
LookupErr error
|
||||
}
|
||||
|
||||
func (mappings *MockMappings) Lookup(key common.Hash) (shared.StorageValueMetadata, error) {
|
||||
mappings.LookupCalled = true
|
||||
return mappings.Metadata, mappings.LookupErr
|
||||
}
|
||||
|
||||
func (*MockMappings) SetDB(db *postgres.DB) {
|
||||
panic("implement me")
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
package mocks
|
||||
|
||||
import (
|
||||
"github.com/vulcanize/vulcanizedb/pkg/datastore/postgres"
|
||||
"github.com/vulcanize/vulcanizedb/pkg/transformers/storage_diffs/shared"
|
||||
)
|
||||
|
||||
type MockStorageRepository struct {
|
||||
CreateErr error
|
||||
PassedBlockNumber int
|
||||
PassedBlockHash string
|
||||
PassedMetadata shared.StorageValueMetadata
|
||||
PassedValue interface{}
|
||||
}
|
||||
|
||||
func (repository *MockStorageRepository) Create(blockNumber int, blockHash string, metadata shared.StorageValueMetadata, value interface{}) error {
|
||||
repository.PassedBlockNumber = blockNumber
|
||||
repository.PassedBlockHash = blockHash
|
||||
repository.PassedMetadata = metadata
|
||||
repository.PassedValue = value
|
||||
return repository.CreateErr
|
||||
}
|
||||
|
||||
func (*MockStorageRepository) SetDB(db *postgres.DB) {
|
||||
panic("implement me")
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
package mocks
|
||||
|
||||
import (
|
||||
"github.com/ethereum/go-ethereum/common"
|
||||
"github.com/vulcanize/vulcanizedb/pkg/datastore/postgres"
|
||||
"github.com/vulcanize/vulcanizedb/pkg/transformers/shared/storage"
|
||||
"github.com/vulcanize/vulcanizedb/pkg/transformers/storage_diffs/shared"
|
||||
)
|
||||
|
||||
type MockStorageTransformer struct {
|
||||
Address common.Address
|
||||
ExecuteErr error
|
||||
PassedRow shared.StorageDiffRow
|
||||
}
|
||||
|
||||
func (transformer *MockStorageTransformer) Execute(row shared.StorageDiffRow) error {
|
||||
transformer.PassedRow = row
|
||||
return transformer.ExecuteErr
|
||||
}
|
||||
|
||||
func (transformer *MockStorageTransformer) ContractAddress() common.Address {
|
||||
return transformer.Address
|
||||
}
|
||||
|
||||
func (transformer *MockStorageTransformer) FakeTransformerInitializer(db *postgres.DB) storage.Transformer {
|
||||
return transformer
|
||||
}
|
||||
@@ -75,7 +75,7 @@ var EthPitFileIlkLineLog = types.Log{
|
||||
|
||||
var rawPitFileIlkLineLog, _ = json.Marshal(EthPitFileIlkLineLog)
|
||||
var PitFileIlkLineModel = ilk2.PitFileIlkModel{
|
||||
Ilk: "fake ilk",
|
||||
Ilk: "0x66616b6520696c6b000000000000000000000000000000000000000000000000",
|
||||
What: "line",
|
||||
Data: "0.000001000000000000",
|
||||
LogIndex: EthPitFileIlkLineLog.Index,
|
||||
@@ -102,7 +102,7 @@ var EthPitFileIlkSpotLog = types.Log{
|
||||
|
||||
var rawPitFileIlkSpotLog, _ = json.Marshal(EthPitFileIlkSpotLog)
|
||||
var PitFileIlkSpotModel = ilk2.PitFileIlkModel{
|
||||
Ilk: "fake ilk",
|
||||
Ilk: "0x66616b6520696c6b000000000000000000000000000000000000000000000000",
|
||||
What: "spot",
|
||||
Data: "0.000000000000001000000000000",
|
||||
LogIndex: EthPitFileIlkSpotLog.Index,
|
||||
|
||||
@@ -44,7 +44,7 @@ var VatFluxLog = types.Log{
|
||||
|
||||
var rawFluxLog, _ = json.Marshal(VatFluxLog)
|
||||
var VatFluxModel = vat_flux.VatFluxModel{
|
||||
Ilk: "REP",
|
||||
Ilk: "5245500000000000000000000000000000000000000000000000000000000000",
|
||||
Src: "0x7FA9EF6609Ca7921112231f8f195138ebba29770",
|
||||
Dst: "0x93086347c52a8878af71bB818509d484c6a2e1bF",
|
||||
Rad: "123",
|
||||
|
||||
@@ -46,7 +46,7 @@ var EthVatFoldLog = types.Log{
|
||||
|
||||
var rawVatFoldLog, _ = json.Marshal(EthVatFoldLog)
|
||||
var VatFoldModel = vat_fold.VatFoldModel{
|
||||
Ilk: "REP",
|
||||
Ilk: "5245500000000000000000000000000000000000000000000000000000000000",
|
||||
Urn: "0x3728e9777B2a0a611ee0F89e00E01044ce4736d1",
|
||||
Rate: "0.000000000000000000000000002",
|
||||
LogIndex: EthVatFoldLog.Index,
|
||||
|
||||
@@ -28,7 +28,7 @@ var EthVatGrabLog = types.Log{
|
||||
|
||||
var rawVatGrabLog, _ = json.Marshal(EthVatGrabLog)
|
||||
var VatGrabModel = vat_grab.VatGrabModel{
|
||||
Ilk: "REP",
|
||||
Ilk: "5245500000000000000000000000000000000000000000000000000000000000",
|
||||
Urn: "0x6a3AE20C315E845B2E398e68EfFe39139eC6060C",
|
||||
V: "0x2F34f22a00eE4b7a8F8BBC4eAee1658774c624e0",
|
||||
W: "0x3728e9777B2a0a611ee0F89e00E01044ce4736d1",
|
||||
|
||||
@@ -46,7 +46,7 @@ var EthVatInitLog = types.Log{
|
||||
|
||||
var rawVatInitLog, _ = json.Marshal(EthVatInitLog)
|
||||
var VatInitModel = vat_init.VatInitModel{
|
||||
Ilk: "fake ilk",
|
||||
Ilk: "66616b6520696c6b000000000000000000000000000000000000000000000000",
|
||||
LogIndex: EthVatInitLog.Index,
|
||||
TransactionIndex: EthVatInitLog.TxIndex,
|
||||
Raw: rawVatInitLog,
|
||||
|
||||
@@ -46,7 +46,7 @@ var EthVatSlipLog = types.Log{
|
||||
|
||||
var rawVatSlipLog, _ = json.Marshal(EthVatSlipLog)
|
||||
var VatSlipModel = vat_slip.VatSlipModel{
|
||||
Ilk: "fake ilk",
|
||||
Ilk: "66616b6520696c6b000000000000000000000000000000000000000000000000",
|
||||
Guy: common.HexToAddress("0x7d7bEe5fCfD8028cf7b00876C5b1421c800561A6").String(),
|
||||
Rad: "987654321",
|
||||
TransactionIndex: EthVatSlipLog.TxIndex,
|
||||
|
||||
@@ -29,7 +29,7 @@ var EthVatTollLog = types.Log{
|
||||
|
||||
var rawVatTollLog, _ = json.Marshal(EthVatTollLog)
|
||||
var VatTollModel = vat_toll.VatTollModel{
|
||||
Ilk: "fake ilk",
|
||||
Ilk: "66616b6520696c6b000000000000000000000000000000000000000000000000",
|
||||
Urn: "0xA3E37186E017747DbA34042e83e3F76Ad3CcE9b0",
|
||||
Take: big.NewInt(123456789).String(),
|
||||
TransactionIndex: EthVatTollLog.TxIndex,
|
||||
|
||||
@@ -34,7 +34,7 @@ var dartString = "11579208923731619542357098500868790785326998466564056403945558
|
||||
var vatTuneDart, _ = new(big.Int).SetString(dartString, 10)
|
||||
var urnAddress = "0x4F26FfBe5F04ED43630fdC30A87638d53D0b0876"
|
||||
var VatTuneModel = vat_tune.VatTuneModel{
|
||||
Ilk: "ETH",
|
||||
Ilk: "4554480000000000000000000000000000000000000000000000000000000000",
|
||||
Urn: urnAddress,
|
||||
V: urnAddress,
|
||||
W: urnAddress,
|
||||
|
||||
Reference in New Issue
Block a user