Skip to content

Commit 5f6a1f8

Browse files
authored
Merge pull request #51 from zoedberg/v0.11_fixes
Experimental changes from Bitfinex team into an experimental branch. nACK from me, but they want to experiment and requested a `v0.11.1-alpha.1`, which will not be recommended for any use at least until I will do a full review of the stuff in it.
2 parents 7a66a9b + 7734143 commit 5f6a1f8

File tree

13 files changed

+384
-448
lines changed

13 files changed

+384
-448
lines changed

Cargo.lock

Lines changed: 29 additions & 69 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,9 @@ amplify = "4.7.0"
2424
strict_encoding = "~2.7.0"
2525
strict_types = "~2.7.2"
2626
aluvm = "0.11.0-beta.9"
27-
bp-core = "0.11.0-beta.9"
28-
rgb-std = { version = "0.11.0-beta.9", features = ["serde", "fs"] }
29-
rgb-interfaces = "0.11.0-beta.9"
27+
bp-core = "0.11.1-alpha.1"
28+
rgb-std = { version = "0.11.1-alpha.1", features = ["serde", "fs"] }
29+
rgb-interfaces = "0.11.1-alpha.1"
3030
chrono = "0.4.38"
3131
serde = "1.0"
3232
serde_json = "1.0"

examples/rgb20.rs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,10 @@
11
use amplify::hex::FromHex;
2-
use bp::dbc::Method;
32
use bp::{Outpoint, Txid};
43
use ifaces::Rgb20;
54
use rgbstd::containers::{ConsignmentExt, FileContent};
65
use rgbstd::interface::{FilterIncludeAll, FungibleAllocation};
76
use rgbstd::invoice::Precision;
87
use rgbstd::persistence::Stock;
9-
use rgbstd::XWitnessId;
108
use schemata::dumb::NoResolver;
119
use schemata::NonInflatableAsset;
1210

