Reference ilks foreign key from Cat storage repository
This commit is contained in:
parent
e04a72b059
commit
3d9341ea1d
@ -38,7 +38,7 @@ CREATE TABLE maker.cat_ilk_flip (
|
|||||||
id SERIAL PRIMARY KEY,
|
id SERIAL PRIMARY KEY,
|
||||||
block_number BIGINT,
|
block_number BIGINT,
|
||||||
block_hash TEXT,
|
block_hash TEXT,
|
||||||
ilk TEXT,
|
ilk INTEGER NOT NULL REFERENCES maker.ilks (id),
|
||||||
flip TEXT
|
flip TEXT
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -46,7 +46,7 @@ CREATE TABLE maker.cat_ilk_chop (
|
|||||||
id SERIAL PRIMARY KEY,
|
id SERIAL PRIMARY KEY,
|
||||||
block_number BIGINT,
|
block_number BIGINT,
|
||||||
block_hash TEXT,
|
block_hash TEXT,
|
||||||
ilk TEXT,
|
ilk INTEGER NOT NULL REFERENCES maker.ilks (id),
|
||||||
chop NUMERIC NOT NULL
|
chop NUMERIC NOT NULL
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -54,7 +54,7 @@ CREATE TABLE maker.cat_ilk_lump (
|
|||||||
id SERIAL PRIMARY KEY,
|
id SERIAL PRIMARY KEY,
|
||||||
block_number BIGINT,
|
block_number BIGINT,
|
||||||
block_hash TEXT,
|
block_hash TEXT,
|
||||||
ilk TEXT,
|
ilk INTEGER NOT NULL REFERENCES maker.ilks (id),
|
||||||
lump NUMERIC NOT NULL
|
lump NUMERIC NOT NULL
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -63,7 +63,7 @@ CREATE TABLE maker.cat_flip_ilk (
|
|||||||
block_number BIGINT,
|
block_number BIGINT,
|
||||||
block_hash TEXT,
|
block_hash TEXT,
|
||||||
flip NUMERIC NOT NULL,
|
flip NUMERIC NOT NULL,
|
||||||
ilk TEXT
|
ilk INTEGER NOT NULL REFERENCES maker.ilks (id)
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE TABLE maker.cat_flip_urn (
|
CREATE TABLE maker.cat_flip_urn (
|
||||||
|
@ -213,7 +213,7 @@ CREATE TABLE maker.cat_flip_ilk (
|
|||||||
block_number bigint,
|
block_number bigint,
|
||||||
block_hash text,
|
block_hash text,
|
||||||
flip numeric NOT NULL,
|
flip numeric NOT NULL,
|
||||||
ilk text
|
ilk integer NOT NULL
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
@ -344,7 +344,7 @@ CREATE TABLE maker.cat_ilk_chop (
|
|||||||
id integer NOT NULL,
|
id integer NOT NULL,
|
||||||
block_number bigint,
|
block_number bigint,
|
||||||
block_hash text,
|
block_hash text,
|
||||||
ilk text,
|
ilk integer NOT NULL,
|
||||||
chop numeric NOT NULL
|
chop numeric NOT NULL
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -377,7 +377,7 @@ CREATE TABLE maker.cat_ilk_flip (
|
|||||||
id integer NOT NULL,
|
id integer NOT NULL,
|
||||||
block_number bigint,
|
block_number bigint,
|
||||||
block_hash text,
|
block_hash text,
|
||||||
ilk text,
|
ilk integer NOT NULL,
|
||||||
flip text
|
flip text
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -410,7 +410,7 @@ CREATE TABLE maker.cat_ilk_lump (
|
|||||||
id integer NOT NULL,
|
id integer NOT NULL,
|
||||||
block_number bigint,
|
block_number bigint,
|
||||||
block_hash text,
|
block_hash text,
|
||||||
ilk text,
|
ilk integer NOT NULL,
|
||||||
lump numeric NOT NULL
|
lump numeric NOT NULL
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -4413,6 +4413,38 @@ ALTER TABLE ONLY maker.cat_file_pit_vow
|
|||||||
ADD CONSTRAINT cat_file_pit_vow_header_id_fkey FOREIGN KEY (header_id) REFERENCES public.headers(id) ON DELETE CASCADE;
|
ADD CONSTRAINT cat_file_pit_vow_header_id_fkey FOREIGN KEY (header_id) REFERENCES public.headers(id) ON DELETE CASCADE;
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Name: cat_flip_ilk cat_flip_ilk_ilk_fkey; Type: FK CONSTRAINT; Schema: maker; Owner: -
|
||||||
|
--
|
||||||
|
|
||||||
|
ALTER TABLE ONLY maker.cat_flip_ilk
|
||||||
|
ADD CONSTRAINT cat_flip_ilk_ilk_fkey FOREIGN KEY (ilk) REFERENCES maker.ilks(id);
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Name: cat_ilk_chop cat_ilk_chop_ilk_fkey; Type: FK CONSTRAINT; Schema: maker; Owner: -
|
||||||
|
--
|
||||||
|
|
||||||
|
ALTER TABLE ONLY maker.cat_ilk_chop
|
||||||
|
ADD CONSTRAINT cat_ilk_chop_ilk_fkey FOREIGN KEY (ilk) REFERENCES maker.ilks(id);
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Name: cat_ilk_flip cat_ilk_flip_ilk_fkey; Type: FK CONSTRAINT; Schema: maker; Owner: -
|
||||||
|
--
|
||||||
|
|
||||||
|
ALTER TABLE ONLY maker.cat_ilk_flip
|
||||||
|
ADD CONSTRAINT cat_ilk_flip_ilk_fkey FOREIGN KEY (ilk) REFERENCES maker.ilks(id);
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Name: cat_ilk_lump cat_ilk_lump_ilk_fkey; Type: FK CONSTRAINT; Schema: maker; Owner: -
|
||||||
|
--
|
||||||
|
|
||||||
|
ALTER TABLE ONLY maker.cat_ilk_lump
|
||||||
|
ADD CONSTRAINT cat_ilk_lump_ilk_fkey FOREIGN KEY (ilk) REFERENCES maker.ilks(id);
|
||||||
|
|
||||||
|
|
||||||
--
|
--
|
||||||
-- Name: deal deal_header_id_fkey; Type: FK CONSTRAINT; Schema: maker; Owner: -
|
-- Name: deal deal_header_id_fkey; Type: FK CONSTRAINT; Schema: maker; Owner: -
|
||||||
--
|
--
|
||||||
|
@ -3,6 +3,7 @@ package cat
|
|||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/vulcanize/vulcanizedb/pkg/datastore/postgres"
|
"github.com/vulcanize/vulcanizedb/pkg/datastore/postgres"
|
||||||
|
shared2 "github.com/vulcanize/vulcanizedb/pkg/transformers/shared"
|
||||||
"github.com/vulcanize/vulcanizedb/pkg/transformers/storage_diffs/shared"
|
"github.com/vulcanize/vulcanizedb/pkg/transformers/storage_diffs/shared"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -86,10 +87,29 @@ func (repository *CatStorageRepository) insertIlkFlip(blockNumber int, blockHash
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
_, writeErr := repository.db.Exec(
|
tx, txErr := repository.db.Begin()
|
||||||
|
if txErr != nil {
|
||||||
|
return txErr
|
||||||
|
}
|
||||||
|
ilkID, ilkErr := shared2.GetOrCreateIlkInTransaction(ilk, tx)
|
||||||
|
if ilkErr != nil {
|
||||||
|
rollbackErr := tx.Rollback()
|
||||||
|
if rollbackErr != nil {
|
||||||
|
return fmt.Errorf("failed to rollback transaction after failing to insert ilk: %s", ilkErr.Error())
|
||||||
|
}
|
||||||
|
return ilkErr
|
||||||
|
}
|
||||||
|
_, writeErr := tx.Exec(
|
||||||
`INSERT INTO maker.cat_ilk_flip (block_number, block_hash, ilk, flip) VALUES ($1, $2, $3, $4)`,
|
`INSERT INTO maker.cat_ilk_flip (block_number, block_hash, ilk, flip) VALUES ($1, $2, $3, $4)`,
|
||||||
blockNumber, blockHash, ilk, flip)
|
blockNumber, blockHash, ilkID, flip)
|
||||||
return writeErr
|
if writeErr != nil {
|
||||||
|
rollbackErr := tx.Rollback()
|
||||||
|
if rollbackErr != nil {
|
||||||
|
return fmt.Errorf("failed to rollback transaction after failing to insert ilk flip: %s", writeErr.Error())
|
||||||
|
}
|
||||||
|
return writeErr
|
||||||
|
}
|
||||||
|
return tx.Commit()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (repository *CatStorageRepository) insertIlkChop(blockNumber int, blockHash string, metadata shared.StorageValueMetadata, chop string) error {
|
func (repository *CatStorageRepository) insertIlkChop(blockNumber int, blockHash string, metadata shared.StorageValueMetadata, chop string) error {
|
||||||
@ -97,10 +117,29 @@ func (repository *CatStorageRepository) insertIlkChop(blockNumber int, blockHash
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
_, writeErr := repository.db.Exec(
|
tx, txErr := repository.db.Begin()
|
||||||
|
if txErr != nil {
|
||||||
|
return txErr
|
||||||
|
}
|
||||||
|
ilkID, ilkErr := shared2.GetOrCreateIlkInTransaction(ilk, tx)
|
||||||
|
if ilkErr != nil {
|
||||||
|
rollbackErr := tx.Rollback()
|
||||||
|
if rollbackErr != nil {
|
||||||
|
return fmt.Errorf("failed to rollback transaction after failing to insert ilk: %s", ilkErr.Error())
|
||||||
|
}
|
||||||
|
return ilkErr
|
||||||
|
}
|
||||||
|
_, writeErr := tx.Exec(
|
||||||
`INSERT INTO maker.cat_ilk_chop (block_number, block_hash, ilk, chop) VALUES ($1, $2, $3, $4)`,
|
`INSERT INTO maker.cat_ilk_chop (block_number, block_hash, ilk, chop) VALUES ($1, $2, $3, $4)`,
|
||||||
blockNumber, blockHash, ilk, chop)
|
blockNumber, blockHash, ilkID, chop)
|
||||||
return writeErr
|
if writeErr != nil {
|
||||||
|
rollbackErr := tx.Rollback()
|
||||||
|
if rollbackErr != nil {
|
||||||
|
return fmt.Errorf("failed to rollback transaction after failing to insert ilk chop: %s", writeErr.Error())
|
||||||
|
}
|
||||||
|
return writeErr
|
||||||
|
}
|
||||||
|
return tx.Commit()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (repository *CatStorageRepository) insertIlkLump(blockNumber int, blockHash string, metadata shared.StorageValueMetadata, lump string) error {
|
func (repository *CatStorageRepository) insertIlkLump(blockNumber int, blockHash string, metadata shared.StorageValueMetadata, lump string) error {
|
||||||
@ -108,10 +147,29 @@ func (repository *CatStorageRepository) insertIlkLump(blockNumber int, blockHash
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
_, writeErr := repository.db.Exec(
|
tx, txErr := repository.db.Begin()
|
||||||
|
if txErr != nil {
|
||||||
|
return txErr
|
||||||
|
}
|
||||||
|
ilkID, ilkErr := shared2.GetOrCreateIlkInTransaction(ilk, tx)
|
||||||
|
if ilkErr != nil {
|
||||||
|
rollbackErr := tx.Rollback()
|
||||||
|
if rollbackErr != nil {
|
||||||
|
return fmt.Errorf("failed to rollback transaction after failing to insert ilk: %s", ilkErr.Error())
|
||||||
|
}
|
||||||
|
return ilkErr
|
||||||
|
}
|
||||||
|
_, writeErr := tx.Exec(
|
||||||
`INSERT INTO maker.cat_ilk_lump (block_number, block_hash, ilk, lump) VALUES ($1, $2, $3, $4)`,
|
`INSERT INTO maker.cat_ilk_lump (block_number, block_hash, ilk, lump) VALUES ($1, $2, $3, $4)`,
|
||||||
blockNumber, blockHash, ilk, lump)
|
blockNumber, blockHash, ilkID, lump)
|
||||||
return writeErr
|
if writeErr != nil {
|
||||||
|
rollbackErr := tx.Rollback()
|
||||||
|
if rollbackErr != nil {
|
||||||
|
return fmt.Errorf("failed to rollback transaction after failing to insert ilk lump: %s", writeErr.Error())
|
||||||
|
}
|
||||||
|
return writeErr
|
||||||
|
}
|
||||||
|
return tx.Commit()
|
||||||
}
|
}
|
||||||
|
|
||||||
// Flips mapping: uint256 => ilk, urn bytes32; ink, tab uint256 (both wad)
|
// Flips mapping: uint256 => ilk, urn bytes32; ink, tab uint256 (both wad)
|
||||||
@ -120,10 +178,29 @@ func (repository *CatStorageRepository) insertFlipIlk(blockNumber int, blockHash
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
_, writeErr := repository.db.Exec(
|
tx, txErr := repository.db.Begin()
|
||||||
|
if txErr != nil {
|
||||||
|
return txErr
|
||||||
|
}
|
||||||
|
ilkID, ilkErr := shared2.GetOrCreateIlkInTransaction(ilk, tx)
|
||||||
|
if ilkErr != nil {
|
||||||
|
rollbackErr := tx.Rollback()
|
||||||
|
if rollbackErr != nil {
|
||||||
|
return fmt.Errorf("failed to rollback transaction after failing to insert ilk: %s", ilkErr.Error())
|
||||||
|
}
|
||||||
|
return ilkErr
|
||||||
|
}
|
||||||
|
_, writeErr := tx.Exec(
|
||||||
`INSERT INTO maker.cat_flip_ilk (block_number, block_hash, flip, ilk) VALUES ($1, $2, $3, $4)`,
|
`INSERT INTO maker.cat_flip_ilk (block_number, block_hash, flip, ilk) VALUES ($1, $2, $3, $4)`,
|
||||||
blockNumber, blockHash, flip, ilk)
|
blockNumber, blockHash, flip, ilkID)
|
||||||
return writeErr
|
if writeErr != nil {
|
||||||
|
rollbackErr := tx.Rollback()
|
||||||
|
if rollbackErr != nil {
|
||||||
|
return fmt.Errorf("failed to rollback transaction after failing to insert flip ilk: %s", writeErr.Error())
|
||||||
|
}
|
||||||
|
return writeErr
|
||||||
|
}
|
||||||
|
return tx.Commit()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (repository *CatStorageRepository) insertFlipUrn(blockNumber int, blockHash string, metadata shared.StorageValueMetadata, urn string) error {
|
func (repository *CatStorageRepository) insertFlipUrn(blockNumber int, blockHash string, metadata shared.StorageValueMetadata, urn string) error {
|
||||||
|
@ -4,10 +4,12 @@ import (
|
|||||||
. "github.com/onsi/ginkgo"
|
. "github.com/onsi/ginkgo"
|
||||||
. "github.com/onsi/gomega"
|
. "github.com/onsi/gomega"
|
||||||
"github.com/vulcanize/vulcanizedb/pkg/datastore/postgres"
|
"github.com/vulcanize/vulcanizedb/pkg/datastore/postgres"
|
||||||
|
shared2 "github.com/vulcanize/vulcanizedb/pkg/transformers/shared"
|
||||||
"github.com/vulcanize/vulcanizedb/pkg/transformers/storage_diffs/maker/cat"
|
"github.com/vulcanize/vulcanizedb/pkg/transformers/storage_diffs/maker/cat"
|
||||||
. "github.com/vulcanize/vulcanizedb/pkg/transformers/storage_diffs/maker/test_helpers"
|
. "github.com/vulcanize/vulcanizedb/pkg/transformers/storage_diffs/maker/test_helpers"
|
||||||
"github.com/vulcanize/vulcanizedb/pkg/transformers/storage_diffs/shared"
|
"github.com/vulcanize/vulcanizedb/pkg/transformers/storage_diffs/shared"
|
||||||
"github.com/vulcanize/vulcanizedb/test_config"
|
"github.com/vulcanize/vulcanizedb/test_config"
|
||||||
|
"strconv"
|
||||||
)
|
)
|
||||||
|
|
||||||
var _ = Describe("Cat storage repository", func() {
|
var _ = Describe("Cat storage repository", func() {
|
||||||
@ -110,7 +112,9 @@ var _ = Describe("Cat storage repository", func() {
|
|||||||
|
|
||||||
err = db.Get(&result, `SELECT block_number, block_hash, ilk AS key, flip AS value FROM maker.cat_ilk_flip`)
|
err = db.Get(&result, `SELECT block_number, block_hash, ilk AS key, flip AS value FROM maker.cat_ilk_flip`)
|
||||||
Expect(err).NotTo(HaveOccurred())
|
Expect(err).NotTo(HaveOccurred())
|
||||||
AssertMapping(result, fakeBlockNumber, fakeBlockHash, fakeIlk, fakeAddress)
|
ilkID, err := shared2.GetOrCreateIlk(fakeIlk, db)
|
||||||
|
Expect(err).NotTo(HaveOccurred())
|
||||||
|
AssertMapping(result, fakeBlockNumber, fakeBlockHash, strconv.Itoa(ilkID), fakeAddress)
|
||||||
})
|
})
|
||||||
|
|
||||||
It("returns an error if metadata missing ilk", func() {
|
It("returns an error if metadata missing ilk", func() {
|
||||||
@ -130,7 +134,9 @@ var _ = Describe("Cat storage repository", func() {
|
|||||||
|
|
||||||
err = db.Get(&result, `SELECT block_number, block_hash, ilk AS key, chop AS value FROM maker.cat_ilk_chop`)
|
err = db.Get(&result, `SELECT block_number, block_hash, ilk AS key, chop AS value FROM maker.cat_ilk_chop`)
|
||||||
Expect(err).NotTo(HaveOccurred())
|
Expect(err).NotTo(HaveOccurred())
|
||||||
AssertMapping(result, fakeBlockNumber, fakeBlockHash, fakeIlk, fakeUint256)
|
ilkID, err := shared2.GetOrCreateIlk(fakeIlk, db)
|
||||||
|
Expect(err).NotTo(HaveOccurred())
|
||||||
|
AssertMapping(result, fakeBlockNumber, fakeBlockHash, strconv.Itoa(ilkID), fakeUint256)
|
||||||
})
|
})
|
||||||
|
|
||||||
It("returns an error if metadata missing ilk", func() {
|
It("returns an error if metadata missing ilk", func() {
|
||||||
@ -150,7 +156,9 @@ var _ = Describe("Cat storage repository", func() {
|
|||||||
|
|
||||||
err = db.Get(&result, `SELECT block_number, block_hash, ilk AS key, lump AS value FROM maker.cat_ilk_lump`)
|
err = db.Get(&result, `SELECT block_number, block_hash, ilk AS key, lump AS value FROM maker.cat_ilk_lump`)
|
||||||
Expect(err).NotTo(HaveOccurred())
|
Expect(err).NotTo(HaveOccurred())
|
||||||
AssertMapping(result, fakeBlockNumber, fakeBlockHash, fakeIlk, fakeUint256)
|
ilkID, err := shared2.GetOrCreateIlk(fakeIlk, db)
|
||||||
|
Expect(err).NotTo(HaveOccurred())
|
||||||
|
AssertMapping(result, fakeBlockNumber, fakeBlockHash, strconv.Itoa(ilkID), fakeUint256)
|
||||||
})
|
})
|
||||||
|
|
||||||
It("returns an error if metadata missing ilk", func() {
|
It("returns an error if metadata missing ilk", func() {
|
||||||
@ -174,7 +182,9 @@ var _ = Describe("Cat storage repository", func() {
|
|||||||
|
|
||||||
err = db.Get(&result, `SELECT block_number, block_hash, flip AS key, ilk AS value FROM maker.cat_flip_ilk`)
|
err = db.Get(&result, `SELECT block_number, block_hash, flip AS key, ilk AS value FROM maker.cat_flip_ilk`)
|
||||||
Expect(err).NotTo(HaveOccurred())
|
Expect(err).NotTo(HaveOccurred())
|
||||||
AssertMapping(result, fakeBlockNumber, fakeBlockHash, fakeUint256, fakeBytes32)
|
ilkID, err := shared2.GetOrCreateIlk(fakeBytes32, db)
|
||||||
|
Expect(err).NotTo(HaveOccurred())
|
||||||
|
AssertMapping(result, fakeBlockNumber, fakeBlockHash, fakeUint256, strconv.Itoa(ilkID))
|
||||||
})
|
})
|
||||||
|
|
||||||
It("returns an error if metadata missing flip", func() {
|
It("returns an error if metadata missing flip", func() {
|
||||||
|
Loading…
Reference in New Issue
Block a user