verify signature changed name and cost

This commit is contained in:
Kasey White 2022-08-22 21:18:22 -04:00 committed by Kasey White
parent c03d3e3604
commit 3f6ad6be60
3 changed files with 36 additions and 16 deletions

View File

@ -31,7 +31,7 @@ pub enum DefaultFunction {
Sha2_256 = 18, Sha2_256 = 18,
Sha3_256 = 19, Sha3_256 = 19,
Blake2b_256 = 20, Blake2b_256 = 20,
VerifySignature = 21, VerifyEd25519Signature = 21,
VerifyEcdsaSecp256k1Signature = 52, VerifyEcdsaSecp256k1Signature = 52,
VerifySchnorrSecp256k1Signature = 53, VerifySchnorrSecp256k1Signature = 53,
// String functions // String functions
@ -134,8 +134,8 @@ impl TryFrom<u8> for DefaultFunction {
v if v == DefaultFunction::Sha2_256 as u8 => Ok(DefaultFunction::Sha2_256), v if v == DefaultFunction::Sha2_256 as u8 => Ok(DefaultFunction::Sha2_256),
v if v == DefaultFunction::Sha3_256 as u8 => Ok(DefaultFunction::Sha3_256), v if v == DefaultFunction::Sha3_256 as u8 => Ok(DefaultFunction::Sha3_256),
v if v == DefaultFunction::Blake2b_256 as u8 => Ok(DefaultFunction::Blake2b_256), v if v == DefaultFunction::Blake2b_256 as u8 => Ok(DefaultFunction::Blake2b_256),
v if v == DefaultFunction::VerifySignature as u8 => { v if v == DefaultFunction::VerifyEd25519Signature as u8 => {
Ok(DefaultFunction::VerifySignature) Ok(DefaultFunction::VerifyEd25519Signature)
} }
v if v == DefaultFunction::VerifyEcdsaSecp256k1Signature as u8 => { v if v == DefaultFunction::VerifyEcdsaSecp256k1Signature as u8 => {
Ok(DefaultFunction::VerifyEcdsaSecp256k1Signature) Ok(DefaultFunction::VerifyEcdsaSecp256k1Signature)
@ -223,7 +223,7 @@ impl FromStr for DefaultFunction {
"sha2_256" => Ok(Sha2_256), "sha2_256" => Ok(Sha2_256),
"sha3_256" => Ok(Sha3_256), "sha3_256" => Ok(Sha3_256),
"blake2b_256" => Ok(Blake2b_256), "blake2b_256" => Ok(Blake2b_256),
"verifySignature" => Ok(VerifySignature), "verifyEd25519Signature" => Ok(VerifyEd25519Signature),
"verifyEcdsaSecp256k1Signature" => Ok(VerifyEcdsaSecp256k1Signature), "verifyEcdsaSecp256k1Signature" => Ok(VerifyEcdsaSecp256k1Signature),
"verifySchnorrSecp256k1Signature" => Ok(VerifySchnorrSecp256k1Signature), "verifySchnorrSecp256k1Signature" => Ok(VerifySchnorrSecp256k1Signature),
"appendString" => Ok(AppendString), "appendString" => Ok(AppendString),
@ -287,7 +287,7 @@ impl Display for DefaultFunction {
Sha2_256 => write!(f, "sha2_256"), Sha2_256 => write!(f, "sha2_256"),
Sha3_256 => write!(f, "sha3_256"), Sha3_256 => write!(f, "sha3_256"),
Blake2b_256 => write!(f, "blake2b_256"), Blake2b_256 => write!(f, "blake2b_256"),
VerifySignature => write!(f, "verifySignature"), VerifyEd25519Signature => write!(f, "verifySignature"),
VerifyEcdsaSecp256k1Signature => write!(f, "verifyEcdsaSecp256k1Signature"), VerifyEcdsaSecp256k1Signature => write!(f, "verifyEcdsaSecp256k1Signature"),
VerifySchnorrSecp256k1Signature => write!(f, "verifySchnorrSecp256k1Signature"), VerifySchnorrSecp256k1Signature => write!(f, "verifySchnorrSecp256k1Signature"),
AppendString => write!(f, "appendString"), AppendString => write!(f, "appendString"),

View File

@ -277,13 +277,13 @@ impl Default for BuiltinCosts {
}, },
append_byte_string: CostingFun { append_byte_string: CostingFun {
mem: TwoArguments::AddedSizes(AddedSizes { mem: TwoArguments::AddedSizes(AddedSizes {
intercept: 1000,
slope: 571,
}),
cpu: TwoArguments::AddedSizes(AddedSizes {
intercept: 0, intercept: 0,
slope: 1, slope: 1,
}), }),
cpu: TwoArguments::AddedSizes(AddedSizes {
intercept: 1000,
slope: 571,
}),
}, },
cons_byte_string: CostingFun { cons_byte_string: CostingFun {
mem: TwoArguments::AddedSizes(AddedSizes { mem: TwoArguments::AddedSizes(AddedSizes {
@ -359,8 +359,8 @@ impl Default for BuiltinCosts {
verify_ed25519_signature: CostingFun { verify_ed25519_signature: CostingFun {
mem: ThreeArguments::ConstantCost(10), mem: ThreeArguments::ConstantCost(10),
cpu: ThreeArguments::LinearInZ(LinearSize { cpu: ThreeArguments::LinearInZ(LinearSize {
intercept: 41047009, intercept: 57996947,
slope: 18816, slope: 18975,
}), }),
}, },
verify_ecdsa_secp256k1_signature: CostingFun { verify_ecdsa_secp256k1_signature: CostingFun {
@ -693,7 +693,18 @@ impl BuiltinCosts {
mem: self.blake2b_256.mem.cost(args[0].to_ex_mem()), mem: self.blake2b_256.mem.cost(args[0].to_ex_mem()),
cpu: self.blake2b_256.cpu.cost(args[0].to_ex_mem()), cpu: self.blake2b_256.cpu.cost(args[0].to_ex_mem()),
}, },
DefaultFunction::VerifySignature => todo!(), DefaultFunction::VerifyEd25519Signature => ExBudget {
mem: self.verify_ed25519_signature.mem.cost(
args[0].to_ex_mem(),
args[1].to_ex_mem(),
args[2].to_ex_mem(),
),
cpu: self.verify_ed25519_signature.cpu.cost(
args[0].to_ex_mem(),
args[1].to_ex_mem(),
args[2].to_ex_mem(),
),
},
DefaultFunction::VerifyEcdsaSecp256k1Signature => todo!(), DefaultFunction::VerifyEcdsaSecp256k1Signature => todo!(),
DefaultFunction::VerifySchnorrSecp256k1Signature => todo!(), DefaultFunction::VerifySchnorrSecp256k1Signature => todo!(),
DefaultFunction::AppendString => ExBudget { DefaultFunction::AppendString => ExBudget {

View File

@ -93,7 +93,7 @@ impl DefaultFunction {
DefaultFunction::Sha2_256 => 1, DefaultFunction::Sha2_256 => 1,
DefaultFunction::Sha3_256 => 1, DefaultFunction::Sha3_256 => 1,
DefaultFunction::Blake2b_256 => 1, DefaultFunction::Blake2b_256 => 1,
DefaultFunction::VerifySignature => todo!(), DefaultFunction::VerifyEd25519Signature => 3,
DefaultFunction::VerifyEcdsaSecp256k1Signature => todo!(), DefaultFunction::VerifyEcdsaSecp256k1Signature => todo!(),
DefaultFunction::VerifySchnorrSecp256k1Signature => todo!(), DefaultFunction::VerifySchnorrSecp256k1Signature => todo!(),
DefaultFunction::AppendString => 2, DefaultFunction::AppendString => 2,
@ -152,7 +152,7 @@ impl DefaultFunction {
DefaultFunction::Sha2_256 => 0, DefaultFunction::Sha2_256 => 0,
DefaultFunction::Sha3_256 => 0, DefaultFunction::Sha3_256 => 0,
DefaultFunction::Blake2b_256 => 0, DefaultFunction::Blake2b_256 => 0,
DefaultFunction::VerifySignature => todo!(), DefaultFunction::VerifyEd25519Signature => 0,
DefaultFunction::VerifyEcdsaSecp256k1Signature => todo!(), DefaultFunction::VerifyEcdsaSecp256k1Signature => todo!(),
DefaultFunction::VerifySchnorrSecp256k1Signature => todo!(), DefaultFunction::VerifySchnorrSecp256k1Signature => todo!(),
DefaultFunction::AppendString => 0, DefaultFunction::AppendString => 0,
@ -229,7 +229,7 @@ impl DefaultFunction {
DefaultFunction::Sha2_256 => arg.expect_type(Type::ByteString), DefaultFunction::Sha2_256 => arg.expect_type(Type::ByteString),
DefaultFunction::Sha3_256 => arg.expect_type(Type::ByteString), DefaultFunction::Sha3_256 => arg.expect_type(Type::ByteString),
DefaultFunction::Blake2b_256 => arg.expect_type(Type::ByteString), DefaultFunction::Blake2b_256 => arg.expect_type(Type::ByteString),
DefaultFunction::VerifySignature => todo!(), DefaultFunction::VerifyEd25519Signature => arg.expect_type(Type::ByteString),
DefaultFunction::VerifyEcdsaSecp256k1Signature => todo!(), DefaultFunction::VerifyEcdsaSecp256k1Signature => todo!(),
DefaultFunction::VerifySchnorrSecp256k1Signature => todo!(), DefaultFunction::VerifySchnorrSecp256k1Signature => todo!(),
DefaultFunction::AppendString => arg.expect_type(Type::String), DefaultFunction::AppendString => arg.expect_type(Type::String),
@ -459,7 +459,16 @@ impl DefaultFunction {
} }
_ => unreachable!(), _ => unreachable!(),
}, },
DefaultFunction::VerifySignature => todo!(), DefaultFunction::VerifyEd25519Signature => match (&args[0], &args[1], &args[2]) {
(
Value::Con(Constant::ByteString(_arg1)),
Value::Con(Constant::ByteString(_arg2)),
Value::Con(Constant::ByteString(_arg3)),
) => {
todo!()
}
_ => unreachable!(),
},
DefaultFunction::VerifyEcdsaSecp256k1Signature => todo!(), DefaultFunction::VerifyEcdsaSecp256k1Signature => todo!(),
DefaultFunction::VerifySchnorrSecp256k1Signature => todo!(), DefaultFunction::VerifySchnorrSecp256k1Signature => todo!(),
DefaultFunction::AppendString => match (&args[0], &args[1]) { DefaultFunction::AppendString => match (&args[0], &args[1]) {