@@ -17,7 +15,7 @@ fn main() {
1715
let beneficiary = Outpoint::new(beneficiary_txid, 1);
1816

1917
#[allow(clippy::inconsistent_digit_grouping)]
20-
let contract = NonInflatableAsset::testnet("ssi:anonymous","TEST", "Test asset", None, Precision::CentiMicro, [(Method::TapretFirst, beneficiary, 1_000_000_000_00u64)])
18+
let contract = NonInflatableAsset::testnet("ssi:anonymous","TEST", "Test asset", None, Precision::CentiMicro, [(beneficiary, 1_000_000_000_00u64)])
2119
.expect("invalid contract data");
2220

2321
let contract_id = contract.contract_id();
@@ -37,7 +35,7 @@ fn main() {
3735
eprintln!("{}", serde_json::to_string(&contract.spec()).unwrap());
3836

3937
for FungibleAllocation { seal, state, witness, .. } in allocations {
40-
let witness = witness.as_ref().map(XWitnessId::to_string).unwrap_or("~".to_owned());
38+
let witness = witness.as_ref().map(Txid::to_string).unwrap_or("~".to_owned());
4139
eprintln!("amount={state}, owner={seal}, witness={witness}");
4240
}
4341
eprintln!("totalSupply={}", contract.total_supply());

examples/rgb21.rs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ use rgbstd::containers::{ConsignmentExt, FileContent, Kit};
1010
use rgbstd::invoice::Precision;
1111
use rgbstd::persistence::Stock;
1212
use rgbstd::stl::{AssetSpec, Attachment, ContractTerms, MediaType, RicardianContract};
13-
use rgbstd::{Allocation, GenesisSeal, TokenIndex, XChain};
13+
use rgbstd::{Allocation, ChainNet, GenesisSeal, TokenIndex};
1414
use schemata::dumb::NoResolver;
1515
use schemata::UniqueDigitalAsset;
1616
use sha2::{Digest, Sha256};
@@ -20,7 +20,7 @@ fn main() {
2020
let spec = AssetSpec::new("TEST", "Test uda", Precision::Indivisible);
2121
let beneficiary_txid =
2222
Txid::from_hex("14295d5bb1a191cdb6286dc0944df938421e3dfcbf0811353ccac4100c2068c5").unwrap();
23-
let beneficiary = XChain::Bitcoin(GenesisSeal::tapret_first_rand(beneficiary_txid, 1));
23+
let beneficiary = GenesisSeal::new_random(beneficiary_txid, 1);
2424

2525
let index = TokenIndex::from_inner(2);
2626

@@ -48,9 +48,11 @@ fn main() {
4848
let mut stock = Stock::in_memory();
4949
stock.import_kit(kit).expect("invalid issuer kit");
5050

51-
let contract = stock.contract_builder("ssi:anonymous",
51+
let contract = stock.contract_builder(
52+
"ssi:anonymous",
5253
UniqueDigitalAsset::schema().schema_id(),
5354
"RGB21Unique",
55+
ChainNet::BitcoinTestnet4,
5456
).expect("schema fails to implement RGB21 interface")
5557

5658
.add_global_state("tokens", token_data)

examples/rgb25.rs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,10 @@
11
use amplify::hex::FromHex;
2-
use bp::dbc::Method;
32
use bp::{Outpoint, Txid};
43
use ifaces::{Rgb25, Rgb25Wrapper};
54
use rgbstd::containers::{ConsignmentExt, FileContent, Kit};
65
use rgbstd::interface::{FilterIncludeAll, FungibleAllocation};
76
use rgbstd::invoice::Precision;
87
use rgbstd::persistence::{MemContract, Stock};
9-
use rgbstd::XWitnessId;
108
use schemata::dumb::NoResolver;
119
use schemata::CollectibleFungibleAsset;
1210

@@ -25,7 +23,7 @@ fn main() {
2523
#[allow(clippy::inconsistent_digit_grouping)]
2624
let contract = Rgb25Wrapper::<MemContract>::testnet::<CollectibleFungibleAsset>("ssi:anonymous", "Test asset", Precision::CentiMicro)
2725
.expect("invalid contract data")
28-
.allocate(Method::TapretFirst, beneficiary, 1_000_000_000_00u64.into())
26+
.allocate(beneficiary, 1_000_000_000_00u64.into())
2927
.expect("invalid allocations")
3028
.issue_contract()
3129
.expect("invalid contract data");
@@ -45,7 +43,7 @@ fn main() {
4543
eprintln!("{}", contract.name());
4644

4745
for FungibleAllocation { seal, state, witness, .. } in allocations {
48-
let witness = witness.as_ref().map(XWitnessId::to_string).unwrap_or("~".to_owned());
46+
let witness = witness.as_ref().map(Txid::to_string).unwrap_or("~".to_owned());
4947
eprintln!("amount={state}, owner={seal}, witness={witness}");
5048
}
5149
eprintln!("totalSupply={}", contract.total_issued_supply());

src/lib.rs

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -52,21 +52,23 @@ pub const ERRNO_ISSUED_MISMATCH: u8 = 1;
5252
pub const ERRNO_NON_FRACTIONAL: u8 = 10;
5353

5454
pub mod dumb {
55+
use bp::Tx;
5556
use rgbstd::validation::{ResolveWitness, WitnessResolverError};
56-
use rgbstd::vm::{WitnessOrd, XWitnessTx};
57-
use rgbstd::XWitnessId;
57+
use rgbstd::vm::WitnessOrd;
58+
use rgbstd::{ChainNet, Txid};
5859

5960
pub struct NoResolver;
6061

6162
impl ResolveWitness for NoResolver {
62-
fn resolve_pub_witness(&self, _: XWitnessId) -> Result<XWitnessTx, WitnessResolverError> {
63+
fn resolve_pub_witness(&self, _: Txid) -> Result<Tx, WitnessResolverError> {
6364
unreachable!()
6465
}
6566

66-
fn resolve_pub_witness_ord(
67-
&self,
68-
_: XWitnessId,
69-
) -> Result<WitnessOrd, WitnessResolverError> {
67+
fn resolve_pub_witness_ord(&self, _: Txid) -> Result<WitnessOrd, WitnessResolverError> {
68+
unreachable!()
69+
}
70+
71+
fn check_chain_net(&self, _: ChainNet) -> Result<(), WitnessResolverError> {
7072
unreachable!()
7173
}
7274
}

0 commit comments

Comments
 (0)