智能合约创建

创建你的第一个Python智能合约

运行 UUOS

打开终端,进入 [PROJECT_DIR]/build/program,执行下面命令

./UUOS/UUOS --manual-gen-block --debug -i

UUOS会在您第一次启动时为您创建一个测试钱包,位置在 data-dir/mywallet.wallet,控制台会打印钱包密码,如下所示:

wallet password: PW5JWE5g6RZ7Fyr2kmCphDqZo4uivdeGpUpndgFZ52rsduhtf9PRJ

由于仅用于测试,密码将保存到 data-dir / data.pkl,因此下次启动UUOS进行测试时,UUOS会为您解锁钱包。

同时,UUOS会将三个私钥导入钱包,这对测试非常有用。

'5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3',
'5JEcwbckBCdmji5j8ZoMHLEUS8TqQiqBG1DRx1X9DN124GUok9s',
'5JbDP55GXN7MLcNYKCnJtfKi9aD2HvHAdY7g8m67zFTAFkY1uBB'

注意,不要在真实帐户中使用这些私钥,否则您将丢失帐户中的所有加密属性。

此外,UUOS会为你创建4个重要的账户

eosio.bios, eosio.msig, eosio.system, eosio.token

并在测试网上面发布它们的智能合约

尽管上述步骤在现实世界中永远不会发生,但它确实为测试智能合约提供了极大的便利。从而节省了大量宝贵的时间,提高了开发效率。

使用sketch生成源代码

在UUOS控制台中执行以下命令,

sketch.build('hello', 'helloworld', 'py')

它将在当前目录下创建一个helloworld目录,hello作为测试账户名,在该目录下生成以下三个文件:

helloworld.py
helloworld.abi
t.py

其中,helloworld.py是Python智能合约源代码,helloworld.abi是智能合约的ABI(应用程序二进制接口)文件,t.py包含用于测试智能合约的代码。

此外,sketch还可以为您创建一个wasm智能合约项目,只需在UUOS控制台中输入以下命令,测试过程与Python智能合约没有区别。

sketch.build('helloworld', 'helloworld', 'cpp')

测试

现在运行你的helloworld智能合约。在UUOS控制台输入或复制以下命令:

from helloworld import t
t.test()

你会看到控制台有绿色的字输出,如下所示:

3289633ms thread-1   mpeoslib.cpp:63               print                ] hello,world

恭喜,你已经成功运行第一个Python智能合约。

现在您可以打开helloworld.py进行编码。一旦完成,只需再次运行t.test(),无需运行其他命令来发布您的测试智能合约,如果在运行t.test()期间helloworld.py已发生改变,智能合约会自动重新发布到测试网。您还可以在t.py中编辑测试代码来测试智能合约。一旦完成,只需再次运行t.test(),就不需要运行reload(t),UUOS会为你施魔法。这也适用于在测试中添加新功能的情况。

在 programs/UUOS/contracts 中有很多例子。其中一些仍在开发中,如果示例抛出异常,那么它可能还没有完成。选择您感兴趣的示例并根据需要使用它。