Skip to content

Commit

Permalink
Squashed commit of the following:
Browse files Browse the repository at this point in the history
commit b2ad4d3
Author: Tsachi Herman <24438559+tsachiherman@users.noreply.github.com>
Date:   Sun Nov 3 16:01:37 2024 -0500

    support procedural test style for VM-defined workloads (#1667)

    Signed-off-by: Tsachi Herman <24438559+tsachiherman@users.noreply.github.com>

commit dbcc6c9
Author: Richard Pringle <richard.pringle@avalabs.org>
Date:   Thu Oct 31 16:42:44 2024 -0400

    Update wasmtime-go (#1705)

commit 1015ae1
Author: Sam Liokumovich <65994425+samliok@users.noreply.github.com>
Date:   Thu Oct 31 12:47:45 2024 -0400

    Remove HRP + Decimals dead code (#1703)

commit 24bacf8
Author: Sam Liokumovich <65994425+samliok@users.noreply.github.com>
Date:   Wed Oct 30 10:31:38 2024 -0400

    Action Test Reusing Store (#1700)

commit 1ce6ad8
Author: Richard Pringle <richard.pringle@avalabs.org>
Date:   Tue Oct 29 13:23:56 2024 -0400

    Don't benchmark serializing parameters (#1697)

commit 1c43f7e
Author: Sam Liokumovich <65994425+samliok@users.noreply.github.com>
Date:   Tue Oct 29 13:16:34 2024 -0400

    Call Contract Benchmarks (#1696)

commit 7bd1a49
Author: nathan haim <haim.nathan@icloud.com>
Date:   Sat Oct 26 20:41:26 2024 +0200

    state: Make state.Keys JSON human readable (#1661)

    Signed-off-by: nathan haim <nathan.haim@free.fr>

commit c592a1d
Author: rodrigo <77309055+RodrigoVillar@users.noreply.github.com>
Date:   Fri Oct 25 14:02:08 2024 -0400

    Add `balance` cmd to CLI (#1691)

commit 7fac7fa
Author: Sam Liokumovich <65994425+samliok@users.noreply.github.com>
Date:   Fri Oct 25 13:28:52 2024 -0400

    Default Contract Manager Implementation (#1687)

commit 0459bd4
Author: rodrigo <77309055+RodrigoVillar@users.noreply.github.com>
Date:   Fri Oct 25 12:23:04 2024 -0400

    Add Getter to `BalanceHandler` (#1685)

commit 960b790
Author: containerman17 <8990432+containerman17@users.noreply.github.com>
Date:   Sat Oct 26 00:14:29 2024 +0900

    Universal CLI (#1662)

    Creates a single binary that can be used with any HyperSDK VM, as long as the VM uses standard functionality.

    Signed-off-by: containerman17 <8990432+containerman17@users.noreply.github.com>
    Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
    Co-authored-by: Aaron Buchwald <aaron.buchwald56@gmail.com>

commit ef66271
Author: Richard Pringle <richard.pringle@avalabs.org>
Date:   Thu Oct 24 15:45:17 2024 -0400

    Move vmwithcontracts out of examples (#1676)

commit 3895ff5
Author: Richard Pringle <richard.pringle@avalabs.org>
Date:   Thu Oct 24 14:59:57 2024 -0400

    Implement NFT example (#1684)

commit 82dc621
Author: rodrigo <77309055+RodrigoVillar@users.noreply.github.com>
Date:   Thu Oct 24 09:54:31 2024 -0400

    Add back `actionID` to `StateKeys()` (#1683)

commit cf6d48a
Author: Richard Pringle <richard.pringle@avalabs.org>
Date:   Wed Oct 23 15:11:25 2024 -0400

    Force test-context to be initialized with an actor (#1682)

commit 1a3c670
Author: Sam Liokumovich <65994425+samliok@users.noreply.github.com>
Date:   Wed Oct 23 14:26:09 2024 -0400

    Refactor Workload  (#1668)

    Signed-off-by: Sam Liokumovich <65994425+samliok@users.noreply.github.com>
    Co-authored-by: aaronbuchwald <aaron.buchwald56@gmail.com>

commit 403bfb3
Author: rodrigo <77309055+RodrigoVillar@users.noreply.github.com>
Date:   Tue Oct 22 21:56:25 2024 -0400

    Decouple State Manager (#1658)

commit 61993f8
Author: Richard Pringle <richard.pringle@avalabs.org>
Date:   Mon Oct 21 14:25:25 2024 -0400

    Revert "Make Morpheus build script take optional path (#1671)" (#1673)

commit 87cf88a
Author: aaronbuchwald <aaron.buchwald56@gmail.com>
Date:   Mon Oct 21 12:39:13 2024 -0400

    Update min go version to go1.22.8 (#1672)

commit 22241f5
Author: Richard Pringle <richard.pringle@avalabs.org>
Date:   Fri Oct 18 14:18:53 2024 -0400

    Make Morpheus build script take optional path (#1671)

commit 0658976
Author: Richard Pringle <richard.pringle@avalabs.org>
Date:   Wed Oct 16 18:37:50 2024 -0400

    Move runtime tests into contracts-ci (#1666)

commit e3d911a
Author: Sam Liokumovich <65994425+samliok@users.noreply.github.com>
Date:   Sun Oct 13 17:45:32 2024 -0400

    Remove global variables from spam script (#1659)

commit bca7739
Author: Tsachi Herman <24438559+tsachiherman@users.noreply.github.com>
Date:   Fri Oct 11 11:41:27 2024 -0400

    Create SignedTransaction out of the existing Transaction (#1640)

commit 6f15b2f
Author: Sam Liokumovich <65994425+samliok@users.noreply.github.com>
Date:   Thu Oct 10 20:47:49 2024 -0400

    Include Spam Config Defaults (#1657)

commit b3713a1
Author: Sam Liokumovich <65994425+samliok@users.noreply.github.com>
Date:   Thu Oct 10 20:16:23 2024 -0400

    Separate Spam Broadcast Functionality (#1653)

commit 182e023
Author: Sam Liokumovich <65994425+samliok@users.noreply.github.com>
Date:   Thu Oct 10 18:19:44 2024 -0400

    Decouple Spam Functionality from CLI into Throughput Package (#1636)

commit b8104ac
Author: aaronbuchwald <aaron.buchwald56@gmail.com>
Date:   Thu Oct 10 14:44:08 2024 -0400

    Fix incorrect naming of stateless block (#1652)

commit 725a589
Author: aaronbuchwald <aaron.buchwald56@gmail.com>
Date:   Thu Oct 10 10:12:59 2024 -0400

    Use CreateActionID to give simulated actions unique actionID (#1644)

commit 0a2d991
Author: aaronbuchwald <aaron.buchwald56@gmail.com>
Date:   Thu Oct 10 09:57:25 2024 -0400

    Update ActionRegistry to ActionCodec (#1650)

commit 829b991
Author: containerman17 <8990432+containerman17@users.noreply.github.com>
Date:   Thu Oct 10 22:42:19 2024 +0900

    Reflect Marshaler (#1592)

    Signed-off-by: containerman17 <8990432+containerman17@users.noreply.github.com>

commit b3c991f
Author: Tsachi Herman <24438559+tsachiherman@users.noreply.github.com>
Date:   Thu Oct 10 09:36:21 2024 -0400

    add simulateTransaction endpoint (#1610)

    Signed-off-by: Tsachi Herman <24438559+tsachiherman@users.noreply.github.com>

commit cbb6a33
Author: containerman17 <8990432+containerman17@users.noreply.github.com>
Date:   Thu Oct 10 22:24:22 2024 +0900

    Add boolean support to the ABI spec (#1648)

    Signed-off-by: containerman17 <8990432+containerman17@users.noreply.github.com>

commit 5d8c590
Author: Sam Liokumovich <65994425+samliok@users.noreply.github.com>
Date:   Thu Oct 10 09:21:46 2024 -0400

    Remove marshaling from transfer action (#1647)

commit b934dbd
Author: Joshua Kim <20001595+joshua-kim@users.noreply.github.com>
Date:   Wed Oct 9 16:52:29 2024 -0400

    Remove type alias for Action + Auth + Output Registry (#1547)

    Signed-off-by: Joshua Kim <20001595+joshua-kim@users.noreply.github.com>

commit b5407c9
Author: containerman17 <8990432+containerman17@users.noreply.github.com>
Date:   Thu Oct 10 00:45:38 2024 +0900

    Simulate a chain of actions (#1635)

commit fee360f
Author: Tsachi Herman <24438559+tsachiherman@users.noreply.github.com>
Date:   Fri Oct 4 11:23:58 2024 -0400

    refactor marshalActions implementation (#1631)

commit 2cb5530
Author: aaronbuchwald <aaron.buchwald56@gmail.com>
Date:   Thu Oct 3 18:49:12 2024 -0400

    Add block indexing to Indexer API (#1606)

commit f1bcc59
Author: aaronbuchwald <aaron.buchwald56@gmail.com>
Date:   Thu Oct 3 18:31:39 2024 -0400

    Add JSON marshalling to Result (#1627)

commit 2ea784a
Author: Richard Pringle <richard.pringle@avalabs.org>
Date:   Thu Oct 3 12:54:10 2024 -0400

    Implement multisig example (#1581)

commit 6bbf236
Author: Richard Pringle <richard.pringle@avalabs.org>
Date:   Thu Oct 3 12:43:41 2024 -0400

    Update codeowners (#1629)

commit 47849d8
Author: aaronbuchwald <aaron.buchwald56@gmail.com>
Date:   Thu Oct 3 08:34:51 2024 -0400

    Re-mark pubsub tests as flaky (#1625)

commit d847132
Author: aaronbuchwald <aaron.buchwald56@gmail.com>
Date:   Wed Oct 2 14:23:24 2024 -0400

    Reduce tests.unit.sh timeout value less than CI job (#1623)

commit 404e74f
Author: aaronbuchwald <aaron.buchwald56@gmail.com>
Date:   Wed Oct 2 14:07:04 2024 -0400

    Add JSON marshalling for fee dimensions (#1622)

commit 7e53003
Author: Joshua Kim <20001595+joshua-kim@users.noreply.github.com>
Date:   Wed Oct 2 12:38:34 2024 -0400

    Replace usage of `internal/network` with `p2p` (#1613)

    Signed-off-by: Joshua Kim <20001595+joshua-kim@users.noreply.github.com>

commit 79f363e
Author: containerman17 <8990432+containerman17@users.noreply.github.com>
Date:   Wed Oct 2 11:53:59 2024 +0900

    Standardize decimals (#1620)

commit e191c88
Author: Joshua Kim <20001595+joshua-kim@users.noreply.github.com>
Date:   Tue Oct 1 20:02:30 2024 -0400

    Update to avalanchego@v1.11.12-rc.2 (#1614)

    Signed-off-by: Joshua Kim <20001595+joshua-kim@users.noreply.github.com>

commit 59c84d7
Author: aaronbuchwald <aaron.buchwald56@gmail.com>
Date:   Tue Oct 1 17:19:17 2024 -0400

    Add ExecutedBlock type (#1601)

commit 165a455
Author: Tsachi Herman <24438559+tsachiherman@users.noreply.github.com>
Date:   Tue Oct 1 09:26:32 2024 -0400

    validate buffer length prior to calling Uint64 (#1588)

commit c24f0d8
Author: rodrigo <77309055+RodrigoVillar@users.noreply.github.com>
Date:   Tue Oct 1 09:25:18 2024 -0400

    Fix VM-With-Contracts Unit Tests (#1602)

commit 8ab9d83
Author: aaronbuchwald <aaron.buchwald56@gmail.com>
Date:   Mon Sep 30 16:57:29 2024 -0400

    Minor nits on pubsub implementation (#1593)

commit 592cd7a
Author: rodrigo <77309055+RodrigoVillar@users.noreply.github.com>
Date:   Mon Sep 30 12:46:35 2024 -0400

    Remove `StateKeysMaxChunks()` (#1607)

commit 3e358c1
Author: aaronbuchwald <aaron.buchwald56@gmail.com>
Date:   Mon Sep 30 12:46:20 2024 -0400

    Update ActionBenchmark to use single ExpectedOutput (#1608)

commit e78841e
Author: Franfran <51274081+iFrostizz@users.noreply.github.com>
Date:   Mon Sep 30 16:42:00 2024 +0200

    Write FIFO cache unit tests (#1201)

    * write FIFO cache unit tests

    * invert expected / actual

    * add limit parameter and cache fail on 0 size

    * simplify test table and create new test for empty cache

    * simpler tests by having a limit of 2

    * fix test cases

    * typos

    * backout uselesss change

    * add a "not an LRU" test case

    * use switch in fifo unit tests

commit f1150a1
Author: aaronbuchwald <aaron.buchwald56@gmail.com>
Date:   Fri Sep 27 17:46:28 2024 -0400

    Update tx indexer to include tx action outputs (#1597)

commit 6a3fd63
Author: Joshua Kim <20001595+joshua-kim@users.noreply.github.com>
Date:   Thu Sep 26 15:44:56 2024 -0400

    Remove usage of mockgen (#1591)

    Signed-off-by: Joshua Kim <20001595+joshua-kim@users.noreply.github.com>

commit 49376bd
Author: rodrigo <77309055+RodrigoVillar@users.noreply.github.com>
Date:   Thu Sep 26 14:39:59 2024 -0400

    Fix benchmarks (#1590)

commit 77a73ba
Author: Richard Pringle <richard.pringle@avalabs.org>
Date:   Tue Sep 24 12:38:27 2024 -0400

    Ignore gas on mock-function-call (#1585)

commit 1bbab7b
Author: containerman17 <8990432+containerman17@users.noreply.github.com>
Date:   Tue Sep 24 23:19:18 2024 +0900

    Remove special cases for Bytes, add arrays support (#1587)

commit 3410599
Author: aaronbuchwald <aaron.buchwald56@gmail.com>
Date:   Mon Sep 23 12:34:55 2024 -0400

    Add spam cmd to morpheus readme (#1577)

commit dfefd27
Author: aaronbuchwald <aaron.buchwald56@gmail.com>
Date:   Mon Sep 23 12:34:32 2024 -0400

    Improve chain comments (#1579)

commit 6c15244
Author: Richard Pringle <richard.pringle@avalabs.org>
Date:   Fri Sep 20 16:10:21 2024 -0400

    Series of changes that improve development (#1583)

commit e0a3324
Author: Richard Pringle <richard.pringle@avalabs.org>
Date:   Fri Sep 20 13:12:58 2024 -0400

    Use repr(packed) with state-keys (#1580)

commit 75c6cfd
Author: aaronbuchwald <aaron.buchwald56@gmail.com>
Date:   Thu Sep 19 07:58:39 2024 -0400

    Separate proposer monitor from vm into internal package (#1574)

Signed-off-by: Joshua Kim <20001595+joshua-kim@users.noreply.github.com>
  • Loading branch information
joshua-kim committed Nov 4, 2024
1 parent 6e170ca commit d306596
Show file tree
Hide file tree
Showing 182 changed files with 6,677 additions and 2,496 deletions.
2 changes: 1 addition & 1 deletion .devcontainer/contracts-tutorial/devcontainer.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

"features": {
"ghcr.io/devcontainers/features/go:1": {
"version": "1.21.12"
"version": "1.22.8"
},
"ghcr.io/devcontainers/features/rust:1": {},
"ghcr.io/devcontainers/features/common-utils:2": {
Expand Down
2 changes: 1 addition & 1 deletion .github/actions/install-go/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,6 @@ runs:
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: '1.21.10'
go-version: '1.22.8'
cache: ${{ inputs.cache }}
cache-dependency-path: ${{ inputs.cache-dependency-path }}
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Copyright (C) 2023, Ava Labs, Inc. All rights reserved.
# See the file LICENSE for licensing terms.

name: Rust CI
name: Contracts CI

on:
push:
Expand All @@ -14,7 +14,7 @@ concurrency:
cancel-in-progress: true

jobs:
fmt:
cargo-fmt:
runs-on: ubuntu-latest
steps:
- name: Checkout
Expand Down Expand Up @@ -46,7 +46,7 @@ jobs:
taplo fmt
git diff --color=always
docs:
cargo-doc:
runs-on: ubuntu-latest
steps:
- name: Checkout
Expand All @@ -61,7 +61,7 @@ jobs:
- name: Run doc tests
run: RUSTDOCFLAGS="-D warnings" cargo doc --no-deps --all-features --document-private-items --all

clippy:
cargo-clippy:
runs-on: ubuntu-latest
steps:
- name: Checkout
Expand All @@ -76,7 +76,7 @@ jobs:
shell: bash
run: cargo clippy --all --all-features --tests --benches --examples -- -D warnings

unit-tests:
cargo-test:
runs-on: ubuntu-latest
steps:
- name: Checkout
Expand Down Expand Up @@ -116,3 +116,35 @@ jobs:
- name: Run cross tests
run: |
cross -v test -p wasmlanche --target=wasm32-unknown-emscripten
go-test:
runs-on: ubuntu-20.04-32
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Go
uses: ./.github/actions/install-go
- name: Install Rust
uses: ./.github/actions/install-rust
with:
targets: wasm32-unknown-unknown
cache: false
- name: Run unit tests
shell: bash
run: go test -v -race ./x/contracts/...

go-bench:
runs-on: ubuntu-20.04-32
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Go
uses: ./.github/actions/install-go
- name: Install Rust
uses: ./.github/actions/install-rust
with:
targets: wasm32-unknown-unknown
cache: false
- name: Run unit tests
shell: bash
run: go test -v -benchmem -run=^$ -bench=. -benchtime=1x ./x/contracts/...
97 changes: 0 additions & 97 deletions .github/workflows/hypersdk-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -51,11 +51,6 @@ jobs:
uses: actions/checkout@v4
- name: Set up Go
uses: ./.github/actions/install-go
- name: Install Rust
uses: ./.github/actions/install-rust
with:
targets: wasm32-unknown-unknown
cache: false
- name: Run unit tests
shell: bash
run: scripts/tests.unit.sh
Expand All @@ -68,11 +63,6 @@ jobs:
uses: actions/checkout@v4
- name: Set up Go
uses: ./.github/actions/install-go
- name: Install Rust
uses: ./.github/actions/install-rust
with:
targets: wasm32-unknown-unknown
cache: false
- name: Run unit tests
shell: bash
run: scripts/tests.benchmark.sh
Expand Down Expand Up @@ -188,90 +178,3 @@ jobs:
with:
vm-name: morpheusvm
github-token: ${{ secrets.GITHUB_TOKEN }}

# VMWithContracts
vmwithcontracts-lint:
needs: [hypersdk-tests]
if: ${{ needs.hypersdk-tests.outputs.only_contracts_changed != 'true' }}
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Go
uses: ./.github/actions/install-go
with:
cache-dependency-path: |
go.sum
examples/vmwithcontracts/go.sum
- name: Run static analysis tests
working-directory: ./examples/vmwithcontracts
shell: bash
run: scripts/lint.sh
- name: Build vm, cli
working-directory: ./examples/vmwithcontracts
shell: bash
run:
scripts/build.sh

# vmwithcontracts-unit-tests:
# needs: [ hypersdk-tests ]
# if: ${{ needs.hypersdk-tests.outputs.only_contracts_changed != 'true' }}
# runs-on: ubuntu-20.04-32
# timeout-minutes: 10
# steps:
# - name: Checkout
# uses: actions/checkout@v4
# - name: Set up Go
# uses: ./.github/actions/install-go
# with:
# cache-dependency-path: |
# go.sum
# examples/vmwithcontracts/go.sum
# - name: Run unit tests
# working-directory: ./examples/vmwithcontracts
# shell: bash
# run: scripts/tests.unit.sh
# - name: Run integration tests
# working-directory: ./examples/vmwithcontracts
# shell: bash
# run: scripts/tests.integration.sh
#
# vmwithcontracts-e2e-tests:
# needs: [ vmwithcontracts-lint, vmwithcontracts-unit-tests ]
# runs-on: ubuntu-20.04-32
# timeout-minutes: 25
# steps:
# - name: Checkout
# uses: actions/checkout@v4
# - name: Set up Go
# uses: ./.github/actions/install-go
# with:
# cache-dependency-path: |
# go.sum
# examples/vmwithcontracts/go.sum
# - name: Run e2e tests
# working-directory: ./examples/vmwithcontracts
# shell: bash
# run: scripts/run.sh
# env:
# MODE: 'test'
# - name: Upload tmpnet network dir
# uses: ava-labs/avalanchego/.github/actions/upload-tmpnet-artifact@v1-actions
# if: always()
# with:
# name: vmwithcontracts-e2e-tmpnet-data
#
# vmwithcontracts-release:
# needs: [ vmwithcontracts-e2e-tests ]
# # We build with 20.04 to maintain max compatibility: https://github.com/golang/go/issues/57328
# runs-on: ubuntu-20.04-32
# permissions:
# contents: write
# steps:
# - name: Checkout
# uses: actions/checkout@v4
# - uses: ./.github/actions/vm-release
# with:
# vm-name: vmwithcontracts
# github-token: ${{ secrets.GITHUB_TOKEN }}
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ Thank you for your interest in contributing to `hypersdk`! By contributing to hy

To contribute to `hypersdk`, you'll need:

- [Go](https://golang.org/dl/) 1.21 or higher
- [Go](https://golang.org/dl/) 1.22.8 or higher

### Setting up your development environment

Expand Down
1 change: 1 addition & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ members = [
"x/contracts/test/contracts/*",
"x/contracts/simulator",
"x/contracts/examples/tutorial",
"x/contracts/examples/nft",
"x/contracts/examples/multisig",
]
resolver = "2"
Expand Down
45 changes: 45 additions & 0 deletions abi/abi.go
Original file line number Diff line number Diff line change
Expand Up @@ -200,3 +200,48 @@ func describeStruct(t reflect.Type) ([]Field, []reflect.Type, error) {

return fields, otherStructsSeen, nil
}

func (a *ABI) FindOutputByID(id uint8) (TypedStruct, bool) {
for _, output := range a.Outputs {
if output.ID == id {
return output, true
}
}
return TypedStruct{}, false
}

func (a *ABI) FindActionByID(id uint8) (TypedStruct, bool) {
for _, action := range a.Actions {
if action.ID == id {
return action, true
}
}
return TypedStruct{}, false
}

func (a *ABI) FindOutputByName(name string) (TypedStruct, bool) {
for _, output := range a.Outputs {
if output.Name == name {
return output, true
}
}
return TypedStruct{}, false
}

func (a *ABI) FindActionByName(name string) (TypedStruct, bool) {
for _, action := range a.Actions {
if action.Name == name {
return action, true
}
}
return TypedStruct{}, false
}

func (a *ABI) FindTypeByName(name string) (Type, bool) {
for _, typ := range a.Types {
if typ.Name == name {
return typ, true
}
}
return Type{}, false
}
1 change: 1 addition & 0 deletions abi/abi_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ func TestNewABI(t *testing.T) {
Outer{},
ActionWithOutput{},
FixedBytes{},
Bools{},
}, []codec.Typed{
ActionOutput{},
})
Expand Down
1 change: 1 addition & 0 deletions abi/auto_marshal_abi_spec_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@ func TestMarshalSpecs(t *testing.T) {
{"strOnly", &MockObjectStringAndBytes{}},
{"outer", &Outer{}},
{"fixedBytes", &FixedBytes{}},
{"bools", &Bools{}},
}

for _, tc := range testCases {
Expand Down
Loading

0 comments on commit d306596

Please sign in to comment.