Skip to content
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
260 changes: 38 additions & 222 deletions crates/fiber-lib/src/fiber/gen/invoice.rs

Large diffs are not rendered by default.

5 changes: 0 additions & 5 deletions crates/fiber-lib/src/fiber/schema/invoice.mol
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,6 @@ option SignatureOpt (Signature);

option AmountOpt (Uint128);

struct FinalHtlcTimeout {
value: Uint64,
}

struct FinalHtlcMinimumExpiryDelta {
value: Uint64,
}
Expand Down Expand Up @@ -51,7 +47,6 @@ struct PaymentSecret {
union InvoiceAttr {
ExpiryTime,
Description,
FinalHtlcTimeout,
FinalHtlcMinimumExpiryDelta,
FallbackAddr,
Feature,
Expand Down
2 changes: 0 additions & 2 deletions crates/fiber-lib/src/fiber/tests/network.rs
Original file line number Diff line number Diff line change
Expand Up @@ -863,7 +863,6 @@ fn test_send_payment_validate_invoice() {
.fallback_address("address".to_string())
.expiry_time(Duration::from_secs(1024))
.payee_pub_key(public_key)
.add_attr(Attribute::FinalHtlcTimeout(5))
.add_attr(Attribute::Description("description".to_string()))
.build_with_sign(|hash| Secp256k1::new().sign_ecdsa_recoverable(hash, &private_key))
.unwrap();
Expand Down Expand Up @@ -943,7 +942,6 @@ fn test_send_payment_validate_invoice() {
.fallback_address("address".to_string())
.expiry_time(Duration::from_secs(1024))
.payee_pub_key(public_key)
.add_attr(Attribute::FinalHtlcTimeout(5))
.add_attr(Attribute::FinalHtlcMinimumExpiryDelta(11))
.add_attr(Attribute::Description("description".to_string()))
.build_with_sign(|hash| Secp256k1::new().sign_ecdsa_recoverable(hash, &private_key))
Expand Down
9 changes: 0 additions & 9 deletions crates/fiber-lib/src/invoice/invoice_impl.rs
Original file line number Diff line number Diff line change
Expand Up @@ -112,9 +112,6 @@ pub struct CkbScript(#[serde_as(as = "EntityHex")] pub Script);
#[derive(Debug, Clone, Eq, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
pub enum Attribute {
#[serde(with = "U64Hex")]
/// The final tlc time out, in milliseconds
FinalHtlcTimeout(u64),
#[serde(with = "U64Hex")]
/// The final tlc minimum expiry delta, in milliseconds, default is 1 day
FinalHtlcMinimumExpiryDelta(u64),
Expand Down Expand Up @@ -512,9 +509,6 @@ impl From<Attribute> for InvoiceAttr {
Attribute::Description(value) => InvoiceAttrUnion::Description(
Description::new_builder().value(value.pack()).build(),
),
Attribute::FinalHtlcTimeout(value) => InvoiceAttrUnion::FinalHtlcTimeout(
FinalHtlcTimeout::new_builder().value(value.pack()).build(),
),
Attribute::FinalHtlcMinimumExpiryDelta(value) => {
InvoiceAttrUnion::FinalHtlcMinimumExpiryDelta(
FinalHtlcMinimumExpiryDelta::new_builder()
Expand Down Expand Up @@ -564,9 +558,6 @@ impl From<InvoiceAttr> for Attribute {
let seconds: u64 = x.value().unpack();
Attribute::ExpiryTime(Duration::from_secs(seconds))
}
InvoiceAttrUnion::FinalHtlcTimeout(x) => {
Attribute::FinalHtlcTimeout(x.value().unpack())
}
InvoiceAttrUnion::FinalHtlcMinimumExpiryDelta(x) => {
Attribute::FinalHtlcMinimumExpiryDelta(x.value().unpack())
}
Expand Down
23 changes: 8 additions & 15 deletions crates/fiber-lib/src/invoice/tests/invoice_impl.rs
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,6 @@ fn mock_invoice() -> CkbInvoice {
.unwrap()
.as_millis(),
attrs: vec![
Attribute::FinalHtlcTimeout(5),
Attribute::FinalHtlcMinimumExpiryDelta(12),
Attribute::Description("description".to_string()),
Attribute::ExpiryTime(Duration::from_secs(1024)),
Expand All @@ -60,7 +59,6 @@ fn mock_determined_invoice() -> CkbInvoice {
payment_hash: [3u8; 32].into(),
timestamp: Duration::from_secs(1024).as_millis(),
attrs: vec![
Attribute::FinalHtlcTimeout(5),
Attribute::FinalHtlcMinimumExpiryDelta(12),
Attribute::Description("description".to_string()),
Attribute::ExpiryTime(Duration::from_secs(1024)),
Expand Down Expand Up @@ -178,7 +176,6 @@ fn test_invoice_bc32m_not_same() {
payment_hash: [0u8; 32].into(),
timestamp: 0,
attrs: vec![
Attribute::FinalHtlcTimeout(5),
Attribute::FinalHtlcMinimumExpiryDelta(12),
Attribute::Description("description hello".to_string()),
Attribute::ExpiryTime(Duration::from_secs(1024)),
Expand Down Expand Up @@ -221,7 +218,6 @@ fn test_invoice_builder() {
.fallback_address("address".to_string())
.expiry_time(Duration::from_secs(1024))
.payee_pub_key(public_key)
.add_attr(Attribute::FinalHtlcTimeout(5))
.add_attr(Attribute::FinalHtlcMinimumExpiryDelta(12))
.add_attr(Attribute::Description("description".to_string()))
.add_attr(Attribute::UdtScript(CkbScript(Script::default())))
Expand All @@ -235,7 +231,7 @@ fn test_invoice_builder() {
assert_eq!(invoice.currency, Currency::Fibb);
assert_eq!(invoice.amount, Some(1280));
assert_eq!(invoice.payment_hash(), &gen_payment_hash);
assert_eq!(invoice.data.attrs.len(), 7);
assert_eq!(invoice.data.attrs.len(), 6);
assert!(invoice.check_signature().is_ok());
}

Expand All @@ -251,7 +247,6 @@ fn test_invoice_check_signature() {
.fallback_address("address".to_string())
.expiry_time(Duration::from_secs(1024))
.payee_pub_key(public_key)
.add_attr(Attribute::FinalHtlcTimeout(5))
.add_attr(Attribute::FinalHtlcMinimumExpiryDelta(12))
.add_attr(Attribute::Description("description".to_string()))
.add_attr(Attribute::UdtScript(CkbScript(Script::default())))
Expand All @@ -264,7 +259,7 @@ fn test_invoice_check_signature() {

// modify the some element then check signature will fail
let mut invoice_clone = invoice.clone();
invoice_clone.data.attrs[0] = Attribute::FinalHtlcTimeout(6);
invoice_clone.data.attrs[0] = Attribute::FinalHtlcMinimumExpiryDelta(6);
assert_eq!(
invoice_clone.check_signature(),
Err(InvoiceError::InvalidSignature)
Expand All @@ -284,7 +279,6 @@ fn test_invoice_check_signature() {
.fallback_address("address".to_string())
.expiry_time(Duration::from_secs(1024))
.payee_pub_key(public_key)
.add_attr(Attribute::FinalHtlcTimeout(5))
.add_attr(Attribute::FinalHtlcMinimumExpiryDelta(12))
.build()
.unwrap();
Expand All @@ -309,7 +303,6 @@ fn test_invoice_signature_check() {
.fallback_address("address".to_string())
.expiry_time(Duration::from_secs(1024))
.payee_pub_key(public_key.into())
.add_attr(Attribute::FinalHtlcTimeout(5))
.add_attr(Attribute::FinalHtlcMinimumExpiryDelta(12))
.add_attr(Attribute::Description("description".to_string()))
.add_attr(Attribute::UdtScript(CkbScript(Script::default())))
Expand All @@ -326,15 +319,15 @@ fn test_invoice_builder_duplicated_attr() {
let invoice = InvoiceBuilder::new(Currency::Fibb)
.amount(Some(1280))
.payment_hash(gen_payment_hash)
.add_attr(Attribute::FinalHtlcTimeout(5))
.add_attr(Attribute::FinalHtlcTimeout(6))
.add_attr(Attribute::FinalHtlcMinimumExpiryDelta(5))
.add_attr(Attribute::FinalHtlcMinimumExpiryDelta(6))
.build_with_sign(|hash| Secp256k1::new().sign_ecdsa_recoverable(hash, &private_key));

assert_eq!(
invoice.err(),
Some(InvoiceError::DuplicatedAttributeKey(format!(
"{:?}",
Attribute::FinalHtlcTimeout(5)
Attribute::FinalHtlcMinimumExpiryDelta(5)
)))
);
}
Expand All @@ -349,7 +342,7 @@ fn test_invoice_check_description_length() {
.amount(Some(1280))
.payment_hash(gen_payment_hash)
.description("a".repeat(MAX_DESCRIPTION_LEN + 1))
.add_attr(Attribute::FinalHtlcTimeout(5))
.add_attr(Attribute::FinalHtlcMinimumExpiryDelta(5))
.build_with_sign(|hash| Secp256k1::new().sign_ecdsa_recoverable(hash, &private_key));

assert!(invoice.is_err());
Expand Down Expand Up @@ -438,8 +431,8 @@ fn test_invoice_serialize() {
eprintln!("{:?}", bincode);
let check_sum = blake2b_256(&bincode);
let expect_check_sum = [
168, 120, 74, 42, 101, 19, 106, 192, 101, 97, 97, 237, 107, 124, 175, 49, 149, 137, 212,
75, 217, 64, 239, 42, 138, 4, 219, 200, 8, 123, 112, 75,
38, 221, 140, 227, 251, 1, 147, 191, 6, 48, 16, 116, 213, 5, 191, 200, 21, 10, 45, 240,
253, 151, 254, 36, 221, 117, 127, 217, 185, 24, 99, 13,
];
assert_eq!(check_sum, &expect_check_sum[..]);
eprintln!("{:?}", check_sum);
Expand Down
2 changes: 0 additions & 2 deletions crates/fiber-lib/src/rpc/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -1046,7 +1046,6 @@ The attributes of the invoice

#### Enum with values of

* `FinalHtlcTimeout` - <em>`u64`</em>, The final tlc time out, in milliseconds
* `FinalHtlcMinimumExpiryDelta` - <em>`u64`</em>, The final tlc minimum expiry delta, in milliseconds, default is 1 day
* `ExpiryTime` - <em>`Duration`</em>, The expiry time of the invoice, in seconds
* `Description` - <em>`String`</em>, The description of the invoice
Expand Down Expand Up @@ -1589,4 +1588,3 @@ The UDT script which is used to identify the UDT configuration for a Fiber Node
* `hash_type` - <em>`ScriptHashType`</em>, The hash type of the script.
* `args` - <em>`String`</em>, The arguments of the script.
---

4 changes: 0 additions & 4 deletions crates/fiber-lib/src/rpc/invoice.rs
Original file line number Diff line number Diff line change
Expand Up @@ -32,9 +32,6 @@ use tentacle::secio::SecioKeyPair;
#[derive(Debug, Clone, Eq, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
pub enum Attribute {
#[serde(with = "U64Hex")]
/// The final tlc time out, in milliseconds
FinalHtlcTimeout(u64),
#[serde(with = "U64Hex")]
/// The final tlc minimum expiry delta, in milliseconds, default is 1 day
FinalHtlcMinimumExpiryDelta(u64),
Expand Down Expand Up @@ -93,7 +90,6 @@ pub struct CkbInvoice {
impl From<InternalAttribute> for Attribute {
fn from(attr: InternalAttribute) -> Self {
match attr {
InternalAttribute::FinalHtlcTimeout(timeout) => Attribute::FinalHtlcTimeout(timeout),
InternalAttribute::FinalHtlcMinimumExpiryDelta(delta) => {
Attribute::FinalHtlcMinimumExpiryDelta(delta)
}
Expand Down
4 changes: 2 additions & 2 deletions crates/fiber-lib/src/store/tests/store.rs
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ fn test_store_invoice() {
.amount(Some(1280))
.payment_preimage(preimage)
.fallback_address("address".to_string())
.add_attr(Attribute::FinalHtlcTimeout(5))
.add_attr(Attribute::FinalHtlcMinimumExpiryDelta(5))
.build()
.unwrap();

Expand Down Expand Up @@ -999,7 +999,7 @@ fn test_store_change_watcher() {
.amount(Some(1280))
.payment_preimage(preimage)
.fallback_address("address".to_string())
.add_attr(Attribute::FinalHtlcTimeout(5))
.add_attr(Attribute::FinalHtlcMinimumExpiryDelta(5))
.build()
.unwrap();
let payment_hash = *invoice.payment_hash();
Expand Down
3 changes: 1 addition & 2 deletions fiber-js/src/types/invoice.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,7 @@ interface NewInvoiceParams {
hash_algorithm?: HashAlgorithm;
}
type CkbScript = HexString;
type Attribute = { FinalHtlcTimeout: HexString } |
{ FinalHtlcMinimumExpiryDelta: HexString } |
type Attribute = { FinalHtlcMinimumExpiryDelta: HexString } |
{ ExpiryTime: HexString } |
{ Description: string } |
{ FallbackAddr: string } |
Expand Down
Loading