-
Notifications
You must be signed in to change notification settings - Fork 12
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
fix: Integrate rust auto-generated code through submodules. (#136)
Co-authored-by: Curtis <[email protected]>
- Loading branch information
1 parent
3487815
commit 86691ae
Showing
71 changed files
with
28,465 additions
and
17,986 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,6 @@ | ||
build/* | ||
build/**/* | ||
/**/*.d.ts | ||
integration-tests | ||
externals | ||
generated |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
[submodule "externals/anoncreds"] | ||
path = externals/anoncreds | ||
url = [email protected]:curtis-h/anoncreds-rs.git | ||
branch = wasm-prism | ||
[submodule "externals/didcomm"] | ||
path = externals/didcomm | ||
url = [email protected]:sicpa-dlab/didcomm-rust.git |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,12 +1,4 @@ | ||
# Welcome to Atala PRISM TypeScript SDK | ||
|
||
Atala PRISM TypeScript SDK provides a library and documentation for developers to build | ||
TypeScript-based SSI applications with Atala PRISM. It provides a set of | ||
utilities for building SSI Edge Agents speaking DIDComm V2 protocols. | ||
|
||
## Basic considerations | ||
|
||
### Atala PRISM | ||
# Atala PRISM TypeScript SDK | ||
|
||
Atala PRISM is a self-sovereign identity (SSI) platform and service suite for | ||
verifiable data and digital identity. Built on Cardano, it offers core | ||
|
@@ -20,7 +12,7 @@ The complete platform is separated into multiple repositories: | |
- [atala-prism-building-blocks](https://github.com/hyperledger-labs/open-enterprise-agent) - Repo that contains the servers Building Blocks. | ||
- [atala-prism-mediator](https://github.com/input-output-hk/atala-prism-mediator) - Repo for DIDComm V2 Mediator | ||
|
||
### SDK Overview | ||
## SDK Overview | ||
|
||
- Apollo: Provides a suite of necessary cryptographic operations. | ||
- Castor: Provides a suite of operations to create, manage and resolve decentralized identifiers. | ||
|
@@ -29,61 +21,98 @@ The complete platform is separated into multiple repositories: | |
- Pluto: Provides an interface for storage operations in a portable, storage-agnostic manner. | ||
- PrismAgent: PrismAgent, a component using all other building blocks, provides basic edge agent capabilities, including implementing DIDComm V2 protocols. | ||
|
||
### Getting started | ||
## Getting started | ||
|
||
This repository includes a browser and a Node.js demo application, and also a step-by-step documented process to run it. | ||
This repository includes a browser and a Node.js demo application, and also a step-by-step documented process on [how to run it](#running-a-demo-project). | ||
|
||
#### Running a demo project | ||
### Use in your project | ||
You can install and use this library in browsers and nodejs. | ||
|
||
To be able to run the demos, we have to build `prism-wallet-sdk-ts`. | ||
```bash | ||
npm i @atala/prism-wallet-sdk --save | ||
``` | ||
|
||
From the repository root run: | ||
or with yarn | ||
|
||
```bash | ||
yarn add @atala/prism-wallet-sdk | ||
``` | ||
|
||
> **Note for Webpack:** | ||
> | ||
> The application builds code with wasm files for DIDComm and Anoncreds for both browsers and nodejs. When webpack builds public website the wasm files need to be copied manually into the public folder. See examples | ||
|
||
|
||
|
||
### Running a demo project | ||
|
||
#### Building from source | ||
This repository contains compiles typescript code and some rust dependencies for DIDComm and AnonCreds, so in order to build the code from source you will need the following: | ||
|
||
* Bash | ||
* Have Rust (cargo) and wasm-pack installed. | ||
* Node JS Version (20/LTS Recommended) | ||
|
||
Clone the repository | ||
``` | ||
git clone [email protected]:input-output-hk/atala-prism-wallet-sdk-ts.git | ||
``` | ||
|
||
To be able to run the demos, we have to build `prism-wallet-sdk`. | ||
From the repository root run: | ||
|
||
```bash | ||
npm i | ||
npm run build | ||
``` | ||
|
||
#### For NodeJS | ||
### For NodeJS CJS | ||
|
||
After building `prism-wallet-sdk-ts`, cd into `{path}/prism-wallet-sdk-ts/demos/node`: | ||
After building `prism-wallet-sdk`, cd into `{path}/demos/node-cjs` or use visual studio debugger "CJS DEMO": | ||
|
||
```bash | ||
cd demos/node-cjs | ||
npm i | ||
node index.js | ||
npm run start | ||
``` | ||
|
||
:::note | ||
The installation in the `demos/node` directory requires the `build` folder from the wallet-sdk to be available. | ||
::: | ||
> **Note:** | ||
> | ||
> The installation in the `{path}/demos/node-cjs` directory requires the `build` folder from the wallet-sdk to be available. | ||
#### For browser | ||
### For NodeJS ESM | ||
|
||
After building `prism-wallet-sdk-ts`, cd into the demo directory "demos/browser" | ||
After building `prism-wallet-sdk`, cd into `{path}/demos/node-esm` or use visual studio debugger "ESM DEMO": | ||
|
||
```bash | ||
cd demos/browser | ||
cd demos/node-esm | ||
npm i | ||
npm run start | ||
``` | ||
|
||
#### Implementing storage for the SDK | ||
This SDK exposes Pluto, a storage interface that should be implemented by the user, in the most appropriate way for a particular use case. | ||
> **Note:** | ||
> | ||
> The installation in the `{path}/demos/node-esm` directory requires the `build` folder from the wallet-sdk to be available. | ||
We don't provide a default implementation out of the box at the moment, but we do provide a couple of demo implementations that can be used to get started with demos and testing. | ||
|
||
Provided demo implementations are intentionally oversimplified and SHOULD NOT be used in production. | ||
### For browser | ||
|
||
#### Use in your project | ||
In order to use this SDK in your project you now just need to install the package as follows | ||
After building `prism-wallet-sdk`, cd into the demo directory `{path}/demos/browser` | ||
|
||
```bash | ||
npm @atala/prism-wallet-sdk --save | ||
cd demos/browser | ||
npm i | ||
npm run start | ||
``` | ||
|
||
or with yarn | ||
|
||
```bash | ||
yarn add @atala/prism-wallet-sdk | ||
``` | ||
|
||
|
||
### Implementing storage for the SDK | ||
This SDK exposes Pluto, a storage interface that should be implemented by the user, in the most appropriate way for a particular use case. | ||
|
||
We don't provide a default implementation out of the box at the moment, but we do provide a couple of demo implementations that can be used to get started with demos and testing. | ||
|
||
Provided demo implementations are intentionally oversimplified and SHOULD NOT be used in production. | ||
|
Oops, something went wrong.
86691ae
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
JUnit