Skip to content

Commit ae26607

Browse files
authored
Update README.md
Minimal stripping alternative tip Signed-off-by: Firekeeper <0xFirekeeper@gmail.com>
1 parent 869df33 commit ae26607

File tree

1 file changed

+106
-38
lines changed

1 file changed

+106
-38
lines changed

README.md

Lines changed: 106 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,47 @@ Notes:
5151
- The Newtonsoft DLL is included as part of the Unity Package, feel free to deselect it if you already have it installed as a dependency to avoid conflicts.
5252
- If using .NET Framework and encountering an error related to HttpUtility, create a file `csc.rsp` that includes `-r:System.Web.dll` and save it under `Assets`.
5353

54+
# Usage
55+
56+
In order to access the SDK, you only need to have a [ThirdwebManager](https://portal.thirdweb.com/unity/thirdwebmanager) in your scene.
57+
58+
```csharp
59+
// Configure the connection
60+
var connection = new WalletConnection(
61+
provider: WalletProvider.EmbeddedWallet, // The wallet provider you want to connect to (Required)
62+
chainId: 5, // The chain you want to connect to (Required)
63+
email: "email@email.com" // The email you want to authenticate with (Required for this provider)
64+
);
65+
66+
// Connect the wallet
67+
string address = await ThirdwebManager.Instance.SDK.Wallet.Connect(connection);
68+
69+
// Interact with the wallet
70+
CurrencyValue balance = await ThirdwebManager.Instance.SDK.Wallet.GetBalance();
71+
var signature = await ThirdwebManager.Instance.SDK.Wallet.Sign("message to sign");
72+
73+
// Get an instance of a deployed contract (no ABI required!)
74+
var contract = ThirdwebManager.Instance.SDK.GetContract("0x...");
75+
76+
// Fetch data from any ERC20/721/1155 or Marketplace contract
77+
CurrencyValue currencyValue = await contract.ERC20.TotalSupply();
78+
NFT erc721NFT = await contract.ERC721.Get(tokenId);
79+
List<NFT> erc1155NFTs = await contract.ERC1155.GetAll();
80+
List<Listing> listings = await contract.Marketplace.DirectListings.GetAllListings();
81+
82+
// Execute transactions from the connected wallet
83+
await contract.ERC20.Mint("1.2");
84+
await contract.ERC721.Signature.Mint(signedPayload);
85+
await contract.ERC1155.Claim(tokenId, quantity);
86+
await contract.Marketplace.DirectListings.BuyListing(listingId, quantity);
87+
88+
// Custom interactions
89+
var res = await contract.Read<string>("myReadFunction", arg1, arg2, ...);
90+
var txRes = await contract.Write("myWriteFunction", arg1, arg2, ...);
91+
```
92+
93+
94+
5495
# Build
5596

5697
## General
@@ -94,46 +135,73 @@ Once again, please note that no action is needed for hosted builds.
94135
## Mobile
95136

96137
- For Android, it is best to run Force Resolve from the `Assets` menu > `External Dependency Manager` > `Android Resolver` > `Force Resolve` before building your game.
97-
- ~~For iOS, if you are missing a MetaMask package, you can double click on `main.unitypackage` under `Assets\Thirdweb\Plugins\MetaMask\Installer\Packages` and reimport the `iOS` folder.~~ Recent versions should no longer require this.
138+
- For iOS, if you are missing a MetaMask package, you can double click on `main.unitypackage` under `Assets\Thirdweb\Plugins\MetaMask\Installer\Packages` and reimport the `iOS` folder (only).
98139
- ~~If you are having trouble building in XCode, make sure `ENABLE_BITCODE` is disabled and that the `Embedded Frameworks` in your `Build Phases` contain potentially missing frameworks like `MetaMask` or `Starscream`. You may also need to remove the `Thirdweb/Core/Plugins/MetaMask/Plugins/iOS/iphoneos/MetaMask_iOS.framework/Frameworks` folder in some cases.~~ Recent versions should no longer require this.
99140

100-
# Usage
101-
102-
In order to access the SDK, you only need to have a [ThirdwebManager](https://portal.thirdweb.com/unity/thirdwebmanager) in your scene.
103-
104-
```csharp
105-
// Configure the connection
106-
var connection = new WalletConnection(
107-
provider: WalletProvider.EmbeddedWallet, // The wallet provider you want to connect to (Required)
108-
chainId: 5, // The chain you want to connect to (Required)
109-
email: "email@email.com" // The email you want to authenticate with (Required for this provider)
110-
);
111-
112-
// Connect the wallet
113-
string address = await ThirdwebManager.Instance.SDK.Wallet.Connect(connection);
114-
115-
// Interact with the wallet
116-
CurrencyValue balance = await ThirdwebManager.Instance.SDK.Wallet.GetBalance();
117-
var signature = await ThirdwebManager.Instance.SDK.Wallet.Sign("message to sign");
118-
119-
// Get an instance of a deployed contract (no ABI required!)
120-
var contract = ThirdwebManager.Instance.SDK.GetContract("0x...");
121-
122-
// Fetch data from any ERC20/721/1155 or Marketplace contract
123-
CurrencyValue currencyValue = await contract.ERC20.TotalSupply();
124-
NFT erc721NFT = await contract.ERC721.Get(tokenId);
125-
List<NFT> erc1155NFTs = await contract.ERC1155.GetAll();
126-
List<Listing> listings = await contract.Marketplace.DirectListings.GetAllListings();
127-
128-
// Execute transactions from the connected wallet
129-
await contract.ERC20.Mint("1.2");
130-
await contract.ERC721.Signature.Mint(signedPayload);
131-
await contract.ERC1155.Claim(tokenId, quantity);
132-
await contract.Marketplace.DirectListings.BuyListing(listingId, quantity);
133-
134-
// Custom interactions
135-
var res = await contract.Read<string>("myReadFunction", arg1, arg2, ...);
136-
var txRes = await contract.Write("myWriteFunction", arg1, arg2, ...);
141+
## Miscellaneous
142+
If you don't want to use Minimal Stripping, you could instead create a `link.xml` file under your Assets folder and include assemblies that must be preserved, for instance:
143+
```xml
144+
<linker>
145+
<!--Thirdweb-->
146+
<assembly fullname="Amazon.Extensions.CognitoAuthentication" preserve="all" />
147+
<assembly fullname="AWSSDK.CognitoIdentity" preserve="all" />
148+
<assembly fullname="AWSSDK.CognitoIdentityProvider" preserve="all" />
149+
<assembly fullname="AWSSDK.Core" preserve="all" />
150+
<assembly fullname="AWSSDK.Lambda" preserve="all" />
151+
<assembly fullname="AWSSDK.SecurityToken" preserve="all" />
152+
<assembly fullname="embedded-wallet" preserve="all" />
153+
154+
<!--Other-->
155+
<assembly fullname="System.Runtime.Serialization" preserve="all" />
156+
<assembly fullname="Newtonsoft.Json" preserve="all" />
157+
<assembly fullname="System" preserve="all">
158+
<type fullname="System.ComponentModel.TypeConverter" preserve="all" />
159+
<type fullname="System.ComponentModel.ArrayConverter" preserve="all" />
160+
<type fullname="System.ComponentModel.BaseNumberConverter" preserve="all" />
161+
<type fullname="System.ComponentModel.BooleanConverter" preserve="all" />
162+
<type fullname="System.ComponentModel.ByteConverter" preserve="all" />
163+
<type fullname="System.ComponentModel.CharConverter" preserve="all" />
164+
<type fullname="System.ComponentModel.CollectionConverter" preserve="all" />
165+
<type fullname="System.ComponentModel.ComponentConverter" preserve="all" />
166+
<type fullname="System.ComponentModel.CultureInfoConverter" preserve="all" />
167+
<type fullname="System.ComponentModel.DateTimeConverter" preserve="all" />
168+
<type fullname="System.ComponentModel.DecimalConverter" preserve="all" />
169+
<type fullname="System.ComponentModel.DoubleConverter" preserve="all" />
170+
<type fullname="System.ComponentModel.EnumConverter" preserve="all" />
171+
<type fullname="System.ComponentModel.ExpandableObjectConverter" preserve="all" />
172+
<type fullname="System.ComponentModel.Int16Converter" preserve="all" />
173+
<type fullname="System.ComponentModel.Int32Converter" preserve="all" />
174+
<type fullname="System.ComponentModel.Int64Converter" preserve="all" />
175+
<type fullname="System.ComponentModel.NullableConverter" preserve="all" />
176+
<type fullname="System.ComponentModel.SByteConverter" preserve="all" />
177+
<type fullname="System.ComponentModel.SingleConverter" preserve="all" />
178+
<type fullname="System.ComponentModel.StringConverter" preserve="all" />
179+
<type fullname="System.ComponentModel.TimeSpanConverter" preserve="all" />
180+
<type fullname="System.ComponentModel.UInt16Converter" preserve="all" />
181+
<type fullname="System.ComponentModel.UInt32Converter" preserve="all" />
182+
<type fullname="System.ComponentModel.UInt64Converter" preserve="all" />
183+
</assembly>
184+
<assembly fullname="Nethereum.ABI" preserve="all" />
185+
<assembly fullname="Nethereum.Accounts" preserve="all" />
186+
<assembly fullname="Nethereum.BlockchainProcessing" preserve="all" />
187+
<assembly fullname="Nethereum.Contracts" preserve="all" />
188+
<assembly fullname="Nethereum.HdWallet" preserve="all" />
189+
<assembly fullname="Nethereum.Hex" preserve="all" />
190+
<assembly fullname="Nethereum.JsonRpc.Client" preserve="all" />
191+
<assembly fullname="Nethereum.JsonRpc.RpcClient" preserve="all" />
192+
<assembly fullname="Nethereum.Keystore" preserve="all" />
193+
<assembly fullname="Nethereum.Merkle" preserve="all" />
194+
<assembly fullname="Nethereum.Merkle.Patricia" preserve="all" />
195+
<assembly fullname="Nethereum.Model" preserve="all" />
196+
<assembly fullname="Nethereum.RLP" preserve=" all" />
197+
<assembly fullname="Nethereum.RPC" preserve=" all" />
198+
<assembly fullname="Nethereum.Signer" preserve=" all" />
199+
<assembly fullname="Nethereum.Signer.EIP712" preserve=" all" />
200+
<assembly fullname="Nethereum.Siwe" preserve=" all" />
201+
<assembly fullname="Nethereum.Siwe.Core" preserve=" all" />
202+
<assembly fullname="Nethereum.Util" preserve=" all" />
203+
<assembly fullname="Nethereum.Web3" preserve=" all" />
204+
</linker>
137205
```
138206

139207
# Additional Links

0 commit comments

Comments
 (0)