Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/oasisprotocol/demo-e2eproxy
End-to-End encrypted proxy contract example for Sapphire
https://github.com/oasisprotocol/demo-e2eproxy
e2ee proxy-contract sapphire solidity
Last synced: 1 day ago
JSON representation
End-to-End encrypted proxy contract example for Sapphire
- Host: GitHub
- URL: https://github.com/oasisprotocol/demo-e2eproxy
- Owner: oasisprotocol
- Created: 2023-11-17T11:32:04.000Z (12 months ago)
- Default Branch: main
- Last Pushed: 2023-12-02T01:00:37.000Z (12 months ago)
- Last Synced: 2024-04-15T05:16:18.451Z (7 months ago)
- Topics: e2ee, proxy-contract, sapphire, solidity
- Language: TypeScript
- Homepage:
- Size: 10.7 KB
- Stars: 0
- Watchers: 15
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# End-to-End encrypted proxy contract example
This repo provides an example of how a contract can relay encrypted transactions on Oasis Sapphire, so the relayer cannot see which contract is being invoked or what the parameters are.
Using the [@oasis-protocol/sapphire-contracts](https://www.npmjs.com/package/@oasisprotocol/sapphire-contracts) library The E2EProxy contract generates a long-term X25519 keypair which allows users to submit a Deoxys-II encrypted payload (with forward secrecy) containing the contract address to invoke and the calldata to pass.
While [@oasis-protocol/sapphire-hardhat](https://www.npmjs.com/package/@oasisprotocol/sapphire-hardhat) package makes testing easy with Hardhat, you also need to run a local [sapphire-dev](https://github.com/oasisprotocol/oasis-web3-gateway/pkgs/container/sapphire-dev) instance which supports the necessary EVM precompiles.
For your convenience there is a `Makefile` which uses Docker to keep everything neatly contained:
```
make sapphire-dev & # This will take a few minutes
make pnpm-install
make hardhat-compile
make hardhat-test
```