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

feat(subnet): Update resolver to new contracts [NET-619] #1891

Merged
merged 12 commits into from
Nov 15, 2023
1 change: 1 addition & 0 deletions .github/workflows/e2e.yml
Original file line number Diff line number Diff line change
Expand Up @@ -91,3 +91,4 @@ jobs:
uses: fluencelabs/flox/.github/workflows/tests.yml@main
with:
nox-image: "${{ needs.nox-snapshot.outputs.nox-image }}"
ref: deal-lifecycle
25 changes: 8 additions & 17 deletions crates/nox-tests/tests/builtin.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2317,15 +2317,15 @@ async fn aliases_restart() {

#[tokio::test]
async fn subnet_resolve() {
let expected_request = r#"{"jsonrpc":"2.0","id":0,"method":"eth_call","params":[{"data":"0xf3b6a45d","to":"0x6dD1aFfe90415C61AeDf5c0ACcA9Cf5fD5031517"},"latest"]}"#;
let expected_request = r#"{"jsonrpc":"2.0","id":0,"method":"eth_call","params":[{"data":"0x4b66a309","to":"0x9DcaFca9B88f49d91c38a32E7d9A86a7d9a37B04"},"latest"]}"#;
let expected_request: serde_json::Value =
serde_json::from_str(expected_request).expect("parse expected_request as json");

let jsonrpc = r#"
{
"jsonrpc": "2.0",
"id": 0,
"result": "0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000032b7083358039745e731fb9809204d9304b48797406593e180b4e5a762a47321400000000000000000000000000000000000000000000000000000000000000012623d2cc0692ce6cb68ab094f95daa06a92a36f3cf7190e9baf7dd61562899f4a510574bbf0159ca28b7fb191d252346d1a32f853a3f0b1c9c5e59e28cfd546c0000000000000000000000000b9b9ac40dc527ea6a98110b796b0007074d49dd0000000000000000000000000000000000000000000000000de0b6b3a7640000000000000000000000000000000000000000000000000000000000000000004fdbfb375f013a592c50174ad241c67a4cf1b9ec81c902900b75f801f83cd2657a00000000000000000000000000000000000000000000000000000000000000022623d2cc0692ce6cb68ab094f95daa06a92a36f3cf7190e9baf7dd61562899f400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b9b9ac40dc527ea6a98110b796b0007074d49dd0000000000000000000000000000000000000000000000000de0b6b3a7640000000000000000000000000000000000000000000000000000000000000000004fec7c6fea91d971bc7c5ed340ec86265bb93386fff248e842a1a69a94b58d2d9e00000000000000000000000000000000000000000000000000000000000000032623d2cc0692ce6cb68ab094f95daa06a92a36f3cf7190e9baf7dd61562899f400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b9b9ac40dc527ea6a98110b796b0007074d49dd0000000000000000000000000000000000000000000000000de0b6b3a7640000000000000000000000000000000000000000000000000000000000000000004f"
"result": "0x0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000153aadfa1d6cd4c8a18f7eb26bd0b83ca10b664845cd72e2dd871f78b2006f5a7b5ecc6c89e9c2add9a9d3b08e7c8ed2155d980e48870b72cfb9c5c16a088ebfb0a510f7418603d18c14fd3e6dbc2bf4ce5b2e9ef3dac15428a9b31a7bf5a11a8000000000000000000000000627e730fd1361e6ffcee236dac08f82eaa8ac7cd0000000000000000000000000000000000000000000000000de0b6b3a76400000000000000000000000000000000000000000000000000000000000006c16216"
}
"#;

Expand Down Expand Up @@ -2378,9 +2378,9 @@ async fn subnet_resolve() {
r#"
(seq
(seq
(call relay ("subnet" "resolve") ["6dD1aFfe90415C61AeDf5c0ACcA9Cf5fD5031517"] subnet1)
(call relay ("subnet" "resolve") ["9DcaFca9B88f49d91c38a32E7d9A86a7d9a37B04"] subnet1)
(seq
(call relay ("subnet" "resolve") ["0x6dD1aFfe90415C61AeDf5c0ACcA9Cf5fD5031517"] subnet2)
(call relay ("subnet" "resolve") ["0x9DcaFca9B88f49d91c38a32E7d9A86a7d9a37B04"] subnet2)
(call relay ("subnet" "resolve") ["invalid_deal_id"] invalid)
)
)
Expand Down Expand Up @@ -2419,20 +2419,11 @@ async fn subnet_resolve() {
pats,
vec![
(
"0x2b7083358039745e731fb9809204d9304b48797406593e180b4e5a762a473214",
"12D3KooWCPFLtcLwzT1k4gsacu3gkM2gYJTXdnTSfsPFZ67FrD4F",
vec!["12D3KooWLvhtdbBuFTzxvDXUGYcyxyeZrab1tZWEY4YY8K6PTjTH".to_string()],
),
(
"0xdbfb375f013a592c50174ad241c67a4cf1b9ec81c902900b75f801f83cd2657a",
"12D3KooWCPFLtcLwzT1k4gsacu3gkM2gYJTXdnTSfsPFZ67FrD4F",
vec![],
),
(
"0xec7c6fea91d971bc7c5ed340ec86265bb93386fff248e842a1a69a94b58d2d9e",
"12D3KooWCPFLtcLwzT1k4gsacu3gkM2gYJTXdnTSfsPFZ67FrD4F",
vec![],
"0x53aadfa1d6cd4c8a18f7eb26bd0b83ca10b664845cd72e2dd871f78b2006f5a7",
"12D3KooWN4XNKgu76nwB7iKUXmE4FKCA5Ycak6SbSqLTaWo2nFsQ",
vec!["12D3KooWAWdwEujemZN1LQ87bPKSeAvDA1yMGistnL4yF8awuUqV".to_string()],
),
// TODO: add more nodes in subnet later
]
);

Expand Down
9 changes: 2 additions & 7 deletions crates/subnet-resolver/src/resolve.rs
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,6 @@ pub fn parse_chain_data(data: &str) -> Result<Vec<Token>, ChainDataError> {
let signature: ParamType = Array(Box::new(Tuple(vec![
// bytes32 id
FixedBytes(32),
// uint256 index
Uint(256),
// bytes32 peerId
FixedBytes(32),
// bytes32 workerId
Expand Down Expand Up @@ -64,9 +62,6 @@ fn decode_pats(data: String) -> Result<Vec<Worker>, ResolveSubnetError> {
let pat_id = next_opt(&mut tuple, "pat_id", Token::into_fixed_bytes)?;
let pat_id = hex::encode(pat_id);

// skip 'index' field
let mut tuple = tuple.skip(1);

let peer_id = next_opt(&mut tuple, "compute_peer_id", Token::into_fixed_bytes)?;
let peer_id = parse_peer_id(peer_id)
.map_err(|e| ResolveSubnetError::InvalidPeerId(e, "compute_peer_id"))?;
Expand Down Expand Up @@ -106,10 +101,10 @@ pub fn validate_deal_id(deal_id: String) -> Result<String, ResolveSubnetError> {
pub fn resolve_subnet(deal_id: String, api_endpoint: &str) -> SubnetResolveResult {
let res: Result<_, ResolveSubnetError> = try {
let deal_id = validate_deal_id(deal_id)?;
// Description of the `getPATs` function from the `chain.workers` smart contract on chain
// Description of the `getComputeUnits` function from the `chain.workers` smart contract on chain
#[allow(deprecated)]
let input = Function {
name: String::from("getPATs"),
name: String::from("getComputeUnits"),
inputs: vec![],
outputs: vec![],
constant: None,
Expand Down
Loading