Magickbase / ckb-explorer-public-issues

CKB Explorer Issues
https://explorer.nervos.org/
3 stars 2 forks source link

portfolio account aggregated statistics #444

Open rabbitz opened 1 year ago

rabbitz commented 1 year ago

https://github.com/Magickbase/visual-style-guide/issues/36

https://github.com/ckb-js/kuai/issues/464#issuecomment-1727293537

https://github.com/Magickbase/neuron-public-issues/issues/144

https://github.com/ckb-js/lumos/blob/develop/packages/hd/src/key.ts#L27-L30


rabbitz commented 1 year ago

User sign in

  1. route definition
  1. request definition
address [string]
message [string]
signature [string]
pub_key [string]
  1. response definition
jwt [string]

Update user name

  1. route definition
  1. request definition
name [string]

User portfolio statistics

  1. route definition
  1. request definition
address [string] # latest_address_in_frontend
  1. response definition
capacity [decimal]
deposit_compensation [decimal]
occupied_capacity [decimal]
dao_deposit [decimal]

Sync portfolio addresses

  1. route definition
  1. request definition
addresses [][string]  # addresses_diff_between_frontend_and_backend

CREATE TABLE
  `users`(
    `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT 'user id, primary key',
    `uuid` VARCHAR(36) NOT NULL DEFAULT '' COMMENT 'user uuid',
    `identifier` VARCHAR(255) NOT NULL DEFAULT '' COMMENT 'user identifier',
    `nonce` INT unsigned NOT NULL DEFAULT 0 COMMENT 'user nonce',
    `name` VARCHAR(255) DEFAULT '' COMMENT 'user name',
    `create_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'created at',
    `update_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'updated at',
    PRIMARY KEY(`id`),
    CONSTRAINT uc_identifier_on_users UNIQUE(`identifier`),
    CONSTRAINT uc_uuid_on_users UNIQUE(`uuid`)
  );
CREATE TABLE
  `portfolios`(
    `user_id` BIGINT NOT NULL DEFAULT 0 COMMENT 'user id',
    `address_id` BIGINT NOT NULL DEFAULT 0 COMMENT 'address id',
    UNIQUE KEY `uc_user_id_address_id_on_portfolios`(`user_id`, `address_id`)
  );
CREATE TABLE
  `portfolio_statistics`(
    `user_id` BIGINT NOT NULL DEFAULT 0,
    `capacity` DECIMAL(30, 0) UNSIGNED NOT NULL DEFAULT 0,
    `occupied_capacity` DECIMAL(30, 0) UNSIGNED NOT NULL DEFAULT 0,
    `dao_deposit` DECIMAL(30, 0) UNSIGNED NOT NULL DEFAULT 0,
    `interest` DECIMAL(30, 0) UNSIGNED NOT NULL DEFAULT 0,
    `unclaimed_compensation` DECIMAL(30, 0) UNSIGNED NOT NULL DEFAULT 0,
    UNIQUE KEY `uc_user_id_address_id_on_portfolios`(`user_id`, `address_id`)
  );