Skip to content

Commit

Permalink
project voting data api (#224)
Browse files Browse the repository at this point in the history
* add back sudo to rococo

* runtime api

* runtime-api-wiring

* some dummy log statements

* attempt 1 to add try-runtime

* second attempt

* add to the cli

* fix warn issue

* on initialise, remove on runtime upgrade proposasl

* add the new storage version migration

* pick runtime

* new migration for proposals

* fmt

* fix v3-v4 migration test

* fix 2

* fix brief migration test

* clippy

* fmt

* new MilestoneVote implementation

* fix implementation

* get project individual votes

* remove total votes api

* fmt

* ummm

* new format for Individual votes

* boom baby, and a fmt

* clippy

* fix build

* fmt

* bump spec version

* 1

* individual votes impl with storage

* fix buggy impl

* define immutability, update on vote

* use individual votes for oninit and submit and close voting + update migration

* fixing build

* seperated test files, tested ImmutableVotes

* fix runtime api, reorg proposals

* fmt

* fmt

* clippy

* migration, err handling

* fix migration

* fmt

* fix

* clippy

* update executive and spec version

* fmt

* remove todos

* remove wrong comment

* fix failing test

* fmt

* run on gcp

* bump to rebuild

* use self hosted runner

* already installed on runner

* attempt auto scaling runner

* increase disk size

* bump to build again

* dont delete at the end of the job

* remove unused directories

* bump

* change region

* split the jobs

* add -y flag

* test menually installing rust

* -y flag

* more -y

* remove double install of protobugf

* -y

* trial 1

* fix

* fix2

* fix3

* bump up

* bump

* change zone

* bump

* lol -y

* bump

* bump 2

* set home directory

* try to run as user

* init commit

* commit 2

* test

* test 3

* attempt 4

* bump

* bump

* bump

* bump

* bump

* reduce image size

* bump

* bump

* bump again

* add clippy

* build essentials

* clang

* refactor

* typo

* typo 2

* make zone configurable

---------

Co-authored-by: samelamin <hussam.elamin@gmail.com>
  • Loading branch information
f-gate and samelamin authored Oct 7, 2023
1 parent 66eeb33 commit 84dd997
Show file tree
Hide file tree
Showing 24 changed files with 688 additions and 158 deletions.
65 changes: 65 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
name: build-on-self-hosted-runner
on:
workflow_dispatch:
push:
branches:
- main
paths-ignore:
- "**.md"
pull_request:
branches:
- main
paths-ignore:
- "**.md"
env:
CARGO_TERM_COLOR: always
GCP_ZONE: europe-west3-a

jobs:
create-runner:
runs-on: ubuntu-latest
outputs:
label: ${{ steps.create-runner.outputs.label }}
steps:
- id: create-runner
uses: related-sciences/gce-github-runner@v0.10
with:
token: ${{ secrets.GH_SA_TOKEN }}
project_id: ${{ secrets.GCP_PROJECT_ID }}
service_account_key: ${{ secrets.GCP_SA_KEY }}
image_project: ubuntu-os-cloud
image_family: ubuntu-2004-lts
machine_type: e2-highcpu-32
disk_size: 100
machine_zone: ${{ env.GCP_ZONE }}
ephemeral: true

test-features:
needs: create-runner
runs-on: ${{ needs.create-runner.outputs.label }}
steps:
- uses: actions/checkout@v4

- name: Set HOME
run: echo "HOME=/home/ubuntu" >> ${GITHUB_ENV}

- name: Install minimal nightly Rust
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: nightly-2023-05-22
target: wasm32-unknown-unknown
override: true
components: rustfmt, clippy

- name: Install Dependencies
run: sudo apt install protobuf-compiler clang build-essential -y

- name: 🫠 rustfmt 🫠
uses: actions-rs/cargo@v1
with:
command: fmt
args: --check

- name: Run tests with benchmarks
run: cargo test --features runtime-benchmarks
148 changes: 74 additions & 74 deletions .github/workflows/collator_actions.yml
Original file line number Diff line number Diff line change
@@ -1,74 +1,74 @@
name: rust
on:
workflow_dispatch:
push:
branches:
- main
paths-ignore:
- "**.md"
pull_request:
branches:
- main
paths-ignore:
- "**.md"

env:
CARGO_TERM_COLOR: always

jobs:
build-imbue-collator:
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v4
with:
submodules: recursive

- name: Install minimal nightly Rust
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: nightly-2023-05-22
target: wasm32-unknown-unknown
override: true

- name: Update submodules
run: git submodule update --recursive --remote

- name: Clean unused directories
run: sudo rm -rf /usr/share/dotnet;sudo rm -rf /opt/ghc;sudo rm -rf "/usr/local/share/boost";sudo rm -rf "$AGENT_TOOLSDIRECTORY"

- name: Install Protobuf
run: sudo apt install protobuf-compiler

- name: Run tests with benchmarks
run: cargo test --features runtime-benchmarks
clippy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install Protobuf
run: sudo apt install protobuf-compiler
- name: Install minimal nightly Rust
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: nightly-2023-05-22
target: wasm32-unknown-unknown
override: true
- name: Install clippy
run: rustup component add clippy
- name: Ensure executable
run: chmod +x ./ci/jobs/clippy.sh
- name: Run clippy
run: ./ci/jobs/clippy.sh
rustfmt:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install rustfmt
run: rustup component add rustfmt
- name: Ensure executable
run: chmod +x ./ci/jobs/rustfmt.sh
- name: Run rustfmt
run: ./ci/jobs/rustfmt.sh
#name: rust
#on:
# workflow_dispatch:
# push:
# branches:
# - main
# paths-ignore:
# - "**.md"
# pull_request:
# branches:
# - main
# paths-ignore:
# - "**.md"
#
# env:
# CARGO_TERM_COLOR: always
#
#jobs:
# build-imbue-collator:
# runs-on: ubuntu-latest
# steps:
# - name: Checkout sources
# uses: actions/checkout@v4
# with:
# submodules: recursive
#
# - name: Install minimal nightly Rust
# uses: actions-rs/toolchain@v1
# with:
# profile: minimal
# toolchain: nightly-2023-05-22
# target: wasm32-unknown-unknown
# override: true
#
# - name: Update submodules
# run: git submodule update --recursive --remote
#
# - name: Clean unused directories
# run: sudo rm -rf /usr/share/dotnet;sudo rm -rf /opt/ghc;sudo rm -rf "/usr/local/share/boost";sudo rm -rf "$AGENT_TOOLSDIRECTORY"
#
# - name: Install Protobuf
# run: sudo apt install protobuf-compiler
#
# - name: Run tests with benchmarks
# run: cargo test --features runtime-benchmarks
# clippy:
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v4
# - name: Install Protobuf
# run: sudo apt install protobuf-compiler
# - name: Install minimal nightly Rust
# uses: actions-rs/toolchain@v1
# with:
# profile: minimal
# toolchain: nightly-2023-05-22
# target: wasm32-unknown-unknown
# override: true
# - name: Install clippy
# run: rustup component add clippy
# - name: Ensure executable
# run: chmod +x ./ci/jobs/clippy.sh
# - name: Run clippy
# run: ./ci/jobs/clippy.sh
# rustfmt:
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v4
# - name: Install rustfmt
# run: rustup component add rustfmt
# - name: Ensure executable
# run: chmod +x ./ci/jobs/rustfmt.sh
# - name: Run rustfmt
# run: ./ci/jobs/rustfmt.sh
5 changes: 5 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

11 changes: 11 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
[profile.release]
panic = 'unwind'
split-debuginfo = "unpacked"
opt-level = 3

[workspace.package]
authors = ["imbue <https://github.com/ImbueNetwork>"]
Expand All @@ -23,3 +24,13 @@ members = [
"runtime/imbue-kusama",
"runtime/common",
]

# make sure dev builds with backtrace do
# not slow us down
[profile.dev.package.backtrace]
inherits = "release"

[profile.production]
inherits = "release"
lto = true
codegen-units = 1
Empty file modified ci/jobs/clippy.sh
100644 → 100755
Empty file.
11 changes: 11 additions & 0 deletions ci/jobs/install_rust.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
#!/bin/bash
set -euo pipefail
sudo apt -y install build-essential
sudo apt -y install --assume-yes git clang curl libssl-dev
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
source $HOME/.cargo/env
rustup update
rustup toolchain install nightly-2023-05-22
rustup target add wasm32-unknown-unknown --toolchain nightly-2023-05-22
rustup component add rustfmt
rustup component add clippy
Empty file modified ci/jobs/rustfmt.sh
100644 → 100755
Empty file.
2 changes: 1 addition & 1 deletion node/src/rpc.rs
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ where
C::Api: pallet_transaction_payment_rpc::TransactionPaymentRuntimeApi<Block, Balance>,
C::Api: substrate_frame_rpc_system::AccountNonceApi<Block, AccountId, Nonce>,
C::Api: BlockBuilder<Block>,
C::Api: pallet_proposals_rpc::ProposalsRuntimeApi<Block, AccountId>,
C::Api: pallet_proposals_rpc::ProposalsRuntimeApi<Block, AccountId, Balance>,
P: TransactionPool + Sync + Send + 'static,
{
use pallet_proposals_rpc::{Proposals, ProposalsApiServer};
Expand Down
1 change: 1 addition & 0 deletions pallets/fellowship/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ targets = ["x86_64-unknown-linux-gnu"]
codec = { package = "parity-scale-codec", version = "3.2.2", default-features = false, features = [
"derive",
] }
serde = { version = "1.0.101", features = ["derive"] }
scale-info = { version = "2.1.1", default-features = false, features = ["derive"] }
frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false, optional = true }
frame-support = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false }
Expand Down
1 change: 1 addition & 0 deletions pallets/proposals/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ orml-xtokens = { git = "https://github.com/open-web3-stack/open-runtime-module-l
# Local Dependencies
common-traits = { path = "../../libs/common-traits", default-features = false }
common-types = { path = "../../libs/common-types", default-features = false }
common-runtime = { path = "../../runtime/common", default-features = false }
pallet-deposits = { path = "../deposits", default-features = false }

[dev-dependencies]
Expand Down
4 changes: 2 additions & 2 deletions pallets/proposals/rpc/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -13,15 +13,15 @@ codec = { package = "parity-scale-codec", version = "3.0.0", default-features =

jsonrpsee = { version = "0.16.2", features = ["server", "macros"] }


# Substrate packages
sp-api = { default-features = false, version = "4.0.0-dev", git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.43" }
sp-rpc = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.43" }
sp-blockchain = { default-features = false, version = "4.0.0-dev", git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.43" }
sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.43" }
frame-support = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.43" }
frame-system = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.43" }
pallet-proposals-rpc-runtime-api = {path = "./runtime-api" }
pallet-proposals-rpc-runtime-api = { default-features = false, path = "./runtime-api" }
sp-std = {default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.43"}


[features]
Expand Down
3 changes: 3 additions & 0 deletions pallets/proposals/rpc/runtime-api/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,11 @@ targets = ["x86_64-unknown-linux-gnu"]
codec = { package = "parity-scale-codec", version = "3.0.0", default-features = false, features = [
"derive",
] }
serde = { version = "1.0.101", features = ["derive"], default-features = false}
scale-info = { version = "2.0.1", default-features = false, features = ["derive"] }

sp-api = { version = "4.0.0-dev", default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.43"}
sp-std = {default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.43"}
sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.43" }
frame-support = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.43" }
frame-system = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.43" }
Expand Down
7 changes: 6 additions & 1 deletion pallets/proposals/rpc/runtime-api/src/lib.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,12 @@
#![cfg_attr(not(feature = "std"), no_std)]

use sp_std::vec::Vec;

sp_api::decl_runtime_apis! {
pub trait ProposalsApi<AccountId> where AccountId: codec::Codec {
pub trait ProposalsApi<AccountId, Balance>
where AccountId: codec::Codec + Ord,
{
fn get_project_account_by_id(project_id: u32) -> AccountId;
fn get_all_project_data(project_id: u32) -> Option<(Vec<u8>, Vec<u8>)>;
}
}
Loading

0 comments on commit 84dd997

Please sign in to comment.