Skip to content

Commit

Permalink
Update to v0.3.2 (#20)
Browse files Browse the repository at this point in the history
* upgrade: update from cryptogarageinc/v0.3.5
  • Loading branch information
ko-matsu authored Sep 27, 2021
1 parent 05437e9 commit fa16fe2
Show file tree
Hide file tree
Showing 22 changed files with 1,371 additions and 152 deletions.
12 changes: 6 additions & 6 deletions .github/workflows/create_release-and-upload.yml
Original file line number Diff line number Diff line change
Expand Up @@ -50,11 +50,11 @@ jobs:
dotnet_target: [3.1, 5.0]
include:
- dotnet_target: 3.1
dotnet_version: 3.1.407
dotnet_version: 3.1.412
framework: netstandard2.1
script_suffix: _core3
- dotnet_target: 5.0
dotnet_version: 5.0.201
dotnet_version: 5.0.400
framework: net5.0
script_suffix:

Expand Down Expand Up @@ -117,11 +117,11 @@ jobs:
dotnet_target: [3.1, 5.0]
include:
- dotnet_target: 3.1
dotnet_version: 3.1.407
dotnet_version: 3.1.412
framework: netstandard2.1
script_suffix: _core3
- dotnet_target: 5.0
dotnet_version: 5.0.201
dotnet_version: 5.0.400
framework: net5.0
script_suffix:

Expand Down Expand Up @@ -176,11 +176,11 @@ jobs:
dotnet_target: 3.1
include:
- dotnet_target: 3.1
dotnet_version: 3.1.407
dotnet_version: 3.1.412
framework: netstandard2.1
script_suffix: _core3
- dotnet_target: 5.0
dotnet_version: 5.0.201
dotnet_version: 5.0.400
framework: net5.0
script_suffix:

Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,7 @@ echo ".NET 5.x"

### formatter

- dotnet format
- dotnet format (5.1 or higher)

### support compilers

Expand Down
2 changes: 1 addition & 1 deletion external/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ if(CFD_TARGET_VERSION)
set(CFD_TARGET_TAG ${CFD_TARGET_VERSION})
message(STATUS "[external project local] cfd target=${CFD_TARGET_VERSION}")
else()
set(CFD_TARGET_TAG v0.3.1)
set(CFD_TARGET_TAG v0.3.2)
endif()
if(CFD_TARGET_URL)
set(CFD_TARGET_REP ${CFD_TARGET_URL})
Expand Down
117 changes: 117 additions & 0 deletions src/Address.cs
Original file line number Diff line number Diff line change
Expand Up @@ -212,6 +212,54 @@ public override int GetHashCode()
}
};

/// <summary>
/// Elements pegout data struct.
/// </summary>
public struct PegoutData : IEquatable<PegoutData>
{
public Address Address { get; }
public string BaseDescriptor { get; }

public PegoutData(Address pegoutAddress, string baseDescriptor)
{
Address = pegoutAddress;
BaseDescriptor = baseDescriptor;
}

public bool Equals(PegoutData other)
{
return Address == other.Address;
}

public override bool Equals(object obj)
{
if (obj is null)
{
return false;
}
if (obj is PegoutData)
{
return Equals((PegoutData)obj);
}
return false;
}

public override int GetHashCode()
{
return Address.GetHashCode();
}

public static bool operator ==(PegoutData left, PegoutData right)
{
return left.Equals(right);
}

public static bool operator !=(PegoutData left, PegoutData right)
{
return !(left == right);
}
};

/// <summary>
/// Bitcoin Address class.
/// </summary>
Expand Down Expand Up @@ -325,6 +373,75 @@ public static PeginData GetPeginAddress(Script fedpegScript, Script redeemScript
}
}

/// <summary>
/// Get pegout address.
/// </summary>
/// <param name="descriptor">descriptor</param>
/// <param name="bip32Counter">bip32 counter</param>
/// <param name="addressType">address type</param>
/// <param name="network">network type</param>
/// <returns>pegout address data</returns>
public static PegoutData GetPegoutAddress(string descriptor, uint bip32Counter, CfdAddressType addressType, CfdNetworkType network)
{
if (descriptor is null)
{
throw new ArgumentNullException(nameof(descriptor));
}
using (var handle = new ErrorHandle())
{
CfdNetworkType elementsNetwork = CfdNetworkType.Liquidv1;
if (network != CfdNetworkType.Mainnet)
{
elementsNetwork = CfdNetworkType.ElementsRegtest;
}
var ret = NativeMethods.CfdGetPegoutAddress(
handle.GetHandle(), (int)network, (int)elementsNetwork, descriptor, bip32Counter,
(int)addressType,
out IntPtr outputAddress, out IntPtr outputDescriptor);
if (ret != CfdErrorCode.Success)
{
handle.ThrowError(ret);
}
string mainchainAddress = CCommon.ConvertToString(outputAddress);
string baseDescriptor = CCommon.ConvertToString(outputDescriptor);
return new PegoutData(new Address(mainchainAddress), baseDescriptor);
}
}

/// <summary>
/// Get pegout address.
/// </summary>
/// <param name="xpub">xpubkey</param>
/// <param name="bip32Counter">bip32 counter</param>
/// <param name="addressType">address type</param>
/// <param name="network">network type</param>
/// <returns>pegout address data</returns>
public static PegoutData GetPegoutAddress(ExtPubkey xpub, uint bip32Counter, CfdAddressType addressType, CfdNetworkType network)
{
if (xpub is null)
{
throw new ArgumentNullException(nameof(xpub));
}
return GetPegoutAddress(xpub.ToString(), bip32Counter, addressType, network);
}

/// <summary>
/// Get pegout address.
/// </summary>
/// <param name="descriptor">descriptor</param>
/// <param name="bip32Counter">bip32 counter</param>
/// <param name="addressType">address type</param>
/// <param name="network">network type</param>
/// <returns>pegout address data</returns>
public static PegoutData GetPegoutAddress(Descriptor descriptor, uint bip32Counter, CfdAddressType addressType, CfdNetworkType network)
{
if (descriptor is null)
{
throw new ArgumentNullException(nameof(descriptor));
}
return GetPegoutAddress(descriptor.ToString(), bip32Counter, addressType, network);
}

/// <summary>
/// empty constructor.
/// </summary>
Expand Down
Loading

0 comments on commit fa16fe2

Please sign in to comment.