mirror of
https://github.com/grassrootseconomics/cic-custodial.git
synced 2024-11-29 00:46:46 +01:00
Mohamed Sohail
b9d3c219c8
NOTE: This needs the db to be nuked if you are running a test cluster * updated gas refilling logic to reflect EthFaucet contract * fully dependant on on-chain contract to refill and unlock gas * minor fixes to nonce bootstrapper Ideal Values: INITIAL GIFT = 0.015 THRESHOLD = 0.01 TIME = 12 * 60 * 60 # Sample for 30 txs EXTREME LOW = 0.00675 LOW GAS USAGE = 0.00694605 RISING = 0.0135 HIGH = 0.027
34 lines
1.0 KiB
PL/PgSQL
34 lines
1.0 KiB
PL/PgSQL
-- Replace gas_quota with gas_lock which checks network balance threshold
|
|
DROP TRIGGER IF EXISTS update_gas_quota_timestamp ON gas_quota;
|
|
DROP TABLE IF EXISTS gas_quota_meta;
|
|
DROP TABLE IF EXISTS gas_quota;
|
|
DROP TRIGGER IF EXISTS insert_gas_quota ON keystore;
|
|
DROP FUNCTION IF EXISTS insert_gas_quota;
|
|
|
|
-- Gas lock table
|
|
-- A gas_locked account indicates gas balance is below threshold awaiting next available top up
|
|
CREATE TABLE IF NOT EXISTS gas_lock (
|
|
id INT GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
|
|
key_id INT REFERENCES keystore(id) NOT NULL,
|
|
lock BOOLEAN DEFAULT true,
|
|
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
|
|
);
|
|
|
|
create function insert_gas_lock()
|
|
returns trigger
|
|
as $$
|
|
begin
|
|
insert into gas_lock (key_id) values (new.id);
|
|
return new;
|
|
end;
|
|
$$ language plpgsql;
|
|
|
|
create trigger insert_gas_lock
|
|
after insert on keystore
|
|
for each row
|
|
execute procedure insert_gas_lock();
|
|
|
|
create trigger update_gas_lock_timestamp
|
|
before update on gas_lock
|
|
for each row
|
|
execute procedure update_timestamp(); |