feat: add support for vrf

This commit is contained in:
ppe
2022-05-13 15:42:35 +02:00
committed by just_ppe
parent 57b0d39229
commit 6036931cdb
11 changed files with 1226 additions and 582 deletions

View File

@@ -34,7 +34,7 @@ export function handle(state, action) {
balances[target] = qty;
}
return { state };
return {state};
}
if (input.function === 'balance') {
@@ -49,7 +49,36 @@ export function handle(state, action) {
throw new ContractError('Cannot get balance, target does not exist');
}
return { result: { target, ticker, balance: balances[target] } };
return {result: {target, ticker, balance: balances[target]}};
}
if (input.function === 'vrf') {
if (!state.vrf) {
state.vrf = {};
}
state.vrf[SmartWeave.transaction.id] = {
vrf: SmartWeave.vrf.data,
value: SmartWeave.vrf.value,
random_6_1: SmartWeave.vrf.randomInt(6),
random_6_2: SmartWeave.vrf.randomInt(6),
random_6_3: SmartWeave.vrf.randomInt(6),
random_12_1: SmartWeave.vrf.randomInt(12),
random_12_2: SmartWeave.vrf.randomInt(12),
random_12_3: SmartWeave.vrf.randomInt(12),
random_46_1: SmartWeave.vrf.randomInt(46),
random_46_2: SmartWeave.vrf.randomInt(46),
random_46_3: SmartWeave.vrf.randomInt(46),
random_99_1: SmartWeave.vrf.randomInt(99),
random_99_2: SmartWeave.vrf.randomInt(99),
random_99_3: SmartWeave.vrf.randomInt(99),
}
return {state};
}
if (input.function === 'evolve' && canEvolve) {
@@ -59,7 +88,7 @@ export function handle(state, action) {
state.evolve = input.value;
return { state };
return {state};
}
throw new ContractError(`No function supplied or function not recognised: "${input.function}"`);