Skip to content

Commit

Permalink
Store association from policyIdToRiskId in AyiiProduct
Browse files Browse the repository at this point in the history
  • Loading branch information
doerfli committed Aug 12, 2022
1 parent 6d514c1 commit 373ed32
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 6 deletions.
11 changes: 7 additions & 4 deletions contracts/examples/AyiiProduct.sol
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,8 @@ contract AyiiProduct is
uint256 private _oracleId;

mapping(bytes32 /* riskId */ => Risk) private _risks;
mapping(bytes32 /* riskId */ => bytes32 [] /*policyIds*/) private _policies;
mapping(bytes32 /* riskId */ => bytes32 [] /* policyIds */) private _policies;
mapping(bytes32 /* policyId */ => bytes32 /* riskId */) private _riskIdByPolicy;
bytes32 [] private _applications; // useful for debugging, might need to get rid of this

event LogAyiiPolicyCreated(bytes32 policyId, address policyHolder, uint256 premiumAmount, uint256 sumInsuredAmount);
Expand Down Expand Up @@ -149,6 +150,7 @@ contract AyiiProduct is

if (success) {
_policies[riskId].push(processId);
_riskIdByPolicy[processId] = riskId;

emit LogAyiiPolicyCreated(
processId,
Expand All @@ -158,7 +160,7 @@ contract AyiiProduct is
}
}

function triggerOracle(bytes32 riskId)
function triggerOracle(bytes32 riskId, bytes32 processId)
external
onlyRole(INSURER_ROLE)
returns(uint256 requestId)
Expand All @@ -174,7 +176,7 @@ contract AyiiProduct is
);

requestId = _request(
riskId,
processId,
queryData,
"oracleCallback",
_oracleId
Expand All @@ -193,7 +195,7 @@ contract AyiiProduct is

function oracleCallback(
uint256 requestId,
bytes32 riskId,
bytes32 processId,
bytes calldata responseData
)
external
Expand All @@ -206,6 +208,7 @@ contract AyiiProduct is
uint256 aaay
) = abi.decode(responseData, (bytes32, bytes32, bytes32, uint256));

bytes32 riskId = _riskIdByPolicy[processId];
require(riskId == getRiskId(projectId, uaiId, cropId), "ERROR:AYI-020:RISK_ID_MISMATCH");

Risk storage risk = _risks[riskId];
Expand Down
4 changes: 2 additions & 2 deletions tests/test_ayii_product.py
Original file line number Diff line number Diff line change
Expand Up @@ -223,8 +223,8 @@ def test_happy_path(

print('--- step trigger oracle (call chainlin node) -------------')

tx[0] = product.triggerOracle(riskId[0])
tx[1] = product.triggerOracle(riskId[1])
tx[0] = product.triggerOracle(riskId[0], policyId[0])
tx[1] = product.triggerOracle(riskId[1], policyId[1])
requestId = [tx[0].return_value, tx[1].return_value]

# ensure event emitted as chainlink client
Expand Down

0 comments on commit 373ed32

Please sign in to comment.