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

[entropy] Minor updates to parameters / docs #1131

Merged
merged 3 commits into from
Nov 1, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
2 changes: 1 addition & 1 deletion fortuna/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "fortuna"
version = "0.1.0"
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

forgot to bump this version in the previous PR

version = "1.0.0"
edition = "2021"

[dependencies]
Expand Down
3 changes: 1 addition & 2 deletions fortuna/src/config.rs
Original file line number Diff line number Diff line change
Expand Up @@ -76,13 +76,12 @@ pub struct RandomnessOptions {
/// A secret used for generating new hash chains. A 64-char hex string.
#[arg(long = "secret")]
#[arg(env = "FORTUNA_SECRET")]
#[arg(default_value = "0000000000000000000000000000000000000000000000000000000000000000")]
pub secret: String,

/// The length of the hash chain to generate.
#[arg(long = "chain-length")]
#[arg(env = "FORTUNA_CHAIN_LENGTH")]
#[arg(default_value = "32")]
#[arg(default_value = "10000")]
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

update the default argument values to be more reasonable (and stop pointing to my test wallet)

pub chain_length: u64,
}

Expand Down
1 change: 0 additions & 1 deletion fortuna/src/config/generate.rs
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@ pub struct GenerateOptions {

/// Submit a randomness request to this provider
#[arg(long = "provider")]
#[arg(default_value = "0x368397bDc956b4F23847bE244f350Bde4615F25E")]
pub provider: Address,

#[arg(long = "url")]
Expand Down
1 change: 0 additions & 1 deletion fortuna/src/config/get_request.rs
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@ pub struct GetRequestOptions {
/// Retrieve a randomness request to this provider
#[arg(long = "provider")]
#[arg(env = "FORTUNA_PROVIDER")]
#[arg(default_value = "0x368397bDc956b4F23847bE244f350Bde4615F25E")]
pub provider: Address,

/// The sequence number of the request to retrieve
Expand Down
1 change: 0 additions & 1 deletion fortuna/src/config/request_randomness.rs
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,5 @@ pub struct RequestRandomnessOptions {
/// Submit a randomness request to this provider
#[arg(long = "provider")]
#[arg(env = "FORTUNA_PROVIDER")]
#[arg(default_value = "0x368397bDc956b4F23847bE244f350Bde4615F25E")]
pub provider: Address,
}
1 change: 0 additions & 1 deletion fortuna/src/config/run.rs
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,5 @@ pub struct RunOptions {
/// The public key of the provider whose requests the server will respond to.
#[arg(long = "provider")]
#[arg(env = "FORTUNA_PROVIDER")]
#[arg(default_value = "0x368397bDc956b4F23847bE244f350Bde4615F25E")]
pub provider: Address,
}
17 changes: 11 additions & 6 deletions target_chains/ethereum/entropy_sdk/solidity/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,17 +9,22 @@ Use this protocol at your own risk.

## Install

TODO
```shell
npm install @pythnetwork/entropy-sdk-solidity
```

## Setup

To use the SDK, you need the address of an Entropy contract on your blockchain and a randomness provider.
The following table lists the current deployments of entropy.

| Chain | Entropy Address | Provider |
| avalanche-fuji | 0xD42c7a708E74AD19401D907a14146F006c851Ee3 | 0x368397bDc956b4F23847bE244f350Bde4615F25E
| optimism-goerli | 0x28F16Af4D87523910b843a801454AEde5F9B0459 | 0x368397bDc956b4F23847bE244f350Bde4615F25E
| eos-evm-testnet | 0xD42c7a708E74AD19401D907a14146F006c851Ee3 | 0x368397bDc956b4F23847bE244f350Bde4615F25E
```
| Chain | Entropy Address | Provider |
|-----------------|--------------------------------------------|--------------------------------------------|
| avalanche-fuji | 0xD42c7a708E74AD19401D907a14146F006c851Ee3 | 0x6CC14824Ea2918f5De5C2f75A9Da968ad4BD6344 |
| optimism-goerli | 0x28F16Af4D87523910b843a801454AEde5F9B0459 | 0x6CC14824Ea2918f5De5C2f75A9Da968ad4BD6344 |
| eos-evm-testnet | 0xD42c7a708E74AD19401D907a14146F006c851Ee3 | 0x6CC14824Ea2918f5De5C2f75A9Da968ad4BD6344 |
```

Choose one of these networks and instantiate an `IEntropy` contract in your solidity contract:

Expand Down Expand Up @@ -55,7 +60,7 @@ If you are invoking this off-chain, the method also emits a `PythRandomEvents.Re
### 3. Fetch the provider's number

Fetch the provider's random number from them.
For the provider `0x368397bDc956b4F23847bE244f350Bde4615F25E` you can query the webservice at https://fortuna-staging.pyth.network :
For the provider `0x6CC14824Ea2918f5De5C2f75A9Da968ad4BD6344` you can query the webservice at https://fortuna-staging.pyth.network :

```typescript
await axios.get(
Expand Down
2 changes: 1 addition & 1 deletion target_chains/ethereum/entropy_sdk/solidity/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@pythnetwork/entropy-sdk-solidity",
"version": "0.1.0",
"version": "0.1.1",
"description": "Generate secure random numbers with Pyth Entropy",
"repository": {
"type": "git",
Expand Down
9 changes: 7 additions & 2 deletions target_chains/ethereum/examples/coin_flip/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,13 @@ These commands will build dependencies for the typescript project.
Next, choose a network to run the example on.
The example has been deployed on the following networks:

| Chain Name | Address | RPC |
| optimism-goerli | 0x075A5160FF6462924B4124595F6f987187496476 | https://goerli.optimism.io |
```
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

tables don't format properly in github :(

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You can actually do this with html and there’s some examples out there or GitHub flavoured markdown mixed with HTML if you really want it these.

| Chain Name | Address | RPC |
|-----------------|--------------------------------------------|--------------------------------------------|
| optimism-goerli | 0x3bA217Cd7840Cc5B34FD5B7263Cebd8CD8665788 | https://goerli.optimism.io |
| avalanche-fuji | 0xE7E52C85907d59C45b2C56EF32B78F514F8c547a | https://api.avax-test.network/ext/bc/C/rpc |
| eos-evm-testnet | 0x413405Aee2db95cb028B60CBAd87FC0B932947f4 | https://api.testnet.evm.eosnetwork.com/ |
```

You will also need the private key of a wallet with some gas tokens for your chosen network.
Then, from the `coin_flip/app` directory, run the following command:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@ async function main() {
// Note that there is a potential race condition here: the server may not have observed the request ^
// before this HTTP response. Hence, we retry fetching the url a couple of times.
const response = await fetchWithRetry(url, 3);
const providerRandom = web3.utils.bytesToHex(response.value);
const providerRandom = `0x${response.value.data}`;
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

adjust example since this PR changed the API #1129

console.log(` number : ${providerRandom}`);

console.log("4. Revealing the result of the coin flip...");
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,16 @@
#!/bin/bash -e

# URL of the ethereum RPC node to use. Choose this based on your target network
RPC_URL=https://goerli.optimism.io
RPC_URL=https://api.testnet.evm.eosnetwork.com/

# The address of the Pyth contract on your network. See the list of contract addresses here https://docs.pyth.network/documentation/pythnet-price-feeds/evm
ENTROPY_CONTRACT_ADDRESS="0x28F16Af4D87523910b843a801454AEde5F9B0459"
PROVIDER="0x368397bDc956b4F23847bE244f350Bde4615F25E"
ENTROPY_CONTRACT_ADDRESS="0xD42c7a708E74AD19401D907a14146F006c851Ee3"
PROVIDER="0x6CC14824Ea2918f5De5C2f75A9Da968ad4BD6344"

# Deployed contracts
# Optimism goerli 0x075A5160FF6462924B4124595F6f987187496476
# Deployments
# optimism-goerli 0x3bA217Cd7840Cc5B34FD5B7263Cebd8CD8665788
# avalanche-fuji 0xE7E52C85907d59C45b2C56EF32B78F514F8c547a
# eos-evm-testnet 0x413405Aee2db95cb028B60CBAd87FC0B932947f4

# Note the -l here uses a ledger wallet to deploy your contract. You may need to change this
# option if you are using a different wallet.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ contract CoinFlip {
// 1. Operating an off-chain service that reveals their random numbers once they've been committed to on-chain
// 2. Maintaining the secrecy of the other random numbers
// Users should choose a reliable provider who they trust to uphold these commitments.
// (For the moment, the only available provider is 0x368397bDc956b4F23847bE244f350Bde4615F25E)
// (For the moment, the only available provider is 0x6CC14824Ea2918f5De5C2f75A9Da968ad4BD6344)
IEntropy private entropy;
address private entropyProvider;

Expand Down Expand Up @@ -84,7 +84,7 @@ contract CoinFlip {
// committed to, as well as the entropy provider's random number. The provider's random number can be retrieved
// from them in a provider-dependent manner.
//
// For the moment, the provider 0x368397bDc956b4F23847bE244f350Bde4615F25E hosts a webservice at
// For the moment, the provider 0x6CC14824Ea2918f5De5C2f75A9Da968ad4BD6344 hosts a webservice at
// https://fortuna-staging.pyth.network/ that allows anyone to retrieve their random values.
// Fetch the following url:
// https://fortuna-staging.pyth.network/v1/chains/<chain id>/revelations/<sequence number>
Expand Down
Loading